У меня есть машина с CentOS 7, на которой я пытаюсь добавить несколько собственных правил брандмауэра. Обычно я использую firewalld, поэтому добавил их так:
firewall-cmd --permanent --direct --add-chain ipv4 filter DOCKER-USER
# Add rules (see comments for details)
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -j REJECT -i eth0 -dport 27017
В direct.xml
файл выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<direct>
<chain table="filter" ipv="ipv4" chain="DOCKER-USER"/>
<rule priority="0" table="filter" ipv="ipv4" chain="DOCKER-USER">-j REJECT -i
eth0 -dport 27017</rule>
</direct>
Все идет нормально. Тем не менее, когда я пытаюсь перезагрузить правила, я получаю такую ошибку:
Error: COMMAND_FAILED: Direct: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.4.21: The -t option (seen in line 3) cannot be used in iptables-restore.
Чтение этот отчет об ошибке, похоже, что где-то есть некоторая несогласованность в синтаксическом анализаторе командной строки, но я действительно не понимаю, где и почему. В чем дело? Как я могу добавить эти правила с помощью firewall-cmd?