CentOS 防范 Exploit 引发的拒绝服务攻击
一 基础防护与系统加固
- 保持系统与软件为最新,及时修补内核与应用漏洞,减少被利用发起 DoS 的可能。最小化安装,关闭不必要的服务与端口,降低攻击面。
- 启用并正确配置 SELinux,避免直接关闭;SELinux 提供强制访问控制,可缓解漏洞利用后的横向影响。
- 强化 SSH:禁用 root 远程登录、使用公钥认证、限制来源 IP、更改默认端口;仅开放必要端口(如 22/80/443)。
- 部署 Fail2Ban,对暴力登录与扫描行为进行自动封禁,缩短攻击者试探窗口。
- 持续日志监控与审计:重点查看 /var/log/secure、/var/log/messages,必要时引入 IDS/IPS 提升识别与阻断能力。
- 建立定期备份与恢复演练机制,确保被攻击后可快速恢复业务。
二 网络层与内核参数加固
- 使用 firewalld/iptables 实施“默认拒绝、按需放行”,仅暴露必要服务;对管理口可结合源地址限制提升安全性。
- 缓解 SYN Flood:开启 TCP SYN Cookie,在 /etc/sysctl.conf 中设置
net.ipv4.tcp_syncookies = 1 并执行 sysctl -p 生效。
- 限制并发连接与速率,减轻连接耗尽型攻击影响:
- 使用 iptables connlimit 限制单 IP 对 80/443 的并发连接数(示例:超过 100 个 SYN 则丢弃)。
- 对关键端口设置连接速率限制(示例:每秒不超过 25 个新连接,突发 50)。
- 示例(iptables,需按业务调优):
- 允许已建立和相关连接:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
- 限制 HTTP 并发:
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
- 限制新连接速率:
iptables -I INPUT -p tcp --dport 80 -m limit --limit 25/second --limit-burst 50 -j ACCEPT
- 说明:上述规则示例用于演示思路,生产环境请结合业务峰值、CDN/前置防护与云平台安全组策略综合调整。
三 应用层与资源限制
- Web 侧部署 ModSecurity(WAF) 等规则,识别并阻断异常 HTTP 洪水/CC 请求,缓解应用层资源被耗尽问题。
- 限制服务资源:为关键服务设置 systemd 的 CPU/内存/连接数 上限;对面向公网的服务使用独立资源配额与隔离部署。
- 限制用户与进程资源:通过 /etc/security/limits.conf 控制 nofile、nproc 等,防止单用户/单进程耗尽系统资源。
- 优化应用与数据库:启用连接池、缓存与限流策略,减少慢查询与长连接占用。
四 监测 响应 与云侧协同
- 建立基线并建立持续监测:关注异常流量、连接数激增、CPU/内存/IO 异常、日志中大量失败登录或扫描特征;必要时引入 IDS/IPS 与主机加固基线工具。
- 制定并演练应急响应流程:
- 事件确认与影响评估:检查网络连接、系统日志,识别异常范围与影响。
- 隔离与止血:将受影响主机从网络隔离,关闭非必要服务与端口。
- 取证与分析:采集系统日志、网络流量(如 tcpdump)等,定位入侵路径与漏洞点。
- 修复与恢复:升级补丁、修复配置、清理后门,按序恢复服务并进行安全验证。
- 加固与复盘:优化防火墙/限速/WAF 策略,完善监控告警与应急预案。
- 云环境协同:启用云厂商的 Anti-DDoS 与 WAF/CDN 能力,在边界层面吸收与清洗大流量攻击,后端实例专注业务运行。