Как установить и настроить защиту от спама Rspamd на VPS
Rspamd — современная и быстрая система фильтрации спама, которая ставится перед вашим почтовым сервером и отсеивает нежелательные письма ещё на входе. Она объединяет десятки проверок: репутацию отправителя, DKIM и SPF, байесовский анализ, чёрные списки, greylisting — и выдаёт каждому письму итоговую оценку. Rspamd умеет и подписывать исходящую почту DKIM. Ниже — пошаговый путь: установка, интеграция с Postfix через milter, веб-интерфейс, настройка ключевых модулей и обучение фильтра.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Зачем Rspamd и как он работает
Защита от спама Rspamd работает по принципу накопления баллов. Каждое входящее письмо проходит через набор правил: подозрительные заголовки, отсутствие DKIM, попадание IP в чёрные списки, характерные признаки спама в тексте. Каждое сработавшее правило добавляет или вычитает баллы, и по итоговой сумме письмо либо пропускается, либо помечается как спам, либо отклоняется. Это гибче простых чёрных списков: одно подозрительное свойство не приговаривает письмо, решение принимается по совокупности.
Rspamd написан на C и очень быстр, поэтому почти не нагружает сервер даже на большом потоке. Он давно стал стандартом де-факто, заменив более старый и медленный SpamAssassin. Работает Rspamd как milter — фильтр, который Postfix вызывает для каждого письма и получает вердикт. Дополнительно Rspamd умеет ставить DKIM-подпись на исходящие письма, что удобно: одна система и фильтрует входящее, и подписывает исходящее.
Rspamd нетребователен, но для байесовского обучения и кэша использует Redis, поэтому его ставят вместе. Всё это спокойно живёт на том же VPS, что и почтовый сервер.
Важно правильно понимать место Rspamd в цепочке. Он не заменяет базовую гигиену почты — PTR, SPF, DKIM и репутацию IP, — а дополняет её со стороны входящего потока. Rspamd защищает вас от чужого спама, который приходит на ваши ящики, и помогает вашей собственной почте выглядеть легитимно за счёт корректной DKIM-подписи. Но если у вашего сервера нет PTR или он в чёрных списках, никакой фильтр это не исправит: это внешние условия, которые задаются на уровне провайдера и DNS. Поэтому Rspamd стоит воспринимать как один важный слой обороны, а не как волшебную кнопку, решающую все вопросы почты разом.
Установка Rspamd и Redis
Ставим из официального репозитория Rspamd, чтобы получить свежую версию, и рядом Redis для хранения статистики:
sudo apt update && sudo apt install -y redis-server
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://rspamd.com/apt-stable/gpg.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/rspamd.gpg
echo "deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \
http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/rspamd.list
sudo apt update && sudo apt install -y rspamd
sudo systemctl enable --now rspamd redis-server
Проверьте, что служба запущена: sudo systemctl status rspamd. Rspamd поднимает локальный веб-интерфейс и слушает управляющий сокет. Основные настройки лежат в /etc/rspamd, но правьте не базовые файлы, а переопределения в каталоге local.d — так ваши изменения не затрутся при обновлении.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под почтовый серверИнтеграция с Postfix
Чтобы Rspamd начал проверять почту, Postfix должен передавать ему письма через протокол milter. Добавьте в /etc/postfix/main.cf:
smtpd_milters = inet:localhost:11332
non_smtpd_milters = inet:localhost:11332
milter_protocol = 6
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
milter_default_action = accept
Порт 11332 — это milter-интерфейс Rspamd. Параметр milter_default_action = accept важен: если Rspamd вдруг недоступен, Postfix продолжит принимать почту, а не заблокирует её — почта не должна вставать из-за сбоя фильтра. Перезагрузите Postfix командой sudo systemctl reload postfix. Теперь каждое входящее письмо проходит через Rspamd, и в заголовках писем появятся отметки о проверке и набранных баллах.
Веб-интерфейс и пароль
У Rspamd есть удобный веб-интерфейс, где видна статистика, оценки писем, сработавшие правила и можно управлять настройками. По умолчанию он слушает только localhost на порту 11334. Задайте пароль для доступа, создав переопределение:
sudo nano /etc/rspamd/local.d/worker-controller.inc
password = "Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
$...хеш...";
Хеш пароля генерируется командой rspamadm pw. Открывать веб-интерфейс напрямую в интернет не стоит — заходите через SSH-туннель (ssh -L 11334:localhost:11334 ...) и открывайте http://localhost:11334 локально. Через интерфейс наглядно видно, как Rspamd оценивает поток: сколько писем чистых, сколько спама, какие правила срабатывают чаще всего. Это лучший способ понять поведение фильтра.
Ключевые модули: greylisting, DKIM, обучение
Несколько модулей дают основной эффект. Greylisting временно отклоняет письма от незнакомых отправителей с просьбой повторить — легитимные серверы повторяют, а многие спам-боты нет. Он включается через local.d/greylist.conf и заметно режет спам ценой небольшой задержки первого письма от нового отправителя.
DKIM-подпись исходящих настраивается в модуле dkim_signing: Rspamd подписывает уходящие письма вашим ключом, что критично для доставляемости. И самое мощное — байесовский классификатор, который учится на примерах. Обучите его на спаме и не-спаме:
sudo rspamc learn_spam /path/to/spam/*
sudo rspamc learn_ham /path/to/ham/*
Чем больше примеров, тем точнее фильтр отличает спам от нормальной почты именно для вашего потока. Байес хранит статистику в Redis и со временем становится всё точнее. Для устойчивого результата обучайте фильтр сбалансированно — примерно поровну спама и нормальных писем; перекос в одну сторону смещает оценки и провоцирует ложные срабатывания. Хорошая практика — настроить автоматическое обучение: письма, которые пользователи вручную перемещают в папку «Спам», Rspamd может забирать как примеры спама, а возвращаемые обратно — как примеры нормальной почты, и фильтр учится сам на реальных действиях людей. Правильно обученный Rspamd отсеивает подавляющую часть спама, почти не задевая нужные письма. Чтобы фильтр работал на стабильном сервере, нужен надёжный VPS. В MAATRIX можно арендовать сервер под почту с Rspamd в России, США или Великобритании и оплатить картой РФ, по СБП, криптой или токеном MAAT — иностранная карта не нужна.
Настройка порогов и проверка
Rspamd действует по порогам баллов: до определённой суммы письмо чистое, выше — помечается как спам (add header), ещё выше — отклоняется (reject). Пороги задаются в local.d/actions.conf. Не ставьте reject слишком низко на старте — рискуете терять легитимные письма. Разумно начать с мягких порогов, понаблюдать за потоком через веб-интерфейс и постепенно ужесточать. Проверьте работу, отправив на сервер тестовое письмо и посмотрев в его заголовках отметку X-Spamd-Result с баллами и сработавшими правилами — так вы видите, что фильтр реально анализирует почту.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под почтовый серверОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Rspamd или SpamAssassin — что выбрать?
Rspamd. Он быстрее, современнее и стал стандартом де-факто. SpamAssassin устарел и медленнее. Rspamd к тому же умеет подписывать исходящую почту DKIM, объединяя фильтрацию и подпись в одной системе.
Rspamd заблокирует почту, если сам упадёт?
Нет, если задать milter_default_action = accept в Postfix. Тогда при недоступности Rspamd письма продолжат приниматься. Почта не должна вставать из-за сбоя фильтра.
Нужно ли обучать Rspamd?
Да, байесовский классификатор становится точнее на примерах вашего потока. Обучайте его на спаме и не-спаме командами rspamc learn_spam и learn_ham — точность заметно растёт.
Как безопасно открыть веб-интерфейс Rspamd?
Не открывайте его в интернет напрямую. Заходите через SSH-туннель на localhost:11334 и обязательно задайте пароль контроллера через rspamadm pw.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.