bd8*_*808 79 apache apache2 ddos
有哪些技术和/或模块可用于在apache中实现强大的速率限制(请求|字节/ ip /单位时间)?
Vin*_*vic 53
最好的
其余的
Die*_*rán 18
如本博客文章所述,似乎可以使用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"
Run Code Online (Sandbox Code Playgroud)
Pan*_*ack 11
有许多方法,包括Web应用程序防火墙,但如果使用Apache mod,最容易实现.
我想推荐的一个mod是mod_qos.这是一个免费的模块,对于certin DOS,Bruteforce和Slowloris类型的攻击非常有效.这将缓解您的服务器负载.
它非常强大.
mod_qos模块的当前版本实现了管理的控制机制:
对位置/资源(URL)或虚拟主机的最大并发请求数.
带宽限制,例如每秒允许的最大请求数到URL或每秒下载的kbytes的最大/最小值.
限制每秒请求事件的数量(特殊请求条件).
通用请求行和标头过滤器,以拒绝未经授权的操作.
请求正文数据限制和过滤(需要mod_parp).
限制单个客户端(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.
Run Code Online (Sandbox Code Playgroud)
http://opensource.adnovum.ch/mod_qos/
| 归档时间: |
|
| 查看次数: |
94814 次 |
| 最近记录: |