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