jueves, 6 de diciembre de 2007

Como hacer un puente (bridge) para máquinas virtuales VirtualBox


¿Qué es VirtualBox?


VirtualBox es un programa que permite crear máquinas virtuales con todo lo necesario para funcionar, es decir, simula un disco duro, memoria RAM, dispositivos de red, Video, Audio...para que puedas instalar sobre ella cualquier sistema operativo (Windows, Linux, BSD...).


Por supuesto todos los recursos (RAM,Disco Duro...) que utiliza los coge de tu ordenador real (anfitrión en la jerga VirtualBox) con lo cual deberá tener una máquina que pueda mover al menos los requisitos de los sistemas operativos del Anfitrión y de la máquina virtual (Huésped en la jerga de VirtualBox).


¿Porqué hacer un puente de red?


En un principio una máquina virtual puede tener acceso a internet configurando la red como acceso NAT. Pero esto es en muchos casos insuficiente. Al usar el modo NAT de red en una máquina virtual hacemos que no se pueda comunicar por red con la máquina anfitrión ni con otras máquinas en la red anfitrión.


Solamente se comunica con otras máquinas huésped y esto para hacer pruebas de nuevas funcionalidades es un inconveniente grande ya que no podríamos probar la nueva funcionalidad con el entorno que vamos a usar.


Sin embargo haciendo un puente de red integraríamos la máquina virtual en la red “real”, en el entorno en el que va a ser usado, de modo que todas las máquinas de la red se ven entre sí.


Basta de cháchara y empecemos de una vez, entiendo que VirtualBox ya ha sido instalado y está funcionando correctamente:


Lo primero de todo hay que instalar las uml-utilities que nos permitirán crear interfaces de red virtuales (conocidas normalmente como tap) y también instalar bridge-utils que permite hacer puente de red entre interfaces (tarjetas de red):


apt-get install uml-utilities bridge-utils


Acto seguido añadimos al usuario que va a usarse al grupo uml-net:


gpasswd -a adri uml-net


Copiamos la configuración antigua de red por si las moscas:


cp /etc/network/interfaces /etc/network/interfaces.old


Editamos el fichero de configuración de red:


vi /etc/network/interfaces


Y añadimos lo siguiente al final del archivo:


auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario


Levantamos la interfaz tap0 que acabamos de crear:


ifup tap0


Creamos el puente o bridge:


brctl addbr br0


Y metemos en el puente a las interfaces que queremos se vean entre sí:


brctl addif br0 eth2


brctl addif br0 tap0


Ponemos como pasarela (gateway) la ip de nuestro router para el dispositivo puente y así tener comunicación con el exterior.


route add default gw 192.168.1.1 dev br0


Configuramos la interfaz de red virtual con la ip 0.0.0.0 , esto es muy importante que tenga esa ip y no otra. Si haces luego un ipconfig verás que no aparece ip aunque tu ya has puesto la 0.0.0.0


ifconfig tap0 0.0.0.0 up


Levantamos el puente:


ifup br0


Editamos el fichero de configuración de red para añadir las líneas en amarillo:


vi /etc/netwok/interfaces


auto br0
iface br0 inet dhcp
bridge_ports all tap0


Comentamos el resto de interfaces eth, de tal manera que tan solo queden las interfaces loopback (lo), los tap (en este caso tap0 solamente) y la interfaz bridge br0. Se pueden añadir más interfaces de red (tap1, tap2, tap3...)

Reiniciamos la red:


/etc/init.d/networking restart


Cambiamos la permisos de /dev/net/tun a lectura y escritura para todo el mundo:

chmod 666 /dev/net/tun


Configuramos cada máquina virtual en el apartado red (recuerda que no debe haber dos máquinas con misma dirección MAC así que pulsa al botón generar un par de veces):


Conectar a: Interface Anfitrión

Marcamos: Cable conectado

Nombre de la interface: tap0




That's All folks!!



P.D: A continuación pongo como lo tengo en mi ordenador y la salida de algunos comandos por si te pierdes. En mi caso hay un tap1 que realmente no uso pero está para el que necesite más de un interfaz virtual:


Fichero /etc/network/interfaces


# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).


# The loopback network interface

auto lo

iface lo inet loopback


# The primary network interface

allow-hotplug eth2

#auto eth2

#iface eth2 inet dhcp


#Interfaz virtual para VirtualBox

auto tap0

iface tap0 inet manual

up ifconfig $IFACE 0.0.0.0 up

down ifconfig $IFACE don

tunctl_user adri


auto tap1

iface tap1 inet manual

up ifconfig $IFACE 0.0.0.0 up

down ifconfig $IFACE down

tucntl_user adri


auto br0

iface br0 inet dhcp

bridge_ports all tap0



Salida del comando ifconfig (como puede verse paso olímpicamente del tap1):



br0 Link encap:Ethernet HWaddr 00:11:09:DD:CC:99

inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::211:9ff:fedd:cc99/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:16031 errors:0 dropped:0 overruns:0 frame:0

TX packets:17260 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:4906103 (4.6 MiB) TX bytes:8761298 (8.3 MiB)


eth2 Link encap:Ethernet HWaddr 00:11:09:DD:CC:99

inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::211:9ff:fedd:cc99/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:28191 errors:0 dropped:0 overruns:0 frame:0

TX packets:31426 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:10872769 (10.3 MiB) TX bytes:15032623 (14.3 MiB)

Interrupt:21 Base address:0x2000


lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:711 errors:0 dropped:0 overruns:0 frame:0

TX packets:711 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:128514 (125.5 KiB) TX bytes:128514 (125.5 KiB)


tap0 Link encap:Ethernet HWaddr 00:FF:2B:DC:86:71

inet6 addr: fe80::2ff:2bff:fedc:8671/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:166 errors:0 dropped:0 overruns:0 frame:0

TX packets:65 errors:0 dropped:265 overruns:0 carrier:0

collisions:0 txqueuelen:500

RX bytes:19316 (18.8 KiB) TX bytes:33168 (32.3 KiB)


Salida del comando route (Los destinos default tardan siempre un poco más en salir):


Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.0 * 255.255.255.0 U 0 0 0 eth2

192.168.1.0 * 255.255.255.0 U 0 0 0 br0

default 192.168.1.1 0.0.0.0 UG 0 0 0 br0

default 192.168.1.1 0.0.0.0 UG 0 0 0 eth2

sábado, 1 de diciembre de 2007

Configurar un vhost para apache2:

¿Qué es un vhost?

Un vhost o "VirtualHost" son archivos de texto plano que le dicen a apache donde tiene que buscar una determinada página cuando se la piden. De este modo podemos alojar diversas páginas web con dominios distintos en un mismo servidor.


Desde aquí vamos a hacer un vhost muyyy simple que solo cumpla con su cometido, mostrar la página sin más dando por hecho que ya está instalado apache2 en tu Debian.

Ejemplo de la página web www.pepito.org:

Requisitos previos:

  • Tener instalado apache
  • Tener una página web index.html con algo que mostrar en /var/www/pepito

Creamos un fichero de texto /etc/apache2/sites-avalaible/ con el nombre pepito:

vi /etc/apache2/sites-avalaible

Y escribimos dentro del fichero:


ServerName www.pepito.org
DocumentRoot /var/www/pepito

ServerAlias pepito.org


Guardamos cambios y salimos a la shell.

Cambiamos al directorio /etc/apache2/sites-enabled

cd /etc/apache2/sites-enabled

Y hacemos un enlace simbólico al vhost que acabamos de crear:

ln -s /etc/apache2/sites-avalaible/

Si no tenemos un DNS que apunte con la dirección www.pepito.org a nuestro ordenador podemos engañarlo editando el fichero /etc/hosts y al final de la línea correspondiente a la ip 127.0.0.1(si no la hay la podemos crear sin problemas) añadimos un espacio y el nombre de la pagina. Quedaría algo así:

127.0.0.1 www.pepito.org pepito.org

Reiniciamos apache para que los cambios tengan efecto

/etc/init.d/apache2 restart

Prueba ahora a poner en tu Firefox/Iceweasel www.pepito.org y ¡voila! verás tu página y lo que es mejor, podrás poner muchas páginas más con el nombre que se te ocurra.

Ahora que tenemos un simple VirtualHost funcionando vamos a añadirle un pequeño detalla pero que puede a llegar a ser útil: Contraseña

De esta manera podemos hacer que solo puedan visitar la página aquellos que conozcan el usuario y contraseña adecuados. Para ello añadimos en /etc/apache2/sites-avalaible/pepito justo debajo de ServerAlias el siguiente texto:


AuthName "Pon lo que quieras, es como un título..."
AuthType Basic
AuthUserFile "/etc/apache2/users/pepito.pwd"
require user pepon admin



Guardamos cambios y salimos.

A continuación creamos la carpeta /etc/apache2/users:

mkdir /etc/apache2/users


Y nos movemos hasta ella:

cd /etc/apache2/users

Vamos a crear el fichero que albergará las contraseñas encriptadas con el comando htpasswd.

htpasswd -c pepito.pwd pepon

Pedirá que escribamos la contraseña dos veces.

Reinicia apache para que los cambos tengan efecto:

/etc/init.d/apache2 restart

A partir de ahora la primera vez por sesión que queramos entrar a la página nos pedira usuario y contraseña.

Si queremos añadir nuevos usuarios tan solo hay que añadir separados por espacio los nombres de usuario que queramos añadir en la fila require user tal y como he hecho antes para el usuario admin y a continuación ejecutar el comando htpasswd pepito.pwd admin (importante no poner el -c ya que el fichero existe) en el directorio /etc/apache2/users.

Por último, si queremos tener un control de que le pueda pasar a nuestra página podemos poner uno o varios log como estos justo debajo de :

ErrorLog /var/log/apache2/pepito.org.log
TransferLog /var/log/apache2/pepito.org.log
ServerAdmin unacuenta@tudominio.com

Y de nuevo reiniciamos Apache para surtir efecto:

/etc/init.d/apache2 restart

sábado, 24 de noviembre de 2007

Nueva cara para DeSmAdRi

Está bien, lo admito, el anterior diseño era sosísimo y poco cuidado "asinque" me he puesto a mejorarlo un poquito (el título me lo he currado mucho buscando imágenes de uso publico e incluso he retocado y maquetado las imagenes con el GIMP. Espero que os guste este DeSmAdRi 2.0.

domingo, 18 de noviembre de 2007

Ropa friki volumen II

Existen muchas páginas por internet donde comprar armas y armaduras antigua para hacer reconstrucción histórica pero pocas donde comprar la vestimenta de tela. A mi me gusta especialmente la tunica griega y la romana y donde más claro lo he visto ha sido en www.museumreplicas.com.

Me ha gustado mucho ver que tienen un poco de todo, desde el "traje" (por decirlo de alguna manera) de los espartanos de 300 (el taparrabos es idéntico, perfecto para el próximo orgullo gay), pasando por trajes de épocas hasta ver el casco de Magneto.

No pongo foto porque no sé si podría por temas de copyright así que echarle un vistazo que merece la pena.

Ropa friki Volumen I


Hace tiempo que tengo un pantalón "japo" nuevo y de paso otra vez ebay me acerca el lejano oriente comprándome una botas jikatabi de goma para los días que llueva salvando así el inconveniente que tienen las normales de algodón con la lluvia.

Los pantalones bombachos son los que usan los obreros japoneses y los jikatabi de goma también (de hecho la forma de los pantalones está hecha aposta para llevar con jikatabis).

Pero aquí no acaba la cosa...Atención a ropafrki volumen II :).

lunes, 12 de noviembre de 2007

Y porqué no te callas...

Jamas creí que vería al rey tan enfadado pero es que Chavez es demasiado impresentable e insoportable.

Por otro lado, como a mucha gente, me ha gustado la brillante lección de respeto que Zapatero ha dado al señor Chavez.

Dentro video:




P.D: A ver cuanto tardan en aparecer el "politono callas" y demás si es que no se me han adelantado ya...

martes, 30 de octubre de 2007

El cómico suicida

Gracias a mi nuevo compañero de trabajo Jose he descubierto a "El cómico suicida". La verdad es que me sonaba de haber oido ese nombre pero no sabia que era de este perturbado que va a eventos o sitios a armar bulla protegido por la presencia de la cámara de TV que va con él.

El video que pongo a continuación es de su actuación en una "Herriko-Taberna" o como se ponga de esas y una discoteca con mucho "jarrai" en su interior. Dentro video: