Как удалить правило iptables и все правила


Удалить правило iptables можно по его номеру или ориентируясь на содержание сохранив предварительно список правил в файл и загрузив обратно данные из файла после редактирования.



Цепочки iptables, просмотр правил


iptables представляет собой системный сетевой фильтр состоящий из нескольких цепочек, правил и политики фильтрации. Схематично структура выглядит так:


удалить правило iptables


Чтобы просмотреть список используемых системой правил нужно выполнить команду iptables-save. Она сохраняет все изменения в файл если вывод перенаправить, по умолчанию выводит правила в терминал.

iptables-save



Как удалить одно правило iptables по номеру строки


Можно удалить одно правило — например, по номеру строки


Так выводится пронумерованный список правил:

iptables -L --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
3    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
4    f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
5    ispmgr_deny_ip  all  --  anywhere             anywhere            
6    ispmgr_allow_ip  all  --  anywhere             anywhere            
7    ispmgr_allow_sub  all  --  anywhere             anywhere            
8    ispmgr_deny_sub  all  --  anywhere             anywhere            
9    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
10   ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW multiport dports heathview:35999
11   ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW multiport dports ftp-data:ssh,smtp,http,https,pop3,imap,urd,submission,imaps,pop3s,domain,mysql,postgres,44477
12   ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW multiport dports vlsi-lm
13   ACCEPT     udp  --  anywhere             anywhere             ctstate NEW multiport dports domain
14   ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
15   ACCEPT     icmp --  anywhere             anywhere            
16   ACCEPT     all  --  anywhere             anywhere            
17   ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh


Удалим одно из них с указанием таблицы, и цепочки (iptables -t TABLE -D INPUT номер_строки)

Возьмем девятое правило из списка:

iptables -t nat -D INPUT 9



Также можно удалять правила применяя ключ -D без номера, приводя полное правило:


Команда приведенная ниже разрешит обращения по перечисленным портам

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 20:22,25,80,443 -j ACCEPT



С ключом -D правило будет удалено

iptables -D INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 20:22,25,80,443 -j ACCEPT



Каждый раз необходимо выполнять iptables-save чтобы проверить результат.

Если нужно отредактировать несколько правил или много правил, то проще сначала сохранить все правила в файл. Отредактировать его, затем загрузить их вновь.


iptables-save > /tmp/iptabeles.txt


iptables-restore < /tmp/iptabeles.txt



Как сбросить все правила iptables


В iptables удалить все правила можно удалить выполнив в консоли команду iptables с флагом -F (flush)

iptables -F



Перед выполнением команды обязательно нужно выполнить iptables-save и убедиться в том, что политика для входящих пакетов на INPUT установлена в ACCEPT, в противном случае можно потерять доступ к серверу.



Перед очисткой правил всегда нужно их просмотреть и сохранить в файл.

Все правила и политики можно вывести такой командой

iptables -S

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT


В примере выше политики для INPUT, FORWARD и OUTPUT установлены в состояние ACCEPT. Значит после сброса правил iptables -F доступ к серверу извне потерян не будет.

С INPUT DENY было бы иначе. При такой конфигурации политикой запрещается доступ, за счет правил разрешается, при сбросе правил остается только запрет.



Если нам интересны правила для определенной цепочки нужно использовать ключ -L и название цепочки. Их можно сохранить отдельно

iptables -L INPUT



Читайте про сохранение правил iptables после перезагрузки



Сказать спасибо