Virtualización do Ciclo ASIR do IES de Rodeira
Virtualización do IES de Rodeira
Introducción
A virtualización hoxe en día ofrece numerosas vantaxes sobre a execución en hardware:
- Maior aproveitamento dos recursos
- Menor prezo, aforrando electricidade e hardware
- Facilidade de actualización
- Maior flexibilidade na rede e nos servizos
- Facilidade para montar estructuras de alta dispoñibilidade.
Debido a esto, e de modo experimental, se vai a diseñar unha estructura de máquinas virtuais que permita ofrecer os mesmos servizos (e nun futuro mais) que se teñen agora.
Hoxe en día, o IES de Rodeira conta con un servidor Linux que ofrece servizos de DNS, Firewall, Mail, Proxy, Escritorio, Almacenamento, Mirror Linux, Acceso remoto SSH e NX... e cun servidor Windows 2003 Server que ofrece o servizo de directorio activo e dominio aos equipos Windows das aulas. Se trata de ofrecer estos servizos a través de máquinas virtuais, o que nos permitirá unha maior flexibilidade na configuración e mantemento dos mesmos.
Planificación
Redes
A Rede do IES de Rodeira actualmente sigue o seguinte esquema:
Se trata de sustituir este esquema por outro que faga uso se servidores virtualizados aproveitando as VLAN 802.11q soportadas polos switches do departamento, modelo D-LINK DGS-1500-28 aula 3 e aula 4.
Necesitamos proveer de 4 redes ailladas: A rede do ciclo ASIR (Rede ASIR), a rede utilizada polos CICLOS (Rede CICLOS), a rede de acceso a internet (Rede XUNTA) con gateway 69.65.24.1 e a rede de acceso ás ADSL (Rede ADSL), con gateways 192.168.1.1 e 192.168.2.1. Como os ciclos e as ADSL se atopan nun switch que non soporta 802.11q, se separarán en dúas VLAN tradicionais por portos, de xeito que os ordenadores da Rede CICLOS non podan acceder directamente a Rede ADSL, aínda que dende o punto de vista das VLAN 802.11q que imos montar será unha rede única (Rede CICLOS_ADSL). A asignación dos Tag 802.11q será a seguinte:
- RedeASIR: default (Tag 1)
- RedeXUNTA: Tag 3
- RedeCICLOS_ADSL: Tag 4
Os servidores de virtualización poderán estar situados en calqueira punto da rede 802.11q (switches do Aula 3, Aula 4 ou Departamento). Chamaremos ao porto onde se vai poñer un servidor de virtualizacion PV. As conexións nos switches son as seguintes:
- Departamento
- [UPL3,UPL4,PCA,PXU,PV] - Conexións aos switches do Aula 3 e Aula 4, aos equipos da Rede CICLOS_ADSL, a saída hacia a rede de acceso a internet (Rede XUNTA) e os portos de virtualización.
O esquema 802.11q quedaría así:
VLAN ASIR: default. Eliminamos os portos PXU e PCA VLAN XUNTA (VID 3): PV (tagged),PXU (untagged, PVID 3),UPL3 (tagged), UPL4 (tagged) VLAN CICLOS_ADSL (VID 4): PV (tagged),PCA (untagged, PVID 4), UPL3 (tagged), UPL4(tagged)
- Aula 3 e Aula 4
- [UPL, PV] - Conexión ao switch do departamento e portos de virtualización.
O esquema 802.11q sería:
VLAN ASIR: default VLAN XUNTA (VID 3): PV (tagged), UPL (tagged) VLAN CICLOS_ADSL (VID 4): PV (tagged), UPL (tagged)
Servizos
Os servizos ofrecidos a cada rede serán os seguintes:
- Rede ASIR
- A rede de ASIR precisará de servicios Web, DNS, Control de acceso a Internet, Mail e escritorio remoto, ademáis de poder recibir conexións externas dende internet a estes e a futuros servizos (servicio de rutado). Se crearán as máquinas virtuais VM_PROXY (Control de Acceso a Internet e DNS interno e externo), VM_ROUTER (Rutado dende as conexións ADSL á rede interna), VM_WEB (Proporciona servicio Web LAMP á rede interna e externa, WebMail e e-mail) e VM_DESKTOP (Ofrece servizo de escritorio). VM_ROUTER permitirá que dende Internet se poda acceder ao correo (SMTP, POP, IMAP), ás páxinas web ao DNS e acceder mediante SSH aos hosts da rede (o que permite escritorios remotos NX/X2GO, túneis SSH e SFTP).
- Rede CICLOS_ADSL
- A rede de Ciclos únicamente precisa o control de acceso a internet e o DNS, polo que únicamente terán acceso a VM_PROXY. VM_ROUTER precisa acceder ás ADSL, polo que tamén ten que pertencer a esta rede.
- Rede XUNTA
- Esta rede únicamente se utiliza para ofrecer servizo de acceso a internet, polo que a única máquina que vai ter acceso a ela é VM_PROXY.
Sistemas de Virtualización
Os sistemas de virtualización elexidos son Xen para virtualizar as máquinas Linux mediante paravirtualización, e KVM para virtualización hardware (HVM) que utilizarán sobre todo as máquinas virtuais Windows. O que nos ocupa agora utilizará máquinas virtuais Paravirtualizadas con Xen, que son de vital importancia para o funcionamento da rede, polo que implantaremos unha solución de alta dispoñibilidade mediante dous servidores Xen.
Estos servidores estarán duplicando o espazo en disco a compartir mediante DRBD, e ofrecerán servicios de almacenamento SAN (NFS, SMB, iSCSI, NBD). En un momento determiñado únicamente un servidor SAN estará activo, actuando o outro como reserva. En caso de fallo do activo, o servidor reserva pasará a ofrecer estes servicios, e se fará cargo das máquinas virtuais que estaban funcionando no outro. Calqueira dos dous servidores poderá aloxar VMS Xen en calqueira momento.
Para detectar o posible fallo dun servidor e realizar a activación/migración de servizos poderemos facer uso de heartbeat ou corosync. O uso de pacemaker non parece necesario por tratarse dun cluster de so dous nodos.
Esta solución permitirá ademais que calqueira outro servidor de máquinas virtuais ou calqueira sistema que necesite acceso aos volumes compartidos poda seguir en funcionamento aínda que falle un dos servidores.
Os servidores Xen precisarán de 2 tarxetas de rede, aínda que se pode mellorar o rendimento mediante bonding sobre todo na línea do DRBD e na Ethernet de HA. Se empregara un alias na NIC estándar de xeito que poidamos establecer unha IP flotante para dar servizo a rede.
- NIC estándar: E a tarxeta pola que se accederá normalmente aos equipos.
- Tarxeta Ethernet de HA: Esta tarxeta compartirá a mesma IP entre os dous equipos. Cando cae o equipo 'activo', a IP pasa ao equipo 'pasivo'
- Tarxeta Ethernet DRBD: Se encarga de transmitir o tráfico de duplicación de disco.
Servidor Xen A (Activo, proporcionando almacenamento compartido):
NIC Estandar: 172.20.1.1/16 NIC HA: [172.20.1.2/16 - Flotante] NIC DRBD: 172.21.1.10/16
Servidor Xen B (Pasivo, non proporciona almacenamento, so executa VMS):
NIC Estandar: 172.20.1.10/16 NIC HA: [0.0.0.0 - Flotante] NIC DRBD: 172.21.1.100/16
Configuración da Rede
Configuración da LAN
Os switches estarán configurados según o indicado no apartado anterior. En canto á configuración da rede que xestionará as máquinas virtuais dentro de cada host de VM (hostVM) existen varias posibilidades:
- As máquinas virtuais funcionan de modo completamente aillado.
- Esta opción non resulta de utilidade para a nosa instalación, e únicamente é de interese para facer probas con sistemas operativos de modo aillado da LAN. Mediante este tipo de configuración, a máquina virtual non ten tarxeta de rede, e si a ten, estará vinculada (ethernets virtuais emparelladas) a unha tarxeta virtual no hostVM completamente aillada (sen IP e sen pertencer a ningun bridge nin switch virtual)
- As máquinas virtuais estan ailladas, pero son accesibles mediante rutado e NAT.
- Tampouco é unha boa elección para o caso que nos ocupa. Este tipo de configuración permite a creación de máquinas virtuais ás que se pode controlar o acceso dende e hacia a LAN mediante NAT no hostVM co uso de iptables. A tarxeta de rede esta vinculada a unha tarxeta virtual do hostVM que terá unha dirección IP, permitindo o acceso dende o hostVM á máquina virtual. Si arrancamos varias máquinas virtuais e configuramos a ethernet emparellada no hostVM baixo unha misma ponte teremos unha LAN de máquinas virtuais independente da LAN real.
- As máquinas virtuais forman parte da LAN.
- Este é o modo ideal para a nosa configuración. Neste tipo de configuración, a ethernet virtual do hostVM emparellada coa máquina virtual forma parte dunha ponte cunha ethernet real conectada a LAN. Deste xeito a máquina virtual será completamente accesible dende a LAN como si se tratara dunha máquina real.
Configuraremos entonces as máquinas virtuais que nos van a proveer dos servicios necesarios no terceiro modo descrito. Existen principalmente dous modos de implementar esta solución: mediante o bridge estándar de Linux (brctl) ou mediante openvswitch. Ambos modos soportan LAN baixo 802.11q, necesario para esta implementación. A configuración das VLAN no modo ponte se realiza coa utilidade vconfig do paquete debian vlan.
A elección preferida é openvswitch, xa que nos ofrece un conxunto maior de características, aínda que o uso de pontes sexa mais simple e non requira a modificación dos scripts de configuración de máquina virtual de Xen.
Configuración de Servicios
Os servizos ofrecidos polas distintas máquinas virtuais son os seguintes:
- VM_ROUTER (Router)
- Firewall, DNAT.
- VM_PROXY (Proxy)
- Proxy Squid + WebSqusr (Control acceso a internet), DNS, Servicio Web recollendo dominios das máquinas internas.
- VM_WEBSERVER (Servidor Web)
- Servicio Web ASIR + WebMail + Mail (exim4) + Mirror Debian
- VM_DESKTOP (Servidor de Escritorio)
- Acceso mediante x2go e NX (ssh) a KDE,GNOME,FLUXBOX,XFCE ... e ás aplicacións hospedadas.
Outros servizos a ofrecer son o servicio de copias de seguridade, un repositorio svn e/ou git, servicios de dominio para a LAN (Windows ou Samba), LDAP, Kerberos, Radius... Estos servizos poden ser ofrecidos tanto por máquinas físicas como por máquinas virtuais situadas en las VLAN 802.11q axeitadas.
Configuración dos Servidores Xen
En principio calqueira máquina pode ser utilizada para ofrecer servicio de virtualización Xen, incluso sen extensións de virtualización no procesador, xa que imos empregar paravirtualización. No noso caso imos empregar en principio dúas máquinas (que poderán ser sustituidas en calqueira momento) coas seguintes características:
- Servidor Intel:
- CPU Quad Core, 8Gb RAM, Soporte de virtualización na CPU, 2Tb de disco para share de VMs e servicio SAN: gandalf.iesrodeira.com, IP: 172.20.1.1
- Servidor HP:
- CPU Dual Core, 8Gb RAM, Soporte de virtualización na CPU, 2Tb de disco para share de VMs e servicio SAN. earendil.iesrodeira.com, IP: 172.20.1.20
Estes dous equipos contarán cunha VLAN 802.11q con VID 5 para o intercambio DRBD.
- Instalación de Debian Jessie
- Instalación de Xen
apt-get install xen-system-amd64
- Si queremos soporte de VLAN 802.11q nos bridge, paquete VLAN (utilidade vconfig), e precisaremos tamén as utilidades para imaxes VHD
apt-get install vlan blktap-utils
- Preferentemente utilizaremos openvswitch. Esto incluirá o paquete openvswitch-brcompat que nos ofrecerá compatibilidade cos bridge estándar. Os scripts de Xen non soportan directamente openvswitch, e con brcompat, os comandos de bridge utilizarán openvswitch. Tamén se instalarán paquetes adicionais dos que non imos facer uso (de momento), como as utilidades IPSec como racoon
apt-get install openvswitch-*
- Por defecto, openvswitch non utiliza a compatibilidade cos bridge, temos que activala editando /etc/default/openvswitch-switch e poñendo BRCOMPAT=yes
- Si se inserta no kernel o módulo bridge antes que o de compatibilidade de openvswitch (brcompat_mod), este non funcionará. O eliminamos do kernel.
rmmod bridge
- openvswitch almacena a configuración nunha base de datos persistente, que se conserva entre os reinicios da máquina. Realizamos a configuración inicial para a nosa rede de máquinas virtuais. Recordemos que o noso host terá dúas tarxetas de rede como mínimo (si ten máis se unirán nun bonding para aumentar o rendimento e fiabilidade), unha para o DRBD e a outra para a comunicación coa rede local. Supoñamos eth0 para a rede local (172.20.0.0/16), e eth1 para a replicación DRBD (172.21.0.0/16).
ovs-vsctl add-br xenbr ovs-vsctl add-br drbdbr ovs-vsctl add-port xenbr eth0 ovs-vsctl add-port drbdbr eth1
- Configuramos a rede dos servidores. O script /etc/init.d/networking se executa antes de levantar o openvswitch, polo que teremos que reconfigurala unha vez todo esté en orde. Para elo alteraremos /etc/rc.local engadindo service networking restart xusto antes da liña exit 0. As redes quedarán do seguinte xeito:
Nos dous servidores en /etc/resolv.conf:
# nameserver 172.20.2.1
Servidor 172.20.1.1 (gandalf.iesrodeira.com)
# auto lo iface lo inet loopback # auto eth0 address 0.0.0.0 # auto xenbr address 172.20.1.1 netmask 255.255.0.0 gateway 172.20.2.1
Servidor 172.20.1.20 (earendil.iesrodeira.com)
# auto lo iface lo inet loopback # auto eth0 address 0.0.0.0 # auto xenbr address 172.20.1.20 netmask 255.255.0.0 gateway 172.20.2.1
- Configuramos xen para garantizar un mínimo de memoria no dom-0 e para permitir a migración das máquinas virtuais entre o cluster. Para elo, debemos modificar o ficheiro /etc/xen/xend-config.sxp, en particular as seguintes liñas:
# Nos aseguramos que o Dom0 non se queda sen memoria (dom0-min-men 1024) (enable-dom0-ballooning no) # # Teclado por defecto (keymap 'es') # # Configuramos migración (xend-relocation-server yes) (xend-relocation-port 8002) (xend-realocation-address 'xenbr') (xend-relocation-hosts-allow '^localhost$ ^earendil.iesrodeira.com$ ^gandalf.iesrodeira.com$')
Configuración do clustering HA e Servizo de SAN
Espacio de disco a compartir
Repartiremos o espazo en disco do seguinte xeito:
- 1TB de disco para máquinas virtuais, compartido por NFS. Este espazo será LVM sobre un RAID 1 para gañar velocidade de lectura, e formará parte dun volume DRBD entre os dous servidores Xen para o cluster de alta dispoñibilidade.
- 300GB en RAID 1 repartidos mediante volumes lóxicos LVM, destiñados a crear volumes para almacenamento compartido por NFS, SMB, iSCSI e NBD.
NFS, SMB, iSCSI, DRBD, NBD
DRBD
Hearbeat
Servicios Xen
Router
A Máquina Virtual "Router" será a encargada de redirixir a entrada aos servizos ofrecidos pola rede hacia o mundo exterior. Estes servicios fundamentalmente serán:
- Servizos de Acceso Remoto
- RDP hacia o Servidor de Dominio Windows
- NX/X2GO hacia o Servidor de Escritorio Linux
- SSH hacia os distintos servers: (Router,Proxy,Servidor Web e Servidor de Escritorio)
- Servizos de Correo
- SMTP,POP,e IMAP
- WebMail
- Servizo DNS
- SFTP (mediante o acceso SSH)
Esta máquina deberá tamen facilitar acceso a Internet, sempre e cando a solicitude sexa no porto 80 ou 443 e a mesma se produza dende o Proxy.
Datos Técnicos
Máquina Virtual Xen e modo paravirtualizado (PVM) executando Debian Jessie
* 2 Cores * 600M de RAM * 3 Ethernet: eth0 - 172.20.0.1 (untagged), acceso a rede local ASIR eth1 - 192.168.1.2 (tag 4), acceso a ADSL1 na rede CICLOS eth2 - 192.168.2.2 (tag 4), acceso a ADSL2 na rede CICLOS
Configuración
Partimos dun disco VHD cunha instalación básica de Debian Jessie.
- Creamos unha copia utilizando a imaxe como base:
vhd-util snapshot -n RodeiraRouter.vhd -p JessieBase.vhd
- Creamos a configuración da VM no ficheiro RodeiraRouter.cfg
bootloader = 'pygrub' vcpus = '2' memory = '600' disk = ['tap2:tapdisk:vhd:RodeiraRouter.vhd,xvda,w'] name = 'RodeiraRouter' vif = [ 'mac=XX:XX:XX:XX:XX:XX,bridge=xenbr0,model=e1000','mac=XX:XX:XX:XX:XX:XX,bridge=xenbr0.4,model=e1000', 'mac=XX:XX:XX:XX:XX:XX,bridge=xenbr0.4,model=e1000' ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' acpi = '0' apic = '1' viridian = '0' xen_platform_pci='0' sdl = '0' vnc = '0' vnclisten = '0.0.0.0' vncpasswd = stdvga = '0' usb = '0'
- Arrancamos a VM
xm create RodeiraRouter.cfg
- Iniciamos sesión a través de ssh (usuario root e password root, a máquina iniciará con IP dinámica) ou co seguinte comando
xm console RodeiraRouter
- Configurar as ethernet editando /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 eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet static address 172.20.0.1 netmask 255.255.0.0 gateway 172.20.2.1 nameserver 172.20.2.1 # auto eth1 iface eth1 inet static address 192.168.1.2 netmask 255.255.255.0 # auto eth2 iface eth2 inet static address 192.168.2.2 netmask 255.255.255.0
- Configurar hostname a RodeiraRouter
hostname "RouterRodeira" && echo "RodeiraRouter">/etc/hostname
- Cambiar a password de root
passwd root
- Reiniciamos a máquina
shutdown -r now
- Iniciamos sesión como root por ssh
ssh root@172.20.0.1
- Instalamos software necesario
# Para protexer accesos dende internet. Ao cabo de varios intentos fallidos bloquea temporalmente ao atacante apt-get install fail2ban
- Configuramos os parámetros do sistema para poder rutar para moitas máquinas editando /etc/rc.local
# Habilitamos forwarding # A tabla de conexións debe ser grande e rápida. # Poñemos os HASHSIZE e o CONNTRACK_MAX da taboa NAT a 1048576 o que nos permitirá máis de 2000 conexións simultáneas. # Chamamos ao script encargado de configurar o firewall # Aseguramos que non nos falsifiquen os gateways nin servidores mediante envenenamento ARP # echo 1 > /proc/sys/net/ipv4/ip_forward modprobe ip_conntrack hashsize=1048576 modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ip_conntrack_sip modprobe ip_nat_sip echo 1048576 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max /root/scripts/firewall.sh arp -s 192.168.2.1 XX:XX:XX:XX:XX:XX arp -s 192.168.1.1 XX:XX:XX:XX:XX:XX arp -s 172.20.2.1 XX:XX:XX:XX:XX:XX arp -s 172.20.0.2 XX:XX:XX:XX:XX.XX arp -s 172.20.0.3 XX:XX:XX:XX:XX:XX exit 0
- Creamos unha carpeta scripts e dentro creamos as regras do firewall e NAT un ficheiro chamado firewall.sh
#!/bin/sh # ETH_LAN="eth0" ETH_ADSL1="eth1" ETH_ADSL2="eth2" # WEBSERVER="172.20.0.2" PROXYSERVER="172.20.2.1" DESKTOPSERVER="172.20.0.3" # echo "Parando fail2ban..." /etc/init.d/fail2ban stop # echo "Inicializando iptables..." iptables -F iptables -X iptables -Z iptables -t nat -F iptables -t mangle -F # echo "Establecendo politicas por defecto..." iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD ACCEPT # echo "Habilitando trafico interno..." iptables -I INPUT 1 -i lo -j ACCEPT iptables -I OUTPUT 1 -o lo -j ACCEPT # echo "Habilitando acceso SSH..." iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT # echo "Habilitando saida dende maquina local..." iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -j ACCEPT # echo "Iniciando politicas de seguridade..." # 224.0.0.0/24 es solo para enlaces multicast locales. Aquí solo pueden encontrar cosas como protocolos de enrutado. # Los datagramas a estas direcciones no deberían ser reenviadas por los routers echo "Filtrando Multicast..." iptables -A FORWARD -d 224.0.0.0/8 -j DROP iptables -A INPUT -s 224.0.0.0/4 -j DROP iptables -A FORWARD -s 224.0.0.0/4 -j DROP iptables -A FORWARD -d 224.0.0.0/4 -j DROP iptables -A INPUT -s 224.0.0.0/5 -j DROP iptables -A FORWARD -s 224.0.0.0/5 -j DROP iptables -A FORWARD -d 224.0.0.0/5 -j DROP # echo "Filtrando clase A privada..." iptables -A INPUT -s 10.0.0.0/8 -j DROP iptables -A FORWARD -s 10.0.0.0/8 -j DROP # echo "Verificando conexións SYN..." iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP # echo "Filtrando fragmentos IP" iptables -A INPUT -f -j LOG --log-prefix "IP FRAG: " iptables -A INPUT -f -j DROP iptables -A FORWARD -f -j LOG --log-prefix "FORWARD IP FRAG: " iptables -A FORWARD -f -j DROP # echo "Protección ICMP..." iptables -A INPUT -m state -p icmp --state INVALID -j DROP iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP # echo "Proteccion SYN FLOODING..." iptables -N SYNFLOOD_A iptables -N SYNFLOOD_B iptables -N SYNFLOOD_C iptables -A INPUT -i ${ETH_ADSL1} -p tcp --syn -j SYNFLOOD_A iptables -A INPUT -i ${ETH_ADSL2} -p tcp --syn -j SYNFLOOD_B iptables -A INPUT -i ${ETH_LAN} -p tcp --syn -j SYNFLOOD_C iptables -A SYNFLOOD_A -m limit --limit 1/s --limit-burst 3 -j RETURN iptables -A SYNFLOOD_A -j DROP iptables -A SYNFLOOD_B -m limit --limit 1/s --limit-burst 3 -j RETURN iptables -A SYNFLOOD_B -j DROP iptables -A SYNFLOOD_C -m limit --limit 1/s --limit-burst 3 -j RETURN iptables -A SYNFLOOD_C -j DROP # echo "Habilitando DNS..." iptables -A FORWARD -p udp -s 172.20.0.0/16 --dport 53 -j DROP iptables -A FORWARD -p udp -s 172.16.0.0/16 --dport 53 -j DROP iptables -A FORWARD -p udp -s 69.65.24.0/23 --dport 53 -j DROP iptables -t nat -A PREROUTING -p udp ! -i ${ETH_LAN} --dport 53 -j DNAT --to-destination ${PROXYSERVER} iptables -A FORWARD -p udp ! -i ${ETH_LAN} --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT # echo "Habilitando Servidor Web..." iptables -t nat -A PREROUTING -p tcp ! -i ${ETH_LAN} --dport 80 -j DNAT --to-destination ${PROXYSERVER} iptables -A FORWARD -p tcp ! -i ${ETH_LAN} --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -t nat -A PREROUTING -p tcp ! -i ${ETH_LAN} --dport 443 -j DNAT --to-destination ${PROXYSERVER} iptables -A FORWARD -p tcp ! -i ${ETH_LAN} --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT # echo "Habilitando SSH a Desktop..." iptables -t nat -A PREROUTING -p tcp ! -i ${ETH_LAN} --dport 22 -j DNAT --to-destination ${DESKTOPSERVER} iptables -A FORWARD -p tcp ! -i ${ETH_LAN} --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT # echo "Habilitando POP3s, SMTP..." iptables -t nat -A PREROUTING -p tcp ! -i ${ETH_LAN} --dport 995 -j DNAT --to-destination ${WEBSERVER} iptables -A FORWARD -p tcp ! -i ${ETH_LAN} --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -t nat -A PREROUTING -p tcp ! -i ${ETH_LAN} --dport 25 -j DNAT --to-destination ${WEBSERVER} iptables -A FORWARD -p tcp ! -i ${ETH_LAN} --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset # echo "Permitindo saida a servicio web por parte do proxy..." iptables -A FORWARD -p tcp -s 172.20.2.1 --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -s 172.20.2.1 --dport 443 -j ACCEPT # echo "Iniciando Fail2ban..." /etc/init.d/fail2ban start
Proxy
A Máquina Virtual "Proxy" será a encargada de facilitar acceso web tanto dende a rede do ciclo ASIR, como dende a rede de CICLOS a través da conexión Internet da Xunta. Ademáis fará as veces de servidor de dominio (DNS) para o dominio iesrodeira.com, tanto para as redes internas como para os accesos dende internet aos distintos servizos.
Este servidor terá un portal web que permitira regular o acceso a internet por parte das distintas aulas (WebSqusr), e ademáis recollerá as páxinas dos distintos servidores web das redes para servilas hacia internet.
A Xunta non admite o acceso aos seus servizos dende detrás dun proxy, si a solicitude se fai dende a rede interna. Polo tanto, as peticións de páxinas da xunta serán desviadas para recollelas a través das ADSL.
Datos Técnicos
Máquina Virtual Xen e modo paravirtualizado (PVM) executando Debian Jessie
* 2 Cores * 4096M de RAM * 3 Ethernet: eth0 - 172.20.2.1 (untagged), acceso a rede local ASIR eth1 - 172.16.2.1 (tag 4), acceso a rede CICLOS eth2 - 69.65.24.206 (tag 3), acceso a rede XUNTA
Configuración
Partimos dun disco VHD cunha instalación básica de Debian Jessie.
- Creamos unha copia utilizando a imaxe como base:
vhd-util snapshot -n RodeiraProxy.vhd -p JessieBase.vhd
- Creamos a configuración da VM no ficheiro RodeiraProxy.cfg
bootloader = 'pygrub' vcpus = '2' memory = '600' disk = ['tap2:tapdisk:vhd:RodeiraProxy.vhd,xvda,w'] name = 'RodeiraProxy' vif = [ 'mac=XX:XX:XX:XX:XX:XX,bridge=xenbr0,model=e1000','mac=XX:XX:XX:XX:XX:XX,bridge=xenbr0.4,model=e1000', 'mac=XX:XX:XX:XX:XX:XX,bridge=xenbr0.3,model=e1000' ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' acpi = '0' apic = '1' viridian = '0' xen_platform_pci='0' sdl = '0' vnc = '0' vnclisten = '0.0.0.0' vncpasswd = stdvga = '0' usb = '0'
- Arrancamos a VM
xm create RodeiraProxy.cfg
- Iniciamos sesión a través de ssh (usuario root e password root, a máquina iniciará con IP dinámica) ou co seguinte comando
xm console RodeiraProxy
- Configurar as ethernet editando /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 eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet static address 172.20.2.1 netmask 255.255.0.0 nameserver 172.20.2.1 # auto eth1 iface eth1 inet static address 172.16.2.1 netmask 255.255.0.0 # auto eth2 iface eth2 inet static address 69.65.24.206 netmask 255.255.254.0 gateway 69.65.24.1
- Configurar hostname a RodeiraProxy
hostname "RouterRodeira" && echo "RodeiraProxy">/etc/hostname
- Cambiar a password de root
passwd root
- Reiniciamos a máquina
shutdown -r now
- Iniciamos sesión como root por ssh
ssh root@172.20.0.1
- Instalamos o software necesario
apt-get install apache2 php5 bind9 bind9utils bind9-doc
Servidor Web
exim4-daemon-heavy exim4-doc-html