我的网站一直有几个在线用户。服务器使用 Apache/PHP、数据库和 Memcached。在正常使用时,该应用程序运行良好且快速。
但是,服务器有时会出现“SYN 泛洪”攻击。我真的相信/怀疑这些是故意的,而不是由我们的合法用户造成的。(当有些人注册新帐户并试图制造麻烦时,它们似乎会发生)
6 月 27 日 22:12:21 xxxx 内核:[xxxx.xxxx] 端口 443 上可能发生 SYN 泛洪。发送 cookie。6 月 27 日 22:13:22 xxxx 内核:[xxxx.xxxx] 端口 443 上可能出现 SYN 泛洪。发送 cookie。6 月 27 日 22:14:25 xxxx 内核:[xxxx.xxxx] 端口 443 上可能发生 SYN 泛洪。发送 cookie。
不幸的是,当这种情况发生时,我的整个流量都会受到影响:
[2016 年 6 月 27 日星期一 22:15:28.842067] [mpm_event:error] [pid 12022:tid 132875292207712] AH00485:记分牌已满,不在 MaxRequestWorkers
我的 MaxRequestWorkers 是 600。过去我已经增加了几次。
最近我也增加到net.ipv4.tcp_max_syn_backlog
了ListenBackLog
5000。
我的服务器有 16GB RAM 和 1Gbps 带宽。
我很不高兴似乎有人可以轻松控制我的网站是否存在。
可以做些什么来阻止这种情况?
另外,netstat
现在似乎给了我连接到服务器的 IP。
是否有可能在过去的特定时间获得顶级 IP?
检查 SynCookies
如果禁用,则启用(设置为 1)它。它可以帮助合法用户继续工作。
您也可以尝试设置情人/proc/sys/net/ipv4/tcp_synack_retries
https://stackoverflow.com/a/26674591/205355
Synflood 通常使用欺骗的随机源 IP,因此无法根据源 IP 进行过滤。
只要你的服务是公开的,任何人都可以轻松查看它的活力
您可以购买专业的 DDOS 防护服务。它使用巨大的区域分布式集群、地理定位感知 DNS、关联、ISP 合作等。它将干净的用户流量重定向到公共(和黑客)未知的 IP 上的服务。但它可能会花费很多,并且可能取决于生存和减轻攻击所需的能量。