如何阻止来自单个 IP 的大量“空”连接

如何阻止来自单个 IP 的大量“空”连接

目前 netstat 列出了印度同一 IP 的 200 - 4000 个连接。我觉得这像是某种洪水攻击。

例如:

tcp        0      0 [removed] 182.65.238.[removed].in-:mysql TIME_WAIT

我尝试使用此命令终止当前连接,但没有成功

iptables -t filter -I INPUT 1 -p tcp -m tcp -s 182.65.238.[] -j DROP

tcpkill -i any -9 host 182.65.238.[removed]

我已将 IP 添加到 ufw,甚至使用 fail2ban 禁止它,但我无法摆脱开放的连接。

两个问题:

  1. 如何终止/关闭来自此 IP 的所有 TCP 连接
  2. 是否有可能记录这种模式,以便使用 fail2ban 监狱禁止它,或者设置一些 iptable 链限制,就像“常规” dos 攻击一样?

系统信息:

  • Ubuntu 20.04
  • nginx
  • 联邦快递
  • 失败2ban
  • syn cookies 已启用
  • 可能相关:我正在使用的其他 ufw 规则
# Enter rule
-A ufw-before-input -p tcp --dport 80   -j ufw-http
-A ufw-before-input -p tcp --dport 443  -j ufw-http

# Limit connections per Class C
-A ufw-http -p tcp --syn -m connlimit --connlimit-above 50 --connlimit-mask 24 -j ufw-http-logdrop

# Limit connections per IP
-A ufw-http -m state --state NEW -m recent --name conn_per_ip --set
-A ufw-http -m state --state NEW -m recent --name conn_per_ip --update --seconds 10 --hitcount 20 -j ufw-http-logdrop

# Limit packets per IP
-A ufw-http -m recent --name pack_per_ip --set
-A ufw-http -m recent --name pack_per_ip --update --seconds 1  --hitcount 20  -j ufw-http-logdrop

相关内容