Firewalld 在 CentOS 8 中不起作用:iptables 中根本没有创建任何规则

Firewalld 在 CentOS 8 中不起作用:iptables 中根本没有创建任何规则

我最近使用本教程将全新安装的 CentOS 7 升级到了 CentOS 8:

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

我没有安装任何额外的软件,只有基本安装。升级后,我尝试做的第一件事是只打开 SSH 和 HTTP 的门,因此我启用并启动了防火墙:

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 服务器。

是否有任何日志可以供我分析以调试问题?

提前致谢。

答案1

因为你看不到任何iptables规则,并不意味着防火墙不起作用。实际上防火墙切换到使用nftables作为后端。因此,您可以使用以下方式找到规则:

nft list ruleset

您添加的规则远程控制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规则(但被视为nftables规则)在 的输出中nft list ruleset,因为iptables正在使用nftables兼容内核 API:

# iptables -V
iptables v1.8.2 (nf_tables)

有用的链接:Redhat - Firewalld:未来属于 nftables

相关内容