Блок пользователя
Регистрация на нашем сайте позволит вам общаться на форумах и получить доступ к другому полезному функционалу
Вы вошли как Гость

Простая блокировка IP-адресов

  • 191 просмотр
  • 9 декабря, 2023
  • Обновлено: 13 декабря, 2023
  • admin
  • Время чтения: 3 минуты
  • 2 (Подробно)

Иногда у любого владельца или администратора сайта возникает острая необходимость в более-менее подробном анализе входящих IP-адресов и простом инструменте для блокировки потенциально опасных из них. Как правило, во всех CMS для имеется только базовый инструментарий. Cotonti не исключение. Из коробки нам доступны два профильных плагина: IP Search и Banlist. Первый отвечает за поиск и IP и определение соответствующего ему хоста, второй блокирует айпи, который вы бы не хотели видеть в числе визитеров вашего ресурса.

Анализируем IP на предмет абьюза

Задача номер один состоит в том, чтобы понять, представляет ли айпи потенциальную угрозу. Узнать IP-адрес можно двумя способами:

  • получить из данных зарегистрированного пользователя,
  • использовать logger или системный протокол (Админка -> Управление -> Системный протокол).

В первом случае все просто: вы знаете ip надоедливого пользователя и можете заблокировать именно его, не отключая регистрацию на сайте. Второй кейс посложнее. Логгер системного ядра может указать вам на ip-адрес, представляющий потенциальную опасность для сайта. Для этого выберите селектом вкладку "Безопасность". Здесь можно узнать много интересного, например "Attempt to directly access an un-validated or future/expired page" или "IP banned 3 mins, was hammering". Если это не ваши собственные IP, то такие случаи могут сигнализировать о потенциальной угрозе. Первый шаг по ее устранению состоит в анализе адреса.

В качестве примера сервиса по анализу abusive IP мы выбрали AbuseIPDB. Это давно известный ресурс с удобным интерфейсом, позволяющий на основе пользовательских отчетов получить более-менее точное представление о том, не несет ли адрес угрозу. Поскольку сервис запускает анализ при передаче адреса в виде GET-параметра, сформировать готовую сроку не представит сложности.

Зайдем в папку вашей админки и откроем шаблон plugins/ipsearch.tpl. В удобное место добавим следующий код:

<!-- IF {PHP.id} -->
<div class="btn-group mt-3">
  <a href="https://www.abuseipdb.com/check/{PHP.id}" class="btn btn-sm btn-primary" target="_blank">Check IP for Abuse</a>
  <a href="{PHP|cot_url('admin', 'm=other&p=banlist&a=addip&ip2ban={PHP.id}')}" class="btn btn-sm btn-danger" target="_blank">Ban IP</a>
</div>
<!-- ENDIF -->

Теперь если в плагине IP Search будет анализироваться IP-адрес, в шаблоне будет сформирован блок из двух кнопок. Первая откроет в новой вкладке сервис AbuseIPDB и проанализирует найденный на сайте адрес. Вы увидите отзывы пользователей, столкнувшихся с подозрительной деятельностью с данного айпишника и уровень угрозы в процентах. Чем выше, тем, естественно, опаснее.

Упрощаем блокировку нежелательного IP-адреса

Теперь по второй кнопке. Как понятно из адреса, она откроет плагин Banlist с двумя дополнительными GET-параметрами: a и ip2ban. Достаточно было бы и одного, но первый в Котонти всегда стандартно отвечает за действие.

Для того, чтобы вся эта история заработала, необходимо установить небольшой плагин под названием banip, который проанализирует переданный нами IP-адрес и заполнит поля nbanlistip и nbanlistreason в локации Banlist. Вам останется только нажать кнопку "Отправить", и соответствущий айпи будет заблокирован в системе.

Заключение

При помощи простых действий и плагина в пять строк мы автоматизировали процесс блокировки нежелательных IP-адресов из админки Cotonti Siena. Теперь нет необходимости в копировании и вставке адреса. Не ахти, но все же.

Кстати, AbuseIPDB предлагает своим пользователям API. Мы определим возможность его интеграции в админку Cotonti и обязательно продолжим начатую сегодня тему.

Аватар

4. Джанго

  • 11.12.2023 11:37

Если начинается "обострение", лучше отключить анонимное комментирование и включить подтверждение регистрации администратором. Хотя бы на время.

Аватар

3. Kabak

Поблагодарили: admin (10.12.2023)

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

Аватар

2. admin

  • 09.12.2023 17:44

А что VPN? Какая разница, какой ip банить -- реальный или vpn-сервера? В любом случае, для абьюзера это бо́льший головняк. Особенно с учетом того, что vpn и легальный адрес провайдера это две большие разницы. 99% абьюзеров используют бесплатные, всегда медленные и перегруженные vpn. Нашел быстрый -- система зафиксировала подозрительные действия -- бан. Платный и быстрый vpn это совсем о другом.

Что быстрее и вызывает меньше головной боли в реальных ситуациях? Собственно, об этом и тема статьи.

Благодарная это штука или нет, но потенциальные аудитории не сидят на одних и тех же айпишниках. Один айпи или даже xxx.xxx.xxx.* это далеко не вся страна. К тому же баны в какой-то момент можно отключать.

Аватар

1. Kabak

  • 09.12.2023 17:17

самый простой обход - VPN. 

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

Новый комментарий

Имя:
Для редактирования комментария осталось 10 минут