FSF столкнулась с агрессивными скрейперами, которые собирают данные для тренировки LLM, и вложила серьёзные ресурсы в защиту от DDoS. Администраторы заметили аномальные паттерны в трафике, написали под них регулярные выражения, получили списки IP и выяснили, что часть краулеров использует ботнеты из домашних IP, чтобы быстрее скрепить и не светиться. Подозрение пало на ботнет Vo1d/Popa, состоящий из смарт-телевизоров со скомпрометированным приложением. Исследователи из Qurium — организации по цифровой криминалистике — запустили собственный узел и подтвердили, что часть атак на GNU Savannah действительно идёт через Vo1d/Popa.
Сначала паттерны загружали в fail2ban, который через UFW банил адреса. Но UFW начал деградировать на 65 тысячах правил — это был предел. Тогда перешли на ipset: fail2ban складывал IP в множества ipset, и база без проблем выросла до пяти миллионов записей. Однако архитектура fail2ban на Python и SQLite упёрлась в другие лимиты. Пришлось быстро клеить костыли на BASH, awk и Perl — напрямую парсить логи и добавлять IP в ipset, без базы-посредника. Самодельные скрипты работали, но когда паттернов стало много, поддерживать несколько мелких скриптов стало тяжело. К тому же не все совпадения надо было банить сразу — требовалась логика, как в fail2ban.
Поискали современные альтернативы fail2ban. Многие проекты были одноразовыми демками, а не поддерживаемыми решениями. В итоге нашли на Framagit (ковчег Framasoft) проект reaction от пользователя ppom. Настроить оказалось непросто — reaction не поставляется с готовой конфигурацией, только с примерами. Под ipset примера не было, пришлось писать самим. Зато в результате получили конфигурацию ровно под свои нужды, без лишнего.
Сначала реакция тормозила на старте и перезапуске, поэтому FSF переделала процедуру: при выключении reaction экспортирует IP-наборы на диск, при запуске — восстанавливает. Это дало почти мгновенный перезапуск сервиса после обновления правил. Обе конфигурации опубликовали в вики reaction, и теперь документация проекта ссылается на их метод.
Сейчас reaction делает основную работу по автоматической блокировке и держит сайты FSF онлайн. Администраторы благодарны ppom за проект и помощь. Подчеркивают, что такие улучшения возможны только благодаря поддержке сообщества — членам FSF, которые позволяют не идти на компромиссы в защите свободного ПО.