![](https://static.isu.pub/fe/default-story-images/news.jpg?width=720&quality=85%2C50)
5 minute read
doble Firewall – DMZ – Intranet Protegida
Práctica Nº2.-Seguridad Perimetral. Diseño de Firewalls. Iptables y Zentyal
Una vez configurado los firewall se podrá comprobar su correcto funcionamiento desde el resto de máquinas virtuales, indicando como DNS preferido la dirección IP de la mv3 si estas se encuentran en las redes internas protegidas, o la dirección IP externa del firewall1 si queremos comprobarlo desde una máquina externa (el firewall1 la redireccionará a la mv3).
Advertisement
Solución Ej. Pr. 2.3.7.I.- Configuración de una Zona Perimetral compuesta de un doble Firewall – DMZ – Intranet Protegida
Al igual que en los ejercicios anteriores, la solución se dará en formato script. A continuación se muestran los scripts que habría que ejecutar en ambos firewall, mv1 y mv2: [root@mv1]# nano /etc/init.d/conf-red.sh #!/bin/bash # 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.2 ifconfig eth1 192.168.111.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 # Solución a): # Indicamos la políticas por defecto iptables -t filter -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Permitimos el control remoto de mv1, mv2 y mv3 desde la máquina física 192.168.1.1 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22002 -j DNAT --to 192.168.111.200:22 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22003 -j DNAT --to 192.168.111.150:22 iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 22 -d 192.168.111.200 -j ACCEPT iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 22 -d 192.168.111.150 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Permitimos el uso de ping para pruebas de conectividad iptables -A INPUT -p icmp -j ACCEPT iptables -A OUTPUT -p icmp -j ACCEPT iptables -A FORWARD -p icmp -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Para permitir hacer el ping a nombres de dominio, y no sólo a direcciones ip iptables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT # Solución b):
Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 72
Práctica Nº2.-Seguridad Perimetral. Diseño de Firewalls. Iptables y Zentyal
# Permitimos el acceso al servicio HTTP que se ofrece en Internet iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT # Permitimos el acceso al servicio FTP tcp/udp/21012 y HTTP tcp/8888 que se ofrece en la máquina física iptables -A FORWARD -i eth1 -o eth0 -p tcp -d 192.168.1.1 --dport 21012 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p udp -d 192.168.1.1 --dport 21012 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 8888 -d 192.168.1.1 -j ACCEPT # Permitimos el acceso al servicio HTTPS procedente de la máquina 192.168.112.1, aunque esta máquina no es distinguible desde el firewall1 a consecuencia del MASQUERADE ejercido por el firewall2 iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -j ACCEPT # Solución c): # Redireccionamiento y acceso al servicio Samba tcp/udp/137:139 ofrecido por el servidor de la DMZ desde el exterior iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 137:139 -j DNAT --to 192.168.111.150 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 137:139 -j DNAT --to 192.168.111.150 iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 137:139 -d 192.168.111.150 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 137:139 -d 192.168.111.150 -j ACCEPT # Redireccionamiento y acceso al servicio HTTP tcp/8009 ofrecido por el servidor de la DMZ desde el exterior iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8009 -j DNAT --to 192.168.111.150 iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 8009 -d 192.168.111.150 -j ACCEPT # Redireccionamiento de puertos # Solución d): # Redireccionamiento y acceso al servicio ofrecido por el servidor desde la DMZ por el puerto 8010 accesible desde el exterior a través del firewall1 por el puerto 8000 iptables -t nat -A PREROUTING -i eth0 \ -p tcp --dport 8000 -j DNAT --to 192.168.111.150:8010 iptables -A FORWARD -i eth0 -o eth1 -d 192.168.111.150 -p tcp --dport 8010 -j ACCEPT # Solución e): # Redireccionamiento y acceso al servicio DNS udp/53 ofrecido por el firewall2 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to 192.168.111.200 iptables -A FORWARD -i eth0 -o eth1 -d 192.168.111.200 -p udp --dport 53 -j ACCEPT
En relación al script de configuración del segundo firewall, mv2 (al ser similar al script anterior sólo se comentará lo más básico): [root@mv2]# nano /etc/init.d/conf-red.sh #!/bin/bash /etc/init.d/networking stop ifconfig eth0 192.168.111.200 ifconfig eth1 192.168.112.200 ifconfig eth2 192.168.113.200 route add default gw 192.168.111.100 echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -F
Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 73
Práctica Nº2.-Seguridad Perimetral. Diseño de Firewalls. Iptables y Zentyal
iptables -t nat -A POSTROUTING -j MASQUERADE # Solución a): iptables -t filter -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -p icmp -j ACCEPT iptables -A OUTPUT -p icmp -j ACCEPT iptables -A FORWARD -p icmp -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -o eth0 -p tcp --dport 53 -j ACCEPT # Permiso de acceso al servicio SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Solución b): iptables -t filter -A FORWARD -o eth0 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 21012 -d 192.168.1.1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 21012 -d 192.168.1.1 -j ACCEPT iptables -A FORWARD -i eth2 -o eth0 -p tcp --dport 8888 -d 192.168.1.1 -j ACCEPT iptables -A FORWARD -s 192.168.112.1 -o eth0 -p tcp --dport 443 -j ACCEPT # Solución e): iptables -A INPUT -i eth0 -p udp --dport 53 -s 192.168.111.150 -j DROP iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
Para comprobar su correcto funcionamiento, tan sólo será necesario ejecutar los anteriores
scripts: [root@mv1|mv2]# chmod +x /etc/init.d/conf-red.sh [root@mv1|mv2]# bash /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|mv2]# echo "bash /etc/init.d/conf-red.sh" >> /etc/init.d/rc.local
Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 74