Опыт — учитель, дорого берущий за свои уроки, но никто не учит лучше него (Т. Карлейл).

Защита wp-login в WordPress с Nginx HTTP Auth + fail2ban

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Статья опубликована: 5 февраля 2017

Защита wp-login d WordPress с Nginx HTTP Auth + fail2ban
Защита wp-login.php для WordPress имеет важное значение для защиты от переборов хакеров. Большинство администраторов WordPress будет использовать плагин , как All-in-One Security  (рекомендуется) или Wordfence, чтобы блокировать пользователей, которые делают чрезмерные попытки входа в систему. Проблема с техникой плагина заключается в том, что эти грубые методы защиты силы все еще дороги для вашего веб – сервера. Когда пользователь пытается войти в систему, происходит обработка PHP и делаются запросы MySQL, чтобы проверить, является ли пользователь действительным или нет. Если вы получаете много неудачных попыток входа в систему, то вы увидите, что использование центрального процессора и оперативной памяти излишне израсходованы.

Использование основного метода аутентификации HTTP с Nginx будет потреблять гораздо меньше ресурсов, чем при использовании плагина. При авторизации HTTP не будет использоваться ни PHP, ни MySQL, ваш сервер будет использовать значительно меньше ресурсов, для защиты себя от злоумышленников и хакеров. Мы настроим fail2ban для сканирования файлов журнала Nginx и запретим злоумышленникам на автомате.

Для этого урока вам потребуется доступ оболочки (корневой доступ SSH) на веб-сервер под управлением Debian или Ubuntu.

У вас должны быть установлены Nginx, PHP и WordPress, чтобы использовать это руководство.

Настройка Nginx с базовой HTTP Auth для WordPress

Установите утилиты Apache, чтобы получить генератор файла .htpasswd и Fail2ban

Создайте файл .htpasswd для вызываемого пользователя andreyex

Вам будет предложено ввести пароль дважды. Этот пароль хешированный md5 и будет хранится в файле /etc/nginx/.htpasswd

Посмотрите, и вы можете увидите файл .htpasswd, который содержит только урезанный вариант вашего пароля

Теперь нам нужно включить .htpasswd в другое место для Nginx в wp-login.php, откройте файл виртуального хоста Nginx

Убедитесь, что у вас есть журнал ошибок Nginx, указанный в вашем блоке сервера. fail2ban необходимо сканировать журналы ошибок, чтобы найти неудачные попытки входа.

Добавьте раздел wp-login.php, настройте fastcgi_pass, если вы все еще используете PHP 5.

Нажмите Ctrl + X, Y и Enter для сохранения и выхода.

Проверьте синтаксис конфигурации Nginx на правильность заполнения.

Перезапустите Nginx, если вы не получили ошибки.

Теперь мы создаем некоторые данные журнала, журнал Nginx заполняется с ошибками авторизации HTTP. Это позволит нам проверить, если fail2ban обнаружит неудачные попытки входа.

Убедитесь в том, используйте правильное имя пользователя и неправильный пароль. Также используйте неправильный пользователь и пароль, каждая неудача генерирует различные данные журнала.

Посмотрите в ваш файл журнала Nginx

Будет примерно следующее:

Теперь пришло время, чтобы создать фильтр для Nginx

Настройка fail2ban для запрета взломов в WordPress

Fail2ban использует фильтры для выявления нарушений, чтобы запретить пользователей, которые нарушают фильтр.

Создание фильтра Fail2ban для Nginx HTTP Auth

Создадим фильтр Nginx, если вы находитесь в Fail2ban и у вас уже есть этот файл, в этом случае вы можете переходить к тестированию с помощью команды fail2ban-regex.

Добавьте код ниже, который является регулярным выражением для логов выше, взято из источника

 

Нажмите Ctrl + X, Y + Enter, чтобы сохранить изменения и выйти.

Теперь мы можем проверить фильтр аутентификации Nginx HTTP, сканируя журнал ошибок, указанный в файле виртуального хоста Nginx.

Вы увидите этот вывод, показывающий, наши неудачные попытки входа, которые мы сгенерировали ранее.

Создание Fail2ban для Nginx Jail HTTP Auth

Убедитесь, что у вас есть каталог jail в Fail2ban.

Создание конфигурационного файла Fail2ban jail для Nginx HTTP аутентификации

Вставьте конфигурацию, использующая фильтр, который мы создали ранее, она будет сканировать все файлы журнала Nginx и банить пользователей в течение 6000 минут, которые зашли с ошибками 3 раза в 60-секундный период.

Теперь, когда мы настроили jail, проверим синтаксис Fail2ban, убедившись, что это все работает

Если вы не увидели каких-либо ошибок (предупреждения OK), то мы можем перезапустить fail2ban

Проверка статуса Nginx HTTP Auth Fail2ban

Fail2ban клиент может быть использован, чтобы показать статистику.

Во время местного теста нам удалось получить заблокированный шлюз IP.

Вы также можете перечислить IPTables

Это показывает цепочку IPtables для ограничения Nginx HTTP Auth запросов

Вы увидите много ботов сканирования и положить пароли по умолчанию. Они будут быстро запрещены. После того как я установил это решение безопасности WordPress мне не нужны никакие тяжелые PHP плагины как WordFence для блокировки пользователей. Мой веб-сервер может тратить больше времени, используя свои ресурсы более разумно, как обслуживания контента для быстрой доставки пользователю.

Защита wp-login d WordPress с Nginx HTTP Auth + fail2ban


Читайте также

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

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close