viernes, 26 de noviembre de 2010

La Cocina de los Sistemas Operativos

Ya hace varios años que vi un post sobre una comparativa de los sistemas operativos Linux, MacOS y Windows con la comida. Hoy en uno de los curso ha surgido la conversación tipica de cual es mejor, si uno si otro y he recordado la existencia de este post:

http://www.jesusda.com/blog/index.php?id=261

Disfrutadlo

jueves, 18 de noviembre de 2010

Tetris 3D en HTML5

A veces también esta bien pasar el rato aprovechando las maravillas del HTML5. En este caso se trata del famoso tetris en version 3D. Bastante entretenido para relajarse un poco.
http://www.benjoffe.com/code/games/torus/


miércoles, 17 de noviembre de 2010

Cambiar en CentOS la función hash usada para las claves de los usuarios

Por defecto CentOS viene configurado para utilizar md5 como algoritmo hash para cifrar las claves de los usuarios. Esta función no es ni de cerca la mas segura, de hecho existen programas para obtener por fuerza bruta las claves cifradas con md5. Un ejemplo es John the Ripper.

lunes, 15 de noviembre de 2010

Comandos para la gestión de la red en Linux: dig

Normalmente los programas que necesitan traducir un nombre de dominio a dirección ip, usan un un programa llamado resolvedor que se encarga de obtener la dirección ip consultando tres lugares. Pero existen comandos como dig que permiten que el usuario pueda realizar consultas y ver las respuestas devueltas.

miércoles, 10 de noviembre de 2010

Comandos para la gestión de la red en Linux: route


Con el comando route se puede controlar el enrutamiento básico. Para ver la tabla de enrutamiento solo es necesario ejecutar:

route

Y el resultado obtenido es:

Tabla de rutas IP del núcleo
Destino      Pasarela                Genmask       Indic Métric Ref  Uso Interfaz
172.20.0.0   *                       255.255.0.0   U     1      0    0   eth0
link-local   *                       255.255.0.0   U     1000   0    0   eth0
default      router.trombotic.tic    0.0.0.0       UG    0      0    0   eth0

Ejecutado de esta forma, route intenta resolver los nombres de las direcciones ip que aparecen en las rutas, y si el dns no esta configurado o falla, el resultado tarda bastante en salir. Para evitarlo se puede utilizar route con la opción -n:

route -n

Y el resultado obtenido es:

Tabla de rutas IP del núcleo
Destino        Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
172.20.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0    0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0        172.20.0.1      0.0.0.0         UG    0      0        0 eth0

Para modificar la tabla de enrutameinto añadiendo una nueva ruta, es necesario añadir varias opciones:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.20.0.2

En este caso se esta añadiendo una nueva ruta para llegar a la red (de destino) 10.0.0.0 con mascara (de la red de destino) 255.0.0.0 a través de la puerta de enlace (router) 172.20.0.2.

Para introducir la puerta de enlace predeterminada se ejecuta:

route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.20.0.2

Es importante recordar que la direccion ip y la mascara deben ser 0.0.0.0.

Cuando se borran rutas se ejecuta el comando route de esta forma:

route del -net 10.0.0.0 netmask 255.0.0.0 gw 172.20.0.2

Cuando solo hay una ruta hacia la red que queremos borrar, no es necesario poner el gw. Es suficiente con:

route del -net 10.0.0.0 netmask 255.0.0.0

Comandos para la gestión de la red en Linux: ping

El comando ping se utiliza para comprobar si existe conexión con otras máquinas. Se puede hacer ping a la dirección ip o al nombre de dominio de la máquina.

ping 172.20.0.100
ping servidor100.trombotic.tic

Al contrario que en Windows, el ping de linux es continuo, no se detiene al hacer cuatro pruebas. Si queremos que solo se hagan 4 pruebas se puede añadir la opción -c 4 donde 4 es el número de pruebas ha realizar:

ping -c 4 172.20.0.100

A continuación se muestran el resultado de ejecutar:
ping -c 4 www.google.es 

PING www.l.google.com (66.249.92.104) 56(84) bytes of data.
64 bytes from par03s01-in-f104.1e100.net (66.249.92.104): icmp_seq=1 ttl=54 time=63.6 ms
64 bytes from par03s01-in-f104.1e100.net (66.249.92.104): icmp_seq=2 ttl=52 time=65.4 ms
64 bytes from par03s01-in-f104.1e100.net (66.249.92.104): icmp_seq=3 ttl=52 time=63.4 ms
64 bytes from par03s01-in-f104.1e100.net (66.249.92.104): icmp_seq=4 ttl=52 time=66.8 ms

--- www.l.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 63.485/64.891/66.893/1.405 ms

Como se puede ver, de las cuatro pruebas que se han realizado, las cuatro han tenido respuesta por lo tanto hay conexión con el servidor de Google. La máquina que ha respondido es  par03s01-in-f104.1e100.net a pesar de haberse hecho ping a www.google.es. Esto es debido a que la resolución inversa (de ip a nombre) la dirección ip 66.249.92.104 tiene asociado ese nombre.
En la información que devuelve el ping se puede apreciar el tiempo que ha tardado en realizar cada prueba. En la primera 63.6ms, en la segunda 65.4 ms, etc. Si el tiempo es superior a un segundo la cosa va mal. Si se hace ping de una máquina de la red local a otra, el tiempo debe ser inferior al ms.
Al final del ping, Aparece un resumen de los resultados obtenidos por el ping.

Otro ping pero esta vez sin resolución de nombres. 

ping -c 4 -n www.google.es

PING www.l.google.com (66.249.92.104) 56(84) bytes of data.
64 bytes from 66.249.92.104: icmp_seq=1 ttl=54 time=71.7 ms
64 bytes from 66.249.92.104: icmp_seq=2 ttl=52 time=71.6 ms
64 bytes from 66.249.92.104: icmp_seq=3 ttl=52 time=70.3 ms
64 bytes from 66.249.92.104: icmp_seq=4 ttl=54 time=67.4 ms

--- www.l.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 67.473/70.312/71.757/1.745 ms


Un ping a una dirección ip que no responde, bien por que no existe o no hay conexión.

ping -c 4 -n 80.80.80.80
PING 80.80.80.80 (80.80.80.80) 56(84) bytes of data.

--- 80.80.80.80 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3018ms

Ping a una máquina con un nombre que no existe.

ping -c 4 -n trombotic.google.es

ping: unknown host trombotic.google.es

Comandos para la gestión de la red en Linux: ifconfig

Para ver o modificar la configuración de las interfaces de red se puede utilizar el comando ifconfig. Cualquier configuración realizada con este comando se pierde al reiniciar el servicio de red o al reiniciar la máquina. Para hacer cambios permanentes se pueden editar los archivos de red o utilizar las herramientas que proporcione la distribución que se este utilizando.

Si se quiere ver la configuración de las interfaces de red se ejecuta simplemente ifconfig.

ifconfig

Cuando se tienen muchas interfaces de red y se traba en modo texto, lo mas probable es que no entre en una pantalla el resultado del comando, para poder verlo poco a poco se puede añadir el filtro less o more.

ifconfig|more
ifconfig|less

Para cambiar la direccion ip de una tarjeta se usa el comando ifconfig de la siguiente forma:

ifconfig eth1 172.20.0.1

De esta forma se modifica la direccion ip y se establece la mascara por defecto. En este ejemplo 255.255.0.0.

Si la máquina pertenece a una subred es necesario establecer una máscara distinta. Esto se puede conseguir con:

ifconfig eth1 172.120.0.1 netmask 255.255.255.0

Con ifconfig también es posible desactivar la interfaz de red:

ifconfig eth1 down

O activarla:

ifconfig eth1 up.

También se puede modificar la dirección MAC:

ifconfig eth1 hw ether 00:50:56:10:00:01