viernes, 28 de septiembre de 2007

Ubuntu Gutsy Gibbon (7.10) Beta está disponible

Canonical hizo pública una nueva beta de Ubuntu Gutsy Gibbon.
Estoy bajando la versión, así que cuando la pruebe, les voy a comentar cómo anduvo. Es una versión muy esperada, dado que incluye mejor soporte para notebooks, configuración gráfica del gestor de ventanas, mejor soporte para monitores duales, mejor soporte de drivers privativos, compiz fusion, apparmor, soporte de escritura para particiones NTFS, configuración automática de impresoras (esto quiero verlo!), búsqueda de escritorio, Gnome 2.20 y un largo etcétera.
Enlace: http://www.ubuntu.com/testing/gutsybeta
Saludos!
English version:
http://en.tuxero.com/2007/09/ubuntu-gutsy-gibbon-710-beta-available.html

Technorati tags:

viernes, 21 de septiembre de 2007

Cómo almacenar passwords en una base de datos

A menudo escribimos aplicaciones que deben realizar validación de usuarios y permisos. En estos casos es bastante común que los desarrolladores incluyan campos como 'User' y 'Password' en la tabla de usuarios. También sucede que las contraseñas se guardan en texto plano, lo cual acarrea problemas de seguridad, como veremos a continuación.
Los administradores de la base de datos NO deben tener acceso a las contraseñas. Además, si un atacante logra acceso a la base de datos, va a tener una manera muy fácil de obtener las contraseñas de los usuarios.
Incluso, dependiendo de la configuración de la base de datos, es posible que cuando busquemos "SELECT * FROM USERS WHERE USER='my_user' AND PASSWORD='my_password';", no se valide si la contraseña está en mayúsculas o minúsculas. Esto hace fácil a los atacantes probar distintas contraseñas, ya que no se está validando mayúsculas y minúsculas.
A veces los desarrolladores encriptan las contraseñas aplicando algún algoritmo de encripción. Hay que tener cuidado por los siguientes motivos:
- En general estos algoritmos son bidireccionales, lo cual quiere decir que si tenemos la clave de encripción, se puede obtener la contraseña original a partir del texto cifrado.
- Los buenos algoritmos de encripción son en general conocidos y verificados por la comunidad de programadores y matemáticos. Debes desconfiar de aquellos que ofrecen fórmulas 'mágicas' o que no quieren divulgar la forma de encripción.
Solución:
Lo que debemos hacer es aplicar un algoritmo de hash (ej: SHA, SHA1, SHA2, MD5, etc) a la contraseña para obtener un código a partir del cual no se pueda obtener el texto original. Esto debe hacerse cada vez que el usuario suministra una contraseña, ya sea en el ingreso al sistema, o cuando el usuario modifica su contraseña. Recuerda almacenar en la base de datos el resultado de aplicar el algoritmo de hash a la contraseña suministrada por el usuario.
Cuando busquemos el usuario, la consulta SQL quedaría algo así: "SELECT * FROM USERS WHERE USER='my_user' AND PASSWORD='5eb942810a75ebc850972a89285d570d484c89c4';".
Implicancias: si antes el usuario olvidaba su contraseña, podía pedírsela a los administradores. Ahora, hay que implementar una rutina de blanqueo de contraseñas para estos casos.
Espero que esto ayude.

Saludos!
English version

Technorati tags:

martes, 18 de septiembre de 2007

Virtual Box 1.5 networking en Ubuntu Feisty

Como publiqué en otro post, instalé el Virtual Box 1.5.
Ahora que empecé a usarlo, encontré un par de problemas. Para empezar, quería copiar los discos virtuales (VDI), y para mi sorpresa, copiar los archivos no funciona. Hay que usar la herramienta de clonado de discos, como se ve a continuación:

VBoxManage clonevdi origen.vdi destino.vdi

El siguiente problema que encontré es que no me funcionaba la red en 'Interface Anfitrión'. Luego de ver la ayuda y dar unas cuantas por google, ubuntuforums y demás, encontré la manera de hacerlo andar. Acá va un mini howto.
Primero instalamos los paquetes necesarios:
sudo apt-get install bridge-utils
sudo apt-get install uml-utilities


Luego tenemos que definir las interfaces de red. Editamos el archivo de interfaces:
sudo gedit /etc/network/interfaces

Agregamos las interfaces necesarias (remplazando 'user' por el usuario que usará las máquinas virtuales, y obviamente una IP adecuada):
auto br0
iface br0 inet dhcp
bridge_ports eth0 br0

auto tap0
iface tap0 inet manual
up ifconfig $IFACE 192.168.0.150 up
down ifconfig $IFACE down
tunctl_user user


Reiniciamos la red:
sudo /etc/init.d/networking restart


Agregamos el usuario al grupo uml-net:
sudo gpasswd -a user uml-net


Esto debería funcionar según el manual, pero no. Encontré que para que funcione debemos ejecutar:
sudo chmod 0666 /dev/net/tun
sudo chmod 0666 /dev/vboxdrv


Luego de esto, podemos establecer 'Interface Anfitrión', y en el nombre de la interface introducimos 'tap0'.

Y listo!

Saludos!

English version

lunes, 17 de septiembre de 2007

HP Laserjet 1018 en Ubuntu Feisty

Recientemente tuve que configurar una HP Laserjet 1018 en Ubuntu Feisty.
Simple como parece, no lo es.
La impresora se agrega correctamente, y cuando intento imprimir una página de prueba, el proceso ocurre sin errores, excepto que no imprime!
Esto me parece lo suficientemente malo, dado que si no puede imprimir, al menos debe arrojar un error al usuario.
Buscando, encontré cómo hacerla funcionar aquí.
Se indica bajar y compilar el driver desde aquí.
Siguiendo estos pasos pude instalar correctamente la impresora, pero aún así, fue un proceso mas bien complejo.
Saludos!

Technorati tags:


English version

miércoles, 5 de septiembre de 2007

Virtual Box 1.5.0 liberado

La gente de innotek me sorprendió con la nueva versión de Virtual Box.
Virtual Box es un sistema de virtualización de código abierto (libre y gratis) que nos permite tener máquinas virtuales sobre un sistema operativo anfitrión.
Yo lo bajé e instalé en minutos (utilizo Ubuntu). La instalación fue ágil y sencilla. Instalar una máquina virtual fue verdaderamente sencillo.
Lo que más me sorprendió es el 'Seamless mode' que permite tener ventanas del sistema operativo invitado mezcladas con la del sistema operativo anfitrión.
Soy un gran amante de la virtualización, dado los grandes beneficios que aporta. Esto para mí es una muy buena noticia, dado que otras soluciones como VM Ware Server (gratis, no libre) no siempre son sencillas de instalar e implementar.

Lo ví en genbeta.
Lo puedes bajar de virtual box.

Saludos!
English version

lunes, 3 de septiembre de 2007

Cómo borrar archivos inútiles de Windows en Ubuntu Linux

Luego de usar mucho tiempo Windows, mis carpetas de música y fotos están llenas de archivos 'desktop.ini' y 'Thumbs.db'. Como hace un tiempo uso sólo Ubuntu Linux, decidí eliminar esos archivos.
Para hacerlo, puedes usar este comando (ten en cuenta que recorre todas las subcarpetas que indiques en la ruta, así que no lo hagas sobre la carpeta raíz):

find /ruta -type f -name "desktop.ini" -exec rm -f {} \;
find /ruta -type f -name "Thumbs.db" -exec rm -f {} \;
También podemos usar este comando para eliminar las tapas de los álbumes de nuestras carpetas de música:
find /ruta_musica -type f -name "*.jpg" -exec rm -f {} \;
Como ves, esto puede usarse para borrar cualquier archivo (o tipo de archivo) recursivamente en directorios. Puedes usarlo para borrar otros archivos, siempre y cuando tengas cuidado de no borrar archivos demás.
Si quieres examinar los archivos que serán borrados antes de hacerlo, debes ejecutar el mismo comando cambiando 'rm' por 'ls', así:
find /ruta -type f -name "desktop.ini" -exec ls -f {} \;
De esta forma puedes controlar el listado de archivos a borrar.
Espero que te sea útil.

Saludos!

English version
Technorati tags: