我正在为基本的DDoS保护配置nginx。我想使用http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html中描述的limit_conn模块。 特别是我不明白这个例子:
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
...
limit_conn perip 10;
limit_conn perserver 100;
}
描述如下:
例如,以下配置将限制每个客户端IP与服务器的连接数,同时限制与虚拟主机的连接总数
第一部分很清楚,我允许来自一个IP的同时连接不超过10个。
但第二条规则是否意味着,我只允许100次连接到我的服务器?因为如果是这样,并且攻击者只打开~100个连接就会阻止所有人访问服务器,从而有效地使DDoS攻击成功。
答案 0 :(得分:3)
是的,第二条规则意味着您将允许不超过100个同时连接到该特定域。但是,考虑到你还限制了每个ip的最大连接数,攻击者将需要使用不同的ip来成功攻击。
我必须补充一点, limit_conn只是减轻攻击的一种方法,但它不足以缓解真正的DDoS攻击。
您可能需要查看这些nginx指令:limit_req,limit_rate,client_body_timeout,client_header_timeout。
本文将向您展示为减轻DDoS攻击还有更多工作要做: https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/
此外,本文将向您介绍一些配置提示: https://www.nginx.com/blog/tuning-nginx/
希望它有所帮助。