lunes, 27 de diciembre de 2010

Más música para escuchar Online

Otra web donde se puede escuchar música online, incluida música comercial, es Grooveshark. Entre sus características destaca la posibilidad de subir tu música, crear listas personalizadas y escuchar estaciones de radios. También se puede comprar la música para poder descargarla.


Existe otra posibilidad que es Spotify. En este caso es necesario crear una cuenta para poder acceder a la música y además en la versión gratuita insertan anuncios.

jueves, 23 de diciembre de 2010

Música para descarga legal y gratuita

Si te gusta escuchar música cuando navegas por Internet o trabajas con el ordenador, existen webs donde están disponibles para escuchar o descargar de forma gratuita canciones de todos los estilos.

miércoles, 22 de diciembre de 2010

Liberar espacio ocupado por un disco virtual de VMWare Player

Los discos duros virtuales de VMWare ocupan espacio en el sistema de archivos del sistema anfitrión. Este espacio se puede recuperar si se han eliminado archivos del disco duro virtual utilizando la herramienta compactar, pero a veces no es suficiente.

viernes, 26 de noviembre de 2010

Página web con un vídeo de fondo usando HTML 5

Con la llegada de HTML 5 y sus nuevas etiquetas se pueden crear fácilmente paginas web con contenido multimedia que antes solo era posible mediante un plugin de flash. Aquí os dejo un ejemplo en el que se reproduce un vídeo HD como fondo de una pagina web.

El vídeo utiliza la etiqueta <video> de HTML 5 y el resto son estilos.




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

miércoles, 3 de noviembre de 2010

Instalación y configuración básica de un dominio con bind9 en CentOS

Para mantener un dominio es necesario instalar y configurar un servidor DNS. El más utilizado en entornos linux es el Bind (versión 9.7.2-P2 en el momento de escribir este artículo).

El primer paso es instalarlo desde los repositorios de CentOS. Esto se hace con el comando:

yum install bind

Una vez instalado se debe crear un archivo de configuración. Lo siguientes pasos cubren una configuración sencilla que permita tener en marcha un servidor DNS en poco tiempo. La configuración del servidor está en el archivo /etc/named.conf. Todas las sentencias disponibles para configurar el servidor bind se pueden consultar en el Manual de Referencia del Administrador ARMv9.6 .

El archivo se puede editar con el comando:

nano /etc/named.conf

El contenido que hay que introducir es:

options {
        directory "/var/named";
};

zone "." {
        type hint;
        file "named.root";
};

zone "trombotic.tic" {
        type master;
        file "trombotic.tic.zone";
};

zone "1.168.192.in-addr.arpa" {
        type master;
        file "1.168.192.in-addr.arpa.zone";
}; 

La sentencia options permite configurar opciones globales del servidor. En este caso solo contiene la subsentencia directory que indica el directorio del sistema donde están los archivos de zona. La subsentencia type indica el tipo de zona, y en el caso de poner master significa que este servidor es el que tiene la copia original de los datos de la zona (No es un servidor secundario). Por último la subsentencia file indica el nombre del archivo de zona.

El servidor dns para definir un dominio utiliza zonas. Una zona contiene la información que maneja un dns, es decir, la relación entre los nombres de las máquinas y sus direcciones ip ( y alguna cosilla más). Esta información se representa mediante registros de recursos incluidos dentro de los archivos de zona.

Por ejemplo, en este servidor existe una zona llamada trombotic.tic que se corresponde con el dominio trombotic.tic cuyo archivo de zona se llama trombotic.tic.zone. Como dentro de la sentencia options existe la subsentencia directory con valor /var/named, el archivo de zona para trombotic.tic es /var/named/trombotic.tic.zone. Esta zona se encarga de la resolución de nombres de dominio a direcciones ip.

A parte, también existe una zona llamada 1.168.192.in-addr.arpa que es la que se encarga de la resolución inversa, es decir, a partir de una dirección ip obtener el nombre de dominio. No es obligatoria para tener resolución de nombres, pero es necesaria para que algunos servicios funcionen bien. Las zonas de resolución inversa reciben el nombre de la dirección de red o subred, sin los ceros, escritas al revés y con el sufijo .in-addr.arpa. en este caso la dirección de la red es 192.168.1.0/24 así que se coge el 192.168.1, se le da la vuelta para que quede 1.168.192 y se le añade .in-adder.arpa.

Una vez creado el archivo de configuración , hay que crear los archivos de zona.
Dentro del directorio /var/named se deben crear tres archivos:
  • named.root que contiene una copia de los servidores raíz DNS.
  • trombotic.tic.zone que contiene los registros de las zona trombotic.tic.
  • 1.168.192.in-addr.arpa.zone que contiene los registros de resolución inversa para las direcciones de la red 192.168.1.0/24.
Se puede obtener una copia actualizada de los servidores DNS raíz en www.internic.net. Para descargar el archivo de named.root se puede utilizar el comando:

wget -O - http://www.internic.net/zones/named.root > /var/named/named.root


El contenido del archivo /var/named/trombotic.tic.zone podría ser así:

@               IN      SOA ns.trombotic.tic admin.trombotic.tic (
1       ;serial
24h     ;refresh
1h      ;retry
7d      ;expire
1h      ;negative ttl
)

                IN      NS ns.trombotic.tic.

@               IN      MX 1    servidor.trombotic.tic.

servidor        IN      A 192.168.1.200
router          IN      A 192.168.1.1

ns              IN      CNAME servidor
smtp            IN      CNAME servidor
pop3            IN      CNAME servidor
www             IN      CNAME servidor
ftp             IN      CNAME servidor


Los archivos de zona contienen registros de recuros, que es la información que maneja el servidor dns acerca de la zona. Hay varios tipos de registros de recurso: soa,a,ns,mx,cname,ptr,... Como este articulo no pretende ser un manual de bind (se puede buscar el google y seguro que salen cientos), basta con decir que en este archivo se esta indicando lo siguiente (Entre paréntesis esta el tipo de registro que indica esta información):
  • que la dirección de correo del administrador de la zona es admin@trombotic.tic (SOA).
  • que esta zona la lleva un servidor dns llamado ns.trombotic.tic (NS) que realmente es un alias de servidor.trombotic.tic (CNAME).
  • que el dominio tiene un único servidor que recoge correo electrónico llamado servidor.trombotic.tic (MX).
  • que hay una máquina llamada servidor.trombotic.tic con direccion ip 192.168.1.200 (A).
  • que hay una máquina llamada router.trombotic.tic con direccion ip 192.168.1.1 (A).
  • que servidor.trombotic.tic tiene varios nombres (CNAME): ns.trombotic.tic, smtp.trombotic.tic, pop3.trombotic.tic,www.trombotic.tic y ftp.trombotic.tic.
Básicamente en esta red hay una única maquina que proporciona todos los servicios, que es servidor.trombotic.tic y otra que conecta nuestra red con Internet, que es router.trombotic.tic.

El contenido del archivo /var/named/1.168.192.in-addr.arpa.zone podría ser así:

@               IN      SOA ns.trombotic.tic admin.trombotic.tic (
1       ;serial
24h     ;refresh
1h      ;retry
7d      ;expire
1h      ;negative ttl
)

                IN      NS ns.trombotic.tic.

200             IN      PTR servidor.trombotic.tic.
1               IN      PTR router.trombotic.tic.


En este archivo de zona la información mas importante es:
  • que existe una maquina con dirección ip 192.168.1.200 que se llama servidor.trombotic.tic (PTR).
  • que existe una maquina con direccion ip 192.168.1.1 que se llama router.trombotic.tic (PTR).
Hay que tener en cuenta que en el registro de recurso sólo pone el último número de la dirección ip y que el propio servidor añade el nombre de la zona para poder obtener la dirección ip completa. Por ejemplo, en la linea que empieza por 200, hay que añadir al final 1.168.192.in-addr.arpa y de aquí se obtienen 200.1.168.192.in-addr.arpa. Se le quita el in-addr.arpa y se le da la vuelta para que quede la dirección 192.168.1.200.

Una vez configurado sólo es necesario arrancar el servidor dns con el comando:

service named start


Para resolver cualquier duda se puede utilizar los comentarios del artículo.

martes, 2 de noviembre de 2010

Configuración de la red en CentOS

Existen varias formas de configurar la red en CentOS.

La primera y más fácil es utilizar un servidor DHCP que exista en nuestra red local. Si se dispone de un router ADSL lo más seguro es que este activado el servidor DHCP para que cualquier ordenador pueda conseguir una direccion ip y navegar.
Si al instalar CentOS no se ha cambiado la configuración por defecto de la red, se utilizará el servidor DHCP para conseguir una dirección ip válida, la mascara de subred, el nombre de dominio, el DNS y la puerta de enlace.

En ocasiones hay que forzar al cliente DHCP para que renueve la dirección ip. Para liberar la dirección ip que nuestra maquina tiene asignada actualmente se ejecuta el comando dhclient -r. Una vez liberada la dirección ip se puede volver a solicitar otra con el comando dhclient.

La segunda es utilizar el comando system-config-network. De esta forma aparece en pantalla una interfaz basada en texto que permite configurar la red de forma sencilla.

Para configurar la dirección ip y puerta de enlace se selecciona "Edit Devices" con las teclas de dirección o cursores (las de las flechitas) y se pulsa la tecla "Enter".
Las interfaces (tarjetas de red) ethernet tienen nombres como eth0, eth1, eth2, ... dependiendo del numero de interfaces que tenga la máquina. En el ejemplo solo esta disponible una interfaz de red llamada eth0, se selecciona y se pulsa "Enter".
Si no se ha realizado ningún cambio en la configuración de la red durante la instalación, la interfaz obtendrá la configuración consultando a un servidor DHCP. Para poner un dirección estática , hay que seleccionar "Utilizar DHCP" con los cursores y pulsar la barra espaciadora para quitar el asterisco y que se permita introducir los datos en los otros campos. Si se desea volver a utilizar el DHCP, solo hay que poner el asterisco de nuevo en "Utilizar DHCP".
Una vez introducidos todos los campos, se selecciona "Ok" y se pulsa "Enter" para volver a la pantalla anterior.
Con la tecla tabulador se selecciona "Guardar" y automáticamente volvemos a la pantalla inicial.
Ahora, para configurar los DNS, se selecciona "Edit DNS configuration" y se pulsa "Enter".
Posiblemente la ventana que aparece mostrara los datos del dns obtenidos por el DHCP.
Utilizando las teclas de dirección se selecciona cada uno de los campos y se introduce los datos necesarios. cuando estén completados, se selecciona "Ok" y se vuelve automáticamente a la ventana inicial.
Con el tabulador se selecciona "Guardar y Cerrar" y se pulsa "Enter" para que la configuración tenga efecto. El comando system-config-network modifica los archivos relacionados con la configuración de la red, pero para que las interfaces carguen su nueva configuración hay que reiniciar el servicio de red ejecutando el comando service network restart.

Y por ultimo, y la forma más compleja, es editar directamente los archivos relacionados con la red. Aviso: Estos archivos tienen más opciones de las que se exponen aqui, pero las expuestas son suficientes para que la red funcione correctamente.
Por cada interfaz de red existe un archivo de configuración en el directorio "/etc/sysconfig/network-scripts/". Para la interfaz eth0 este archivo se llama "ifcfg-eth0".

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0c:29:c7:d3:5a
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.200
GATEWAY=192.168.69.1
TYPE=Ethernet


El contenido del archivo indica lo siguiente:
  • Las lineas que empiezan por # son comentarios y no afectan a la configuración.
  • DEVICE indica la interfaz a la que pertenece este archivo.
  • BOOTPROTO indica el protocolo que se utiliza para obtener la dirección ip. En este caso none quiere decir que se usa la configuración del archivo. Si pone dhcp se utiliza un servidor dhcp.
  • HWADDR indica la dirección mac de la interfaz de red.
  • ONBOOT indica que esta interfaz se tiene que activar o no cada vez que se arranque/reinicie el servicio de red. Si pone yes, se activa y si pone no, evidentemente no se activa.
  • NETMASK indica la mascara de subred.
  • IPADDR indica la dirección ip de la interfaz.
  • GATEWAY indica la puerta de enlace que se utilizara para llegar a otras redes (incluido Internet).
  • TYPE indica que la interfaz de red es ethernet.
En el archivo /etc/sysconfig/network se indican varias opciones de red.

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=servidor.trombotic.tic


El contenido del archivo indica lo siguiente:
  • NETWORKING indica que se activa el servicio de red ipv4 si pone yes y que no se activa si pone no.
  • NETWORKING_IPV6 indica que se activa el servicio de red ipv6 (nueva versión del protocolo ip que utiliza direcciones ip de 128 bits en vez de 32bit a parte de otras mejoras) si pone yes y que no se activa si pone no.
  • HOSTNAME indica el nombre de dominio de la máquina.
El archivo /etc/resolv.conf contiene información necesaria para el cliente DNS.

search trombotic.tic 

nameserver 192.168.1.1 
nameserver 192.168.1.2


El contenido del archivo indica lo siguiente:
  • search indica el dominio que se añadirá a los nombres de máquina que no sean nombres de dominio completamente cualificados (FQDN)
  • nameserver indica la dirección ip del servidor DNS. En el caso de haber varios servidores, aparece una linea por cada servidor.
Una vez editados los archivos, es necesario reiniciar el servicio de red.

jueves, 28 de octubre de 2010

Instalación rápida de CentOS en VMWare Player

El siguiente vídeo muestra como instalar de forma rápida la distribución de Linux CentOS 5.5. El vídeo esta hecho para utilizar sobre la máquina virtual creada en el artículo Preparar un máquina virtual para utilizar con CentOS.


Preparar un máquina virtual en VMWare Player para utilizar con CentOS

Para poder utilizar Linux sin el riesgo de estropear nuestro "perfecto" Windows vamos a utilizar VMWare Player para crear una maquina virtual sobre la que instalar la distribución Linux CentOS.

VMWare Player se puede descargar de la pagina oficial de VMWare  en Products. La instalación es sencilla y si estas intentando usar Linux seguro que eres capaz de instalarlo sin ayuda.

A partir de aquí solo tienes que seguir los pasos del vídeo para crear una máquina virtual para el CentOS.


martes, 27 de abril de 2010

Crear sistemas de archivos cifrados con Ubuntu

Existen varias formas de cifrar sistemas de archivos en Linux, de hecho en la siguiente url https://help.ubuntu.com/community/EncryptedFilesystems se pueden consultar guías para realizarlo en Ubuntu.

Como ejemplo vamos a utilizar una forma sin entrar en discusiones de si es la mejor o la peor.

Primero vamos a crear un archivo con datos aleatorios que será el que contenga el sistema de archivos y que cifraremos para que nadie pueda ver su contenido.

Para hacer la prueba vale con un archivo de 100MB.

sudo dd if=/dev/urandom of=almacen bs=1M count=100

Ahora asociamos un dispositivo de tipo loop con el archivo que contendrá el sistema de archivos cifrado. Hay que hacer esto porque vamos a tratar el archivo como un dispositivo de bloques (dispositivo loop + archivo = dispositivo de bloques). Esto se consigue con el comando losetup y como se va a cifrar hay que especificar el algoritmo de cifrado. En esta caso se va a usar Blowfish con clave de 2048 bits. Existe mas algoritmos: XOR, AES128, AES192, AES256, twofish128, twofish160, twofish192, twofish256, blowfish128, blowfish160, blowfish192, blowfish256, serpent128, serpent192, serpent256, mars128, mars192, mars256, rc6-128, rc6-192, rc6-256, tripleDES,...

sudo losetup -e blowfish2048 /dev/loop0 almacen

En este momento hay que introducir la contraseña que se usara para proteger la clave que se va a generar para cifrar los datos. Si se obtienen el siguiente error: "ioctl: LOOP_SET_STATUS: No existe el fichero ó directorio" es necesario instalar el modulo para el cifrado que se va a utilizar.

sudo apt-get install loop-aes-utils
sudo losetup -e blowfish2048 /dev/loop0 almacen

Ahora hay que crear el sistema de archivos (dar formato) dentro del archivo.

sudo mkfs -t ext3 /dev/loop0

Lo siguiente es crear un punto de montaje para el sistema de archivos encriptado y montarlo.

sudo mkdir /mnt/cifrado
sudo mount -t ext3 /dev/loop0 /mnt/cifrado

A partir de este instante todo lo que se guarde en /mnt/cifrado quedara cifrado e inaccesible si no se tiene la contraseña. Así que cuidado con perderla.

Para terminar, una vez que ya se ha terminado de usar el sistema de archivos, hay que desmontarlo y eliminar la asociación entre el dispositivo loop y el archivo que contiene el sistema de archivos.

sudo umount /mnt/cifrado
sudo losetup -d /dev/loop0

lunes, 26 de abril de 2010

Video Streaming P2P con Veetle

Veetle es una aplicación gratuita que permite ver o transmitir vídeo en streaming utilizando tecnología P2P. Es muy fácil de usar y solo es necesario bajarse un plugin para el navegador.

Entre sus características están:
  • Hacer streaming público o privado
  • Crear una programación.
  • Usar varios tipos de orígenes de datos: archivos, DVD, sintonizadoras de TV o webcam.

Los resultados son excelentes. En las pruebas que he realizado he tenido 975 clientes y solo ha consumido de media 400 kbps de subida.

Le veo muchas posibilidades. Puedes probarlo en http://veetle.com

Los números primos en la serie Numb3rs.

En este capitulo de Numb3rs se trata el hipotético caso de una persona que consigue un algoritmo matemático capaz de factorizar el producto de dos números primos grandes.

viernes, 23 de abril de 2010

¡Tranquilos!, tengo copia de seguridad.

Como siempre he dicho no hacer copias de seguridad de los datos importantes es de tontos, pero hacerla y no saber guardarla en lugar seguro también.

Tampoco digo que se use una caja fuerte, pero por lo menos no llevarla en la misma bolsa que los originales.

Este cartel lo encontré en una farola.


Y un posteriormente lo encontré en un muro. En esta foto se puede leer mejor.



Espero que recupere su portátil.

jueves, 22 de abril de 2010

Redirigir a distintas URLs en función del navegador usado.

A veces cuando entras con el navegador en una pagina web obtienes el resultado esperado, pero si lo haces con telnet o con un web spider te manda a otra web distinta. Esto es debido a que se ha configurado el servidor para permitir el acceso a personas y no a programas que descarguen la web completa.

El funcionamiento es sencillo. En Apache por ejemplo se utiliza el modulo rewrite para comprobar las cabeceras enviadas por el cliente. Si se trata de un navegador se deja pasar y sino se redirige a otra web.

En el manual de Apache se puede ver como utilizarlo: URL Rewriting Guide - Advanced topics

Pues si es fácil hacerlo, es más fácil saltárselo. Si lo que comprueba es la cabecera http User-Agent, lo único que hay que hacer es añadirla en el caso del telnet o decirle al web spider que use otra distinta.

Cuando usamos el telnet tendriamos que hacer lo siguiente:

telnet www.google.es 80
> GET / HTTP/1.1
> Host: www.google.es
> User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9
>

Y cuando usamos wget:

wget --header='Host: www.google.es' --header='User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9' www.google.es

Ver la dirección IP de los usuarios de facebook

Cuando un usuario de facebook escribe en tu muro, o te envía un mensaje, recibes automáticamente un email de notificación. En el código fuente del email hay una cabecera llamada X-Facebook que contiene la dirección IP del usuario codificada en Base64 (texto en color rojo).

X-Facebook: from zuckmail ([ODUuNjcuMTQyLjE0MQ==])
by www.facebook.com with HTTP (ZuckMail);

Conversor Base64: http://farhadi.ir/works/base64

Moraleja: No escribas en muros ajenos ni mandes mensajes a quien no conozcas.

IDOS: Indirect Denial Of Service

Básicamente se trata de un ataque de denegación de servicio que ataca a los activos alojados en servidores externos usados por el servidor víctima del ataque.

Pongamos un ejemplo: imaginemos que queremos atacar un sitio web que contiene enlaces a vídeos alojados en otro sitio web y que este sitio web tiene una opción que permite denunciar un vídeo y al denunciarlo se bloquea hasta que sea revisado; durante el periodo de revisión, el enlace del sitio víctima apuntará a un vídeo que no está disponible en el servidor donde está alojado. Si hacemos lo mismo con todos los vídeos...Pensarlo vosotros.

miércoles, 21 de abril de 2010

Instalación de una red social usando Elgg

Elgg es una plataforma de redes sociales open source que podemos utilizar para crear nuestra propia red social al estilo facebook, twiter o twenti.

Para instalarla necesitamos:
  • Apache con el modulo rewrite activado.
  • MySQL 5+.
  • PHP5.2+ como modulo de Apache y los módulos GD, JSON y Multibyte String.
Estos requisitos se pueden consultar en la página oficial de Elgg http://www.elgg.org. Igualmente el la página oficial se puede encontrar una guía de instalación y el enlace para la descarga, tanto en zip como en tarball (tar.gz).



A pesar de tener una guía paso a paso del proceso de instalación, dependiendo de la distribución Linux y del software instalado puede resultar mas o menos difícil conseguir que funcione.

Supongamos que disponemos de un Ubuntu 9.10 con Apache 2, MySQL y PHP5 instalados desde los repositorios de Ubuntu. Lo mas probable es que falte el modulo php5-gd, el resto de módulos php5 necesarios se instalan por defecto al instalar php5.

Lo primero que vamos a hacer es preparar Apache para instalar Elgg. En nuestro sistema el directorio de publicación por defecto es /var/www. En este directorio vamos a crear dos directorios, /var/www/elgg y /var/www/data. Al directorio /var/www/data le vamos a poner permisos 775 y el grupo www-data que es el grupo con el que se ejecuta Apache. En la configuración del servidor cambiamos la directiva DocumentRoot y Directory para usar el directorio /var/www/elgg .



Ahora vamos a configurar el servidor MySQL. Nos conectamos como root al servidor y creamos una base de datos llamada elgg (create database), creamos un usuario llamado elgg con password elgg (create user) y le damos permisos al usuario elgg sobre la base de datos elgg (grant).




Ahora entramos con el navegador a http://127.0.0.1/ para completar la instalación vía web. Introducimos los datos de la base de datos:
  • usuario: elgg
  • password: elgg
  • base de datos: elgg
  • servidor:localhost
Y guardamos. Como el servidor no puede escribir en el directorio /var/www/elgg/ hay que crear los archivos /var/www/elgg/engine/settings.php y /var/www/elgg/.htaccess manualmente copiando el contenido que aparece en la página web. Una vez creados, recargamos la página. En este punto aparecerá un error indicando lo siguiente: "/action/systemsettings/install was not found on this server".
Esto es por que se esta ignorando el archivo .htaccess o porque no esta habilitado el módulo rewrite en apache.



Como por defecto la configuración de apache ignora el archivo .htaccess es necesario modificarla para que con la directiva AllowOverride se permita al archivo .htaccess modificar la configuración. Mirando un poco el archivo se puede deducir que opciones tenemos que permitir, así que nada de poner AllowOverride All.



También hay que tener en cuenta que el archivo .htaccess hace referencia al modulo rewrite de Apache y por lo tanto hay que activarlo. Esto se hace creando un enlace simbólico en el directorio /etc/apache2/mods-enables que apunte al archivo /etc/apache2/mods-available/rewrite.load.




Y para finalizar volvemos al navegador y completamos la instalación siguiendo los pasos: rellenar los datos de la red social y crear el primer usuario, que también sera el administrador. Lo siguiente es iniciar sesión con el administrador y administrar la red social.


martes, 20 de abril de 2010

Introducción a la configuracion de Apache 2 en Ubuntu 9.10 (karmic)

Esta introducción de la configuración del servidor web apache es para aquellas personas que han usado apache desde el código fuente o desde distribuciones como RedHat, Fedora o CentOS y ahora se pasan a Ubuntu.

Cuando se instala el servidor web apache2 en Ubuntu 9.10 se utiliza como directorio de publicación /var/www y como directorio de configuración /etc/apache2.

Dentro del directorio de configuración podemos encontrar varios archivos, cosa extraña para aquellos habituados al httpd.conf de la instalación de apache desde el código fuente.

El archivo apache2.conf contiene la configuración proporcionada por Ubuntu y por lo general no es necesario tocarlo. Si se quieren hacer cambios en la configuración general del servidor se pueden hacer en el archivo httpd.conf que seguramente estará vació.

La configuración/instalación de los módulos se realiza mediante los directorios mods-enabled y mods-available. Para activar un modulo lo único que hay que hacer es crear dentro del directorio mods-enabled un enlace simbólico que apunte al archivo .load del directorio mods-available usando el mismo nombre.

Para modificar la configuración de los sitios hay que utilizar los directorios sites-enabled y sites-available. El sitio que viene definido por defecto es sites-enabled/000-default.