Автоматический IP файрвол для Вордпресс

Автоматический IP Firewall для WordPress
На просторах Интернета я нашел небольшой PHP скрипт, который автоматически обновляет файл .htaccess текущим списком IP адресов, ведущих вредоносную деятельность.

Этот файрвол улучшает «защиту веб-сайта в реальном времени» от хакерских атак и вредоносных запросов, так как запрещает доступ к веб-сайту с данных вредоносных IP.

Как следствие, вы получите более защищенный веб-сайт и сэкономите ресурсы сервера на вредоносных запросах с данных IP, которые вы потратите на обслуживание пользователей с «хороших» IP.

Чтобы установить этот файрвол, вам понадобится доступ к серверу. Вы добавите один файл и настроите cron расписание.

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

Шаг 1. Добавьте PHP скрипт

Первое, что вам необходимо сделать — добавить скрипт на сервер. Скачайте скрипт отсюда или отсюда, или скопируйте отсюда:

Скрипт был написан в 2013 году, но до сих пор работает на 100% правильно и эффективно. Это действительно краткий и изящный скрипт.

В нем не необходимо делать никаких изменений, просто загрузите файл на сервер и переходите к Шагу 2 для параметра cron расписания.

Сам по себе он ничего не делает. Его необходимо вызывать, чтобы он подключался к указанному адресу, получал последний список вредоносных IP адресов и добавлял их в .htaccess.

То есть, с технической стороны, вы могли бы каждый день вручную запускать этот скрипт, чтобы обновлять список плохих IP, но можно без труда это делать автоматически при помощи cron команды.

Важно: Ваш .htaccess файл должен иметь правильные права доступа, чтобы сервер имел к нему доступ и мог записывать новую информацию. Проверьте, что у сервера есть минимальные права доступа.

В зависимости от параметров сервера, права доступа должны быть 600 или выше.

Решение проблем

Хотя в этом скрипте нечему ломаться или работать неправильно, у вас может появиться проблема отсутствия доступа к файлу. htaccess, даже если он существует и ему даны правильные права доступа.

Если вы постоянно приобретаете ошибку No access to file: /.htaccess in your website root directory. Please create this file or change file permissions if it exists, то измените путь к файлу. htaccess.

Попробуйте убрать слэш перед файлом. htaccess в строке 32:

Если это не сработает, запишите полный путь к. htaccess:

Замените /путь/к//файлу/ на путь.

Шаг 2. Cron расписание

После того, как вы загрузили файл на сервер, вам необходимо изменить cron расписание, чтобы запускать скрипт раз в день, два раза в день, раз в неделю или с нужной вам периодичностью.

Существует как минимум 2 метода запускать cron: непосредственно на сервере(или на панели веб-хостинга), или используя WordPress Cron API.

Linux/Unix Cron

Cron — это сервис хронологических расписаний в ОС Linux/Unix. Cron задания используются для периодического выполнения команд или скриптов, с указанным временным интервалом.

В ОС Linux/Unix cron сервис работает в фоновом режиме и постоянно опрашивает файл /etc/crontab и папки /var/spool/cron/ и /etc/cron./*.

Типичное cron задание, которое запускается каждые 24 часа, выглядит так:

 # [minute hour day month weekday] [resource] [command] 0 24 * * * /usr/bin/php /var/www/html/phpscript_httaccess.php 

Каждое cron задание состоит из трех элементов, которые необходимо изменить:

  • Временной интервал
  • Путь к ресурсу(в этом случае папка /php)
  • Путь к скрипту(в этом случае файл phpscript_httaccess.php)

Самое сложное во всем этом — правильно записать адреса, то есть путь к ресурсу и путь к скрипту.

Больше информации по параметру cron -расписания: unixgeeks.org.

Cron в панели веб-хостинга

На моем веб-хостинге можно без труда изменить выполнение cron заданий.

Мастер cron заданий на панели Beget
Мастер cron заданий на панели Beget

При помощи этого мастера вы можете создать задание за пару кликов.

  • Выберите PHP-скрипт
  • В дереве файлов найдите нужный файл
  • Настройте время выполнения

На веб-хостинге это должно делаться аналогично.

WordPress Cron

Как и в Linux/Unix системах, в WordPress тоже есть функция выполнять задания по расписанию или с заданной периодичностью.

В отличие от крона на Linux/Unix, крон WordPress будет псевдо крон сервисом. Вместо того, чтобы выполняться в строго указанное время, задания выполняются после указанного времени во время первой загрузки страницы.

То есть, если задание назначено на 14:00, то оно выполнится, когда первый пользователь после 14:00 запросит какую-то страницу. К примеру, если пользователь придет на веб-сайт в 14:12, то задание выполнится в 14:12.

В большинстве случаев такой псевдо-крон работает отлично, но для веб-сайтов с небольшой посещаемостью это может быть проблемой.

Простой скрипт для добавления нового cron задания:

Замените /path/to/ на путь к файлу phpscript_httaccess.php в строке 10.

Чтобы добавить данные 2 возможности в WordPress, вы можете создать плагин, либо добавьте их в файл functions.php дочерней темы или при помощи специального плагина.

Cron расписание при помощи плагина

Вы можете легко создать cron задания при помощи плагина. Попробуйте плагины Advanced Cron Manager или WP Crontrol:

Advanced Cron Manager — debug & control

Author(s): BracketSpace

94% Ratings 20 000+ Installs WP 3.6+ Requires More info

advanced-cron-manager.2.4.0.zip

Current Version: 2.4.0

Last Updated: 22.07.2020

94% Ratings 20 000+ Installs WP 3.6+ Requires WordPress.org Plugin Page WP Crontrol

Author(s): John Blackbourn & crontributors

98% Ratings 100 000+ Installs WP 4.1+ Requires More info

wp-crontrol.1.8.5.zip

Current Version: 1.8.5

Last Updated: 30.05.2020

98% Ratings 100 000+ Installs WP 4.1+ Requires WordPress.org Plugin Page

Если вам нужна авторизация на сервере, попробуйте плагин WP Cron HTTP Auth:

Тестирование

После того, как вы все настроили, вы можете проверить, что файрвол работает, наблюдая за файлом .htaccess. Вы должны увидеть, что директивы, которые этот скрипт добавляет в файл .htaccess, меняются с заданной периодичностью.

Чтобы проверить работу скрипта на этапе тестирования, вы можете без проблем уменьшить интервал расписания, к примеру, до 5 минут. После этого вы можете добавить какой-то комментарий или пустую строку в тот раздел .htaccess, куда файрвол добавляет правила.

Подождите 5 минут, вы должны увидеть, что комментарий или пустая строка пропали, так как файрвол обновил / записал новые правила.

Плагины с файрволом

Этот файрвол в готовом виде есть в некоторых плагинах. Вы можете попробовать плагин WP Maltor:


WP Maltor

Этот плагин блокирует доступ к веб-сайту с вредоносных IP, которые он берет с того же ресурса, к которому мы настраивали подключение. Интервал обновления — 30 минут, не настраивается.

Вторая функцию — плагин блокирует подключение к веб-сайту с IP, которые используют Tor. Вы можете без труда включить работу одной из двух возможностей, или обе сразу же.

Ещё один более комплексный платный плагин, который использует тот же сервис, — Security Ninja Pro.

Плагин Security Ninja

Большой комплексный плагин со всеми необходимыми параметрами безопасности. У плагина есть пару сканеров по расписанию, сообщения на е-мейл о подозрительной активности, логи событий и IP файрвол с динамической базой более чем 640 млн. вредоносных адресов.

Этот плагин вы можете легко дополнить ручными параметрами:

  • Дополнительные параметра Security Ninja Pro

Заключение

Этот автоматический IP файрвол запрещает доступ к веб-сайту с IP адресов, ведущих подозрительную или вредоносную деятельность, затрачивая при этом минимум ресурсов.

Это значит, что их вредоносная деятельность будет пресечена ещё на подходе к веб-сайту, а освободившиеся ресурсы сервера будут потрачены на обслуживание хорошего трафика.

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

  1. Как установить бесплатный файрвол на сервер
  2. Как отключить информацию о версии ПО в ответах Сервера

Надеюсь, статья была полезна. Оставляйте комментарии.

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

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