Home » Linux » Спам запросов к al_profileEdit.php на веб сервере

Спам запросов к al_profileEdit.php на веб сервере

Заметил, что в error.log web сервера массово сыпятся сообщения с ошибками. Смысл сообщений был в том, что кто-то очень настойчиво ломится по адресу http://site.ru/al_profileEdit.php?__query=edit&al=-1&al_id=vk. Этого файла на сайте нет, поэтому сообщение попадает в лог ошибок. До кучи все эти запросы присутствуют в access.log. Все это создает лишнюю нагрузку на сервер, поэтому решил разобраться, как заблокировать этот спам.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

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

Бегло посмотрел в поиске. Нашел пару упоминаний о такой же проблеме, но простого и надежного решения не увидел. Предлагают сделать редирект куда-нибудь по этому адресу, либо закрыть файл через .htaccees. Но все это полумеры, которые не блокируют полностью запросы, а просто на них каким-то образом реагируют с наименьшими потерями.

На ум пришел простой и надежный fail2ban. Ранее я уже рассказывал о настройке fail2ban для защиты админки wordpress. В статье подробно все рассказано, как установить и настроить фильтры. Не буду подробно на этом останавливаться сейчас. Я просто добавлю новый фильтр, который будет навечно блокировать тех, кто будет обращаться к файлу al_profileEdit.php на веб сервере. Я сначала оставил дефолтные настройки блокировки на 10 минут вроде бы. Но долбили так часто, что с момента выхода из бана и до новой блокировки боты все равно успевали прилично наспамить в логи. Решил их блокировать навечно.

Создаем новый фильтр fail2ban:

# mcedit /etc/fail2ban/filter.d/wp-al-profileEdit.conf
[Definition]
failregex = ^<HOST> .* "GET /al_profileEdit.php

Этот фильтр вычленяет ip адреса всех, кто будет обращаться к файлу al_profileEdit.php на веб сервере. Данные будет брать из лог файла access.log.

Добавляем новый jail в /etc/fail2ban/jail.conf

[wp-al-profileEdit]
enabled = true
port = http,https
action = iptables[name=WP, port=http, protocol=tcp]
filter = wp-al-profileEdit
logpath = /web/sites/site.ru/log/access.log
maxretry = 1
bantime = -1

Перезапускаем fail2ban:

# systemctl restart fail2ban

и проверяем в логе как отработал. Он должен сразу забанить тех, кто успел отметиться в лог файле. Посмотреть список этих ip можно в правилах iptables:

# iptables -L -v -n

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

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

4 комментария

  1. Аватар

    А что если будет перемещен файл? Или удалена картинка? Ну разные могут быть причины ссылания на несуществующий объект, польщователь получит вечный бан. Как то это не хорошо, не кажется ли Вам?

    • Zerox

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

      • Аватар

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

  2. Аватар

    Кстати да! Меня не было на сайте несколько месяцев. За это время забыл пароль. Пытался восстановить его и при отправке запроса с сайта, последний просто переставал отвечать. Типа вис. Возможно из-за этого.

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.