CentOS 7 作为一款广泛使用的服务器操作系统,面临着 DDoS(分布式拒绝服务)攻击的风险,DDoS 攻击通过大量恶意流量耗尽服务器资源,导致服务不可用,为了有效防御 DDoS 攻击,需要从系统配置、网络优化和安全工具部署等多个层面进行防护,以下将详细介绍在 CentOS 7 上防御 DDoS 攻击的实用方法。

系统基础优化加固
系统的基础安全是抵御 DDoS 攻击的第一道防线,确保系统所有软件包保持最新状态,及时修复已知漏洞,可以通过运行 yum update -y 命令更新系统软件包,关闭不必要的服务和端口,减少攻击面,使用 systemctl list-unit-files --type=service 查看所有服务,禁用不需要的服务,如 telnet、rsh 等,通过 firewall-cmd 配置防火规则,仅开放必要的端口,
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
修改默认的 SSH 端口(22)并禁用 root 登录,可以有效减少暴力破解风险,编辑 /etc/ssh/sshd_config 文件,修改 Port 为非默认端口,并将 PermitRootLogin 设置为 no,最后重启 SSH 服务。
防火墙与流量限制策略
防火墙是过滤恶意流量的重要工具,CentOS 7 默认使用 firewalld,支持动态管理防火墙规则,可以通过限制每秒连接数和并发连接数来防御 DDoS 攻击,限制 HTTP 服务的每秒连接数不超过 100:
firewall-cmd --permanent --add-rich-rule='rule service name=http limit value=100/m burst=50 accept' firewall-cmd --reload
对于 SYN Flood 攻击,可以通过调整内核参数增强防护,编辑 /etc/sysctl.conf 文件,添加以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
运行 sysctl -p 使配置生效,这些参数可以启用 SYN Cookies 增加连接队列容量,缩短超时时间,从而缓解 SYN Flood 攻击。

部署专业防护工具
除了系统自带工具,还可以部署专业的 DDoS 防护软件,使用 ddos deflate 脚本自动识别并阻断攻击 IP,首先安装必要的依赖:
yum install -y curl
然后下载并运行脚本:
curl -L https://github.com/jgmdev/ddos-deflate/master/ddos.sh | bash
该脚本会定期检查连接数超过阈值的 IP 并自动封禁,还可以考虑部署 iptables 的扩展模块如 iptables 的 recent 模块,实现更精细的流量控制,限制单个 IP 在 60 秒内最多发起 20 次 HTTP 请求:
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP
网络架构优化与监控
在网络架构层面,可以通过配置负载均衡和 CDN 服务分散攻击流量,使用 Nginx 或 HAProxy 作为负载均衡器,将流量分发到多个后端服务器,避免单点故障,启用 CDN 服务隐藏源站 IP,将恶意流量过滤在 CDN 节点。
实时监控服务器状态是防御 DDoS 攻击的关键,使用 iftop 或 nethogs 监控实时流量,通过 top 或 htop 查看系统资源占用情况,配置日志分析工具如 fail2ban 监测异常登录行为,并自动封禁恶意 IP,可以设置 logrotate 定期清理日志,避免日志文件过大影响系统性能。

应急响应与恢复策略
即使采取了防护措施,仍需制定应急响应预案,当检测到大规模 DDoS 攻击时,应立即启动流量清洗服务,联系 ISP 或专业 DDoS 防护服务商协助处理,备份关键数据并准备备用服务器,确保在主服务器被攻击时能够快速切换。
事后分析攻击日志,小编总结攻击特征,优化防护策略,定期进行安全演练,测试防护措施的有效性,确保团队熟悉应急流程,通过持续改进和优化,逐步提升系统的抗攻击能力。
相关问答 FAQs
问题 1:如何判断服务器是否遭受 DDoS 攻击?
答:判断服务器是否遭受 DDoS 攻击可以通过以下迹象:1)网站或服务响应缓慢或完全无法访问;2)服务器网络流量异常升高,可通过 iftop 或 vnstat 工具查看;3)系统资源(CPU、内存、带宽)使用率突然飙升;4)大量来自不同 IP 的相同请求日志,可通过 grep 或 awk 分析访问日志,若出现上述情况,需立即启动防护措施并检查攻击源。
问题 2:CentOS 7 上如何使用 fail2ban 防护暴力破解和简单 DDoS 攻击?
答:fail2ban 是一个防止入侵的工具,可通过监控日志自动封禁恶意 IP,安装步骤如下:
- 安装 fail2ban:
yum install -y fail2ban - 配置
/etc/fail2ban/jail.local文件,添加以下内容:[sshd] enabled = true port = 22 filter = sshd logpath = /var/log/secure maxretry = 3 bantime = 3600
- 启动 fail2ban 服务:
systemctl enable --now fail2ban
fail2ban 会自动检测暴力破解行为并封禁 IP,同时可自定义规则防护 HTTP 等服务的简单 DDoS 攻击。