插件窝 干货文章 如何识别和应对DDoS攻击:保护您的Linux服务器

如何识别和应对DDoS攻击:保护您的Linux服务器

sudo 防护 攻击 bash 110    来源:    2025-04-12

识别和应对DDoS攻击:Linux服务器防护指南

什么是DDoS攻击?

DDoS(分布式拒绝服务)攻击是通过大量恶意流量淹没目标服务器,使其无法处理合法请求的攻击方式。攻击者通常利用僵尸网络(botnet)发起这类攻击。

如何识别DDoS攻击

常见症状

  • 服务器响应异常缓慢
  • 网络连接超时增多
  • CPU、内存或带宽使用率突然飙升
  • 特定服务(如HTTP)不可用而其他服务正常

诊断命令

  1. 实时网络流量监控

    sudo iftop -nNP
    

    sudo nload
    
  2. 查看活跃连接

    sudo netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
    
  3. 检查带宽使用

    sudo vnstat -l -i eth0
    
  4. 分析Web服务器日志

    sudo tail -f /var/log/nginx/access.log
    

    sudo tail -f /var/log/apache2/access.log
    

应对DDoS攻击的应急措施

1. 联系网络服务提供商

  • 请求上游流量清洗
  • 启用云服务商的DDoS防护(如AWS Shield、Cloudflare等)

2. 临时缓解措施

使用iptables限制连接

# 限制单个IP的连接数
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP

# 限制新建连接速率
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 50/minute --limit-burst 200 -j ACCEPT

启用SYN Cookie防护

sudo sysctl -w net.ipv4.tcp_syncookies=1

调整内核参数

sudo sysctl -w net.ipv4.tcp_max_syn_backlog=2048
sudo sysctl -w net.ipv4.conf.all.rp_filter=1

3. 使用专业工具

安装和使用fail2ban

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

配置nginx限流

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

    server {
        location / {
            limit_req zone=one burst=20;
        }
    }
}

长期防护策略

1. 基础设施防护

  • 使用CDN服务(如Cloudflare、Akamai)
  • 部署Web应用防火墙(WAF)
  • 考虑DDoS防护专用硬件或云服务

2. 系统加固

  • 保持系统和服务更新
  • 禁用不必要的服务和端口
  • 配置合理的防火墙规则

3. 监控与告警

  • 设置网络流量基线监控
  • 配置异常流量告警
  • 定期检查日志分析模式

4. 应急准备

  • 制定DDoS响应预案
  • 准备备用带宽资源
  • 定期进行压力测试

高级防护技术

使用mod_evasive(Apache)

sudo apt install libapache2-mod-evasive

配置/etc/apache2/mods-enabled/evasive.conf

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

使用tcpdump捕获攻击流量分析

sudo tcpdump -i eth0 -w attack.pcap

通过以上措施的组合应用,您可以有效识别和缓解DDoS攻击,保护您的Linux服务器正常运行。记住,DDoS防护是一个持续的过程,需要定期评估和更新防护策略。