Discos virtuales para aprender a particionar

Una de las primeras cosas que deben conocer los aprendices de administradores de sistemas es el particionado de discos duros. El particionado de discos es el procedimiento que se utiliza para dividir un disco duro en varios “trozos”. Cada uno de estos “trozos”, denominados particiones, puede utilizarse para alojar un sistema de ficheros diferente y por tanto permite una gestión mucho más adecuada del almacenamiento, sobre todo cuando el tamaño de los discos es grande.

Para hacer prácticas de particionado de discos, lo lógico es utilizar un disco duro auxiliar en el que no haya ninguna información relevante y en este entrada se explica cómo hacerlo en GNU/Linux mediante un disco duro virtual, que en este caso no es más que un fichero de imagen en formato raw como los que se utilizan habitualmente en sistemas virtuales.

Leer el resto de esta entrada »

, , , , ,

3 comentarios

Cortafuegos con iptables

Esta entrada es la continuación de NAT con iptables y sólo he tardado 3 años en ponerme a hacerla :-)

Al igual que en la entrada anterior se utilizaba sólo la tabla nat de iptables, en ésta sólo se utilizará la tabla filter, que es la tabla por defecto en iptables. Al tratarse de una continuación, no se repetirán las explicaciones allí dadas, por lo que se recomienda su lectura previamente para aquellos lectores que se inicien en esto de iptables.

Vamos a explicar aquí la configuración de un cortafuegos de filtrado de paquetes con iptables y dejaremos para una entrada posterior (esperemos que antes de 3 años) la mejora del mismo incluyendo características más avanzadas.

Leer el resto de esta entrada »

, , , ,

2 comentarios

Iceweasel 8 en Debian stable (squeeze)

Desde los inicios del desarrollo del navegador Firefox, el ritmo de publicación de versiones estables ha sido bastante pausado, de hecho según los datos de la wikipedia, Firefox 3.0 se publicó en Junio de 2008 y Firefox 3.5 un año después. Sin embargo este año a los desarrolladores de mozilla les ha entrado la enfermedad de la versionitis y desde el mes de marzo han sacado las versiones 4.0, 5.0, 6.0, 7.0 y 8.0, ¿pero qué es esto?

Este ritmo desenfrenado de publicación de versiones se lleva muy mal con el ritmo sosegado de debian estable (actualmente squeeze), ya que según el sensato proceder de Debian, para la versión estable se utilizan las versiones de software que eran estables cuando se congeló el desarrollo de la distribución (Agosto de 2010), por tanto la versión del navegador iceweasel (aka firefox) que viene y vendrá en squeeze es la 3.5 (3.5.16 concretamente).

Andaba yo más feliz que una perdiz con mi debian estable tanto en servidores como en equipos de escritorio cuando empezaron en el verano a aparecer mensajes en algunos sitios de obsolescencia del navegador o a no poder utilizar algunos complementos (firebug por ejemplo no soporta ya la 3.5), total que he terminado actualizando la versión del navegador a la última versión publicada (8.0) y aquí os explico los pasos dados.

Actualización (27/12/2011): Hoy he actualizado a Iceweasel 9.0 con un simple update + upgrade :-)

Leer el resto de esta entrada »

, , ,

2 comentarios

¿Por qué no deberías contribuir a google map maker (y a otras muchas cosas similares)?

Google map maker es una aplicación web del gigante estadounidense Google que permite a los usuarios incluir o modificar ciertos datos de Google Maps. Esto en principio parece una buena iniciativa, ya que Google ofrece un servicio gratuito de mapas en la web, que como todos los mapas, contiene errores y está desactualizado. Un usuario de Google maps puede encontrar muy útil e incluso satisfactorio hacer pequeñas contribuciones a Google maps y ver como mejora la calidad del mapa que utiliza. Es más, ese mismo usuario es posible que se plantee esa opción como algo ético, como una forma de agradecer y devolver un favor a quien te permite utilizar algo de forma gratuita sin pedirte nada a cambio. Yo no lo pienso, cada vez estoy más convencido de que aquella frase de “Don’t be evil” era puro sarcasmo y que ha llegado el momento de hacerle frente a Google porque a base de ofrecer servicios gratuitos se está convirtiendo en un monstruo demasiado poderoso.

Leer el resto de esta entrada »

, , , , , ,

Dejar un comentario

Verificar el dígito de control (DC) de una cuenta corriente en Python

El Código Cuenta Cliente (CCC) es el código que identifica en España las cuentas corrientes de los clientes de bancos. El CCC tiene 20 dígitos en formato AAAA-BBBB-CC-DDDDDDDDDD.

  • AAAA son cuatro dígitos que identifican la entidad bancaria.
  • BBBB son cuatro dígitos que identifican la oficina.
  • CC se denomina dígito de control (DC).
  • DDDDDDDDDD son 10 dígitos de la cuenta del cliente en el banco.

Según la wikipedia:
Los dígitos situados en las posiciones novena y décima se generan a partir de los demás dígitos del CCC, permitiendo comprobar la validez del mismo y reducir la posibilidad de errores de manipulación. El primero de ellos valida conjuntamente los códigos de entidad y de oficina; el segundo, valida el número de cuenta.

Cada uno de los dígitos del DC se calcula utilizando el mismo algoritmo, para lo que se complementa con dos ceros a la izquierda la entidad y oficina.

Una función para calcular el DC en python podría ser:

def calcula_dc(secuencia):
    """Calcula el dígito de control de una CCC.
    Recibe una lista con 10 numeros enteros y devuelve el DC
    correspondiente"""

    pesos = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6]
    aux = []
    for i in range(10):
        aux.append(secuencia[i]*pesos[i])
    resto = 11 - sum(aux)%11
    if resto == 10:
        return 1
    elif resto == 11:
        return 0
    else:
        return resto

Y un pequeño programa para validar una cuenta corriente sería:

ccc = raw_input("Introduce el CCC: ").split('-')
entidadyoficina = [0, 0]
for i in range(2):
    for j in range(4):
        entidadyoficina.append(int(ccc[i][j]))
cuenta = []
for i in range(10):
    cuenta.append(int(ccc[3][i]))
dc = str(calcula_dc(entidadyoficina))+str(calcula_dc(cuenta))
if dc == ccc[2]:
    print 'CCC verificado'
else:
    print 'Hay un error en el CCC'

,

1 comentario

Guardando una copia de mis marcadores de del.icio.us

Hoy publican en barrapunto que yahoo podría cerrar del.icio.us, debe ser esto de la nube que cada vez parece más un nubarrón gris oscuro :-/.

Utilizo delicious desde hace tiempo y al enterarme de la noticia he buscado la forma de descargarme mis marcadores para guardarlos en casa al cobijo de los nubarrones, he encontrado la siguiente instrucción en commandlinefu.com:

curl -u alberto.molina -o bookmarks.xml https://api.del.icio.us/v1/posts/all

que utiliza la api de delicious y nos descarga todos los marcadores y almacen en el fichero bookmarks.xml, con una estructura muy simple. Si realmente delicious deja de funcionar, habrá que buscar una alternativa y volcar allí los marcadores.

, , , , , ,

Dejar un comentario

Postfix con usuarios virtuales en openLDAP

Es habitual que los usuarios de los diferentes servicios no se correspondan con usuarios locales (los que aparecen en /etc/passwd) del equipo que actúa como servidor, es más, habitualmente estos servidores tienen muy pocos usuarios locales. Para los usuarios de los servicios se suele utilizar el término usuarios virtuales, que pueden estar ubicados en ficheros, bases de datos relaciones o, quizás lo más adecuado, servidores LDAP.

En esta entrada explicamos cómo se configura un servidor postfix con usuarios virtuales en openLDAP, bueno realmente sólo explicamos cómo recibir correo para usuarios virtuales en openLDAP, la configuración de postfix para que los usuarios de un servidor LDAP estén autorizados para enviar correo es diferente e implica la configuración de SASL para autenticar esos usuarios y habitualmente TLS. La configuración que veremos a continuación no es complicada, pero como siempre que utilizamos postfix, es necesario comprender lo mejor posible el funcionamiento paso a paso y una vez hecho esto, veremos cómo encaja todo perfectamente.

Leer el resto de esta entrada »

, , , ,

2 comentarios

Añadir un nuevo esquema en OpenLDAP 2.4

Una de las principales novedades de la versión 2.4 de OpenLDAP es que se incluye toda la configuración del servidor slapd en un directorio de base cn=config, en lugar del habitual fichero /etc/ldap/slapd.conf. Esto tiene la ventaja de que las modificaciones de configuración se pueden hacer sin tener que reiniciar el servicio, pero tiene el inconveniente de que tenemos que aprender una cosa nueva :-).

En esta entrada vemos en concreto la forma de incluir un esquema nuevo en cn=config, en particular samba3.schema. Hemos utilizado en el desarrollo la versión de pruebas de Debian GNU/Linux (squeeze), que en poco tiempo será la versión estable, pero debería haber pocas diferencias con la configuración en otra distribución. La versión de slapd utilizada es 2.4.23.

Leer el resto de esta entrada »

, , , ,

6 comentarios

Emacs como editor XML

Emacs es un extraordinario editor de textos que utilizo desde hace años (más de la cuenta :-) ), principalmente para algunas cosas de programación y LaTeX. Este año estoy descubriendo las posibilidades que tiene como editor XML utilzando el modo nxml.

En esta entrada se explica la configuración de emacs con el modo nxml, los pasos para transformar un esquema cualquiera al formato a rnc utilizado por emacs y cómo se demuestra la utilidad de XML con la validación al vuelo de documentos. En particular vamos a utilizar los esquemas de la api de virtualización libvirt y veremos que es mucho más sencillo así editar manualmente los ficheros de configuración para las máquinas y redes virtuales.

Esta implementación se ha realizado utilizando paquetes oficiales de la distribución de pruebas (actualmente squeeze) de Debian GNU/Linux, aunque seguramente es posible utilizarlo con pocos cambios en otras distribuciones GNU/Linux

Leer el resto de esta entrada »

, ,

1 comentario

Ejecutar una instrucción con otra localización

La utilización de diferentes codificaciones de caracteres y características regionales se maneja y define en GNU/Linux a través de la instrucción locale y las variables de entorno LC_* y LANG.

En esta entrada se explica de forma breve la forma de configurar varias localizaciones diferentes en un mismo equipo y como utilizar una determinada cuando sea necesario

Leer el resto de esta entrada »

,

Dejar un comentario

Seguir

Get every new post delivered to your Inbox.