阻止IP连接

我有一个问题与我的Apache Web服务器有IP地址,而不是连接到我的服务器,使用大量的连接,并不会死,最终使我的Web服务器超时。 如果我检查使用,连接将保持SYN_SENT状态

netstat -netapu 

我什至冲我的iptables和使用基本的规则,它仍然无法正常工作。 当我启动我的Apache时,IP将被连接

我使用的基本规则:

 iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT 

iptables -A INPUT -s 89.149.244.117 -j REJECT

iptables -A OUTPUT -s 89.149.244.117 -j REJECT

 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT 

大胆的部分是有问题的规则。

不知道这是相关的,但tcp_syncookies值是1。

有人能指出我的错误吗? 有没有办法阻止它的好处。

你能告诉我们的输出吗?

 iptables-save 

? 也许规则的顺序不是你想象的那样。 然后

 iptables -A OUTPUT -s 89.149.244.117 -j REJECT 

应该可能会读:

 iptables -A OUTPUT -**d** 89.149.244.117 -j REJECT 

顺便说一下,为什么拒绝而不是DROP? 那么如果你正在使用状态模块,你应该写:

 iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT 

请注意,如果您的服务器在DSR模式下位于负载均衡器后面,则状态模块将无法正常工作。

卡在SYN_SENT状态的连接被称为胚胎连接 。 当您尝试连接到IP地址时出现这种情况,并且出于某种原因IP无法与您联系。 这意味着正试图连接到他,而不是相反。

我不知道在添加这两个规则之前是什么样子的,但是现在它们是这样的,你可以发送三次握手的第一部分(SYN),但是不能接收第二部分(SYN / ACK),这将为每次尝试留下一个处于SEN_SENT状态的连接。

我怀疑你复制/粘贴第一个规则创build第二个和改变INPUT输出,但忘记更改-s-d 。 我知道,因为我自己不止一次地做过。

你需要尝试一下“FAIL2BAN”的linux工具,它可以阻止大部分这样的暴力攻击。 Fail2Ban支持保护ssh,apache等众多服务的powershell攻击。 例如,如果一个IP地址正在尝试build立大量的并发连接,那么fail2ban将通过iptables自动添加(并在一段时间后删除)该IP地址来阻止它。