firewalld是Linux主流防火墙工具,通过区域和服务管理流量。启用服务并设置开机自启,配置active zone如public,遵循最小权限原则开放必要端口或服务,使用rich规则限制源IP访问,保存为永久规则并重载。开启日志记录被拒绝流量,定期审计规则列表,确保安全策略有效,避免误配导致连接中断。

Linux系统中,firewalld 是目前主流的动态防火墙管理工具,广泛用于 CentOS、RHEL、Fedora 等发行版。合理配置 firewalld 规则不仅能提升系统安全性,还能灵活控制网络访问。以下是安全配置 firewalld 的关键步骤和建议。
理解 firewalld 的基本概念
firewalld 使用“区域(zone)”和“服务(service)”来管理流量规则,不同于传统的 iptables 直接操作链,它更直观且支持运行时配置。
• 区域(Zone):定义信任级别,如 public(公共网络)、internal(内部网络)、trusted(受信任网络)等,每个区域可设置不同的规则。• 服务(Service):预定义的端口和协议组合,例如 http、ssh、https 等,便于快速开放常用服务。
• 运行时与永久配置:运行时规则重启后失效,需使用 --permanent 参数保存为永久规则。
启用并启动 firewalld
确保 firewalld 正在运行,并设置开机自启:
• 启动服务:systemctl start firewalld• 开机自启:systemctl enable firewalld
• 查看状态:firewall-cmd --state 或 systemctl status firewalld
初次启用前,建议先通过 SSH 登录测试,避免误操作导致远程连接中断。
配置安全的区域与规则
默认情况下,public 区域是活动区域。应根据实际网络环境调整区域设置。
• 查看当前区域:firewall-cmd --get-active-zones• 设置接口所属区域:firewall-cmd --zone=public --add-interface=eth0
• 拒绝所有非允许流量:确保区域的默认策略为 drop 或 reject,避免隐式放行。
推荐最小权限原则:只开放必要的服务或端口。
• 开放 HTTP 服务:firewall-cmd --add-service=http --permanent• 开放特定端口:firewall-cmd --add-port=8080/tcp --permanent
• 限制源 IP 访问:firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' --permanent
配置完成后执行 firewall-cmd --reload 加载永久规则。
日志记录与规则审计
开启日志有助于追踪可疑连接尝试。
• 启用日志记录被拒绝的包:firewall-cmd --set-log-denied=all(可选值:all, unicast, broadcast, multicast)• 查看日志:journalctl -u firewalld 或 grep "DROP" /var/log/messages
• 定期检查生效规则:firewall-cmd --list-all --zone=public
定期审查规则列表,移除不再需要的服务或端口开放项,防止攻击面扩大。
基本上就这些。合理使用区域、最小化开放端口、限制访问源、启用日志,是保障 Linux 防火墙安全的核心做法。配置完成后务必测试连通性,避免锁死自己。不复杂但容易忽略细节。










