目录
2. firewalld概述 2. firewalld 概述
一、原理与理论
1. Linux防火墙基础
Netfilter框架:Linux内核的数据包过滤系统(iptables/nftables底层支撑)。
包处理流程:数据包经过
PREROUTING
→INPUT/FORWARD
→OUTPUT
→POSTROUTING
链的过滤。防火墙类型:
静态防火墙(iptables):规则更新需重启服务。
动态防火墙(firewalld):规则实时生效,无需中断连接。
2. firewalld概述 2. firewalld 概述
核心特性:
基于区域(Zone) 和服务(Service) 的抽象管理。
支持运行时(Runtime) 和永久(Permanent) 双配置模式。
使用D-Bus接口实现动态规则更新。
工作流程:
二、背景与目的
1. 为何需要firewalld?
iptables规则复杂且变更需重载,影响生产环境连续性。
firewalld通过预定义服务(如http、ssh)简化配置,提升可维护性。
2. 适用场景
多网络环境切换(如笔记本移动办公)。
需动态调整规则的云服务器/容器环境。
三、配置方法与步骤
1. 基础操作命令
# 查看活动区域
firewall-cmd --get-active-zones
# 添加HTTP服务到public区域(运行时)
firewall-cmd --zone=public --add-service=http
# 永久生效
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload # 重载配置
2. 关键配置详解
功能 | 命令示例 |
---|---|
开放端口 | firewall-cmd --add-port=8080/tcp |
绑定网卡到区域 | firewall-cmd --zone=work --change-interface=eth0 |
设置默认区域 | firewall-cmd --set-default-zone=trusted |
允许IP段访问 | firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' |
四、问题及解决方案
常见故障排查
服务未生效
检查:
firewall-cmd --list-all --zone=public
确认规则是否存在。解决:确保使用
--permanent
后执行--reload
。
端口开放但无法访问
可能原因:SELinux限制或服务未监听公网IP。
验证:
ss -tuln | grep 8080
检查监听地址。
富规则(Rich Rules)优先级冲突
原则:先添加的规则优先匹配。
调整:使用
--remove-rich-rule
删除旧规则后重新排序添加。
五、总结与心得
firewalld优势: firewalld 优势 :
灵活性:动态更新规则,适应网络环境变化。
易用性:基于服务的配置降低复杂度。
实践建议:
生产环境操作前备份配置:
cp /etc/firewalld/firewalld.conf{,.bak}
。使用
--permanent
修改后必须--reload
生效。复杂规则优先使用富规则(Rich Rules)保证可读性。