Вопрос: лучший способ очистить все правила iptables


У меня есть этот фрагмент:

# flush all chains
iptables -F
iptables -t nat -F
iptables -t mangle -F
# delete all chains
iptables -X

Есть ли вероятность того, что некоторое непроницаемое правило останется в живых после этого?

Идея состоит в том, чтобы иметь полностью чистую конфигурацию iptables, которую можно легко заменить новым набором правил (параметры nevermind routes / ifconfig).


56
2017-11-11 03:18


Источник




Ответы:


Чтобы ответить на ваш вопрос лаконично, нет: не было бы никаких «оставшихся» правил после промывки каждого стола. Однако в интересах тщательности вы можете установить политику для встроенного INPUT а также FORWARD цепочки к ACCEPT, также:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

Очистить правила ip6tables:

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

... и это должно это сделать. iptables -nvL должен произвести это (или очень аналогичный) выход:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

72
2017-11-11 05:52



вы забыли о «raw»: iptables -t raw -F iptables -t raw -X - kK-Storm


Это правильно полностью переустановит вашу систему iptables в очень основное состояние:

iptables-save | awk '/^[*]/ { print $1 } 
                     /^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
                     /COMMIT/ { print $0; }' | iptables-restore

Все политики будут сброшены в ACCEPT, а также для очистки каждой таблицы в текущем использовании. Все цепочки, кроме встроенных цепей, больше не будут существовать.


16
2017-11-11 03:57



Аккуратный взлом! Я бы не стал зависеть от этого, так как всегда возможно, что незначительные изменения в формате сохранения / восстановления могут нарушить его. Вероятно, лучше всего придерживаться API, чтобы iptables инструмент явно предоставляет ИМО. - Steven Monday
Я передумал: формат данных вряд ли изменится больше, поскольку он используется так широко. +1. - Steven Monday
+1, интересный взлом - Sam Halicke


Всякий раз, когда мне нужно отключить брандмауэр, это примерно так:

  • iptables-save > iptables.bak
  • service iptables stop (я нахожусь в Fedora)

2
2017-11-11 05:13





Это можно сделать в 1 или 2 командах:

 $ sudo iptables-save > iptables.bak
 $ sudo iptables -F

Результат:

$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 3138 packets, 5567K bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3602 packets, 6547K bytes)
pkts bytes target     prot opt in     out     source               destination         

0
2018-04-29 05:13



Если в настоящее время политики по умолчанию установлены на DROP, это быстрый способ получить блокировку с сервера. Итак, нет, это не 1 или 2 командный процесс. Вы должны сначала установить ACCEPT, если это не в настоящее время. - RyanH