Новый плагин CrowdSec для защиты сайтов на WordPress

    Всем привет! Мы активно работаем над развитием нашей системы блокировки нежелательных IP-адресов и сегодня рады рассказать сообществу о нашей новой разработке — плагине WordPress для упрощения жизни веб-мастеров и защиты администрируемых ими сайтов.

    Как и многие другие наши решения, новый баунсер для WordPress — опенсорсная разработка, которую мы распространяем под лицензией MIT. Распространяем мы его в виде официально подтвержденного WordPress-плагина. Ознакомиться со страницей нашей разработки и скачать его можно на официальном сайте WordPress.

    Новый баунсер CrowdSec для WordPress решает сразу две задачи веб-мастера: отсекает нежелательные IP-адреса и имеет дополнительную функцию более мягкой блокировки — показывает нежелательным или подозрительным IP-адресам капчу.

    Для того, чтобы плагин работал, вам, как и в случае отдельно взятого сервера или сети, нужно будет установить серверную часть CrowdSec. Ранее мы уже публиковали небольшой туториал на эту тему, почитать можно тут. Наш плагин для WordPress совместим с версиями CrowdSec 1.0.х, то есть с последними актуальными релизами после нашего большого обновления, в котором мы провели рефакторинг архитектуры и перешли на использование API вместо прямых обращений элементов системы к БД.

    Flex Mode

    Сайты на WordPress — это, очень часто, сайты малого и среднего бизнеса, который пользуется готовым решением вместо собственной длительной разработки. Таким ресурсам крайне важен каждый посетитель, который потенциально может стать клиентом или покупателем. Также у веб-мастеров часто просто нет бюджета, либо это самоучки, которые не знаю, как правильно настроить защиту.

    CrowdSec — достаточно мощный инструмент, как и любой другой проект в этой сфере, а перманентный бан по IP-адресу не шутка.

    Именно для того, чтобы веб-мастер по незнанию или не внимательности не сделал непоправимое, мы создали Flex Mode для плагина WordPress.

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

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

    Специально для тех, кому не плевать на внешний вид их сайта, мы дополнительно ввели систему кастомизации внешнего вида окна капчи, которое выдает наш плагин подозрительным посетителям. Вот так выглядит дефолтная капча:

    А вот так уже кастомизированная:

    Мы знаем, что внешний вид не имеет отношения к функциям защиты, однако возможность органично вписать капчу в сайт — не лишняя. Как минимум визуально посетитель поймет, что к сайту относятся серьезнее, чем во многих других местах, где он сталкивался с капчей.

    Баланс защиты и производительности

    У нашего плагина есть два режима поддержания связи с серверной частью CrowdSec.

    Первый режим по умолчанию — "Live mode". Это режим, в котором баунсер при обращении к сайту нового пользователя в режиме реального времени обращается к API сервера для получения информации. В том числе, в этом режиме, IP посетителя сайта проверяется и по общему бан-листу CrowdSec, который генерируется с нашей стороны как разработчиков. После этого сервер передает информацию обратно баунсеру в плагине и он уже банит/не банит пользователя, или показывает ему капчу.

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

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

    Он называется "Stream Mode" — и работает по обратному принципу, нежели "Live Mode". При включении режима поточной работы, главным инициатором выгрузки бан-листа становится серверная часть, которая с определенной периодичностью просто обновляет списки на стороне баунсера, позволяя тому работать с большей автономией.

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

    Если вы используете CDN, обратный прокси или балансировщик нагрузки, вы сможете указать в настройках баунсера диапазоны IP-адресов этих устройств. Это позволит вам проверять IP-адреса ваших пользователей. Для других IP-адресов баунсер не будет доверять заголовку X-Forwarded-For.

    Что будет дальше

    Мы не остановили работу над плагином после релиза и в ближайшем будущем он получил визуальную панель управления, через которую можно будет визуализировать активность баунсера. Это даст больше информации и понимания того, что происходит с вашим сайтом и насколько эффективен плагин CrowdSec. Также вскоре мы позволим напрямую подключаться к репутационной базе, которую мы собираем сами, так что вам не понадобится агент для проверки публичного бан-листа.

    Новый плагин мы протестировали на большинстве версий WordPress, которые сейчас актуальны в мире. В общей сложности, тестами мы покрыли 90%, если верить статистике использования WP по миру. Также мы проводили тестирование на PHP версий 7.2, 7.3, 7.4 и 8, чтобы исключить конфликты на уровне языка, на котором написан WordPress. Само собой, с выходом новых версий как движка, так и языка программирование, мы продолжим работу в этом направлении.

    Повторимся, что плагин выпущен под лицензией MIT — самой свободной и широкой бесплатной лицензией в мире. Исходный код плагина полностью доступен на GitHub, как и исходный код CrowdSec.

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

    CrowdSec
    IT security, hosting and virtual environment

    Комментарии 3

      +1

      какие отличия от wordfence? из обзора ничего не понятно, кроме усложнения установки (серверная часть)

        +1
        Вместо нудного ручного ввода каптчи, можно использовать более гуманную систему noCAPTCHA от Google, интегрированную вместо вашей стандартной каптчи.
          0
          репутационная база — сколько уже было попыток создать это, всё закончилось ничем.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое