Xen

16
LINUCA - Asociación Usuarios GNU/Linux de Cantabria Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail. (3773 lecturas) Por PEDRO LUIS GARCIA , clipse (http://delpuerto.com) Creado el 25/09/2006 15:39 modificado el 25/09/2006 15:39 Varios servicios, varios dominios, dominios con los mismos servicios, dominios con diferentes servicios ... y todo ello en la misma maquina. Podemos añadir mas maquinas fisicas , pero que ocurre, mas mantenimiento, mas consumo electrico y mas ruido (1) , en general, mas gastos y mas trabajo Ahora, como podemos tener varias maquinas sobre una? , apilandolas? , NO! XD, virtualizandolas. Haremos que varias maquinas virtuales se situen sobre una maquina fisica. "Una maquina para gobernarlas a todas ..." XD < Contenido: Configurando nuestra maquina, preparando fuentes e instalando. El comienzo de la instalación Documentación inicial para Xen LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y w $LOGOIMAGE 1/16

description

Hanbook for Xen

Transcript of Xen

Page 1: Xen

LINUCA - Asociación Usuarios GNU/Linux de Cantabria

Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM,firewall con shorewall, y servicios de web, mail y webmail. (3773 lecturas) Por PEDRO LUIS GARCIA , clipse (http://delpuerto.com)Creado el 25/09/2006 15:39 modificado el 25/09/2006 15:39

Varios servicios, varios dominios, dominios con los mismos servicios, dominios con diferentesservicios ... y todo ello en la misma maquina. Podemos añadir mas maquinas fisicas , pero queocurre, mas mantenimiento, mas consumo electrico y mas ruido(1), en general, mas gastos y mastrabajo

Ahora, como podemos tener varias maquinas sobre una? , apilandolas? , NO! XD, virtualizandolas.Haremos que varias maquinas virtuales se situen sobre una maquina fisica."Una maquina para gobernarlas a todas ..." XD

<

Contenido:

Configurando nuestra maquina, preparando fuentes e instalando.

El comienzo de la instalación

Documentación inicial para Xen

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

1/16

Page 2: Xen

Comenzamos con la instalación

Obtención de las fuentes de Xen

Configuración para la compilación

Configuración del kernel de forma especifica

La instalación del sistema Xen

Modificaciones iniciales para el sistema

Maquina Xen iniciada, creación de domUs

Reiniciamos nuestra maquina con Xen

Creación de volumenes. LVM

Uso de las xen-tools

Creación de una copia xen de base

Delegación de interfaces pci de dom0 a domU. pcibackend

Arrancamos nuestro domU

Servicios en los domU, fin de instalación

Firewall iptables con Shorewall

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

2/16

Page 3: Xen

Instalación de shorewall

Instalación de maquinas DomU y sus servicios

Posibles problemas y sus soluciones.

Finalizando

El Comienzo:

Con maquinas virtuales somos mucho mas independientes del sistema. Dependemos de la base exclusivamente ypodemos reaccionar mas rapido para mantener un sistema funcionando ademas de las caracteristicas propias de xencomo veremos mas adelante.

Pues eso , no vamos a entrar en comparaciones(2) sobre cual de los sistemas disponibles para virtualización es mejor,pero a grandes rasgos, con xen podemos administrar las maquinas virtuales y gestionarlas facil y eficazmente, podemosmover en caliente las maquinas virtuales sin pararlas a otros sistemas ( :P ) , un pete del kernel de una maquina noafecta a las otras y podemos instalar en alguna algun bsd e incluso windows ( :s) . Ademas, tenemos documentaciónde sobra en internet como para embarcarnos en semejante azaña sin volvernos locos.

Como primer punto, suponemos nuestra maquina libre de todo mal y SO. Vamos a instalarlo sobre una debian en unAMD Athlon a 1200 con 500 Mb Ram. Veremos si se queda o no corto con la ram para los servicios que vamos autilizar (seguro que limamos mucho y se queda corto) para ajustarlo mas podemos ver los requerimientos de memoria ydisco que tienen las diferentes aplicaciones que vamos a correr en cada maquina a lo que vamos a tener que sumar elconsumo del propio S.O. Como tenemos la configuración organizada con volumenes y xen nos permite asignar mas omenos memoria a cada maquina, no tenemos problemas de configuración una vez completada la instalación. Elprincipal tope que tenemos es el soporte fisico.

Tras la creación del sistema veremos como generar los diferentes dominios para crear todo el conjunto, nuestraintención es crear un servidor completo con los servicios importantes separados por maquinas, esto es, vamos aconfigurar un servidor web con apache en una maquina, un servidor postfix en otra , otra maquina con apache y unwebmail para acceso de usuarios por imap y disco duro virtual, un firewall y una maquina para que pueda utilizar elusuario para temas varios, luego, para la creación de mas maquinas, el principal tope es nuestro soporte fisico y susrecursos.

Asi tenemos varias maquinas y nuestro deseo es que el firewall esté situado dentro de uno de los sistemas virtuales,este decide que pasa y a quien. Luego tendremos un apache para las paginas web en una maquina, otra maquina conapache y un webmail conectado por imap al postfix que tenemos en otra maquina ademas de una maquina de usuario,que tendrá acceso a las otras dos y a internet. Según la necesidad, podemos configurar el firewall con dos interfacesy una de ellas a la lan con una dmz en la otra.

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

3/16

Page 4: Xen

Hemos nombrado a las maquinas de una forma peculiar. Como el grupo linuca.org pertenece a Cantabria se haorganizado una especie de jerarquia en función de seres mitológicos de la zona.http://www.terra.es/personal/l.agua.l/mitologia1.htm(3)

AsÃ−, nombramos a la Anjana (ada)como protectora -> firewall, el arquetu , duende que de vez en cuando da cosas, seencarga del apache, el trasgu se lo dejamos al postfix, el trastolillo a la maquina de usuario, el trenti al webmail y el reylantarón a la maquina base principal.

Como veremos a continuación, no nos hemos inventado nada. Hay suficiente documentación en la red como paracompletar todas las opciónes que nos den problemas en nuestra maquina y el S.O. que seleccionemos. Siempre sepueden hacer cambios y personalizar tamaños, memorias, y configuraciónes de la situación de las maquinas y elfirewall. Esta configuración ha sido probada tal cual aparece documentado. Si se necesita mas información se puedetomar como referencia los documentos y faqs de cada aplicación y sus ejemplos.

Documentación inicial para xen:

Documentación variada y respuestas a preguntas se pueden obtener ademas de en buscadores,aqui:http://wiki.xensource.com/xenwiki/XenFaq(4) y aqui el manual de usuario para XEN 3.0:http://www.cl.cam.ac.uk/Research/SRG/netos/xen/readmes/user/user.html.(5)

(5)

Comenzamos con la instalación:

Vamos a hacerlo sobre una debian. Instalamos una debian basica con un kernel 2.6. (cualquier netinstall está bien) yla actualizamos. Para este documento la hemos puesto en testing aunque lo mas recomendable para producción estenerlo en estable es posible que no tengais disponible el paquete 3.X de shorewall . Debemos tener grub como gestorde arranque para facilitar las cosas.

Xen funciona con una base y unos servidores virtuales. La base se denomina dom0 y los servidores domU.

vamos a necesitar :Como aparece en el documento de prerequisitos (y algunos mas que no aparecen),

apt-get install iproute bridge-utils gcc binutils make zlib1g-dev python-dev tetex-extra bzip2 patch ssh elinksinitramfs-tools xen-tools ssh ethtool

Ahora, podemos hacer la instalación de xen desde paquetes, aunque depende de la distro que tengamos, en estedocumento la vamos hacer desde las fuentes.

Obtenemos las fuentes de xen:

Descargamos las fuentes de xen desde www.xensources.org. (no es el paquete _install_ es el otro :) )Desempaquetamos lo que hemos descargado.

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

4/16

Page 5: Xen

Tenemos la opción de utilizar kernels diferentes para cada cosa, esto es, podemos crear un kernel con todo el soportepara el hardware -> xen0 en la base de xen, que coincide con la maquina en la que estamos trabajando con el debianbasico o dom0 .... y luego otro kernel mas basico xenU para las maquinas virtuales o domU.

Si solo queremos un kernel, basta con salterse el paso siguiente y realizar directamente el make world, (el consumo delos domU se incrementará) pero nosotros vamos a modificar los kernel y crearemos uno para dom0 y otro para losdomU.

Añadimos configuración para kernels diferentes:

Editamos entonces el Makefile y en la linea del principio donde aparece el kernel, la modificamos y añadimos:KERNELS ?= linux-2.6-xen0 linux-2.6-xenU

que son los kernel para la dom0 y la domU respectivamente.

Vamos a hacer un :

make world

de esta manera, tras un rato, nos construye xen y sus herramientas ademas de un kernel (o dos) 2.6 con los patch de xenpreparados.

Configurar de forma especifica los kernel:

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

5/16

Page 6: Xen

Para configurar las opciones especificas de cada kernel, basta con entrar en su directorio *2.6*xen0 o *xenU yconfigurarlo de la siguiente manera:

De forma diferente a como aparece en los documentos, para reconfigurar el kernel no nos funcionará segun el punto2.4.3 del manual. Debemos entonces hacer lo siguiente en función de nuestra arquitectura segun el listado:

domo0:/home/pedrol/xen-3.0.2-2# ls linux-2.6.16-xen0/arch/alpha cris i386 m68k parisc s390 sparc v850arm frv ia64 m68knommu powerpc sh sparc64 x86_64arm26 h8300 m32r mips ppc sh64 um xtensa

en este caso seleccionamos i386 con lo siguiente :export ARCH=i386cd linux2.6.16-xen0 #o xenUmake menuconfig #configuramos el kernel segun nuestras necesidades para el dom0 y domU

Para el kernel de dom0 o el kernel que lleve la carga de red y firewall, debemos añadir todo los que necesitemos parael firewall, iptables, nat .... , aunque siempre podemos recompilarlo a posteriori y recargarlo para todas las maquinas.

Nota-> si uno de los domU va a tener acceso a hardware como es el caso del firewall anjana, el kernel debe tener laposibilidad de manejarlo. El kenel preparado para los domU convencionales no lo va a soportar y nos podemosencontrar con que un lspci produce :pcilib cannot open /proc/bus/pciEsto se debe a la falta de soporte hardware de un kernel convencional para domU. Nosotros vamos a utilizar el mismokernel de dom0 para anjana y los kernel de domU para el resto de las maquinas aunque una opción mas correctaserÃ−a tener un kernel especifico para anjana. (configurado mas adelante)

añadimos los modulos de backend del menu xen del kernel en los dos kernel para la opción de delegar la pci en unode los domU como veremos mas adelante.

en principio, podemos apreciar que xenU no tiene practicamente nada de soporte de hardware porque se sostiene sobrexen0 que si lo tiene.

Instalamos el sistema:

ahora instalamos todo el sistema desde el directorio en donde hemos desempaquetado las fuentes con :

make install

verificamos que tenemos xen0 y xenU como kernel en /boot y pasamos a configurar grub (no entraremos a detalle en laconfiguración de grub)

Diversas modificaciónes para el arrnque � grub, initrd, librerias tls:

modificamos el archivo /boot/grub/menu.lst y añadimos las siguientes lineas al inicio de las opciones de arranque

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

6/16

Page 7: Xen

disponibles :title Xen 3.0 / XenLinux 2.6kernel /xen-3.0.gz dom0_mem=262144module /vmlinuz-2.6-xen0 root=/dev/sda3 ro console=tty0dom0_mem es la memoria en kb que le asignamos a la base. Por ahora vamos a dejar este valor (no tenemos muchamemoria disponible!!). Seleccionamos la partición necesaria para root

para el xenU vamos a necesitar initrd para la carga inicial en ramdisk de los modulos para este kernel (en el caso devarios kernel diferentes, varios initrd) asi que utilizamos mkinitramfs del initramfs-tools porque el mkinitrd y el yairdnos ha dado problemas por el kernel.

mkinitramfs -o /boot/initrd.img-2.6.16-xenU /boot/2.6.16-xenU

Ahora la documentación nos sugiere que deshabilitemos las librerias TLS por un problema de uso de segmentaciónque provoca la ralentización del sistema. pues lo hacemos sin rechistar con:

mv /lib/tls /lib/tls.disabled

Reiniciamos la máquina con XEN:

Ahora ha llegado el momento de que arranquemos con Xen 3.0. Rebotamos la maquina.reboot

Tras un arranque del kernel con nuestro 2.6.16 parcheado en dom0 aun no tenemos funcionando el demonio de xen(aunque podemos hacer que arranque de forma automatica). Para ello, ejecutamos:xend start

Creamos el primer domU, creación de volumenes con LVM:

En este punto vamos a crear nuestro primer domU. Este dominio se va a dedicar de la seguridad con un iptables. Lamaquina no va a ser muy grande ni necesitará muchos recursos. La instalaremos de nuevo en debian y aunque hayvarios metodos para hacerlo, vamos a elegir el mas sencillo para nuestra debian.

Tenemos la opción de asignar a cada maquina una particion fisica o generar lo que se llama file-backend (imagenesdentro de directorios de una particion donde se pueden generar problemas y caidas con mucha escritura). Nosotrosutilizaremos LVM

Para crear un volumen LVM (mas info aqui(6) y en linuca(7)) debemos tener una partición y un kernel que lo soporten,para ello, con cfdiskcreamos la partición como Linux LVM.Instalamos lvm10Vamos a utilizar una sola partición del segundo disco para esta labor.

apt-get install lvm10

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

7/16

Page 8: Xen

inicializamos la partición

pvcreate /dev/sdb1

creamos un grupo de volumen llamado vg

vgcreate vg /dev/sdb1

en este punto podemos cuntinuar generando los volumenes y copiando los datos de nuestra partición debian base a lanueva montandola y copiandolo todo o instalar en ella una debian desde 0, lo mejor seria tener esto automatizado y yalo ha hecho alguien por nosotros como en el siguiente punto con la xen-tools:

si decidimos hacerlo a mano sin xen-tools podemos crear un volumen logico llamado anjanavml en vglvcreate -L2GB -n anjanavlm vgle damos el sistema de ficheros ext3mkfs -t ext3 /dev/vg/anjanavlmy ahora nos quedarÃ−a montarlo y copiar todo debian base a ese volumen.

Uso de las xen-tools:

Lo haremos entonces con las xen-tools

Las xen-tools nos permiten crear nuevas maquinas de forma sencilla con unos scripts y si utilizan dbootstrap yasabemos por donde vamos ademas de que podemos usarlo para copiar una instalación anterior en otra nueva. Novamos a crear particiones dentro de esas imagenes como si de una maquina normal se tratara porque no tenemos lamisma necesidad que una maquina con un solo SO y podemos crear backups constantemente y poner en marcha lasmaquinas muy rapidamente con los backups restablecidos.

Las xen-tools permiten trabajar con debian, ubuntu y centos.Xen-tools tienen un archivo de configuracion /etc/xen-tools/xen-tools.conf que nos permite dejar preconfiguradosciertos parametros para no tener que pasar argumentos a los scripts y facilitar las cosas.

Entre otras opciones disponibles (el manual es completo) , tenemos:xen-create-image -->

--cache cachea los .deb en la maquina al usar --debootstrap --fs Especifica el sistema de ficheros a utilizar, en nuestro caso ext3 --image Especifica como crear las imagenes, si al completo full o en parte de la particion sparse --kernel La dirección del kernel de domU que creamos en los primeros pasos --memory La memoria de que va a disponer la maquina --passwd Que solicite el password de root para la maquina en el momento de creación --size Tamaño del disco --swap Tamaño de la swap --copy Instala la nueva imagen copiada de otro directorio --dist Especifica la distribución a instalar (nosotros, sarge) --debootstrap Para utilizar debootstrap si usamos --dist. --tar Obtiene las imagenes de un archivo previamente empaquetado --dhcp obtiene la ip por dhcp --gateway define el gateway --ip define la ip --netmask define la mascara de red --lvm nombre del destino --hostname el nombre de la maquina

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

8/16

Page 9: Xen

--copy copia la imagen de un directorio

Ahora completamos según nuestras necesidades::

xen-create-image -lvm=vg --debootstrap --size=1000MB --memory=32MB --swap=128MB --fs=ext3 --dist=sarge --ip=192.168.0.51 --netmask 255.255.255.0 --gateway=192.168.0.111 --hostname=anjana --passwd--kernel=/boot/vmlinuz-2.6.16-xenU --initrd=/boot/initrd.img-2.6.16-xenU --cache

para actualizar y personalizar esta maquina podemos montar la imagen con :

mount -o loop /dev/vg/anjana-disk /mnt

y a continuación un :

chroot /mnt

aqui podemos realizar cambios sin arrancar la maquina con xen. podemos hacer un apt-setup y actualizarposteriormente los paquetes e instalar los que nos hagan falta.

Si necesitamos modificar la memoria, la ip de la tarjeta o el kernel que va a utilizar, podemos modificarlo en/etc/xen/nombremaquina.

Como vamos a necesitar mas maquinas y la base de debian va a ser la misma, ahora que lo tenemos actualizado enanjana, vamos a aprovechar para realizar una copia que nos permita duplicar las maquinas con xen-create-image.

Creamos una copia que sirva de base para futuros servidores:

Vamos a crear una imagen de anjana que nos sirva para posteriores maquinas sin necesidad de utilizar el debootstrap.

Como tenemos montada la imagen en /mnt realizamos los siguiente (la llamaremos base):

xen-create-image -lvm=vg --copy /mnt --size=1000MB --memory=32MB --swap=128MB --dist=sarge --fs=ext3--ip=192.168.0.51 --netmask 255.255.255.0 --gateway=192.168.0.111 --hostname=base --passwd--kernel=/boot/vmlinuz-2.6.16-xenU --initrd=/boot/initrd.img-2.6.16-xenU

Esta imagen no la vamos a utilizar, solamente la tendremos como su nombre indica, de base para otras futuras copias.

En este momento tenemos una debian base configurada con las ip en el volumen anjana (anjana-disk nombrado porxen-create-image). como nos cachea los .deb para los siguientes dominios tardaremos menos tiempo en generarlo sidecidimos utilizar debootstrap de nuevo.

Podemos ver ahora que xen-create-image nos ha creado un archivo de configuración como anjana.cfg en /etc/xen conlos parametros que le hemos pasado y apuntando a los volumenes que le corresponden.

Delegamos el uso de una ethernet pci en el domU anjana (pci-backend):

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

9/16

Page 10: Xen

En el caso de anjana, por ser el firewall, debe llevar el control de las tarjetas de red y para ello debemos decirle a labase dom0 que uno de los domU va a llevar el control de una o varias tarjetas. Hacemos un listado :lspci | grep Ethernet00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)

Podemos realizar lo que se denomina PCI Backend en el arranque mediante grub o mediante unas opciones del kernel, como este cambio va a ser permanente, vamos a realizarlo desde el arranque de la maquina editanto el menu.lst delgrub y añadiendo lo siguiente en la linea del kernel

/vmlinuz... root=/dev/sda4 ro pciback.hide=(00:08.0)

Para delegar la gestión de la tarjeta de lantaron dom0 a un domU que queramos (anjana en este caso), añadimos lasiguiente linea al archivo de configuración de ese dominio en este caso /etc/xen/anjana.cfg en funcion de la direcciónpci de la tarjeta:pci=['00:08.0']

En este punto, hemos encontrado el problema de que el kernel compilado para los domU no tiene soporte hardaresuficiente como para manejar las tarjetas pci que delegamos desde dom0, es por eso que vamos a seleccionar el mismokernel que en dom0 en la configuración de anjana.Pasamos entonces de utilizar el kernel xenU a utilizar el kernel xen0 en /etc/xen/anjana.cfg.

Editamos el archivo anjana.cfg y cambiamos el kernel de xenU a xen0.

El problema que nos genera esto es que tenemos cantidad de carateristicas del kernel que no vamos a utilzar en eldomU anjana, deberiamos compilar otro kernel con las opciones minimas de soporte pci para red y opciones de red. (eneste documento no lo vamos a hacer).

Ahora, puesto que hemos modificado el grub con la delegación del pci ya a anjana con el nuevo kernel, vamos arebotar la maquina lantaron dom0 principal y ver los cambios.

En el caso de haber delegado el uso de la pci de dom0 lantaron a la domU anjana, podemos ver que la interfaz ethX yano está disponible para lantaron en dom0.Arrancamos luego nuestra domU anjana.

Arrancamos nuestro primer domU anjana:

xm create /etc/xen/anjana.cfg

podemos hacer un listado de las maquinas y su estado para verificar su arranque:

domo0:/dev/vg# xm listName ID Mem(MiB) VCPUs State Time(s)Domain-0 0 256 1 r----- 6278.2anjana 27 32 1 ------ 33.7

ahora nos conectamos a anjana por consola

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

10/16

Page 11: Xen

xm console anjana

nos loggeamos como root . en este momento ya podemos administrarla. En el caso de que algun comando como pingnos de problemas y no podamos cancelarlo con un ctrl+c debemos editar inittab en el domU en la linea"1:2345:respawn:/sbin/getty 38400 console " para que quede "1:2345:respawn:/sbin/getty 38400 tty1 ". La mejor formade administrar la maquina es mediante ssh. Instalamos entonces el ssh, lo activamos y nos conectamos a su ip desdedom0.

Firewall Iptables con Shorewall en anjana:

En el caso de anjana, necesitamos configurar un firewall. Para ello, hemos barajado diferentes maneras de hacerlo ybuscando la rapidez, sencillez y fiabilidad nos decantamos por un frontend o un script ya probado de iptables. Sobrefrontends y scripts está llena la pagina de http://www.linuxguruz.com/iptables/(8) y hay muchos para elegir. Entre losmas completos y por los que mas se han decantado los que han utilizado Xen ha sido shorewall.Con Shorewall basicamente definimos las reglas en diferentes lugares y el se encarga de crear las reglas iptables paracargarlas. En este documento no vamos a adentrarnos en el funcionamiento de shorewall y vamos a realizar loscambios justos para nuestras necesidades.

Sobre shorewall, tenemos cantidad de documentación: http://www.shorewall.net/Documentation_Index.html (9)

http://www.shorewall.net/shorewall_setup_guide.htm(10)

y tenemos la opción de que puede trabajar con un frontend en web con webadmin.Vamos a basarnos en la configuración de la documentación y articulos relacionados con xen y shorewall comohttp://www.shorewall.net/XenMyWay.html(11). En ellos se describen configuraciones muy similares a las nuestras quenos ayudaran a configurar el shorewall. Vamos a seguir una configuración para tres interfaces segunhttp://www.shorewall.net/three-interface.htm(12) nuestra red local y maquina de usuario y nuestra dmz.

Instalamos un shorewall 3.X. :

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

11/16

Page 12: Xen

NOTA-> si tenemos problemas y solo podemos hacer ping desde las domU, hagamos un (deberiamos hacerlo por cadareinicio) ethtool -K eth0 tx off

Podemos instalar shorewall por apt o descargar y utilizar las sources. Hemos optado por apt:

apt-get install shorewall shorewall-doc

Una vez instalado, copiamos los archivos de configuración desde /usr/share/doc/shorewall/default-config a/etc/shorewall.

cp /usr/share/doc/shorewall/default-config /etc/shorewall

packet forwarding en shorewall.conf a on

activamos shorewall en /etc/default/shorewall con startup=1

Podemos realizar una copia de los archivos de ejemplo para three-interface ya configurados en la carpeta dedocumentación de shorewall y modificarlo para nuestras necesidades.

En este articulo no entraremos en la configuración de shorewall para tres interfaces pues es practicamente identica ala configuración de los archivos de ejemplo salvo las direcciónes, nombres de interfaz y redirecciónes de puertosque queramos hacer contra las maquinas de la DMZ. Nuestra intención es configurar tres interfaces, una para laDMZ, otra para maquinas locales en la MZ y otra para el acceso a la red. Cerraremos todos los accesos y medianteDNAT llevaremos el trafico a los puertos de las maquinas de la DMZ.

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

12/16

Page 13: Xen

SI realizamos la copia de los archivos ya configurados y modificamos interfaces, policy y rules, luego necesitamoshacer un DNAT en función de las maquinas en rules:

ejemplo:

#Acceso a servicios de maquinas en DMZ.

#maquina arquetu

Web/DNAT net dmz:192.168.1.103

Web/ACCEPT loc dmz:192.168.1.103

#maquina trasgu

DNAT net dmz:192.168.1.104 tcp 25

DNAT net dmz:192.168.1.104 tcp 993

#maquina trenti

DNAT net dmz:192.168.1.106 tcp 81

Instalación de las maquinas domU y servicios:

Maquina arquetu(servidor web):

Instalación de un apache, ssh Haremos accesible en anjana el puerto 80 y el 443 contra esta maquina.

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

13/16

Page 14: Xen

Instalación de Apache2:

apt-get install apache2

disponemos de mucha información en la red para el funcionamiento del Apache. www.apache.org(13)

Maquina trasgu(servidor mail):

Instalación de postfix y ssh. Haremos accesible el puerto 25 contra esta maquina desde anjana. Podemos instalar unservidor pop3 para el que deberÃ−amos redirigir el puerto tambien desde anjana al 110.

Sobre documentación para postfix tenemos www.postfix.org . (14)

Podemos seguir cualquier howto que se ajuste a nuestras necesidades. (14)

Tenemos un manual excelente en (14)http://www.howtoforge.com/virtual_postfix_mysql_quota_courier(15)

Con este documento podemos tener nuestra maquina funcionando con mysql, cuentas virtuales, imap, pop, antispam,antivirus... ademas de estar basado en debian.(14)

Maquina trenti(webmail):

Maquina donde instalaremos otro apache2 y un webmail openwebmail (descarga enhttp://openwebmail.org/openwebmail/download/(16), funcionamiento enhttp://www.linuca.org/body.phtml?nIdNoticia=303(17)). Esta maquina puede acceder por imap a la maquina trasgu conpostfix para permitir la lectura del correo por webmail.

Openwebmail soporta spamassassin como antispam , clamav como antivirus, tiene opciones de disco duro virtual ...

Continuamos con la instalación de openwebmail y sus necesidadeshttp://www.openwebmail.org/openwebmail/doc/readme.txt(18)

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

14/16

Page 15: Xen

posibles problemas y sus soluciones:

Los problemas y soluciones aquÃ− expuestos se han ido resolviendo sobre la marcha del articulo. Si alguien consideraque hay alguna solución mejor o que el problema no es tal, se agradeceria que respondiera al articulo.

->despues de grandes quebraderos de cabeza echandole la culpa al firewall,si no se puede realizar mas que ping a ips yno resuelve ni se puede hacer nada desde los domU resulta que se generan problemas entre las interfaces por xen.hagamos un ethtool -K eth0 tx off y listo.

-> problemas al arrancar los domu. es necesario que udev o hotplug tengan la configuración de xen. para ello bastacon ir a donde tenemos las sources de xen y hacer hacer un enlace simbolico en /etc/udev/ de /etc/udev/rules.d delarchivo xen-backend.rules o un make install en xensource/tools/examples que se encargara de todo.

-> problemas en /etc/network/interfaces , parece que en una ocasión la configuración de la red en este archivo porparte del script xen-create-image ha dejado la configuración del gateway vacia, debemos completarlo(ha podido ser unerror en la ejjecución del script).

-> problema con el kernel de domU dedicado al firewall, la falta de soporte de hardware nos obliga a utilizar el dedom0 o compilar otro con el soporte necesario para pci y opciones de red.

->la ejecución de mkinitramfs puede dar problemas por el nombre del kernel al no encontrar los modulos en/lib/modules. podemos hacer un enlace simbolico con:ln -s /lib/modules/2.6.16-xenU /lib/modules/vmlinuz-2.6.16-xenU (modificandolo en funcion de la version del kernel yel domX)

-> la conexión a la consola de domU mediante xm console domU y la ejecucion de un comando con salida continuacomo un ping nos va a dar problemas (parece que en debian) al no poder cancelarlo con ctrl+c . Hay maneras deevitarlo, pero como estamos seguros de que con ssh no ocurre, instalamos ssh y nos conectamos con ellos. -> Elsiguiente cambio en inittab soluciona el problema.

-> si no podemos conectar via ssh y tenemos un "Host key verification failed" es por culpa del inittab y laconfiguración de acceso, la cambiamos a "1:2345:respawn:/sbin/getty 38400 tty1 "

-> despues de recompilar de nuevo el kernel del domU anjana para soportar el firewall y poner parte como modulos,nos hemos encontrado que la actualización no carga los modulos nuevos en el domU aunque se lo digamos asi en elarchivo de configuración. Posiblemente alguno de los comandos de instalación lo haga, pero tambien es posible quehaga mas cosas que no necesitamos. A fecha de este articulo no hemos encontrado nada mejor que copiar el directoriode /lib/modules de dom0 correspondiente al kernel que carga el domU al /lib/modules de domU. Lo podemos hacer porssh o parando y montando el volumen.

->solución de problemas de pci backend http://buffmuthers.com/~hadfield/wordpress/?p=149

Finalizando :

Esta información se ha obtenido de las webs oficiales y de diversos lugares de internet a los que se hace referencia enlos links. Si existe cuelquier problema con los enlaces, actualización, errores, o cualquier otro problema, añadidlo

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

15/16

Page 16: Xen

como respuesta a continuación.

Cualquier información que necesitemos o problema que se nos plantee, se puede resolver con la documentación yFAQs oficiales y buscando información por la red. Si no se resuelve la duda, se puede consultar en las respuestas paraobtener una solución y que sirva a terceras personas. (es mejor que contactar personalmente por mail ).

Si alguien que sigue este manual encuentra algun error, problema o sugerencia, se agradecerÃ−a lo posteara en lasrespuestas para que sea corregido o completado.

Esta configuración funciona correctamente en la maquina de pruebas. No se han realizado pruebas de rendimiento y lamaquina con 1200Mhz y 500 Mhz nos ha sido suficiente para estas pruebas. No se ha puesto en producción.

Actualizaremos en el articulo cualquier cambio que se realice sobre la maquina y que sea importante de cara a unfuncionamiento general para diversas configuraciónes.

Espero que el articulo os sea de utilidad y subais los resultados de vuestra instalación a la red.

Un saludo

Pedro Luis GarcÃ−a Alonso Linuca.org

pedrol en delpuerto punto com

clipse en delpuerto punto com

Lista de enlaces de este artÃ−culo:

http://www.linuca.org/body.phtml?nIdNoticia=2371. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/performance.html2. http://www.terra.es/personal/l.agua.l/mitologia1.htm3. http://wiki.xensource.com/xenwiki/XenFaq4. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/readmes/user/user.html5. http://www.esdebian.org/staticpages/index.php?page=200503221530036686. http://linuca.org/body.phtml?nIdNoticia=3267. http://www.linuxguruz.com/iptables/8. http://www.shorewall.net/Documentation_Index.html9. http://www.shorewall.net/shorewall_setup_guide.htm10. http://www.shorewall.net/XenMyWay.html11. http://www.shorewall.net/three-interface.htm12. http://www.apache.org/13. http://www.postfix.org/14. http://www.howtoforge.com/virtual_postfix_mysql_quota_courier15. http://openwebmail.org/openwebmail/download/16. http://www.linuca.org/body.phtml?nIdNoticia=30317. http://www.openwebmail.org/openwebmail/doc/readme.txt18.

E-mail del autor: clipse _ARROBA_ delpuerto.comPodrás encontrar este artÃ−culo e información adicional en: http://linuca.org/body.phtml?nIdNoticia=355

LINUCA: Como configurar una maquina con sistemas virtuales con Xen 3.0, LVM, firewall con shorewall, y servicios de web, mail y webmail.$LOGOIMAGE

16/16