2010-03-10 37 views
1

問題在於內容網站遭到嚴重破壞,導致服務器崩潰。從Apache獲取訪問限制以防止刮取?

是否有一種簡單的方法將IP的訪問限制爲一次或每天一定數量的請求? (10頁/天或....每2分鐘10頁)

理想情況下,我會保留搜索引擎的通配符列表,並且不允許其他人訪問內容太快或太多。

謝謝你們!

+0

謝謝你們:D 有請求的討論。每個jpg/css/js/html都會發出新的請求。 這意味着我將不得不平均每步有多少請求作爲step1。第二步是在給定的時間範圍內平均一個普通用戶對網站的使用。 考慮到這個數字(它看起來像每小時800個請求),我會通過iptables/mod_security或其他方法應用限制嗎? – user290367 2010-03-12 11:27:44

回答

4

解決這個問題的方法之一是使用IPTABLES(僅限Linux)來防止單個IP的啓動超過指定數量的連接。它的試驗和錯誤,因爲你需要計算是正確的,但在一個整體,應該防止攻擊者的連接速率

iptables -A INPUT -p TCP --dport 80 -m state --state NEW -j STOP-ABUSE 
iptables -A STOP-ABUSE -m recent --set 
iptables -A STOP-ABUSE -m recent --update --seconds 10 --hitcount 3 -j DROP 

希望它可以幫助

1

我寧願這樣做在系統級,使用iptables ...


但是,如果你正在尋找一個基於Apache的解決方案,一個想法可能是使用mod_security

SecGuardianLog配置指令看起來特別有趣,你的情況(引用)

說明:配置指令 使用的httpd守護者腳本 監視器拒絕服務(DoS)攻擊 攻擊。

默認的httpd守護者將捍衛 針對發送在一分鐘內超過 120請求,或在五分鐘內超過 360請求的客戶端。