Este artículo explica cómo borrar reglas de iptables de forma rápida y sencilla.
El comando iptables -nL
se utiliza para listar las reglas de todas las cadenas (chains) del firewall. Con -n
se indica que la salida sea numérica (direcciones IP y puertos de forma numérica, ya que por defecto iptables
trata de mostrar los nombres de host y protocolos):
root@linuxito:~# iptables -nL | head -n 7 Chain INPUT (policy DROP) target prot opt source destination DROP all -- 197.89.182.190 0.0.0.0/0 DROP all -- 49.151.15.172 0.0.0.0/0 DROP all -- 99.140.105.147 0.0.0.0/0 DROP all -- 31.148.224.141 0.0.0.0/0 DROP all -- 168.227.164.252 0.0.0.0/0
Supongamos que se desea borrar la siguiente regla de la cadena INPUT
:
DROP all -- 99.140.105.147
Para borrar reglas, se debe utilizar el comando -D
indicando la regla tal como se muestra en la salida de iptables -nL
:
root@linuxito:~# iptables -D INPUT -s 99.140.105.147 -j DROP
Se observa que la regla ha sido eliminada:
root@linuxito:~# iptables -nL | head -n 7 Chain INPUT (policy DROP) target prot opt source destination DROP all -- 197.89.182.190 0.0.0.0/0 DROP all -- 49.151.15.172 0.0.0.0/0 DROP all -- 31.148.224.141 0.0.0.0/0 DROP all -- 168.227.164.252 0.0.0.0/0 DROP all -- 41.164.24.122 0.0.0.0/0
Sin embargo, el comando -D
tiene dos versiones. La segunda versión permite eliminar una regla simplemente especificando su número (orden) dentro de la cadena. Claro que para ello se debe conocer exactamente el número de regla que se desea eliminar. Para ello, listar las reglas con la opción --line-numbers
:
root@linuxito:~# iptables -nL --line-numbers | head -n 7 Chain INPUT (policy DROP) num target prot opt source destination 1 DROP all -- 197.89.182.190 0.0.0.0/0 2 DROP all -- 49.151.15.172 0.0.0.0/0 3 DROP all -- 99.140.105.147 0.0.0.0/0 4 DROP all -- 31.148.224.141 0.0.0.0/0 5 DROP all -- 168.227.164.252 0.0.0.0/0
Se desea entonces, borrar la regla número 3
. Simplemente se debe especificar el número de regla luego de la cadena:
root@linuxito:~# iptables -D INPUT 3
Esta versión del comando -D
es mucho más rápida y simple de utilizar:
root@linuxito:~# iptables -nL --line-numbers | head -n 7 Chain INPUT (policy DROP) num target prot opt source destination 1 DROP all -- 197.89.182.190 0.0.0.0/0 2 DROP all -- 49.151.15.172 0.0.0.0/0 3 DROP all -- 31.148.224.141 0.0.0.0/0 4 DROP all -- 168.227.164.252 0.0.0.0/0 5 DROP all -- 41.164.24.122 0.0.0.0/0