温馨提示×

centos防火墙如何提高安全性

小樊
45
2025-12-27 05:41:20
栏目: 智能运维

CentOS 防火墙安全性提升指南

一 基础加固与最小暴露面

  • 确认并启用 firewalldsudo systemctl start firewalld && sudo systemctl enable firewalld;仅开放必需服务,例如 HTTP/HTTPS/SSH,避免暴露数据库、管理端口到公网。
  • 使用 区域(zone) 管理策略:将公网接口放入 public,内网接口放入 trusted/internal,对不可信网络保持最严格策略。
  • 以“默认拒绝、显式允许”为原则:仅对明确需要的服务/端口放行,减少攻击面。
  • 变更规则后执行 firewall-cmd --reload 使配置生效,并定期用 firewall-cmd --list-allfirewall-cmd --list-all-zones 核查规则是否按预期加载。

二 精细化访问控制

  • 优先使用“服务名”而非端口号:如 firewall-cmd --permanent --add-service=http --zone=public,便于维护与可读性。
  • 源地址白名单:对管理口(如 SSH 22/TCP)仅允许可信网段或跳板机,例如:
    firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="22" protocol="tcp" accept' && firewall-cmd --reload
  • 复杂策略用 Rich Rules 表达:可实现按源/目的、端口、协议、日志、限制等多维度控制。
  • 端口与服务清理:移除不需要的预置服务(如 dhcpv6-client):
    firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client && firewall-cmd --reload
  • 变更前备份当前规则,变更后在测试环境验证,再推广至生产。

三 抗暴力破解与基础抗D策略

  • 部署 fail2ban 联动 SSH:对多次失败登录的来源 IP 自动封禁,缓解暴力破解。
  • 对面向公网的服务设置连接速率限制(如 SSH):
    firewall-cmd --permanent --zone=public --add-rich-rule='rule service name="ssh" limit value="3/min" accept' && firewall-cmd --reload
  • 识别并处置异常流量:结合日志与监控观察 SYN 洪泛、连接耗尽等迹象,必要时联动上游清洗或临时封禁来源。
  • 说明:主机侧防火墙可缓解“小流量/应用层”滥用,对“大流量”攻击需与云厂商或边界防护设备协同。

四 纵深防御与运维审计

  • 启用 SELinux 并设为 enforcingsudo setenforce 1,并在 /etc/selinux/config 中持久化,减少被攻破后的横向移动空间。
  • 加固 SSH:禁用 root 登录、改用 密钥认证、可变更默认端口;与防火墙白名单配合提升安全性。
  • 日志与审计:启用并集中 rsyslog,定期审计防火墙与系统日志,及时发现异常访问与策略漂移。
  • 持续维护:定期更新系统与防火墙规则、清理无用规则、备份配置,变更遵循“先测试、再上线”。

五 常用命令清单

  • 服务与区域
    • 启动/开机自启:sudo systemctl start|enable firewalld
    • 查看状态:systemctl status firewalld
    • 查看规则:firewall-cmd --list-allfirewall-cmd --list-all-zones
  • 规则管理
    • 放行服务:firewall-cmd --permanent --zone=public --add-service=http(HTTPS 为 https,SSH 为 ssh
    • 放行端口:firewall-cmd --permanent --zone=public --add-port=3306/tcp
    • 源地址白名单:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="x.x.x.x" port port="22" protocol="tcp" accept'
    • 应用变更:firewall-cmd --reload
  • 维护与回滚
    • 备份/恢复:在变更前导出规则 firewall-cmd --list-all > fw-$(date +%F).bak;必要时按备份逐条恢复
    • 定期审查与优化:移除不再使用的端口/服务,合并冗余规则,保持最小暴露面

0