Información obtenidad de aquí.

Introducción

Iptables es el programa que hace las funciones de cortafuegos en los sistemas Debian (así como en otras distribuciones GNU Linux). Desde hace algunos años está integrado en el nucleo del sistema esto implica, al no ser un servicio, que no se puede detener.

Como se listan las reglas

Para mostrar las reglas configuradas en iptables existen diversas opciones -L lista y --line-numbers muestra el número de la línea.

$ sudo iptables -L --line-numbers -t nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    DNAT       tcp  --  anywhere             anywhere             tcp dpt:http to:192.168.1.1:80

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    MASQUERADE  all  --  anywhere             anywhere

La opción -S muestra las reglas como el comando que se emplea para añadirlas.

$ sudo iptables -S -t nat
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
-A POSTROUTING -o wlan0 -j MASQUERADE

Finalmente, la opción -t indica a iptables que tabla emplear, en el ejemplo -t nat emplea la tabla nat. Las opciones son filter (por defecto), nat, mangle y raw.

Tablas y cadenas

Cada una de las tablas tiene ciertas cadenas asociadas, aunque compartan el nombre se trata de cadenas diferentes, además de las cadenas obligatorias se pueden crear nuevas con otros nombres.

filter (OUTPUT, INPUT, FORWARD)

raw (OUTPUT, PREROUTING)

nat (INPUT, OUTPUT, PREROUTING, POSTROUTING)

mangle (INPUT, OUTPUT, PREROUTING, POSTROUTING, FORWARD)

Para añadir una regla a iptables la tabla precedida de -t, la opción a ejecutar: -A para añadir al final o -I para insertar en una posición seguida del número o -D para borrar y las demás opciones como en el ejemplo. Añade al final de las reglas de filter en la cadena INPUT un bloqueo a las ip 20.0.0.4/24 que usen el protocolo udp con destino las ip 192.168.1.1/24, se bloquean (DROP).

sudo iptables -t filter -A INPUT -p udp -s 20.0.0.0/24 -d 192.168.1.1/24 -j DROP

Para comprobar qué reglas se están aplicando usamos el comando siguiente:

sudo iptables -L -n -t nat -v