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

Почему iptables не видит правила, добавленные с помощью firewalld?

У меня есть машина CentOS7, и я использую firewalld в качестве брандмауэра. Недавно я добавил несколько правил, используя firewall-cmd:

# Removing DOCKER-USER CHAIN (it won't exist at first)
firewall-cmd --permanent --direct --remove-chain ipv4 filter DOCKER-USER

# Flush rules from DOCKER-USER chain (again, these won't exist at first; firewalld seems to remember these even if the chain is gone)
firewall-cmd --permanent --direct --remove-rules ipv4 filter DOCKER-USER

# Add the DOCKER-USER chain to 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 файл; правила есть. Проверяю с помощью firewall-cmd и вижу цепочку и правила:

firewall-cmd --permanent --direct --get-rules ipv4 filter DOCKER-USER
0 -j REJECT -i eth0 -dport 27017

И все же, если я сделаю iptables -nvL, Нигде не вижу этой цепочки:

iptables -nvL |grep DOCKER
    0     0 DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
Chain DOCKER (1 references)
Chain DOCKER-ISOLATION (1 references)

И если я использую firewall-cmd, Я не вижу цепочек, которые появляются с использованием iptables либо. Например, у меня есть f2b-sshd цепочка, созданная fail2ban, но ничего не возвращает:

firewall-cmd --permanent --direct --get-rules ipv4 filter f2b-sshd

В чем дело? У меня была идея, что и iptables, и firewalld просто управляли базовым ядром, что они были просто разными интерфейсами для одного и того же. Почему один не видит правил, созданных другим? А какие преобладают?

Ладно, посмотрел журналы ошибок.

firewalld[573]: ERROR: '/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.

Вот почему правила не появились: они не применялись.

Теперь возникает вопрос: как использовать firewalld для добавления правил в данную таблицу или цепочку ...