我如何在cloudflare之后的Nginx上创建黑名单ips? (反DoS / DDoS)

时间:2019-05-31 00:17:12

标签: nginx cloudflare blacklist fail2ban

我的网站收到很多DoS / DDoS攻击。 我已经使用fail2ban在Cloudflare后面设置了一个Nginx。

要首先解决DoS攻击,我在nginx中设置了速率限制,即恢复了原始ips,然后通过fail2ban将IP禁止了1个小时,但它只是不起作用

我猜是因为Cloudflare IP仍在连接。

我正在使用 set_real_ip_from real_ip_header CF-Connecting-IP; 恢复IP!另外,我的nginx error.log只是被垃圾邮件了,我看不到该IP的速率受到限制。

error.log的垃圾邮件超过9万行,

2019/05/29 20:44:47 [error] 1726#1726: *1898 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 99.999.999.999, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com" 

2019/05/29 23:33:08 [error] 26124#26124: *135 upstream timed out (110: Connection timed out) while connecting to upstream, client: 99.9999.999.99, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "example.com" ```


我在nginx中的速率限制如下:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;

server {

    include /etc/nginx/cloudflare; #  whitelisting the ip's from cloudflare etc

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
        limit_conn conn_limit_per_ip 15;
        limit_req zone=mylimit nodelay;
    } .....

是否有可能在nginx(免费版本)中创建黑名单以阻止IP X秒钟而不使用fail2ban?

我的另一个问题是,为什么这一切都不起作用,并且只有一个IP(DoS)可以关闭我的完整服务器,在Cloudflare中的UAM模式之后,nginx限制了此速率。如果有人愿意花时间向我解释,那就太好了!

对不起我的英语。


编辑: 例如,如果我设定速率限制以测试 3r / s 并在浏览器中刷新3次,则我的URL会起作用,并且给我一个错误提示。 但是无论如何,只有一个IP可以关闭我的服务器,但我不知道。

0 个答案:

没有答案