麒麟 firewalld / nftables 防火墙怎么配
麒麟服务器上 firewalld(服务式管理)与 nftables(规则式底层)的关系与配置方法,含常用命令与「默认拒绝+白名单」基线。
结论先行
两条路别混着直接改:日常用 firewalld 管理服务/区域(动态、有回滚),排障看 nftables 实际规则(firewalld 的底层就是 nftables)。基线思路:默认入站拒绝,按「服务 + 源 IP」白名单放行。
常用命令(firewalld)
systemctl status firewalld # 确认服务在跑
firewall-cmd --state
firewall-cmd --get-active-zones # 各网卡所在区域
firewall-cmd --list-all --zone=public # 看某区域放行内容
# 放行示例:只允许管理网段访问 ssh
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=10.20.0.0/24 service name=ssh accept'
firewall-cmd --reload
--permanent+--reload才是持久化生效;漏了 reload,重启即丢。
看 nftables 实际规则
nft list ruleset # 看当前全部规则(含 firewalld 生成的)
- 排障顺序:firewalld 侧配置 →
nft list ruleset实际加载 → 抓包确认包是否到达。 - 手改 nftables 规则后,firewalld 一 reload 可能被刷掉;firewalld 在跑的环境里,不要在 nftables 层乱加规则。
条目(如 高级服务器 V11 x86-64)默认是否启用 firewalld、默认区域策略,以条目页说明为准;桌面版(如 桌面 V11 x86-64)桌面场景别直接套服务器默认拒绝策略。
配置基线(服务器)
- 入站默认拒绝,只放行业/业务需要的服务与源段。
- 管理面(ssh)限源网段。
- 变更走
--permanent+ reload,改前firewall-cmd --list-all留底。