Cómo enumerar y eliminar reglas de Iptables
Iptables es una utilidad de firewall que está disponible de forma predeterminada en todas las distribuciones de Linux. Los iptables se utilizan normalmente para configurar, mantener e inspeccionar las tablas de reglas de filtrado de paquetes en su kernel de Linux.
Las reglas de iptables que ya no son necesarias o que se agregan por error deben eliminarse. Después de terminar este tutorial, aprenderá las diferentes formas de enumerar y eliminar reglas de iptables.
Para ejecutar comandos de iptables, necesita privilegios de usuario root o sudo.
Para enumerar (ver) todas las reglas en iptables
Para enumerar todas las reglas en todas las cadenas (INPUT, OUTPUT y FORWARD), iptables usa --list
o -L
opción.
Compruebe la sintaxis de la lista de iptables:
$ sudo iptables --list or $ sudo iptables -L
A continuación, el resultado de muestra muestra todas las cadenas sin reglas:
# iptables --list Chain INPUT (policy ACCEPT) Target prot opt source destination Chain FORWARD (policy ACCEPT) Target prot opt source destination Chain OUTPUT (policy ACCEPT) Target prot opt source destination
Déjame mostrarte otro ejemplo que tiene una regla en la cadena ‘SALIDA’.
# iptables -L Chain INPUT (policy ACCEPT) Target prot opt source destination Chain FORWARD (policy ACCEPT) Target prot opt source destination Chain INPUT (policy ACCEPT) Target prot opt source destination DROP icmp -- anywhere anywhere icmp echo-request
Eliminar todas las reglas de iptables (todas las cadenas)
Cuando esté buscando eliminar todas las reglas en una cadena, puede usar fácilmente la opción flush. Veamos cómo se usa -F
o --flush
en esta sección.
Tenga cuidado al eliminar todas las reglas, ya que puede eliminar su acceso ssh al servidor desde la terminal. Si eso sucede, la única opción sería configurar el acceso a través de la consola.
El siguiente comando vaciará todas las cadenas de iptables:
$ sudo iptables --flush or $ sudo iptables -F
Después de realizar el comando anterior, sus iptables se aclararán por completo. Puede verificar la salida usando iptables --list
mando.
Eliminar cadena específica
Para eliminar una cadena específica, debe usar -F
o --flush
seguido del nombre de la cadena. Veamos un ejemplo para eliminar completamente la cadena ‘SALIDA’ de las iptables.
El siguiente comando eliminará todas las reglas en la cadena de SALIDA:
$ sudo iptables -F OUTPUT
Cómo eliminar una regla específica dentro de una cadena
Es posible eliminar una regla específica dentro de una cadena. Tenemos dos opciones para eliminar por coincidencia de regla o número de regla especificado.
Eliminar por coincidencia de regla
El siguiente comando elimina una regla en la cadena de entrada haciendo coincidir.
$ sudo iptables -D INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
Eliminar por número de regla especificado
Para eliminar una regla por un número específico, primero debe enumerar el número de regla (iptables -L INPUT --line-numbers
).
A continuación se muestra un ejemplo que muestra los números de línea para las reglas en la cadena ‘INPUT’.
$ sudo iptables -L INPUT --line-numbers Chain INPUT (policy ACCEPT) Num target prot opt source destination 1 ACCEPT udp -- anywhere anywhere udp dpt:domain 2 ACCEPT tcp -- anywhere anywhere tcp dpt:domain . . .
Entonces, ahora tenemos el número de regla. Sigamos adelante y eliminemos la segunda regla usando -D
opción.
$ sudo iptables -D INPUT 2
Veamos un ejemplo práctico en el que desea eliminar todas las reglas nat, luego use los siguientes comandos.
Lista de todas las reglas nat
$ sudo iptables -L -t nat -v
Eliminar todas las reglas nat
$ sudo iptables -F -t nat -v
Conclusión
Debe tener cuidado antes de eliminar la regla iptables y recomendar tener una copia de seguridad antes. Espero que haya disfrutado leyendo y agregue su sugerencia en la sección de comentarios a continuación.