以下是合理设置CentOS防火墙规则的关键要点,基于firewalld工具实现:
- 最小权限原则:仅开放业务必需的端口和服务,关闭非必要端口(如默认关闭
22端口,仅允许特定IP访问)。 - 区域隔离策略:
public区域(默认):仅允许HTTP(80)、HTTPS(443)等公开服务。trusted区域:允许内部信任IP访问所有端口,用于内部网络。drop区域:默认丢弃所有未明确允许的流量,用于限制高风险端口。
- 动态规则管理:
- 开放端口:
firewall-cmd --permanent --zone=public --add-port=80/tcp。 - 允许服务:
firewall-cmd --permanent --zone=public --add-service=http。 - 限制IP:
firewall-cmd --permanent --zone=public --add-rich-rule='rule source address="192.168.1.100" port port=22 protocol=tcp accept'。
- 开放端口:
- 默认策略强化:
- 设置默认区域为
drop,拒绝未匹配规则的所有流量。 - 启用日志记录:
firewall-cmd --set-log-denied=xml,便于审计异常流量。
- 设置默认区域为
- 安全优化措施:
- 启用连接跟踪:自动允许已建立连接的回复流量,提升性能。
- 定期审查规则:删除冗余规则,更新服务定义(如
firewall-cmd --reload)。
- 特殊场景规则:
- 防止DoS攻击:限制端口访问频率,如
firewall-cmd --zone=public --add-rich-rule='rule port port=80 protocol=tcp rate-limit burst=30'。 - 端口转发:通过
--add-forward-port规则实现内网服务暴露(需谨慎配置)。
- 防止DoS攻击:限制端口访问频率,如
操作前建议:备份当前规则(firewall-cmd --complete-reload前先firewall-cmd --list-all > backup.txt),测试规则有效性(如nmap扫描端口状态)。
参考来源: