Обработка списков и модуль матчинга HTTP

  • Логика по обработке FQDN перенесена из предобработки в ядро (достаточно простая и не требует модификации содержимого анализируемых пакетов), что позволило снизить объёмы загружаемых в ядро списков почти в два раза (со всеми вытекающими отсюда бонусами в виде повышения производительности поиска, ускорению получения новых сигнатур и т.д.).
  • Добавлена обработка URL с точкой в конце GET-запроса (часть браузеров/библиотек её обрезают)
  • Добавлена предобработка собственных списков URL (при использовании многосписочности с разными страницами редиректа, с our.list и подобными все итак в порядке), раньше попадали в ядро «как есть»
  • Фильтрация трафика по HTTPS при наличии HTTP ссылки стала опциональной и выключена по умолчанию. Несколько ошибочная старая логика, существовавшая со времён, когда в единый реестр не попадало всё подряд.

Резолвер и firewall

  • Как и обещали — добавлена проверка работоспособности указанных в resolv.conf DNS-серверов перед запуском резолва.
  • Добавлена поддержка резолва IPv6 ресурсов и его блокировка по HTTPS.
  • Исправлена ошибка, приводившая к повреждению кэша резолва.
  • Исправлена ошибка, приводившая к невозможности обновления кэша резолва в некоторых ситуациях.

Диагностика и техподдержка

  • Удалён старый код по отправке диагностических данных в мониторинг, больше не будет ошибок «используется старая система мониторинга».
  • Добавлены полезные скрипты, ускоряющие работу технической поддержки (да и многим администраторам будут полезны):
    • /usr/local/Reductor/bin/support_info.sh — общая информация по серверу;
    • /usr/local/Reductor/bin/mirror_info.sh <packet\_count> — информация о содержимом зеркала трафика, помогает понять что идёт не так при настройке.
    • /usr/local/Reductor/bin/link_rx_speed.sh — информация об объёме входящего трафика на этой сетёвке.
  • Добавлены проверки содержимого собственных списков (пока только чёрных) на валидность
  • Улучшена читаемость вывода утилиты /usr/local/Reductor/bin/url_info.sh (и check_rkn_report.sh соответственно), разбираться с тем, почему что-то не блокируется теперь стало немного легче.
  • Добавлен скрипт для экстренного отката Carbon Reductor на предыдущую версию. На всякий случай.
  • Диагностика неправильно исправляла слетевшую по какой-либо причине активацию Carbon Reductor;
  • Вывод проверки наличия IP адресов на интерфейсах стал «чище».

Прочее

  • После ротации логов не записывались данные о срабатываниях блокировок в forbidden.log
  • Повышена отказоустойчивость скрипта обновления сигнатур на случай недоступности сервера
  • Часть кода на bash стала «чище» после анализа с помощью shellcheck и небольшого рефакторинга
  • Добавлен автоматический откат в случае неожиданных сбоев при обновлении
  • Добавлено сохранение выгрузок (с сохранением идентификатора запроса) и собственных списков в /var/lib/reductor/backups/. Полезно для «разборов полётов» в случае предъявления ошибочных претензий со стороны РКН. Хранится по 1 бэкапу на:
    • последние 24 часа;
    • последние 30 дней;
    • последние 12 месяцев;
    • каждый год;
  • Снапшоты кэшей за последние 24 часа сжимаются gzip.
  • Для созданного с помощью мастера настройки сканирования трафика L3 зеркала по умолчанию стояла опция ARP=no, что приводило к его неработоспособности.