2017-09-25 66 views
0

我們正在使用Suse Linux Enterprise Server 12.我們需要阻止併發IP地址,這些IP地址每秒觸發我們的Web服務器超過50次,並阻止該IP地址持續10分鐘。它也應該永遠區分攻擊者和真正的流量並阻止攻擊者的IP。我們目前使用iptables阻止,下面是規則。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 

它只會阻止IPAddress超過50個連接,但不會將IPAddress黑名單。請讓我們知道,如果我們有一個腳本,將符合上面提到的所有情況。請幫忙。

+0

如果請求(SYN)在1秒內超過50,您寫入的規則將阻止來自同一IP地址的新連接。如果有,它會阻止IP地址1秒。你可以找到很多關於如何完成任務的例子。請注意,像這樣的自動化IP黑名單的任何實施都容易通過欺騙源IP來拒絕服務。如果有人瀏覽器進入循環,無意中阻塞也會發生。 fail2ban是一個很好的工具,旨在解決您的問題。 –

回答

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 
+0

上面的腳本進行了一些更改。謝謝。 – user2693302

+0

命令「iptables -F」將刷新您的INPUT鏈。這是UFW和Fail2Ban存儲他們的規則的地方 - 這樣會破壞你的防火牆。即使你不使用UFW和Fail2Ban,大多數同等的服務也以同樣的方式使用iptables。你可以在不調用iptables -F和iptables -X的情況下添加你的規則。我沒有足夠的知識來評論「iptables -F -t nat」,但會提供更多的研究和警告。 –