Virtualización do Ciclo ASIR do IES de Rodeira

De Wiki do Ciclo ASIR do IES de Rodeira
Saltar á navegación Saltar á procura

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:

Esquema da rede actual do IES de Rodeira

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:

  1. 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)
  2. 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.
  3. 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:

  1. VM_ROUTER (Router)
    Firewall, DNAT.
  2. VM_PROXY (Proxy)
    Proxy Squid + WebSqusr (Control acceso a internet), DNS, Servicio Web recollendo dominios das máquinas internas.
  3. VM_WEBSERVER (Servidor Web)
    Servicio Web ASIR + WebMail + Mail (exim4) + Mirror Debian
  4. 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.


  1. Instalación de Debian Jessie
  2. Instalación de Xen
  apt-get install xen-system-amd64
  1. 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
  1. 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-*
  1. Por defecto, openvswitch non utiliza a compatibilidade cos bridge, temos que activala editando /etc/default/openvswitch-switch e poñendo BRCOMPAT=yes
  1. 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
  1. 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
  1. 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
  
  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.

  1. Creamos unha copia utilizando a imaxe como base:
 vhd-util snapshot -n RodeiraRouter.vhd -p JessieBase.vhd
  1. 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'
  1. Arrancamos a VM
 xm create RodeiraRouter.cfg
  1. 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
  1. 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
  1. Configurar hostname a RodeiraRouter
 hostname "RouterRodeira" && echo "RodeiraRouter">/etc/hostname
  1. Cambiar a password de root
 passwd root
  1. Reiniciamos a máquina
 shutdown -r now
  1. Iniciamos sesión como root por ssh
 ssh root@172.20.0.1
  1. Instalamos software necesario
 # Para protexer accesos dende internet. Ao cabo de varios intentos fallidos bloquea temporalmente ao atacante
 apt-get install fail2ban
  1. 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
  1. 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.

  1. Creamos unha copia utilizando a imaxe como base:
 vhd-util snapshot -n RodeiraProxy.vhd -p JessieBase.vhd
  1. 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'
  1. Arrancamos a VM
 xm create RodeiraProxy.cfg
  1. 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
  1. 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
  1. Configurar hostname a RodeiraProxy
 hostname "RouterRodeira" && echo "RodeiraProxy">/etc/hostname
  1. Cambiar a password de root
 passwd root
  1. Reiniciamos a máquina
 shutdown -r now
  1. Iniciamos sesión como root por ssh
 ssh root@172.20.0.1
  1. Instalamos o software necesario
 apt-get install apache2 php5 bind9 bind9utils bind9-doc

Servidor Web

exim4-daemon-heavy exim4-doc-html

Servidor de Escritorio

Outros Servizos

Kerberos e LDAP

DNS

E-Mail

Servizos de Dominio e Active Directory

Servidor de Espazo en Disco (NAS)

Mantemento

Copias de Seguridade

Actualizacións