我的网站收到很多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可以关闭我的服务器,但我不知道。