Ejercicios de Seguridad en Redes. Firewalls y túneles cifrados
1. Establecer el entorno virtualizado.
Arrancar las instancias VirtualBOX (desde la interfaz gráfica o desde la línea de comandos) VBoxManage startvm FUERAVBoxManage startvm DENTROVBoxManage startvm DMZVBoxManage startvm FIREWALL3
Comprobar redes EstablecidasComprobar las redes haciendo ping a las otras máquinas
firewall3:~# ping 193.147.87.33firewall3:~# ping 10.10.10.11firewall3:~# ping 10.20.20.22
Arrancar los servicios a utilizar (el servidor SSH está activado por defecto).
Ejercicio 1: Configuración de una DMZ (DeMilitarized Zone) usando el Firewall netfilter/iptables.
Tareas a realizarRestricciones de acceso a implementar
1. Enmascaramiento (SNAT) de la red interna (10.10.10.0/24) y de la DMZ (10.20.20.0/24).
2. Re direccionamiento (DNAT) de los servicios públicos que ofrecerá la red hacia la maquina dentro (10.20.20.22) de la DMZ.a) peticiones WEB (http y https)b) tráfico de correo saliente (smtp) y entrante (pop3)
3. Control de tráfico con política "denegar por defecto" (DROP)
a) Desde la red externa solo se permiten las conexiones hacia la DMZ contempladas en las redirecciones del punto anterior (http, https, smtp, pop3).
b) desde la red interna hacia la red externa solo se permite trafico de tipo WEB y SSH
c) desde la red interna hacia la DMZ solo se permite trafico WEB (http, https), e-mail (smtp, pop3) y SSH
d) desde la maquina dmz (10.20.20.22) se permiten conexiones MySQL hacia la maquina dentro (10.10.10.11) de la red interna
e) se permite la salida a la red externa de las consultas DNS originadas en la red interna
f) Firewall solo admite conexiones SSH desde la red interna
4. Registro (log) de intentos de acceso no contemplados desde red externa a Firewall3 (193.147.87.47) y a equipos internos con la etiqueta Acceso no autorizado
5. Limitar el trafico de control ICMP recibido desde la red externa para mitigar posibles ataques DOS (denial of service).
Esquema general del script a emplearScript de partida ("Firewall-iptables.sh")Añadir reglas para establecer NAT y habilitar redirecciones
eth0: interfaz conectado a la red interna (10.10.10.0/24) eth1: interfaz conectado a la red DMZ (10.20.20.0/24) eth2: interfaz conectado a la red externa (193.147.87.0/24)
ComprobacionesComprobar la configuración actual de firewall
firewall3:~# iptables -L firewall3:~# iptables -t nat -L
En fuera (193.147.87.33), verificar las conexiones establecidas actualmente
Script Final ("Firewall-iptables.sh")
Añadir las siguientes reglas para filtrado de trafico:
Comprobaciones
Lanzar el script del Firewalllfirewall3:~# /root/iptables/firewall-iptables.sh start
Comprobar la configuración actual de firewall
firewall3:~# iptables -Lfirewall3:~# iptables -t nat –L
Realizar conexiones ssh a Firewall3 desde fuera (193.147.87.33), dentro (10.10.10.11) y dmz (10.20.20.22)
Otra posibilidad (mas rapida): realizar escaneo nmap al puerto 22.
Realizar conexión telnet desde dentro (10.10.10.11) hacia fuera (193.147.87.33)
Comprobar el Fichero de log (/var/log/syslog) de Firewall2
Comprobar servicios abiertos
Ejercicio 2: Uso de enlaces cifrados OpenVPN y configuración del Firewall ShorewallParte 1: Creación de un enlace OpenVPNSe creara un enlace cifrado OpenVPN desde la maquina _rewall3 (193.147.87.47) a la maquina externa fuera (193.147.87.33). Se usara un esquema SSL completo.Usaremos el modo de funcionamiento de OpenVPN \roadwarrior\, donde un servidor OpenVPN crea enlaces cifrados para equipos autorizados situados en redes externas.La autenticación se realizara mediante certificados digitales (la otra posibilidad sera emplear cifrado simétrico con claves secretas estáticas pre acordadas)A las maquinas que se conecten por VPN se les asignaran direcciones IP del rango 10.30.30.0/24, donde la maquina Firewall3 (el servidor OpenVPN) tendra la IP 10.30.30.1Para simplificar el ejercicio se usaran las claves y certificados de ejemplo que provee OpenVPN. En un entorno real no se podrán usar esas claves, sino que deberíamos generar las nuestras propias.Claves de ejemplo: /usr/share/doc/openvpn/examples/sample-keys/Certificados y claves necesarias:Para el servidor:
certificado digital de la Autoridad Certificadora (CA) reconocida por ambos participantes: ca.crt
clave privada del servidor: server.key certificado digital del servidos: server.crt (emitido por la CA) parámetros para intercambio de clave Di_e-Hellam: dh1024.pem
Para cada uno de los clientes que se conecten con OpenVPN:
certificado digital de la Autoridad Certificadora reconocida por ambos participantes: ca.crt
clave privada del servidor: client.key certificado digital del servidor: client.crt (emitido por la CA)
Pasos a seguirPrevio: Deshabilitar el Firewall del ejercicio1
firewall3:~# /root/iptables/firewall-iptables.sh stop (importante)
Copiar las claves/certificados necesarios al directorio /etc/openvpn :
Crear el fichero de configuracion del servidor: Se usara como base el ejemplo disponible en /usr/share/doc/openvpn/examples/sample-config-files/
Editar los parámetros concretos para nuestros túneles VPN
Configuración de los clientes: en la maquina fuera (193.147.87.33) Copiar las claves/certificados necesarios al directorio /etc/openvpn :
Crear el fichero de configuración del cliente Se usara como base el ejemplo disponible en /usr/share/doc/openvpn/examples/sample-config-files/
Editar los parámetros concretos para nuestros túneles VPN
Crear el túnel OpenVPN
Inciar OpenVPN en servidor (firewall3), ejecutar /etc/init.d/openvpn start Inicar OpenVPN en cliente (fuera), ejecutar /etc/init.d/openvpn start
En ambos extremos del túnel cifrado se crea un interfaz de red "virtual" /dev/tun0 por el que se accede al enlace cifrado que conforma la red privada virtual.
Un interfaz tun (también los interfaces tap) simula un dispositivo de red ethernet, pero en lugar de enviar los datagramas Ethernet sobre un cable de red, los encapsula dentro de los paquetes de una conexión TCP/IP establecida.
En nuestro caso se trata de una conexión SSL al puerto 1194 UDP de la maquina firewall3
El enlace OpenVPN definirá la red 10.30.30.0/24
El servidor tendrá la dir. IP 10.30.30.1 A los clientes se les asignaran direcciones a partir de 10.30.30.6 El gateway (puerta de enlace) de los clientes conectado por VPN será
10.30.30.5, que reenviara a 10.30.30.1Se puede comprobar la configuración en ambos extremos con ifconfig –a
En este caso las rutas hacia las dos "redes internas" (red dmz y red interna) se "inyectan" en el cliente VPN al crear el túnel.
La ruta por defecto de los equipos internos usa como gateway a firewall3 que a su vez conoce la ruta hacia las maquinas clientes VPN
Por ello, en este caso concreto no es necesario indicar rutas adicionales para que los equipos dentro y dmz respondan y se comuniquen con los clientes OpenVPN
Para el equipo _rewall3 tendremos 4 redes:
10.10.10.0/24: red interna en el interfaz eth010.20.20.0/24: red dmz en el interfaz eth110.30.30.0/24: equipos externos conectados sobre VPN en el interfaz "virtual" tun0 red externa en el interfaz eth2.
Parte 2: Configuración del firewall con Shorewall (Shoreline Firewall)
Pasos a seguir
Copiamos y descomprimimos los ficheros de configuración en el directorio de configuración de Shorewall (/etc/shorewall/)
Configurar las zonas (/etc/shorewall/zones) [lo dejaremos como esta]firewall3:/etc/shorewall# leafpad zones.
Configurar los interfaces (/etc/shorewall/interfaces).Ajustar los interfaces de red de cada zona para que se ajusten a nuestra configuracion (en columna INTERFACE)firewall3:/etc/shorewall# leafpad interfaces
Definir las politicas (/etc/shorewall/policy)firewall3:/etc/shorewall# leafpad policy
Definir enmascaramiento (/etc/shorewall/masq)firewall3:/etc/shorewall# nano masq
Implementaremos parte de las restricciones de tráfico descrita en el ejercicio 1: Se re direccionan todos los servicio públicos (http, https, smtp y pop3) que
ofrecerá nuestra red hacia la DMZ (en nuestro caso a la maquina 10.20.20.22) Se permite acceso del servidor web de la DMZ (en 10.20.20.22) al servidor MySQL
de la red interna (en 10.10.10.11) Se permite el acceso desde la red interna a los servidores públicos (web y correo)
alojados en la DMZ. Añadiremos al final del _chero (antes de la l__nea #LAST LINE ....) las reglas que las implementan.firewall3:/etc/shorewall# nano rules
Ajustar el fichero de configuracion de Shorewall (/etc/shorewall/shorewall.conf)
Como mínimo debe establecerse la variable STARTUP ENABLED a yes, para que el compilador Shorewall procese los _cheros y genere las reglas iptables.También debe habilitarse el forwarding de paquetes: Asegurar que la variable IP FORWARDING esta a on (o Keep si se garantiza que se habilita ip forwarding antes de iniciar el firewall)firewall3:/etc/shorewall# nano shorewall.conf
Arrancar Shorewall y comprobar las reglas generadasfirewall3:~# iptables -t nat -L
Pruebas a realizar Antes de hacer las pruebas: habilitar acceso exterior a MySQL en la maquina
dentro(10.20.20.22) (comentar la línea donde aparece bind-address 127.0.0.1)
Desde fuera (193.147.87.33):
Desde dmz (10.10.10.11):dmz~# nmap -T4 10.10.10.11
Parte 3: Integracion del enlace OpenVPN con Shorewall
Pasos a seguir Crear una nueva zona (road) para los clientes conectado con OpenVPN en el _chero
/etc/shorewall/zonesfirewall3:/etc/shorewall# nano zones
Asociar el interfaz tun0 a la zona road en el fichero /etc/shorewall/interfacesfirewall3:/etc/shorewall# nano zones
Definir las políticas y reglas que afectan a los clientes OpenVPNHaremos que los equipos conectados por openVPN (zona road) tengas las mismas restricciones/privilegios que los de la red interna (zona loc).firewall3:/etc/shorewall# nano policy
Fichero /etc/shorewall/rulesReplicar las entradas correspondientes a la zona loc, cambiando su campo zona de loc a road. firewall3:/etc/shorewall# nano rules
Top Related