我最近使用本教程将全新安装的 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)