6 minute read

Solución Ej. Pr. 2.3.6.I.- Configuración de un Firewall con una DMZ

Práctica Nº2.-Seguridad Perimetral. Diseño de Firewalls. Iptables y Zentyal

la mv3 (servidor DMZ)? Tener en cuenta que para controlar vía SSH tcp/22 la mv3 se hará a través de la mv1 a través de su puerto tcp/22222. E) ¿Qué comandos añadirías al script anterior para permitir que los equipos de la red interna Nº1 puedan hacer uso de los protocolos HTTP y HTTPS a excepción del acceso a sitios Web como http://www.sport.es y https://www.facebook.com? Advierte que para que se pueda hacer uso de nombres de dominio en la configuración de las reglas que impongas en el firewall, el propio equipo firewall deberá poder traducirlos a su correspondiente dirección IP, por lo que deberás permitirle resoluciones DNS udp/53. F) ¿Qué comandos añadirías al script anterior para que desde el exterior sea accesible a través del router un servicio HTTP que se ofrece por el puerto tcp/33333? G) ¿Qué comandos añadirías al script anterior para que desde el exterior (únicamente desde tu máquina física y la del profesor) sea accesible un directorio que se comparte de manera pública mediante Samba tcp/udp/137:139 en la mv3 llamado "misdocX" (p.e. /media/documentos)? H) ¿Qué comandos añadirías al script anterior para que desde el exterior sea accesible un servicio HTTP que se ofrece en el equipo servidor mv3 vía tcp/44444, aunque a través de la mv1 vía tcp/50000?

Advertisement

Solución Ej. Pr. 2.3.6.I.- Configuración de un Firewall con una DMZ

Al igual que en los ejercicios anteriores, la solución se dará en formato de script, el cual se ejecutará al iniciarse la máquina, o cuando nosotros deseemos ejecutarlo desde una terminal: [root@mv1]# nano /etc/init.d/conf-red.sh

#!/bin/bash ## Solución apartado A): # Paramos el servicio networking para permitir la configuración mediante nuestro script: /etc/init.d/networking stop # Configuramos las direcciones IP, puerta de enlace y servidor DNS preferido ifconfig eth0 192.168.1.100 ifconfig eth1 192.168.100.100 ifconfig eth2 192.168.200.100 route add default gw 192.168.1.254 echo "nameserver 8.8.8.8" > /etc/resolv.conf # Activamos el forwarding y el MASQUERADE para que actúe como un gateway echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -F iptables -t nat -A POSTROUTING -j MASQUERADE # Indicamos la políticas por defecto: DROP. De esta forma el equipo queda totalmente aislado, con todos sus puertos cerrados iptables -t filter -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ## Solución apartado B): # Permitimos que nos puedan hacer un ping desde el exterior a las máquinas físicas del profesor y

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 66

Práctica Nº2.-Seguridad Perimetral. Diseño de Firewalls. Iptables y Zentyal

del alumno (X es el número de equipo) iptables -A INPUT -p icmp -i eth0 -s 192.168.1.100 -j ACCEPT iptables -A INPUT -p icmp -i eth0 -s 192.168.1.X -j ACCEPT # Aceptamos igualmente los paquetes de vuelta de respuesta ante el ping anterior iptables -A OUTPUT -o eth0 -d 192.168.1.100 \ -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o eth0 -d 192.168.1.X \ -m state --state ESTABLISHED,RELATED -j ACCEPT ## Solución apartado C): # Permitimos la resolución de nombres a la mv2 para poder hacer pings a nombres de dominio iptables -A FORWARD -p udp --dport 53 -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -p icmp -i eth1 -o eth0 -j ACCEPT # Permitimos los paquetes de respuesta al servicio ping y DNS anteriores iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i eth0 -o eth1 -j ACCEPT ## Solución apartado D): # Permitimos el control vía SSH de la mv1 desde el exterior (máquinas físicas profesor y alumno) iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -s 192.168.1.X -j ACCEPT # Permitimos salir los paquetes de respuesta a la solicitud de conexión SSH anterior iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Redireccionamos las peticiones externas tcp/22222 al puerto SSH tcp/22 de la mv3 iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.100 \ -p tcp --dport 22222 -j DNAT --to 192.168.200.1:22 iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.X \ -p tcp --dport 22222 -j DNAT --to 192.168.200.1:22 # Permitimos que atraviesen a la mv1 las solicitudes de conexión SSH tcp/22 redireccionadas hacia la mv3 iptables -t filter -A FORWARD -i eth0 -o eth2 -p tcp --dport 22 -d 192.168.200.1 -j ACCEPT # Permitimos que atraviesen a la mv1 los paquetes de respuesta procedentes de la mv3 ante la conexión SSH tcp/22 permitida en las reglas anteriores iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i eth2 -o eth0 -j ACCEPT ## Solución apartado E): # Permitimos que la mv1 resuelva los nombres de dominio que utilizarán a continuación en sus reglas de filtrado iptables -A OUTPUT -p udp --dport 53 -o eth0 -j ACCEPT # Permitimos los paquetes de vuelta de respuesta ante la solicitud de resolución DNS anterior iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Restringimos el acceso a la mv2 a determinados sitios Web iptables -A FORWARD -p tcp --dport 80 -d www.sport.es -i eth1 -o eth0 -j DROP iptables -A FORWARD -p tcp --dport 443 -d www.facebook.com -i eth1 -o eth0 -j DROP # Permitimos el acceso a cualquier otro sitio Web mediante los protocolos HTTP y HTTPS iptables -A FORWARD -p tcp --dport 80 -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -p tcp --dport 443 -i eth1 -o eth0 -j ACCEPT # Permitimos que atraviesen a la mv1 los paquetes de vuelta de las conexiones HTTP y HTTPS iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i eth0 -o eth1 -j ACCEPT ## Solución apartado F): # Redireccionamos las solicitudes de conexión externas al puerto 33333 a la mv3, y dejamos que

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 67

Práctica Nº2.-Seguridad Perimetral. Diseño de Firewalls. Iptables y Zentyal

atraviesen (FORWARD) a la mv1 tanto esas solicitudes como sus paquetes de vuelta asociados iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 33333 -j DNAT --to 192.168.200.1 iptables -t filter -A FORWARD -i eth0 -o eth2 -p tcp --dport 33333 \ -d 192.168.200.1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i eth2 -o eth0 -j ACCEPT ## Solución apartado G): # Lo mismo que el anterior pero para el servicio Samba tcp/udp/137:139 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 137:139 -j DNAT --to 192.168.200.1 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 137:139 -j DNAT --to 192.168.200.1 iptables -t filter -A FORWARD -i eth0 -o eth2 -p tcp --dport 137:139 \ -d 192.168.200.1 -j ACCEPT iptables -t filter -A FORWARD -i eth0 -o eth2 -p udp --dport 137:139 \ -d 192.168.200.1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i eth2 -o eth0 -j ACCEPT ## Solución apartado H): # Redireccionamos peticiones tcp/50000 recibidas por la mv1 hacía la mv3 vía tcp/44444 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 50000 \ -j DNAT --to 192.168.200.1:44444 iptables -t filter -A FORWARD -i eth0 -o eth2 -p tcp --dport 44444 \ -d 192.168.200.1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i eth2 -o eth0 -j ACCEPT

Antes de comprobar su correcto funcionamiento, será necesario ejecutar el script anterior: [root@mv1]# chmod +x /etc/init.d/conf-red.sh [root@mv1]# /etc/init.d/conf-red.sh

¡¡Recordatorio!! Para que el script anterior se autoejecute al iniciarse la máquina, la forma más fácil es lanzarlo a través del script "rc.local" que se ejecuta al final del inicio de la máquina, añadiéndolo al final de dicho script (doble redireccionamiento, ">>"): [root@mv1]# echo "bash /etc/init.d/conf-red.sh" >> /etc/init.d/rc.local

Por último, deberíamos hacer las correspondientes comprobaciones del correcto comportamiento del firewall tal como ha hecho en ejercicios anteriores, o tal como se muestra en el siguiente ejercicio de una forma muy detallada.

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 68

This article is from: