Ограничение доступа к wp-login по ip в nginx

By | 18.05.2019



В последнее время fail2ban перестал нормально защищать от брутфорса на wordpress потому, что ip во всяком запросе уникальный и блокировать каждый адрес бессмысленно.

Ограничение доступа к wp-login по ip в nginx

Раз такая ерунда, решил ограничить доступ к файлу wp-login.php по ip. Здесь есть один нюанс: для прописанного в конфигурационном файле nginx локейшена (location) нужно добавить обработчик скриптов, при использовании php-fpm.

В итоге, конструкция выглядит так:

server{ ... location ~* wp-login.php$ { allow 127.0.0.1; deny all; try_files $uri =404; fastcgi_pass unix:/run/php-www.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name; fastcgi_ignore_client_abort off; fastcgi_param PHP_VALUE "sendmail_path=/usr/sbin/sendmail -t -i -fmail@example.com"; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/example.com/:/var/save_path/:/var/tmp_dir/"; } ... }

Теперь ботам выдаётся ошибка 403 вместо страницы авторизации. Только этот метод не слишком универсален — если на сайте есть регистрация пользователей, применить его не получится.

Но если вы — единственный пользователь, то можно подключить фантазию, и вместо доступа по ip сделать доступ по user-agent, по паролю…

Источник: https://www.comp-web-pro.ru/ogranichenie-dostupa-k-wp-login-po-ip-v-nginx.html





Добавить комментарий