Блокировать IP-адрес пользователя по HTTP-запросу?

Вопрос или проблема

Иногда я могу видеть в логах сервера записи, вызванные серией “странных” HTTP-запросов, таких как

2024.10.16 16:21:00 /index.php?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/&/<?echo(md5("hi"));?>+/tmp/index1.php <- null Error
2024.10.16 16:20:58 /apps/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php <- null Error
2024.10.16 16:20:59 /index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=Hello <- null Error

что выглядит как некая хакерская активность

Существует ли в Plesk или Apache функция для автоматического бана IP-адресов по URL запроса? Или мне придется написать свой собственный PHP-код для этого.

Ответ или решение

Для ограничения доступа к вашему веб-серверу от нежелательных IP-адресов, вызывающих подозрительную активность, вы можете использовать различные подходы в зависимости от конфигурации вашего сервера и инструментов, которые вы используете, таких как Plesk или Apache. В данной статье мы подробно рассмотрим, как можно заблокировать IP-адреса, исходя из определенных HTTP-запросов, и какие инструменты могут помочь в этом процессе.

Анализ ситуации

Вы упомянули о странных HTTP-запросах, которые могут свидетельствовать о попытках взлома. Эти запросы включают в себя доступ к уязвимым скриптам и нестандартным методам выполнения PHP, что говорит о том, что злоумышленники пытаются провести атаки на ваш сервер. Для защиты вашего веб-ресурса необходимо реагировать на такие попытки, например, блокировкой IP-адресов, с которых происходят эти запросы.

Блокировка IP-адресов в Plesk

Если вы используете Plesk, у вас есть возможность управлять доступом к вашему серверу через интерфейс веб-панели. Вот шаги, чтобы заблокировать IP-адрес через Plesk:

  1. Откройте Plesk Panel: Войдите в вашу панель управления Plesk.
  2. Перейдите в раздел Безопасность: Найдите раздел "Защита" или "Безопасность".
  3. Выберите ‘Блокировка IP’: Найдите опцию ‘Блокировка IP-адресов’.
  4. Добавьте IP-адрес: Введите IP-адрес, который хотите заблокировать, и укажите причину (например, наличие странных HTTP-запросов).
  5. Сохраните изменения: После добавления IP-адреса не забудьте сохранить изменения.

Блокировка IP-адресов в Apache

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

  1. Редактируйте файл .htaccess: Откройте файл .htaccess в корне вашего веб-сайта.
  2. Добавьте правила блокировки:
    <RequireAll>
       Require all granted
       Require not ip 192.168.1.100  # замените на IP, который хотите заблокировать
    </RequireAll>
  3. Сохраните изменения: Сохраните файл и перезагрузите Apache, если это необходимо.

Автоматизация процесса блокировки

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

  1. PHP-скрипт для блокировки: Вы можете разработать PHP-скрипт, который проверяет журналы сервера на наличие подозрительных запросов и автоматически добавляет IP-адреса в черный список.

  2. Использование инструментов мониторинга: Определенные плагины и инструменты, такие как Fail2Ban, могут быть настроены для мониторинга ваших журналов и блокировки IP-адресов, основываясь на определенных шаблонах.

Заключение

В данной статье мы рассмотрели, как можно эффективно блокировать IP-адреса, генерирующие подозрительные HTTP-запросы, используя как Plesk, так и Apache. Автоматизация процесса блокировки с помощью кастомных скриптов или готовых решений может значительно упростить управление безопасностью вашего веб-сервера. Регулярно анализируйте журналы доступа и отслеживайте активность на ваших серверах, чтобы вовремя реагировать на потенциальные угрозы.

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

Капча загружается...