2008-09-25 153 views

回答

48

最好

  • mod_evasive(更多地集中在降低的DoS曝光)
  • mod_cband(最佳功能爲 '正常' 帶寬控制)

,其餘

+10

我找不到任何限制每天IP地址的連接。我花了整晚的時間尋找,這是一個恥辱。 – Greg 2009-06-08 12:56:37

+1

有誰知道是否有辦法讓mod_evasive查看頭文件而不是IP,以便在反向代理後面運行? – 2010-11-15 17:57:49

+1

@StavrosKorokithakis也許這有幫助嗎? http://stderr.net/apache/rpaf/我相信這會使X-Forwarded IP看起來好像它是所有在它之後加載的apache模塊的源IP。 – Eli 2011-10-25 21:32:27

5

在Apache的2.4,有一個名爲mod_ratelimit有新貨模塊。爲了模擬調制解調器的速度,你可以使用mod_dialup。雖然我不明白爲什麼你不能使用mod_ratelimit做任何事情。

15

正如this blog後說,它似乎可以使用Apache的mod_security實現每秒的速度極限。

的配置是這樣的:

SecRuleEngine On 

<LocationMatch "^/somepath"> 
    SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog 
    SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog" 
    SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog" 
    SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog" 
    Header always set Retry-After "10" env=RATELIMITED 
</LocationMatch> 

ErrorDocument 509 "Rate Limit Exceeded" 
5

可悲的是,mod_evasive將不會工作在非prefork的配置中使用時,如預期(近期的Apache設置主要是MPM)

9

有許多方式包括Web應用程序防火牆,但是如果使用Apache mod最容易實現。

我喜歡推薦的一個這樣的mod是mod_qos。這是一個免費的模塊,對於certin DOS,Bruteforce和Slowloris類型的攻擊非常有效。這會緩解你的服務器負載。

這是非常強大的

mod_qos模塊的當前版本實現控制機制來管理:

  • 併發請求到位置/資源 (URL)或虛擬主機的最大數量。

  • 限制帶寬,如每秒對URL的最大允許請求數或者每秒下載的千字節數的最大值/最小值。

  • 限制每秒請求事件(特殊請求 條件)的數量。

  • 限制請求事件在定義的時間段內的數量。
  • 它還可以檢測到非常重要的人員(VIP),這些人員可能訪問 Web服務器時沒有或有較少的限制。
  • 通用請求線和頭濾波器來拒絕未授權的 操作。

  • 請求正文數據限制和過濾(要求mod_parp)。

  • 限制爲單個客戶端(IP)請求事件的數量。

  • 限制在TCP連接的水平,例如,從單一的IP源​​地址或動態 保活控制 允許的連接的最大數量。當服務器運行了免費的TCP連接 的

  • 喜歡稱爲IP地址。

這是什麼,你可以使用它的一個示例配置。有數百種可能的配置可以滿足您的需求。訪問該網站獲取更多關於控件的信息。

Sample configuration: 
# minimum request rate (bytes/sec at request reading): 
QS_SrvRequestRate         120 

# limits the connections for this virtual host: 
QS_SrvMaxConn          800 

# allows keep-alive support till the server reaches 600 connections: 
QS_SrvMaxConnClose        600 

# allows max 50 connections from a single ip address: 
QS_SrvMaxConnPerIP         50 

# disables connection restrictions for certain clients: 
QS_SrvMaxConnExcludeIP     172.18.3.32 
QS_SrvMaxConnExcludeIP     192.168.10. 

http://opensource.adnovum.ch/mod_qos/