CentOS 7 Firewalld 操作集合
在 CentOS 7 系统中,Firewalld 是一个功能强大的防火墙管理工具,它提供了动态管理防火墙规则的能力,相比传统的 iptables 更加灵活和易于使用。本文将详细介绍 Firewalld 的各种操作,帮助你更好地管理服务器的网络安全。
目录#
Firewalld 基本概念#
Firewalld 使用“区域(Zone)”的概念来定义不同的网络环境,每个区域有预定义的规则。例如,public区域通常用于公共网络,规则较为严格;trusted区域则允许所有流量通过。它还支持动态更新规则,无需重启服务即可生效。
Firewalld 服务管理#
启动 Firewalld#
systemctl start firewalld停止 Firewalld#
systemctl stop firewalld重启 Firewalld#
systemctl restart firewalld查看 Firewalld 状态#
systemctl status firewalld设置 Firewalld 开机自启#
systemctl enable firewalld取消 Firewalld 开机自启#
systemctl disable firewalld区域(Zone)管理#
查看当前默认区域#
firewall-cmd --get-default-zone设置默认区域(以public为例)#
firewall-cmd --set-default-zone=public查看所有区域#
firewall-cmd --get-zones查看指定区域(如public)的配置#
firewall-cmd --zone=public --list-all将网络接口添加到指定区域(假设接口为eth0,添加到public区域)#
firewall-cmd --zone=public --add-interface=eth0从区域中移除网络接口#
firewall-cmd --zone=public --remove-interface=eth0端口和服务操作#
允许端口(以允许 TCP 80 端口为例,运行时生效)#
firewall-cmd --zone=public --add-port=80/tcp允许端口(永久生效)#
firewall-cmd --zone=public --add-port=80/tcp --permanent移除允许的端口(运行时)#
firewall-cmd --zone=public --remove-port=80/tcp移除允许的端口(永久)#
firewall-cmd --zone=public --remove-port=80/tcp --permanent允许预定义服务(如http服务,运行时)#
firewall-cmd --zone=public --add-service=http允许预定义服务(永久)#
firewall-cmd --zone=public --add-service=http --permanent查看允许的服务(运行时)#
firewall-cmd --zone=public --list-services查看允许的服务(永久配置,需重新加载)#
firewall-cmd --zone=public --list-services --permanent
firewall-cmd --reload富规则(Rich Rules)#
富规则提供了更复杂的规则定义。例如,允许特定 IP 段(192.168.1.0/24)访问 TCP 80 端口:
运行时添加富规则#
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept'永久添加富规则#
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept' --permanent查看富规则#
firewall-cmd --zone=public --list-rich-rules移除富规则(假设规则索引为 0)#
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept'运行时配置与永久配置#
Firewalld 的配置分为运行时(当前会话有效)和永久(重启后仍有效)。对于永久配置,在添加规则后需要执行firewall-cmd --reload使配置生效。例如,前面提到的--permanent选项的操作,都需要执行reload。
常见实践与最佳实践#
- 最小权限原则:只开放必要的端口和服务,避免过度开放带来的安全风险。
- 定期审计:定期检查防火墙规则,删除不再需要的规则。
- 测试规则:在生产环境应用新规则前,先在测试环境进行充分测试。
参考资料#
- Firewalld 官方文档
- CentOS 官方文档相关章节
通过以上对 CentOS 7 Firewalld 的操作介绍,希望能帮助你更好地管理服务器的网络安全,合理配置防火墙规则以保障系统的稳定和安全运行。