Cortafuegos entre dos redes con IPTABLES en Linux

1. Primero vamos a vaciar todas la tablas de IPTABLES para permitir todo el tráfico

# iptables -F

2. Ahora nos vamos al cliente (windows o linux) y probamos un ping al router/firewall Ubunutu Server 18. Debería funcionar con normalidad.

3. Volvemos al router/firewall Linux para bloquear ese tráfico. El comando sería:

# iptables –A INPUT –i enp0s8 –p icmp –j DROP

Este comando añade una regla a la etapa INPUT de la tabla filter (como antes, si no ponemos nada, es para esa tabla). Los siguientes parámetros son las condiciones (vienen de la interfaz interna enp0s8 y son del protocolo icmp), y finalmente la acción (serán eliminados). Para esta regla de esta tabla, otras acciones posibles son ACCEPT (paquete aceptado, que es la acción pordefecto) y REJECT (paquete eliminado, pero avisamos al origen).

4. Una vez introducido este comando, consultamos las reglas para comprobar que está creada.

5. Podemos repetir el ping desde el cliente al cortafuegos, pero ya no funciona. En el router/firewall Linux comprobaremos que la regla está cumpliendo su cometido. 

Para ello, borramos las reglas y añadimos de nuevo la regla anterior; pero primero añadimos una regla igual con distinta acción: LOG en lugar de DROP.

# iptables –A INPUT –i enp0s8 –p icmp –j LOG

# iptables –A INPUT –i enp0s8 –p icmp –j DROP

Una vez introducido este comando, consultamos las reglas para comprobar que está creada.

6. Desde el cliente, repetimos el intento de ping; y en el router/firewall Linux, miramos el /var/log/syslog
Veremos una línea por cada paquete bloqueado. Nos aparece la fecha, quién genera el log (kernel), la interfaz donde se ha bloqueado (IN=enp0s8) y muchos detalles del paquete (direcciones MAC e IP, protocolo, etc.). 

Si consultando el log no aparece nada sobre nuestro firewall, será que tenemos mal las condiciones de la regla o la hemos introducido en una etapa errónea o una tabla errónea.

7. Ahora quita de nuevo la línea DROP y comprueba desde el cliente que el ping vuelve a funcionar.

8. Ahora vamos a bloquear pings remotos. Para hacerlo hay que introducir la misma regla, pero ahora en la etapa FORWARD de la tabla filter. Si también ponemos la regla de log sería:

# iptables –A FORWARD –i enp0s8 –p icmp –j LOG

# iptables –A FORWARD –i enp0s8 –p icmp –j DROP9. Ahora vamos a bloquear el tráfico a Internet por HTTP (puerto 80) y HTTPS (puerto 443):

# iptables –A FORWARD –i enp0s8 –p tcp -–dport 80 –j DROP

# iptables –A FORWARD –i enp0s8 –p tcp -–dport 443 –j DROP

10. Piensa las reglas que tendrías que introducir para bloquear todo el tráfico que venga desde la tarjeta puente excepto el tcp/udp de los puertos bien conocidos (1-1024).

11. Supongamos ahora que nuestro firewall también tiene instalado un servidor FTP. Añade una regla para bloquear las conexiones FTP desde el exterior.

Un comentario

  1. test3

Deja un comentario

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