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

firewalld не работает в CentOS 8: в iptables не создается никаких правил

Я недавно обновил чистую установку CentOS 7 до CentOS 8, используя этот учебник:

https://www.tecmint.com/upgrade-centos-7-to-centos-8/

У меня не было установленного дополнительного программного обеспечения, только базовая установка. После обновления первое, что я попытался сделать, это открыть двери только для SSH и HTTP, поэтому я включил и запустил firewalld:

systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-12-24 11:05:50 -02; 10min ago
     Docs: man:firewalld(1)
 Main PID: 7620 (firewalld)
    Tasks: 2 (limit: 17886)
   Memory: 22.1M
   CGroup: /system.slice/firewalld.service
           └─7620 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

dez 24 11:05:49 renie.cc systemd[1]: Stopped firewalld - dynamic firewall daemon.
dez 24 11:05:49 renie.cc systemd[1]: Starting firewalld - dynamic firewall daemon...
dez 24 11:05:50 renie.cc systemd[1]: Started firewalld - dynamic firewall daemon.

Затем добавили службы ssh и http:

firewall-cmd --add-service http
firewall-cmd --add-service http --permanent
firewall-cmd --add-service ssh
firewall-cmd --add-service ssh --permanent
firewall-cmd --add-service ssh
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: http ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Но в IPTables я вообще не вижу правила:

iptables -nvL
Chain INPUT (policy ACCEPT 143 packets, 13998 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 114 packets, 13295 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Даже после перезагрузки сервера правила не создаются. Может ли это быть вызвано обновлением CentOS 7 → CentOS 8?

Я не тестировал и не использовал firewalld перед обновлением этого сервера, но у меня есть другие серверы CentOS 7, на которых есть работающий firewalld.

Есть ли какой-нибудь журнал, который я могу проанализировать, чтобы отладить проблему?

Заранее спасибо.

Потому что ты не видишь iptables правило, не означает Firewalld не работает. Фактически Firewalld перешел на использование столы как бэкэнд. Так что вы можете найти свои правила, например:

nft list ruleset

Правила, которые вы добавили для ssh и http вероятно будет в цепочке filter_IN_public_allow:

        chain filter_IN_public_allow {
                tcp dport ssh ct state new,untracked accept
                tcp dport http ct state new,untracked accept
        }

Вы, вероятно, будете также найти пустой iptables правила (но рассматриваются как столы rules) на выходе nft list ruleset, так как iptables использует столы API ядра совместимости:

# iptables -V
iptables v1.8.2 (nf_tables)

полезная ссылка: Redhat - Firewalld: будущее - это nftables