IPTABLES 2: Ejemplo Firewall LAN ( parte 2)

Optimización

Si nos fijamos bien, alguien malicioso podría llegar a meterse en nuestro sistema de una manera un tanto simple, porque estamos dejando abierto el puerto 80 y el puerto 53 para todo lo que venga desde el exterior a la red 10.0.0.0/8 . Parece que tenemos un sistema seguro pero no nos engañemos. Las tramas que vengan de cualquier dirección y que no van a puertos 80 y 53 no van a pasar, ahora bien podrían pasar aquellas que aunque no vayan a ese puerto, digan que si van a ese puerto. Es decir si yo a una trama que salga de mi equipo hacia la red 10.0.0.0/8 le digo que cuando vaya a salir le ponga :53, cuando la trama llegue al firewall este la reenviara porque nosotros se lo hemos indicado, deberíamos de mejorar esto. Para ello tendremos que modificar un par de líneas.


Optimización
Si nos fijamos bien, alguien malicioso podría llegar a meterse en nuestro sistema de una manera un tanto simple, porque estamos dejando abierto el puerto 80 y el puerto 53 para todo lo que venga desde el exterior a la red 10.0.0.0/8 . Parece que tenemos un sistema seguro pero no nos engañemos. Las tramas que vengan de cualquier dirección y que no van a puertos 80 y 53 no van a pasar, ahora bien podrían pasar aquellas que aunque no vayan a ese puerto, digan que si van a ese puerto. Es decir si yo a una trama que salga de mi equipo hacia la red 10.0.0.0/8 le digo que cuando vaya a salir le ponga :53, cuando la trama llegue al firewall este la reenviara porque nosotros se lo hemos indicado, deberíamos de mejorar esto. Para ello tendremos que modificar un par de líneas.
Modificaremos todas las reglas de usuario del script, añadiremos algo a cada una de las líneas.
En este momento tenemos puestas las siguientes reglas:
iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p udp –sport 53 -j ACCEPT && echo “acepto reenvio desde puerto 53 por eth1” iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p udp –dport 53 -j ACCEPT && echo “acepto reenvio al puerto 53 remoto por eth0”
iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p tcp –sport 80 -j ACCEPT && echo “Acepto reenvio desde 80 por eth1”
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp –dport 80 -j ACCEPT && echo “Acepto reenvio al 80 desde eth0”
Escribiremos en azul las modificaciones que tenemos que hacerle a cada una de las líneas para que nuestro firewall sea más seguro.
iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p udp –sport 53 –m state – -state RELATED,STABLISHED -j ACCEPT && echo “acepto reenvio desde puerto 53 por eth1”
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p udp –dport 53 –m state – -state NEW,RELATED,ESTABLISHED -j ACCEPT && echo “acepto reenvio al puerto 53 remoto por eth0”
iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p tcp –sport 80 –m state –state RELATED,ESTABLISHED -j ACCEPT && echo “Acepto reenvio desde 80 por eth1”
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp –dport 80 –m state –state NEW,RELATED,ESTABLISHED -j ACCEPT && echo “Acepto reenvio al 80 desde eth0”

Podemos observar el cambio de las reglas en el script en la imagen inferior.

Si ahora viésemos el informe que generamos con el firewall ( comando iptables –L –n) veríamos lo que aparece en la imagen inferior.

Si desde Ubuntu queremos navegar vamos a poder hacerlo perfectamente como nos muestra la imagen inferior.

Ahora que ya vemos que seguimos navegando de la misma manera que antes de cambiar las reglas os comentare que hacen estos cambios en el comportamiento del firewall.
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p udp –dport 53 –m state – -state NEW,RELATED,ESTABLISHED -j ACCEPT && echo “acepto reenvio al puerto 53 remoto por
Esta regla ahora dice que vamos a reenviar todo lo que venga por la tarjeta eth0 desde la red 10.0.0.0/8 a través de udp y al puerto de destino del DNS de la máquina de remota siempre y cuando seamos nosotros los que empezamos la conexión(NEW) ya la hayamos establecido (ESTABLISHED) o que están relacionadas(RELATED) como puede ser el inicio de la conexión o los puertos 20 u 21 del ftp.

iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p udp –sport 53 –m state – -state RELATED,STABLISHED -j ACCEPT && echo “acepto reenvio desde puerto 53 por eth1”
En esta otra regla con el cambio que hemos realizado significa que solo vamos a aceptar las conexiones desde el 53 mientras la conexión ya este establecida o esté relacionada. A final de cuentas estamos impidiendo que alguien inicie la conexión porque podrían entrar en nuestro firewall y nosotros tendríamos una falsa ilusión de seguridad con este firewall. Ahora es mucho más difícil que nos puedan colar algo que no queremos que entre en nuestra red.

Modificaremos todas las reglas de usuario del script, añadiremos algo a cada una de las líneas.

En este momento tenemos puestas las siguientes reglas:

iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p udp –sport 53 -j ACCEPT && echo “acepto reenvio desde puerto 53 por eth1”

iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p udp –dport 53 -j ACCEPT && echo “acepto reenvio al puerto 53 remoto por eth0”

iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p tcp –sport 80 -j ACCEPT && echo “Acepto reenvio desde 80 por eth1”

iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp –dport 80 -j ACCEPT && echo “Acepto reenvio al 80 desde eth0”

Escribiremos en azul las modificaciones que tenemos que hacerle a cada una de las líneas para que nuestro firewall sea más seguro.

iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p udp –sport 53 –m state – -state RELATED,STABLISHED -j ACCEPT && echo “acepto reenvio desde puerto 53 por eth1”

iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p udp –dport 53 –m state – -state NEW,RELATED,ESTABLISHED -j ACCEPT && echo “acepto reenvio al puerto 53 remoto por eth0”

iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p tcp –sport 80 –m state –state RELATED,ESTABLISHED -j ACCEPT && echo “Acepto reenvio desde 80 por eth1”

iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp –dport 80 –m state –state NEW,RELATED,ESTABLISHED -j ACCEPT && echo “Acepto reenvio al 80 desde eth0”

clip_image002Podemos observar el cambio de las reglas en el script en la imagen inferior.

Si ahora viésemos el informe que generamos con el firewall ( comando iptables –L –n) veríamos lo que aparece en la imagen inferior.

clip_image004

Si desde Ubuntu queremos navegar vamos a poder hacerlo perfectamente como nos muestra la imagen inferior.

clip_image006

clip_image008

Ahora que ya vemos que seguimos navegando de la misma manera que antes de cambiar las reglas os comentare que hacen estos cambios en el comportamiento del firewall.

iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p udp –dport 53 –m state – -state NEW,RELATED,ESTABLISHED -j ACCEPT && echo “acepto reenvio al puerto 53 remoto por

Esta regla ahora dice que vamos a reenviar todo lo que venga por la tarjeta eth0 desde la red 10.0.0.0/8 a través de udp y al puerto de destino del DNS de la máquina de remota siempre y cuando seamos nosotros los que empezamos la conexión(NEW) ya la hayamos establecido (ESTABLISHED) o que están relacionadas(RELATED) como puede ser el inicio de la conexión o los puertos 20 u 21 del ftp.

iptables -A FORWARD -i eth1 -d 10.0.0.0/8 -p udp –sport 53 –m state – -state RELATED,STABLISHED -j ACCEPT && echo “acepto reenvio desde puerto 53 por eth1”

En esta otra regla con el cambio que hemos realizado significa que solo vamos a aceptar las conexiones desde el 53 mientras la conexión ya este establecida o esté relacionada. A final de cuentas estamos impidiendo que alguien inicie la conexión porque podrían entrar en nuestro firewall y nosotros tendríamos una falsa ilusión de seguridad con este firewall. Ahora es mucho más difícil que nos puedan colar algo que no queremos que entre en nuestra red.

Una respuesta a “IPTABLES 2: Ejemplo Firewall LAN ( parte 2)”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit is exhausted. Please reload the CAPTCHA.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.