VPS 网络层安全:DDoS 攻击识别与应急防护指南


VPS 突然带宽跑满、CPU 100%,SSH 都连不上。服务商发邮件说疑似遭受 DDoS 攻击,如果不处理就要封机。今天分享 DDoS 攻击的识别方法和应急防护手段,关键时刻能救服务器一命。

img

一、识别攻击类型

  1. 带宽耗尽型(Volumetric)
  • UDP Flood、ICMP Flood、DNS Amplification
  • 特征:入站带宽突然飙满,正常流量被挤掉
  1. 连接耗尽型(Protocol)
  • SYN Flood、ACK Flood、Ping of Death
  • 特征:大量半开连接,netstat 看到大量 SYN_RECV
  1. 应用层攻击(Application Layer)
  • HTTP Flood、Slowloris、CC 攻击
  • 特征:带宽不高,但 Web 服务响应极慢或崩溃

二、快速诊断命令

# 查看当前连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

# 查看 SYN_RECV 数量(SYN Flood 特征)
netstat -n -p | grep SYN_RECV | wc -l

# 查看当前带宽使用
iftop -i eth0

# 查看连接来源 IP
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20

三、iptables 应急防护

防 SYN Flood:

# 启用 SYN Cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# 限制 SYN 连接速率
iptables -A INPUT -p tcp --syn -m limit --limit 1/second --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

防 UDP Flood:

# 丢弃非必要的 UDP
iptables -A INPUT -p udp --dport 53 -m limit --limit 10/second -j ACCEPT
iptables -A INPUT -p udp -j DROP

防特定 IP:

# 封禁攻击源(根据 netstat 结果)
iptables -A INPUT -s 1.2.3.4 -j DROP

四、Nginx 层 CC 防护

# 限制单 IP 连接数
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 10;

# 限制请求速率
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
limit_req zone=one burst=20 nodelay;

# 屏蔽空 User-Agent
if ($http_user_agent ~ "^$") {
    return 403;
}

五、应急流程

1. 发现异常 → 2. 确认攻击类型 → 3. 临时封禁 → 4. 启用防护 → 5. 联系服务商 → 6. 溯源分析

手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

VPS 数据安全指南:加密、备份、容灾一个都不能少

WordPress 站点安全加固:从被挂马到坚不可摧的 10 道防线

评 论
更换验证码