2012-07-30 1011 views
8

运行netstat即使重新启动服务器后也显示数百条此行 - 它会再次开始发送,从而导致与该IP的许多连接。如何停止SYN_SENT?

tcp  0  1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT 
tcp  0  1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT 
tcp  0  1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT 
tcp  0  1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT 
tcp  0  1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT 

我停止了所有的脚本,但仍然继续尝试。

我知道这意味着IP没有回应SYN_SENT但我该如何阻止这些SYN_SENT?或者什么是最好的解决方案?

谢谢。

+1

运行netstat的'向-pnt'获取进程的名称拥有插座。 – 2012-07-30 21:34:05

+0

@AlanCurry:tcp 0 1 213.163.64.207:39316 154.45.206.59:443 SYN_ SENT 12388/httpd。它由httpd打开,但我看到端口443那里,是不是很奇怪? – EGN 2012-07-30 22:17:04

+0

然后,您最好查看您的Web服务器,看看可能导致它发出HTTPS连接的原因。顺便说一下,当我尝试对该IP地址的https请求时,我得到一个重定向到rapidshare.com,以便可能暗示要寻找什么 – 2012-07-30 22:32:26

回答

31

这个问题似乎越来越多的意见,但没有答案,所以我决定回答自己的问题寻找解决方案的任何人。

首先,知道原因是解决方案的一半。我在所谓的SYN泛滥攻击下使用HTTP协议行为对自身

它的缺点是,远程客户端尝试通过发送SYN建立与您的服务器的连接,您的服务器回复SYN_ACK(在您的日志中你将看到SYN_SENT)并等待,直到收到ACK。如果在xx秒内未收到ACK,您的服务器将再次发送SYN_ACK,......并再次发送....并再次发送。它最终将达到配置的阈值,并停止接受任何更多的SYN请求,从而使服务器无响应。发生在我身上的一个症状是,我的网站一度没有错,但在接下来的xx时间内没有回应。

HTTP Protocol SYN

这工作对我来说是启用SYN饼干,SSH到服务器,用你喜欢的编辑器打开以下文件的解决方案。我在本例中使用vi

vi /etc/sysctl.conf 

并将这些行添加到文件中,然后重新启动服务器。希望这会阻止攻击,因为它为我做的

net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_max_syn_backlog = 2048 
net.ipv4.tcp_synack_retries = 3 

我使用CentOS的,我认为,上述方案将在所有发行工作,但如果它没有搜索“如何停止SYN Flooding攻击”为您的Linux发行

在一个侧面说明,阻断IP地址发起的SYN请求可能没有帮助,因为很有可能是攻击者伪造的IP地址

+0

当你意识到你的解决方案被大于17K的用户查看,但只收到12票:( – EGN 2016-07-26 19:50:08

+4

在这里,拿我的:) – javabot 2016-09-26 09:34:18