它是一个 cPanel 服务器,从 /var/log/exim_mainlog 中,我可以看到,到服务器的连接太多。大多数情况下,操作连接数会小于 25。但是,即使将最大连接数从 100 增加到 150,我们仍然遇到连接过多的问题。
2016-03-11 15:33:24 Connection from [216.113.172.65]:59122 refused: too many connections
2016-03-11 15:33:25 Connection from [216.158.225.200]:44107 refused: too many connections
2016-03-11 15:33:25 Connection from [213.61.222.76]:53953 refused: too many connections
2016-03-11 15:33:27 Connection from [46.23.76.98]:42336 refused: too many connections
2016-03-11 15:33:27 Connection from [91.194.248.147]:37566 refused: too many connections
看起来 SMTP 服务器受到了攻击或者类似 Slowloris 之类的攻击。
我怎么解决这个问题 ?
服务器中不允许打开依赖。我们已经核实过了。
答案1
我问过这个问题,既然我们已经解决了这个问题,我想回答一下,以便对某人有所帮助。尽管问题很简单,但这是一个非常罕见的问题,很难找出根本原因。
当我们从不同的IP地址获得太多连接时,我们认为这可能是DDOS。在分析过多的连接后,我们发现所有连接都来自合法网站,例如linkedIn、Google、Facebook等。
我们还认为 eth0 或 eth1 端口可能有问题,但实际上没有。
经过一天的调试,我们发现TCP/IP数据包的MTU(最大传输单元)有问题。 SMTP 服务器突然开始拒绝所有大小超过 1457 的数据包。因此,大多数到达 SMTP 服务器的数据包大小都是 1500。由于这些数据包没有到达 SMTP 服务器,其他服务器不断尝试一次又一次地传递邮件。
我们已经通过 ping "IP Addr" -l 1472 验证了问题
实际问题出在某些 ISP 上,在某些网络集线器中,超过 1457 字节的数据包被拒绝。
ping -s 1472 localhost (linux)(28 个字节用于 ICMP 标头,其余为有效负载)