Что такое Rspamd и как настроить антиспам-фильтр

10 минут чтения
Средний рейтинг статьи — 4.9

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

Основные возможности Rspamd

  • Высокая производительность: способен обрабатывать десятки тысяч писем в секунду.
  • Модульная система: проверка DKIM, SPF, DMARC, URL, текстовых шаблонов, Bayesian-фильтров.
  • Машинное обучение: позволяет фильтру адаптироваться под типичный трафик вашей почты.
  • Интеграция с MTA: Postfix, Exim, OpenSMTPD и др.
  • Веб-интерфейс: статистика, отчёты и ручное управление фильтрами через Rspamd Web UI.

Как Rspamd работает

  1. Приём письма: почтовый сервер передаёт сообщение на проверку Rspamd.
  2. Анализ письма:
    • Проверка SPF/DKIM/DMARC.
    • Анализ заголовков, текста и URL.
    • Проверка по черным спискам и локальным правилам.
  3. Оценка риска: Rspamd присваивает письму скор (score), показывающий вероятность спама.
  4. Действие: в зависимости от настроек, письмо может быть:
    • доставлено,
    • помечено как спам (например, добавлением заголовка X-Spam-Flag),
    • отброшено или помещено в quarantine.

Установка Rspamd (Ubuntu/Debian)

sudo apt update
sudo apt install rspamd
sudo systemctl enable --now rspamd

После установки сервис будет слушать порт 11333 для веб-интерфейса и порт 11332 для локального MTA.

Интеграция с Postfix

Простейшая интеграция через milter:

  1. В main.cf добавляем:
smtpd_milters = inet:127.0.0.1:11332
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 6
  1. Перезапускаем Postfix:
sudo systemctl restart postfix

Теперь весь входящий и исходящий трафик проходит через Rspamd.

Настройка правил и порогов

  • Score threshold — значение, при котором письмо считается спамом.
  • Custom rules — свои фильтры на основе регулярных выражений, URL и заголовков.
  • Bayesian learning — тренировка фильтра на вашей почте для уменьшения ложных срабатываний.

Стандартные правила RSPAMD:

actions {
    reject = 15;
    add_header = 6;
    greylist = 4;
}

Это действия по умолчанию. Если Rspamd присвоит письму оценку 15 и выше, оно будет отклонено сразу при приёме (аналогично правилу Gtube из предыдущего примера).

Если оценка выше 6, то в заголовки письма будет добавлена строка:

X-Spam: Yes

Так почтовое ПО сможет распознать спам и, например, переместить письмо в отдельную папку.

Если оценка выше 4, сработает greylisting — механизм временного отклонения письма с кодом 4.x.x. Сервер-получатель ждёт, повторит ли отправитель попытку. Через несколько минут greylisting примет письмо. Идея в том, чтобы отсеять письма от систем без очереди отправки, которые не пытаются повторно доставить письмо.

Если вы хотите изменить эти значения по умолчанию, создайте новый файл /etc/rspamd/local.d/actions.conf и впишите туда нужные вам значения.

Символы и заголовки Rspamd

Rspamd анализирует письмо и присваивает ему баллы (score) за различные проверки. Каждая проверка может добавлять символ (symbol) и соответствующий балл.

Как эти символы отображаются в письме

  1. Заголовок X-Spam или X-Spam-Report
    Rspamd может добавлять полное объяснение, например:
X-Spam-Flag: YES
X-Spam-Score: 16.00 / 15.00
X-Spam-Report:
   * FROM_NO_DN(0.00)[]
   * RCVD_COUNT_ZERO(0.00)[0]
   * R_DKIM_NA(0.00)[]
   * FUZZY_DENIED(12.00)[1:19305c7fdd:1.00:bin,1:35699594fd:0.91:txt]
   * RBL_SENDERSCORE(2.00)[55.181.23.94.bl.score.senderscore.com]
  1. Использование в логах и интерфейсе
  • В веб-интерфейсе Rspamd эти символы отображаются с подробной информацией о проверках.
  • Логи Rspamd (/var/log/rspamd/rspamd.log) также содержат эти символы, чтобы можно было анализировать спам-поток.

Практический совет

  • Символы помогают понять, почему письмо набрало высокий score.
  • Можно настроить отдельные действия для конкретных символов, например:
    • игнорировать низкоопасные;
    • повышать вес для FUZZY_DENIED или RBL_SENDERSCORE.
  • Это особенно полезно для обучения Bayesian-фильтра и тонкой настройки антиспам-политики.

Примеры символов

СимволПример баллаОписаниеРекомендация
FROM_NO_DN0.00Адрес отправителя без доменного имениОбычно безопасно, можно игнорировать
RCVD_COUNT_ZERO0.00Нет заголовков Received или их нольЧасто спам, но иногда легитимные автоответы
R_DKIM_NA0.00DKIM-подпись отсутствуетУсилить для критичных доменов, но не всегда спам
FUZZY_DENIED12.00Письмо совпадает с известным спамом в Fuzzy DBВысокий риск — обычно увеличивает score и ведёт к reject
RBL_SENDERSCORE2.00IP-адрес отправителя в черном списке RBLСредний/высокий риск — учитывайте при настройке порогов
SPF_FAIL5.00SPF не пройденМожно повышать score, особенно для внешних доменов
BAYES_SPAM3.00Bayesian-анализ классифицировал как спамЛегко настраивается через обучение фильтра
HTML_MIME_ONLY1.50Письмо только в HTML без текстаДополняет другие правила, повышает score
DKIM_SIGNED-0.50Письмо корректно подписано DKIMСнижает score, сигнал доверия
SPF_PASS-0.50SPF пройден успешноСнижает score, сигнал доверия

Веб-интерфейс Rspamd

Веб-интерфейс доступен по http://ваш-сервер:11334. Позволяет:

  • просматривать статистику за день/неделю;
  • вручную обучать Bayesian-фильтр;
  • просматривать письма, помеченные как спам;
  • настраивать правила и модули.

Мониторинг и логирование

  • Логи Rspamd: /var/log/rspamd/rspamd.log
  • Метрики Prometheus: можно подключить к Grafana для визуализации активности антиспама.
  • Mail notifications: отправка отчётов о заблокированных письмах.

Советы по эффективности

  1. Обязательно включите SPF, DKIM и DMARC — Rspamd использует их для оценки доверия отправителя.
  2. Тренируйте Bayesian-фильтр на вашей почте: это снижает false positives.
  3. Используйте greylisting аккуратно, чтобы не задерживать легитимные письма.
  4. Следите за нагрузкой и статистикой — корректируйте пороги под реальный поток.
10 минут чтения
Средний рейтинг статьи — 4.9

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний