
Комментарии 10
На дворе шел 2026 год.
ipset
С нетерпением жду статью про настройку сети в современных линуксах при помощи утилит ifconfig и route.
Справедливо отметили, спасибо) Да, для новых конфигураций я бы сейчас и сам скорее смотрел в сторону nftables, и как раз дорабатываю решение под него. Но сравнение с ifconfig всё же слишком сильное, ipset и сегодня остаётся рабочим инструментом для многих существующих серверов. В статье я разбирал именно тот вариант, который сложился на практике и показал себя в работе.
так есть же пакет, который возвращает простой и понятный синтаксис для обработчика nft
Пакеты из стран, где у нас нет интересов, дропаются сразу. HTTP даже не парсится.
а потом эти же люди воют, что у них без впн что-то не открывается 👌
Да, поэтому я и не рассматриваю это как универсальный подход. В данном случае блокировка по странам была отдельным требованием клиента😅 но в самом решении она сделана как отключаемая опция. То есть его можно использовать и без geoblock, оставив остальные уровни фильтрации и autoban.
Я для подобных целей написал плагин для Caddy (все новые проекты перевожу на него с Nginx). Для Caddy легко можно написать плагин ИИ-шкой.
Этот плагин просто банит опять же по ipset (чтобы даже до Caddy не добирались, не то что до бэкенда) всё чего нет в белом списке. Кроме того бэкенд может послать сигнал в Caddy (заголовок типа X-Ban-IP), с указанием на сколько его забанить. Это для случаев когда перебирают пароли, или что-то в этом духе. Можно указывать время бана и степень (отдавать ошибку 418/429 или в ipset). Также для ipset используется ttl, так как IP могут меняться, и нечего захламлять себе. В последнее время смотрю начали долбить с Cf-Worker.
В качестве альтернативы можно подключить сайт с битриксом (как и любой другой) к SIEM-системе, например бесплатный Wazuh. Агент отправляет логи в SIEM, SIEM их анализирует и по списку правил (страна, shellshock, wp-login.php, .env, git,.. ) принимает решение блокировать или нет и на какой срок. Успевают пролетать только несколько первых запросов. В дополнение проверка по mittre, интерфейс, история, алерты.
Три слоя защиты сервера: ipset, auto-block и CrowdSec