温馨提示×

centos防火墙如何集成其他安全工具

小樊
34
2025-11-23 19:08:10
栏目: 编程语言

CentOS 防火墙与其他安全工具的集成实践

一、集成思路与前提

  • firewalld 为策略编排中心,优先使用其 zones、rich rules、ipset 能力承载动态封禁与业务放行,减少直接操作底层链表的复杂度与风险。
  • fail2ban 作为自动化威胁处置引擎,通过 firewalld 的专用动作(如 firewallcmd-ipsetfirewallcmd-rich-rules)对日志事件触发封禁,实现“检测→处置”的闭环。
  • SELinux 协同工作:SELinux 提供进程/资源的强制访问控制,防火墙负责网络层边界控制,二者互补;排查问题时同时检查 /var/log/audit/audit.log 与防火墙日志。
  • 日志集中与审计:启用防火墙拒绝日志,配合 rsyslog/journald 输出到 SIEM(如 Splunk、ELK)进行关联分析。

二、与 Fail2ban 联动防暴力破解与 CC 攻击

  • 前置准备
    • 确认 firewalld 运行:firewall-cmd --state;放行业务端口(示例:firewall-cmd --zone=public --add-port=22/tcp --permanent && firewall-cmd --reload)。
    • 安装组件:yum -y install epel-release && yum -y install fail2ban-firewalld
  • 推荐做法(ipset 高效封禁)
    • 新建 jail 配置 /etc/fail2ban/jail.d/jail.local
      [DEFAULT]
      ignoreip = 127.0.0.1/8
      bantime  = 86400
      findtime  = 600
      maxretry = 5
      banaction = firewallcmd-ipset
      action   = %(action_mwl)s
      
      [sshd]
      enabled  = true
      filter   = sshd
      port     = 22
      logpath  = /var/log/secure
      
    • 启动与验证:
      systemctl enable --now fail2ban
      fail2ban-client status sshd
      fail2ban-client set sshd unbanip 1.2.3.4   # 解封示例
      
  • 可选做法(rich rules 方式)
    • /etc/fail2ban/jail.d/00-firewalld.conf 中设置:
      [DEFAULT]
      banaction = firewallcmd-rich-rules[actiontype=<multiport>]
      banaction_allports = firewallcmd-rich-rules[actiontype=<allports>]
      
  • 防护扩展(Nginx CC 示例)
    • 使用内置或自定义 filter(如 nginx-limit-req 或自写 nginx-cc.conf),在 jail 中启用并指向对应日志路径,实现对短时高频请求的自动封禁。

三、与 SELinux 的协同

  • 保持 SELinux Enforcing 状态,仅对确有需要的服务做最小策略放宽;用 getenforcesetenforce/etc/selinux/config 管理状态与策略类型。
  • 当新增服务端口或协议时,使用 semanage port 将端口与正确的类型关联(如:semanage port -a -t http_port_t -p tcp 8080),避免被 SELinux 拒绝。
  • 联合排查:网络层被拒看 firewalld 与系统日志,权限被拒看 /var/log/audit/audit.log(必要时用 ausearch/sealert 分析)。

四、日志、审计与合规输出

  • 启用防火墙拒绝日志:firewall-cmd --permanent --set-log-denied=all && firewall-cmd --reload;实时查看:journalctl -u firewalld -f
  • 将 firewalld 与系统日志统一接入 rsyslog,再由 Logstash/Filebeat 送往 Elasticsearch/KibanaSplunk 做集中分析与告警,实现与 SIEM 的集成。

五、进阶方案与运维要点

  • 无侵入式黑名单(脚本 + firewalld ipset)
    • 定义 ipset:firewall-cmd --permanent --new-ipset=blacklist --type=hash:ip
    • 关联规则:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source ipset=blacklist port port=22 protocol="tcp" drop'
    • 定时将恶意 IP 写入 ipset(解析 /var/log/secure 中失败次数),firewall-cmd --reload 生效;适合轻量场景或作为 fail2ban 的补充。
  • 运维与安全建议
    • 保持 firewalld、fail2ban、SELinux、规则/病毒库 的定期更新;对封禁策略设置合理阈值与白名单,避免误封业务。
    • 变更前备份规则,变更后在测试环境验证;对关键业务端口与服务采用最小暴露面原则。

0