GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo eliminar reglas específicas de iptables?

La mejor solución que funciona para mí sin ningún problema se ve de esta manera:
1. Agregue una regla temporal con algún comentario:

comment=$(cat /proc/sys/kernel/random/uuid | sed 's/\-//g')
iptables -A ..... -m comment --comment "${comment}" -j REQUIRED_ACTION

2. Cuando se agregue la regla y desee eliminarla (o todo lo que tenga este comentario), haga lo siguiente:

iptables-save | grep -v "${comment}" | iptables-restore

Por lo tanto, eliminará al 100 % todas las reglas que coincidan con $comment y dejará las demás líneas intactas. Esta solución funciona durante los últimos 2 meses con alrededor de 100 cambios de reglas por día, sin problemas. Espero que ayude


Ejecute los mismos comandos pero reemplace "-A" con "-D". Por ejemplo:

iptables -A ...

se convierte

iptables -D ...

También puede usar el número de la regla (--line-numbers ):

iptables -L INPUT --line-numbers

Salida de ejemplo:

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 
    3    ACCEPT     udp  --  anywhere  anywhere             udp dpt:bootps 
    4    ACCEPT     tcp  --  anywhere  anywhere             tcp dpt:bootps

Entonces, si desea eliminar la segunda regla:

iptables -D INPUT 2

Actualizar

Si usa (d) una tabla específica (por ejemplo, nat), debe agregarla al comando de eliminación (gracias a @ThorSummoner por el comentario)

sudo iptables -t nat -D PREROUTING 1

Primero enumere todas las reglas de iptables con este comando:

iptables -S

se enumera como:

-A XYZ -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

Luego copie la línea deseada y simplemente reemplace -A con -D para borrar eso:

iptables -D XYZ -p ...

Linux
  1. CentOS / RHEL 6:Cómo guardar las reglas de iptables

  2. ¿Cómo puedo vincular a una versión específica de glibc?

  3. ¿Cómo puedo encontrar un archivo específico desde una terminal Linux?

  4. ¿Cómo puedo excluir un directorio del comando ls?

  5. ¿Cómo puedo crear un archivo con un tamaño específico desde una línea de comando?

Cómo configurar el cortafuegos de iptables en Linux

Cómo quitar un comando del historial en Linux

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo:Configuración básica de archivos de IPTables

¿Cómo eliminar Swap Space de Centos 7.x?

¿Cómo puedo eliminar el historial ANTIGUO de Google Chrome?