Centos
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轉而使用nftables作為後端。所以你可以找到你的規則,例如:
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規則(但被視為nftables規則)
nft list ruleset
,因為iptables使用的是nftables兼容性核心 API:# iptables -V iptables v1.8.2 (nf_tables)