[[ Защита от bruteforce средствами Nginx ]]

Nginx

Защита от bruteforce средствами Nginx

Используем модуль ngx_http_limit_req_module

www-servers/nginx-1.12.2-r1

Redmine

Конфиг для redmine-3.1.1 ограничивает не более 10 запросов в минуту

/etc/nginx/sites-enabled/redmine

upstream prod_redmine {
        server 127.0.0.1:3000;
}

# Зона ограничения
# 'try_files' не работает с 'if' http://wiki.nginx.org/IfIsEvil поэтому используем map
limit_req_zone $bruteforce_var zone=bruteforce_zone:1m rate=10r/m;
map $request_method $bruteforce_var {
        default "";
        POST $binary_remote_addr;
}

server {
...

        location ~* /login {
                # Защита от перебора паролей
                limit_req zone=bruteforce_zone burst=2 nodelay;
                try_files $uri @redmine;
        }

...
}

Zabbix

/etc/nginx/sites-enabled/zabbix

# Зона ограничения
limit_req_zone $bruteforce_var zone=bruteforce_zone:1m rate=10r/m;
map "$request_method:$request_uri" $bruteforce_var {
        default "";
        "~^POST:/index.php" $binary_remote_addr;
}

server {
...

        location ~ \.php$ {
                # Защита от перебора
                limit_req zone=bruteforce_zone burst=2 nodelay;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
                fastcgi_pass unix:/var/run/php.sock;
        }
}

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
161 +1᠎ = 
 
practice/nginx/bruteforce.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki