После обновления системы с 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
и прокомментируйте соответствующие строки или просто удалите их.
После борьбы с упорно персистирующим правилом редиректа я понял через тестирование следующего:
iptables
БД правил временнаяfirewall-cmd --permanent
БД правил сохраняется после перезагрузки, перезаписи iptables
БД правил после перезагрузки
firewall-cmd --permanent --direct
БД правил хранится в /etc/firewalld/direct.xml
сохраняется несмотря на firewall-cmd [--permanent] --direct --remove-rule
если файл БД не удален
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
и это будет делать.