Para prevenir problemas de seguridad, se crea a menudo una zona intermedia a través de las opciones de configuración del cortafuegos, donde cada red se conecta a una interfaz de red distinta. Esta configuración se llama cortafuegos en trípode (three-legged firewall).
Aquellos que necesiten tener una puerta por la que entre tráfico desde Internet, deberá ir en una zona intermedia de servicios públicos o frontend. La ubicación de los servidores que nutren estas aplicaciones públicas deben ir en una red diferente y protegida, o de backend.
En este tipo de firewall hay que permitir:
- Acceso de la red local a internet.
- Acceso público desde internet al puerto tcp/80 y tcp/443 de nuestro servidor web.
- Obviamente bloquear el resto de acceso hacia la red local.
Debe tener presente, de esta manera, la posee un nivel de seguridad intermedio, el cual no es lo suficientemente alto para almacenar datos imprescindibles de la compañía.
Suponemos que el servidor utiliza linux, una distribucion basa en debian.
Configurando las interfaces de red
Nos logueamos en el firewall, lo primero a realizar es configurar las interfaces de red. Previamente buscaremos las ip de la red.
Accedemos en modo administrador. Utilizamos el siguiente comando para ver las interfaces de red.
ifconfig -a | grep eth*
Luego con el comando vemos los dns en uso actualmente
more /etc/resolv.conf
Luego vemos cual es la ip interna con el siguiente comando
ifconfig eth0
Ademas verremos las ip de la puerta de enalce y de la red con el siguiente comando
netstat -r
Supongamos las ip
Ip 192.168.0.113
Mascara de red 255.255.255.0
Ip de red 192.168.0.0
IP Puerta de enlace 192.168.0.253
Vamos a cargar los datos recopilados anteriormente.
nano -wB /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.113
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.253
auto eth1
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
auto eth2
iface eth2 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
Como se puede apreciar cada interfaz de red usa un rango diferente eth0 192.168.0.0/24 , eth1 192.168.10.0/24 , eth2 192.168.3.0/24
Reiniciamos la red
/etc/init.d/networking restart
Creamos nuestro script de iptables con las reglas que consideremos necesarias
nano /etc/network/if-up.d/firewall
Algunas reglas importantes son
# eth0 es el interfaz conectado al router y eth1 a la Red local
# Todo lo que venga por el exterior y vaya a los puerto 80 y 433
# lo redirigimos al servidor web (192.168.3.2) de la zona intermedia
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.3.2:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 192.168.3.2:443
## Permitimos el paso de la Red local al servidor web la zona intermedia
iptables -A FORWARD -s 192.168.3.2 -d 192.168.10.5 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.10.5 -d 192.168.3.2 -p tcp --dport 80 -j ACCEPT
# Cerramos el acceso de lazona intermedia a la red local
iptables -A FORWARD -s 192.168.3.0/24 -d 192.168.10.0/24 -j DROP