Skip links

Cómo enumerar y eliminar las reglas del firewall de Iptables

Cómo enumerar y eliminar las reglas del firewall de Iptables

Iptables se utiliza para configurar, mantener e inspeccionar las tablas de reglas de filtrado de paquetes IP de cualquier distribución de Linux.  El uso más común es el filtrado de los paquetes que entran y salen de la red.

Enumerar todas las reglas de iptables activas

Listado de reglas por especificación para enumerar todas las reglas de iptables activas por especificación, ejecute el comando iptables con la opción -S:

iptables -S

Verás una salida como ésta:

-N LOCALINPUT
-N LOCALOUTPUT
-N LOGDROPIN
-N LOGDROPOUT
-A INPUT -s 8.8.4.4/32 ! -i lo -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -s 8.8.4.4/32 ! -i lo -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -s 8.8.4.4/32 ! -i lo -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -s 8.8.4.4/32 ! -i lo -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 8.8.8.8/32 ! -i lo -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -s 8.8.8.8/32 ! -i lo -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -s 8.8.8.8/32 ! -i lo -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -s 8.8.8.8/32 ! -i lo -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 213.186.33.99/32 ! -i lo -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -s 213.186.33.99/32 ! -i lo -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -s 213.186.33.99/32 ! -i lo -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -s 213.186.33.99/32 ! -i lo -p udp -m udp --sport 53 -j ACCEPT
-A INPUT ! -i lo -j LOCALINPUT
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -p tcp -j INVALID
-A INPUT ! -i lo -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A INPUT ! -i lo -p icmp -m icmp --icmp-type 8 -j LOGDROPIN
-A INPUT ! -i lo -p icmp -j ACCEPT
-A INPUT ! -i lo -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT ! -i lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 20 -j ACCEPT
-A INPUT ! -i lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 21 -j ACCEPT
-A INPUT ! -i lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ACCEPT
-A INPUT ! -i lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 25 -j ACCEPT
-A INPUT ! -i lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 53 -j ACCEPT
-A INPUT ! -i lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 80 -j ACCEPT

Listar una cadena específica

Si desea limitar la salida a una cadena específica (INPUT, OUTPUT, TCP, etc.), puede especificar el nombre de la cadena directamente después de la opción -S. Por ejemplo, para mostrar todas las especificaciones de reglas en la cadena TCP, ejecutaría este comando:

iptables -S TCP

Listado de reglas como tablas

Enumerar las reglas de iptables en la vista de tabla puede ser útil para comparar diferentes reglas entre sí, Para generar todas las reglas de iptables activas en una tabla, ejecute el comando iptables con la opción -L:

 

 iptables -L

Esto generará todas las reglas actuales ordenadas por cadena. Si desea limitar la salida a una cadena específica (INPUT, OUTPUT, TCP, etc.), puede especificar el nombre de la cadena directamente después de la opción -L. Echemos un vistazo a un ejemplo de cadena INPUT:

iptables -L INPUT
[root@nmve hosting]# iptables -L INPUT
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  dns.google           anywhere             tcp dpt:domain
ACCEPT     udp  --  dns.google           anywhere             udp dpt:domain
ACCEPT     tcp  --  dns.google           anywhere             tcp spt:domain
ACCEPT     udp  --  dns.google           anywhere             udp spt:domain
ACCEPT     tcp  --  dns.google           anywhere             tcp dpt:domain
ACCEPT     udp  --  dns.google           anywhere             udp dpt:domain
ACCEPT     tcp  --  dns.google           anywhere             tcp spt:domain
ACCEPT     udp  --  dns.google           anywhere             udp spt:domain
ACCEPT     tcp  --  cdns.ovh.net         anywhere             tcp dpt:domain
ACCEPT     udp  --  cdns.ovh.net         anywhere             udp dpt:domain
ACCEPT     tcp  --  cdns.ovh.net         anywhere             tcp spt:domain
ACCEPT     udp  --  cdns.ovh.net         anywhere             udp spt:domain
LOCALINPUT  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
INVALID    tcp  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request limit: avg 1/sec burst 5
LOGDROPIN  icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW tcp dpt:ftp-data
ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW tcp dpt:ftp

La primera línea de salida indica el nombre de la cadena (INPUT, en este caso), seguido de su política predeterminada (DROP). La siguiente línea consta de los encabezados de cada columna de la tabla y va seguida de las reglas de la cadena. Repasemos lo que indica cada encabezado:

target : si un paquete coincide con la regla, el objetivo especifica qué se debe hacer con él. Por ejemplo, un paquete puede aceptarse, descartarse, registrarse o enviarse a otra cadena para compararlo con más reglas.

prot: el protocolo, como tcp, udp, icmp o todos opt: Rara vez utilizado, esta columna indica opciones de IP

source : la dirección IP de origen o la subred del tráfico, o en cualquier lugar

destination: La última columna, que no está etiquetada, indica las opciones de una regla. Es decir, cualquier parte de la regla que no esté indicada en las columnas anteriores. Esto podría ser cualquier cosa, desde puertos de origen y destino, hasta el estado de conexión del paquete.

Lista de cadenas existentes

iptables -L -n
iptables -L -n -v
iptables -L chain-name -n -v
iptables -L spamips -n -v

Enumerar las cadenas existentes con el número de línea

iptables -L INPUT -n --line-numbers
iptables -L OUTPUT -n --line-numbers
iptables -L OUTPUT -n --line-numbers | less
iptables -L spamips -n -v --line-numbers
iptables -L spamips -n -v --line-numbers | grep 190.4.111.128

Verás algo como esta lista desplegable de cadenas

num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 LOG        0    --  *      *       190.4.111.128/19     0.0.0.0/0        
2        0     0 DROP       0    --  *      *       190.4.111.0/19     0.0.0.0/0           
3        0     0 LOG        0    --  *      *       190.4.8.0/22        0.0.0.0/0          

Obtendrás la lista de todas las IP bloqueadas. Mira el número de la izquierda, luego use el número para borrarlo. Por ejemplo, elimine la línea número 2 (subner 190.4.111.0/19), ingrese:

iptables -D INPUT 2

También puede usar la siguiente sintaxis para eliminar / desbloquear una IP usando la siguiente sintaxis:

iptables -D INPUT -s xx.xxx.xx.xx -j DROP
iptables -D INPUT -s xx.xxx.xx.xx/yy -j DROP
iptables -D spamlist -s 180.65.1.2 -d 0/0 -j DROP
iptables -D spamlist -s 180.65.1.2/29 -d 0/0 -j DROP

Finalmente, asegúrese de guardar el firewall. En CentOS / Fedora / RHEL / Redhat Linux, escriba el siguiente comando:

 

service iptables save