Iptables -F навсегда удаляет все правила iptables?


8

В учебном документе RHEL автор говорит:

... выполните следующую команду, чтобы отключить брандмауэр в текущей системе: iptables -F

Он явно использует слово «отключить», что для меня предполагает, что это будет просто повторно включить. Читая справочную страницу для iptables, я вижу это:

Сбросить выбранную цепочку (все цепочки в таблице, если ни одна не указана). Это эквивалентно удалению всех правил по одному.

Могу ли я получить разъяснения об ожидаемом поведении?


2
Обратите внимание, что iptables -Fсбрасывает все правила в таблице «фильтр», он не сбрасывает другие таблицы (nat, mangle ...) и не восстанавливает политики по умолчанию, поэтому нельзя сказать, что они отключены. брандмауэр .
Стефан Шазелас

Ответы:


13

Эти iptablesправила хранятся в двух местах в системах Red Hat:

  • В памяти внутри работающего ядра, где код брандмауэра проверяет их на сетевой ввод-вывод. Сброс правил с помощью iptables -Fизбавляется только от этого набора правил.

  • В /etc/sysconfig/iptablesкотором они загружаются при загрузке. Вы можете выполнить перезагрузку без перезагрузки с помощью service iptables reloadили ...restart.

Таким образом, ответ - нет, сбрасывание правил iptables -Fне является постоянным.

Когда вы заходите setupи изменяете правила брандмауэра, он сохраняет их в /etc/sysconfig/iptables. Вы не должны редактировать этот файл напрямую, но если вы знаете iptablesформат командной строки, вы можете довольно легко определить формат этого файла.


Фантастический ответ. Я ценю детали и разъяснения. Спасибо, Уоррен.
Майк Б

9

Также, для справки, вот как очистить ВСЕ текущие правила iptables:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT

4
На самом деле таблиц больше, чем это. По крайней мере -t rawи -t security. Вместо жесткого кодирования используйте/proc/net/ip_tables_names
derobert
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.