这是 DoS 攻击吗

Joy*_*abu -3 ddos

我看到来自单个 IP 的大量连接。

# netstat -alpn | grep :80 | grep 92.98.64.103

tcp        0      0 my.ip.address.x:80            92.98.64.103:45629          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:44288          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:48783          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:40531          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:54094          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:47394          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:43495          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:55429          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:42993          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:49542          TIME_WAIT   -                   
tcp        0      0 my.ip.address.x:80            92.98.64.103:54812          TIME_WAIT   - 
Run Code Online (Sandbox Code Playgroud)

有 419 条这样的线路。但是我在访问日志中只看到来自 92.98.64.103 的 1 个请求。这是 DoS 攻击吗?

更新- 419 个连接来自单个 IP。有几个这样的 IP 有超过 100 个连接。

我的服务器的正常 RAM 使用量约为 2-3 GB。但当时它使用的是 15GB RAM。

root@mars [~]# netstat -alpn | grep ':80 .*TIME_WAIT' | wc -l
6728
Run Code Online (Sandbox Code Playgroud)

更新 2 - TIME_WAIT 在几秒钟内增加到超过 10000

root@mars [~]# netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n
      1 established)
      1 Foreign
      4 CLOSE_WAIT
      9 FIN_WAIT2
     34 LAST_ACK
     39 SYN_RECV
     44 LISTEN
     45 CLOSING
     68 FIN_WAIT1
    128 ESTABLISHED
  10261 TIME_WAIT
Run Code Online (Sandbox Code Playgroud)

但是 Web 服务器加载正常,没有任何问题。

Mik*_*eyB 7

419 微不足道的连接不是 DoS。

目前在一个特定的中型网络服务器上,我有:

$ netstat -alpn | grep ':80 .*TIME_WAIT' | wc -l
384
Run Code Online (Sandbox Code Playgroud)

此状态下有 384 个连接。

每个IP有多少?

$ netstat -alpn | awk 'BEGIN {FS="[ :]+";} /:80 .*TIME_WAIT/ {print $6}' | sort | uniq -c | sort -g | tail -n5
      6 xx.xxx.xx.xx
      6 xx.xxx.xx.xx
      9 xxx.xxx.xx.xx
     13 xxx.xx.xx.xx
     48 xxx.xxx.xxx.xx
Run Code Online (Sandbox Code Playgroud)

从一个 IP 拥有如此多的 IP 是不寻常的 - 我猜是 PMTU 问题导致连接终止而没有发出请求。

如果您担心,请转储流量。

我建议减少套接字在 TIME_WAIT 中停留的秒数。将以下内容添加到/etc/sysctl.conf

net.netfilter.nf_conntrack_tcp_timeout_time_wait=15
Run Code Online (Sandbox Code Playgroud)

并运行:

sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=15
Run Code Online (Sandbox Code Playgroud)