CentOS7服务器频繁断连(疑似SYN洪水攻击)的解决方法求助
各位社区大佬,想请教一个棘手的问题:我有一台运行多年一直稳定的CentOS 7服务器,昨天开始突然出现无法访问的异常——上面部署的应用连不上,SSH连接直接超时,但服务器的ping是能正常通的。目前唯一的临时解决办法就是重启服务器,但重启后不到一小时,问题就会再次出现。
初步排查后我怀疑是SYN洪水攻击导致的,查看系统连接日志时发现大量SSH暴力破解的尝试,以下是截取的日志片段:
Jan 26 08:18:08 vsi-prod sshd[2691]: Invalid user aadil from 190.153.249.99 port 59598
Jan 26 08:18:08 vsi-prod sshd[2691]: input_userauth_request: invalid user aadil [preauth]
Jan 26 08:18:08 vsi-prod sshd[2691]: Received disconnect from 190.153.249.99 port 59598:11: Bye Bye [preauth]
Jan 26 08:18:08 vsi-prod sshd[2691]: Disconnected from 190.153.249.99 port 59598 [preauth]
Jan 26 08:18:12 vsi-prod sshd[2695]: Invalid user db2fenc2 from 143.110.241.56 port 54456
Jan 26 08:18:12 vsi-prod sshd[2695]: input_userauth_request: invalid user db2fenc2 [preauth]
Jan 26 08:18:13 vsi-prod sshd[2695]: Received disconnect from 143.110.241.56 port 54456:11: Bye Bye [preauth]
Jan 26 08:18:13 vsi-prod sshd[2695]: Disconnected from 143.110.241.56 port 54456 [preauth]
我已经尝试了以下几种方案,但都没能彻底解决问题:
- 关闭了22端口,但问题依然存在,甚至攻击请求还指向了本应处于关闭状态的端口
- 用iptables配置了SSH的速率限制规则,命令如下:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 5/minute --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name ssh-limit -j ACCEPT - 修改了内核参数
net.core.somaxconn为1024,重启系统后问题依旧
想请教大家,这种情况该如何进一步排查和修复?需要配置哪些工具或规则来彻底避免这种服务不可用的情况?
备注:内容来源于stack exchange,提问作者Faabass

