这是 DoS 攻击吗?

这是 DoS 攻击吗?

我看到来自单个 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   - 

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

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

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

root@mars [~]# netstat -alpn | grep ':80 .*TIME_WAIT' | wc -l
6728

更新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

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

答案1

419 个可怜的连接不算是 DoS。

目前,在一台特定的中等使用率的网络服务器上,我有:

$ netstat -alpn | grep ':80 .*TIME_WAIT' | wc -l
384

此州内有 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

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

如果您担心,请减少流量。

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

net.netfilter.nf_conntrack_tcp_timeout_time_wait=15

并运行:

sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=15

相关内容