Назад | Перейти на главную страницу

CentOS 7 firewallD удалить прямое правило

После обновления системы с 6.5 до 7 я начал изучать реализацию динамического брандмауэра, однако допустил ошибку, добавив следующее правило

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP

что приводит к тому, что машина выводит всю продукцию наружу,

Я пытался использовать

firewall-cmd --permanent --direct --remove-rule ipv4 filter OUTPUT 1 -j DROP

приветствовать всех снова.

Однако после

firewall-cmd --reload

и

брандмауэр-cmd --direct --get-all-rules

, Я считаю, что это правило автоматически возвращается.

Я даже пробовал

firewall-cmd --complete-reload

но никакого эффекта.

Что я могу сделать сейчас?

В конце концов я обнаружил, что команда удаления работает только один раз, потому что правила записаны в direct.xml

Таким образом, решение простое, отредактируйте direct.xml и прокомментируйте соответствующие строки или просто удалите их.

После борьбы с упорно персистирующим правилом редиректа я понял через тестирование следующего:

  1. iptables БД правил временная
  2. firewall-cmd --permanent БД правил сохраняется после перезагрузки, перезаписи iptables БД правил после перезагрузки

  3. firewall-cmd --permanent --direct БД правил хранится в /etc/firewalld/direct.xml сохраняется несмотря на firewall-cmd [--permanent] --direct --remove-rule если файл БД не удален

  4. firewall-cmd [--permanent] --direct --query-rule будет лгать о сохранении правил в /etc/firewalld/direct.xml

просто попробовал то же самое, и мой direct.xml был очищен после запуска

firewall-cmd --direct --remove-rule ...

без --постоянный вариант.
После перезагрузки нет прямых правил, которые были удалены.

С этой опцией правила вернулись после перезагрузки.

firewall-cmd [--permanent] --direct --remove-rules { ipv4 | ipv6 | eb } цепочка таблиц

Нет необходимости редактировать файл direct.xml. Сделайте:

# systemctl restart firewalld

и это будет делать.