CentOS 7服务器防火墙配置与管理指南
Firewalld核心概念
CentOS 7默认使用firewalld动态防火墙管理工具,基于“区域”(zone)划分不同信任级别网络环境。每个区域预定义允许流量规则,支持运行时配置无需重启。
防火墙基础操作
服务控制
# 启动防火墙
systemctl start firewalld
# 设置开机启动
systemctl enable firewalld
# 查看运行状态
firewall-cmd --state
区域管理
# 查看默认区域
firewall-cmd --get-default-zone
# 修改默认区域为public
firewall-cmd --set-default-zone=public
端口与服务配置
开放HTTP服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
自定义端口开放
# 开放TCP 8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
流量阻止实例
# 禁止特定IP访问
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.10" reject'
高级配置技巧
- 富规则(Rich Rules):实现复杂条件过滤(IP/端口/协议组合)
- 直接规则(Direct Rules):通过iptables原生命令扩展功能
- 区域绑定:网卡接口指定专属安全区域
故障排查命令
# 查看生效规则
firewall-cmd --list-all
# 检测端口放行状态
firewall-cmd --zone=public --query-port=8080/tcp
安全最佳实践
- 默认使用public区域并限制入站流量
- 定期审计规则:
firewall-cmd --list-all-zones
- 仅开放必要服务,关闭未使用端口
- 结合SELinux强化访问控制