В учебном документе RHEL автор говорит:
... выполните следующую команду, чтобы отключить брандмауэр в текущей системе: iptables -F
Он явно использует слово «отключить», что для меня предполагает, что это будет просто повторно включить. Читая справочную страницу для iptables, я вижу это:
Сбросить выбранную цепочку (все цепочки в таблице, если ни одна не указана). Это эквивалентно удалению всех правил по одному.
Могу ли я получить разъяснения об ожидаемом поведении?
iptables -F
сбрасывает все правила в таблице «фильтр», он не сбрасывает другие таблицы (nat, mangle ...) и не восстанавливает политики по умолчанию, поэтому нельзя сказать, что они отключены. брандмауэр .Ответы:
Эти
iptables
правила хранятся в двух местах в системах Red Hat:В памяти внутри работающего ядра, где код брандмауэра проверяет их на сетевой ввод-вывод. Сброс правил с помощью
iptables -F
избавляется только от этого набора правил.В
/etc/sysconfig/iptables
котором они загружаются при загрузке. Вы можете выполнить перезагрузку без перезагрузки с помощьюservice iptables reload
или...restart
.Таким образом, ответ - нет, сбрасывание правил
iptables -F
не является постоянным.Когда вы заходите
setup
и изменяете правила брандмауэра, он сохраняет их в/etc/sysconfig/iptables
. Вы не должны редактировать этот файл напрямую, но если вы знаетеiptables
формат командной строки, вы можете довольно легко определить формат этого файла.источник
Также, для справки, вот как очистить ВСЕ текущие правила iptables:
источник
-t raw
и-t security
. Вместо жесткого кодирования используйте/proc/net/ip_tables_names