viernes, junio 26, 2009

Tomado de:
http://alejandrorosalgarcia.blogspot.com/2009/03/prueba.html

Añadir un PC VIRTUAL a nuestra red (1/2)

Ir a parte (2/2)

¿Quien no ha querido alguna vez añadir un ordenador más a la red de su casa? Idea que está muy bien pero como no tenemos dinero para comprar uno nuevo pues como que no podemos inventarnoslo.

....¿o si?

Hola, soy Arguiñano y hoy os voy a enseñar cómo crear un PC virtual en vuestra red y poder manejarlo como si fuera un ordenador independiente del que lo "hospeda".

Requisitos iniciales:
- PC hospedador
- Debian 5.0 Lenny
- Conexión a internet

Dado que este tutorial va orientado a servidores lo explicaremos todo bajo Debian 5 Y SIN entorno gráfico (no me seais mariquitas).

1º Actualizar repositorios y paquetes:

Para que las instalaciones se hagan bien lo suyo es que tengas acualizados los repositorios y paquetes de tu Debian. Suponemos que tienes los repositorios por defecto en tu /etc/apt/sources.list. Para actualizar ejecutamos como ROOT:
aptitude update
aptitude upgrade
aptitude dist-upgrade
2º Descargar la ultima version de VIRTUALBOX:

Para instalar Virtualbox vamos a su web oficial y descargamos su ultima version para Linux:
http://www.virtualbox.org/wiki/Linux_Downloads

Lo sé, podria daros el wget directamente para que os lo descarguéis pero el enlace directo en la web de virtualbox apunta a otro servidor y usando wget te descarga un archivo sin extensión y con un nombre mu feo asi que nada. Aparte no puedo adivinar si vais a usar plataforma i386 o AMD64 asi que descargar el que mejor os venga manualmente que tampoco cuesta tanto :p.

2º Instalar los programas necesarios
:

Tras descargar el archivo .deb a nuestra maquina y subirlo al servidor hospedador (usa scp mismo) procedemos a instalar VIRTUALBOX:

Desempaquetamos el .deb y lo instalamos:
dpkg -i virtualbox-2.1_2.1.4-42893_Debian_lenny_i386.deb
Instalamos el resto de paquetes necesarios:
aptitude install libqt4-network libqtcore4 libqtgui4 libsdl1.2debian libxcursor1 libxmu6 libxslt1.1 libxt6 psmisc
aptitude install bridge-utils
3º Añadir nuestro usuario al grupo vboxusers
adduser root vboxusers
usermod -aG vboxusers root
4º Configurar la tarjeta de red

Si no hemos configurado la red manualmente ni hemos tocado nada el fichero de configuración /etc/network/interfaces tendria que tener un aspecto talque este:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
Para que nuestro ordenador virtual sea independiente y tenga una IP propia dentro de nuestra red necesitamos crear en la maquina hospedadora una interfaz de red "virtual". De tal manera que editamos el fichero con vi o nano y le añadimos las siguientes lineas:
auto br0
iface br0 inet dhcp
bridge_ports eth0
Donde eth0 podrá ser eth1 o eth2 dependiendo del nº de tarjetas de red que tenga tu PC. En cualquier caso tiene que ser exactamente el mismo que el eth que has declarado arriba.

Guardamos el fichero y reiniciamos la tarjeta de red:
/etc/init.d/networking restart
OJO si al reiniciar obtenemos un error talque este:
SIOCSIFADDR: No such device
br0: ERROR while getting interface flags: No such device
br0: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up br0.
Puede ser por los siguientes motivos:
  1. Estas editando el fichero de configuración de red en la maquina virtual y no en la real hospedadora.
  2. Has escrito mal algún parametro del fichero de configuración de red
  3. (y mas probable) no has instalado el paquete que puse mas arriba llamado "bridge_utils".

...sigue en parte 2...
Ir a parte (2/2)
Ir a parte (1/2)

5º Creando la maquina virtual en el VIRTUALBOX


Ok. Ya tenemos el virtualbox instalado, pero eso es solo el programa que gestionará la/s maquinas virtuales que instalaremos en él. Nos falta crear las propias maquinas en si.

Las maquinas virtuales como las reales necesitan de unas piezas básicas para funcionar, a saber:
  • Nombre para identificarla
  • Tarjeta grafica
  • Tarjeta de sonido
  • Disco duro
  • Tarjeta de red
Habrá algunas cosas que nos las da Virtualbox automaticamente y otras que las tendremos que crear nosotros.


6º Poniendo nombre a la criatura


Como todo en esta vida nuestra maquina necesita tener un nombre que lo identifique para todo lo que hagamos. Si vamos a instalar por ejemplo una maquina Windows lo llamaremos WinXP (ojo las mayusculas y minusculas que es key sensitive)
VBoxManage createvm -name WinXP -register

7º Instalando el disco duro de la maquina


Los discos duros en la vida real hacen honor a su nombre y si te das un golpe con uno en la cabeza pues duele y bastante (niños, no probeis esto en casa). Puesto que la maquina que estamos creando aquí es virtual sus discos duros no van a ser menos, y en este caso viene identificado por un archivo .vdi.

Creamos por ejemplo un disco duro de 20Gb el cual llamaremos como nuestra maquina virtual (aunque no es obligatorio pero cuando tienes varios ayuda a identificar quien es quien). Como podeis ver el tamaño va en MB.

VBoxManage createhd -filename DiscoDuroWinXP.vdi -size 20000 -format VDI
Bien, ya tenemos creado el disco duro y lo damos de alta en el Virtualbox para que sepa que ese archivo existe y podamos gestionarlo.
VBoxManage registerimage disk DiscoDuroWinXP.vdi -type normal
Una vez hecho esto ya tenemos el disco duro flamante y maravilloso pero no esta conectado a nadie ni a nada. Para "conectarlo" a nuestro windows xp virtual hacemos:
VBoxManage modifyvm WinXP -hda DiscoDuroWinXP.vdi

8º Instalando memoria RAM


OJO. Sabed que la RAM que le asigneis a las maquinas virtuales las va a coger de la memoria RAM real de la maquina hospedadora. Esto es, si teneis 1Gb de RAM real en la maquina hospedadora y asignais 512Mb a la virtual, cuando la enciendas ésta le va a pegar un bocao a la hospedadora quitandole los 512Mb que le has prometido. Asi que cuidado con esto y haced las cosas bien y recordad que el sistema operativo de la maquina hospedadora (Debian 5 Lenny) necesita algo de RAM.

En nuestro ejemplo le daremos 512Mb de RAM a nuestro XP virtual:
VBoxManage modifyvm WinXP -memory 512

9º Instalando unidad CD-ROM


Nombre...disco duro... RAM... ¿necesitare meter el CD-ROM de Windows XP para poderlo instalar, no? ¿como va eso?

Para que sea mas comodo, ignoraremos el modo de pasarela con la unidad CD-ROM real de la maquina y trabajaremos con imagenes de CD. Si no sabes lo que es una imagen de CD ni como crearla SAN GOOGLE puede ayudarte. Vuelve aquí cuando lo sepas ;).
Una vez tenemos nuestro archivo de imagen (que ya sabes lo que es) en la maquina hospedadora tenemos que guardarlo en el directorio raiz del Virtualbox /root/.Virtualbox/ En nuestro ejemplo el archivo se llamará WinXP.iso.

"Introducimos" el CD en el lector virtual de nuestra maquina virtual:
VBoxManage modifyvm WinXP -dvd WinXP.iso

10º Instalando la tarjeta de red


Al inicio de este tutorial os prometia que ibais a tener una maquina virtual completamente independiente de la hospedadora y con IP propia en vuestra red como si fuera otra maquina mas.
OJO Si ves otros tutoriales en internet que no son tan molones como este donde se usa el comando VBoxAddIF e intentas ejecutarlo y ves que ni existe, o te da error es porque en las ultimas versiones de Virtualbox han eliminado este comando porque estaba obsoleto (y era un coñazo, añado).

Para configurar la tarjeta virtual escribimos:
VBoxManage modifyvm WinXP -nic1 hostif -cableconnected1 on -hostifdev1 br0
11º Iniciando la maquina

Ya todo está en su sitio y bien conectado. Encendemos la maquina virtual asi:
VBoxManage startvm winxp -type vrdp

12º Conectandole un monitor a la maquina

Vale ya está encendida pero.... ¿como se lo que sale por la pantalla?
Una utilidad muy buena para "ver" maquinas remotamente es rdesktop. El cual necesita para conectarse una IP y un puerto. El puerto VRDP.
¿en? ¿puerto VRD-que? ¿eso que e lo que eh?
Virtualbox cuando levantas la maquina virtual te abre un puerto para conectarte por terminal remoto, el puerto lo asigna virtualbox automaticamente si tu no le has especificado uno en concreto. Para decirle a virtualbox el puerto que queremos usar escribimos:
VBoxManage modifyvm WinXP -vrdpport 3369
He seleccionado ese porque me apetece. Ahora ya sabemos el puerto al que nos tenemos que conectar y lo hacemos escribiendo en una maquina Linux con entorno gráfico (cambia las x por numeros de la IP).
rdesktop -a 16 x.x.x.x:3369
Lo cual nos abrirá una pantalla con lo que devuelve el "monitor" de la maquina virtual.

"Oye que el paso anterior no me da la gana de hacerlo y no sé que puerto tiene mi maquina virtual".
Para saberlo nos vamos a la maquina servidora y arrancamos nuestra maquina virtual de la que queremos saber el puerto y le hacemos un escaneo de puertos con nmap:
nmap -p1-65000 localhost
Lo que nos devolverá una pantalla asi:
Starting Nmap 4.62 ( http://nmap.org ) at 2009-03-16 16:07 CET
Interesting ports on localhost (127.0.0.1):
Not shown: 64995 closed ports

PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
3369/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 1.972 seconds
En este caso por descarte sabemos que nuestra maquina en realidad tiene abierto el puerto 3369.

No hay comentarios: