用于阻止并发连接的IPTables脚本

时间:2017-09-25 16:25:33

标签: bash shell scripting sh iptables

我们正在使用Suse Linux Enterprise Server 12.我们需要阻止并发IP地址,这些地址每秒触发我们的Web服务器超过50次并阻止该IP地址10分钟。此外,它应该区分攻击者和真正的流量,并永远阻止攻击者的IP。我们目前阻止使用iptables,下面是规则。

iptables -I INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --set   
iptables -I INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --update --seconds 1 --hitcount 50 -j DROP

它只会阻止超过50个连接的IPAddress,但不会将IPAddress列入黑名单。如果我们的脚本符合上述所有方案,请告诉我们。请帮助。

1 个答案:

答案 0 :(得分:0)

我对此进行了测试,效果非常好。如果检测到该行为,则将IP置于保持状态10分钟并记录。您可以通过观察这些文件来验证它的操作。 / proc / net / xt_recent / NICE,/ proc / net / xt_recent / NAUGHTY。如果要永久黑名单,则需要构建一个脚本来解析日志中的坏IP并将它们提交到启动时加载到iptables的文件中。这个概念已经很清楚,所以我不需要包含它。

#flush and clear
iptables -F -t nat
iptables -F 
iptables -X

#this is where naughty kids go
iptables -N GETCAUGHT

#you got added to the naughty list 
iptables -A GETCAUGHT -m recent --name NAUGHTY --set                   #everyone here is bad
iptables -A GETCAUGHT -j LOG --log-prefix "iwasbad: " --log-level 4    #and it goes on your permanent record

#if you are on the NAUGHTY list you get a lump of coal                                
iptables -A INPUT -i eth0 -m recent --name NAUGHTY --rcheck --seconds 600 -j DROP       #check everyone at the door

#though everyone starts out on the NICE list
iptables -A INPUT -i eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -m recent --name NICE --set     #you seem nice

#but if you GETCAUGHT doing this you are naughty 
iptables -A INPUT -i eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -m recent --name NICE --seconds 1 --hitcount 50 --update -j GETCAUGHT    #that wasn't nice