Вопрос или проблема
Иногда я могу видеть в логах сервера записи, вызванные серией “странных” 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:
- Откройте Plesk Panel: Войдите в вашу панель управления Plesk.
- Перейдите в раздел Безопасность: Найдите раздел "Защита" или "Безопасность".
- Выберите ‘Блокировка IP’: Найдите опцию ‘Блокировка IP-адресов’.
- Добавьте IP-адрес: Введите IP-адрес, который хотите заблокировать, и укажите причину (например, наличие странных HTTP-запросов).
- Сохраните изменения: После добавления IP-адреса не забудьте сохранить изменения.
Блокировка IP-адресов в Apache
Если ваш сервер использует Apache, вы можете выполнить блокировку IP-адресов через файл конфигурации .htaccess
или основной конфигурационный файл Apache. Вот как это сделать:
- Редактируйте файл .htaccess: Откройте файл
.htaccess
в корне вашего веб-сайта. - Добавьте правила блокировки:
<RequireAll> Require all granted Require not ip 192.168.1.100 # замените на IP, который хотите заблокировать </RequireAll>
- Сохраните изменения: Сохраните файл и перезагрузите Apache, если это необходимо.
Автоматизация процесса блокировки
Если у вас есть необходимость автоматически блокировать IP-адреса по определенным критериям, например, после многократных попыток доступа к уязвимым скриптам, вы можете использовать кастомный PHP-скрипт или сторонние инструменты.
-
PHP-скрипт для блокировки: Вы можете разработать PHP-скрипт, который проверяет журналы сервера на наличие подозрительных запросов и автоматически добавляет IP-адреса в черный список.
-
Использование инструментов мониторинга: Определенные плагины и инструменты, такие как Fail2Ban, могут быть настроены для мониторинга ваших журналов и блокировки IP-адресов, основываясь на определенных шаблонах.
Заключение
В данной статье мы рассмотрели, как можно эффективно блокировать IP-адреса, генерирующие подозрительные HTTP-запросы, используя как Plesk, так и Apache. Автоматизация процесса блокировки с помощью кастомных скриптов или готовых решений может значительно упростить управление безопасностью вашего веб-сервера. Регулярно анализируйте журналы доступа и отслеживайте активность на ваших серверах, чтобы вовремя реагировать на потенциальные угрозы.