firewalld快速入门

麻辣香锅
麻辣香锅
管理员
5
文章
0
粉丝
系统运维评论94阅读模式

以下是 Rocky Linux 9(firewalld + nftables 后端)生产环境中最常见、最实用的操作整理,涵盖安装、启停、查看、规则管理、白名单、端口控制等核心命令。


🧱 一、基础操作

操作 命令
安装 firewalld dnf install -y firewalld
启动并设为开机自启 systemctl enable --now firewalld
查看状态 systemctl status firewalld
查看后端(Rocky9 默认 nftables) firewall-cmd --info-backend
临时关闭防火墙(慎用) systemctl stop firewalld
永久禁用(慎用) systemctl disable firewalld

🧰 二、查看规则状态

firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --list-all
firewall-cmd --zone=public --list-all
firewall-cmd --list-services
firewall-cmd --list-ports

⚙️ 三、常见端口与服务管理

➕ 开放端口

# 临时(重启失效)
firewall-cmd --add-port=8080/tcp

# 永久(需 reload)
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

➖ 关闭端口

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

➕ 开放服务(基于 /usr/lib/firewalld/services/*.xml

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

🔒 四、白名单/黑名单控制

✅ 允许特定 IP

firewall-cmd --permanent --add-source=192.168.1.10
firewall-cmd --reload

🚫 拒绝某个 IP(使用 rich rule)

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" reject'
firewall-cmd --reload

🧩 五、自定义区域(Zone)

创建新区域

firewall-cmd --permanent --new-zone=webzone
firewall-cmd --permanent --zone=webzone --add-source=192.168.10.0/24
firewall-cmd --permanent --zone=webzone --add-service=http
firewall-cmd --permanent --zone=webzone --add-service=https
firewall-cmd --reload

查看所有区域

firewall-cmd --get-zones
firewall-cmd --list-all-zones

设置默认区域

firewall-cmd --set-default-zone=public

🧱 六、NAT / 转发配置(容器或代理常用)

启用转发

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

端口转发

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --reload

🔍 七、调试与验证

查看实时规则(nftables)

nft list ruleset

查看 firewalld 生成的 nft 表

nft list table inet firewalld

测试端口可达性

ss -lntup
nc -vz <host_ip> 80

🧯 八、生产环境常见策略模板

🚦 默认安全模板(常用)

# 启动 firewalld
systemctl enable --now firewalld

# 仅开放 22, 80, 443
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

# 禁用其他
firewall-cmd --set-default-zone=drop
firewall-cmd --reload

效果: 仅允许 22/80/443,其余流量全部丢弃。


🧩 白名单全通模板

firewall-cmd --permanent --new-zone=whitelist
firewall-cmd --permanent --zone=whitelist --add-source=1.2.3.4
firewall-cmd --permanent --zone=whitelist --add-source=5.6.7.8
firewall-cmd --permanent --zone=whitelist --set-target=ACCEPT
firewall-cmd --set-default-zone=drop
firewall-cmd --reload

效果: 仅 1.2.3.4 与 5.6.7.8 可访问所有端口。


📘 九、日志与持久化

开启日志记录(拒绝时)

firewall-cmd --set-log-denied=all

查看日志:

journalctl -xeu firewalld
tail -f /var/log/messages

✅ 十、快速恢复默认配置

firewall-cmd --complete-reload
firewall-cmd --permanent --reload

或彻底重置:

rm -rf /etc/firewalld/zones/*
systemctl restart firewalld

 
麻辣香锅
  • 本文由 麻辣香锅 发表于2025年10月28日 21:13:29
  • 转载请务必保留本文链接:https://www.wtcat.com/77.html
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证