MAATRIX / Блог / Защиту от спама Rspamd на сервере: частые ошибки и решения

Защиту от спама Rspamd на сервере: частые ошибки и решения

Защиту от спама Rspamd на сервере: частые ошибки и решения

MAATRIX

Защита от спама Rspamd на сервере обычно работает надёжно, но при неверной интеграции даёт узнаваемые сбои: письма проходят без проверки, milter не отвечает и почта тормозит, фильтр ложно режет нужные письма, недоступен Redis, не открывается веб-интерфейс, не ставится DKIM-подпись. Ниже — разбор этих частых проблем с готовыми решениями. Для каждой сначала решение, потом причина — чтобы быстро вернуть фильтрацию в строй и не потерять при этом легитимную почту.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Rspamd не проверяет письма

Rspamd запущен, но письма проходят без фильтрации — в заголовках нет отметок X-Spamd-Result. Значит, Postfix не передаёт письма фильтру, проблема в интеграции milter. Проверьте, что Rspamd слушает milter-порт:

sudo ss -ltnp | grep 11332

Если порт слушается, проверьте настройки Postfix — в main.cf должны быть smtpd_milters = inet:localhost:11332 и milter_protocol = 6. Частая ошибка — забыли перезагрузить Postfix после правки конфига: выполните sudo systemctl reload postfix. Ещё одна тонкость: если у вас несколько milter (например, отдельный opendkim и Rspamd), они перечисляются через запятую, и порядок важен. Убедитесь, что Rspamd в списке и не перекрыт другим фильтром. После исправления отправьте тестовое письмо и проверьте появление отметок Rspamd в его заголовках.

Почта тормозит или отклоняется: milter timeout

Письма приходят с большой задержкой или отправители получают временные отказы. В логах Postfix — milter-reject или таймауты обращения к milter. Rspamd не отвечает вовремя. Причины разные: служба упала, перегружен сервер, или недоступен Redis, от которого Rspamd зависит. Сначала проверьте, жив ли Rspamd:

sudo systemctl status rspamd
sudo journalctl -u rspamd -n 30

Ключевая защита от этой проблемы — параметр milter_default_action = accept в Postfix. С ним при недоступности Rspamd почта продолжает приниматься без фильтрации, а не встаёт колом. Если у вас стоит reject или tempfail, сбой Rspamd блокирует всю почту — поменяйте на accept. Фильтр спама не должен становиться единой точкой отказа для всей почтовой системы. После восстановления службы фильтрация возобновится сама.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS под почтовый сервер

Ложные срабатывания: режет нужные письма

Rspamd помечает как спам или отклоняет легитимные письма. Это опаснее пропущенного спама — теряется важная почта. Первым делом посмотрите в веб-интерфейсе или в заголовке письма, какие правила сработали и сколько баллов набрано. Часто виноват один агрессивный символ или слишком низкий порог reject.

Решений несколько. Если порог отклонения выставлен слишком низко, поднимите его в local.d/actions.conf — на старте лучше мягкие пороги. Если конкретный доверенный отправитель ложно попадает под фильтр, добавьте его в белый список. И обязательно обучайте байес на не-спаме (ham): часто ложные срабатывания идут от того, что классификатор видел мало примеров нормальной почты. Команда rspamc learn_ham на ваших легитимных письмах заметно снижает ложные срабатывания. Никогда не отключайте фильтр целиком из-за ложных срабатываний — настраивайте пороги и обучайте, иначе получите поток спама.

Redis недоступен, байес и статистика не работают

В логах Rspamd ошибки подключения к Redis, обучение байеса не сохраняется, статистика пуста. Rspamd хранит в Redis байесовскую статистику, greylisting и кэш, и без него теряет значительную часть функций. Проверьте, работает ли Redis и отвечает ли он:

sudo systemctl status redis-server
redis-cli ping

Ответ PONG означает, что Redis жив. Если нет — запустите службу и смотрите её журнал. Частые причины падения Redis — нехватка памяти или неверный адрес подключения в настройках Rspamd. Проверьте, что в local.d/redis.conf указан правильный адрес Redis (обычно 127.0.0.1). Если Redis и Rspamd на одном сервере, а адрес указан внешний или неверный, соединение не установится. После восстановления Redis обучение и статистика заработают снова, но накопленные до сбоя данные могли потеряться — байес придётся дообучить.

Веб-интерфейс не открывается

Не удаётся зайти в веб-интерфейс Rspamd или он требует пароль, которого нет. По умолчанию интерфейс слушает только localhost на порту 11334 — это правильно с точки зрения безопасности, но означает, что напрямую из интернета он недоступен. Заходите через SSH-туннель:

ssh -L 11334:localhost:11334 user@ваш-сервер

Затем откройте http://localhost:11334 в браузере. Если интерфейс просит пароль, а вы его не задавали, сгенерируйте хеш командой rspamadm pw и пропишите в local.d/worker-controller.inc, затем перезапустите Rspamd. Не открывайте контроллер Rspamd в интернет напрямую и не оставляйте его без пароля — через него можно менять настройки фильтра, и это лакомая цель.

Rspamd не подписывает исходящие DKIM

Настроили подпись, но исходящие письма уходят без DKIM или подпись не проходит. Модуль dkim_signing требует, чтобы Rspamd видел ключ и знал, для какого домена подписывать. Проверьте конфигурацию модуля в local.d/dkim_signing.conf: должен быть указан путь к приватному ключу, селектор и домен. Ключ должен быть доступен на чтение пользователю Rspamd. Публичная часть ключа должна быть опубликована в DNS под тем же селектором — иначе подпись ставится, но не проходит проверку у получателя.

Ещё частая причина — Rspamd подписывает только письма от аутентифицированных отправителей или из доверенных сетей, что правильно, но если ваше приложение шлёт почту не через аутентификацию, подпись может не ставиться. Проверьте условия подписи в конфиге модуля. Правильно настроенный dkim_signing избавляет от отдельного opendkim, объединяя фильтрацию и подпись. Общий принцип диагностики Rspamd прост: почти на любой вопрос отвечают две вещи — веб-интерфейс и заголовок письма. В интерфейсе видно, сколько писем классифицировано как спам и ham, какие правила срабатывают чаще всего и как ведёт себя поток во времени. А заголовок X-Spamd-Result конкретного письма показывает по пунктам, какие символьные правила сработали и сколько баллов каждое добавило. Вместе они превращают настройку фильтра из угадывания в понятную работу: вы видите точную причину каждого решения и правите именно то правило или порог, что мешает. Чтобы всё работало стабильно, нужен надёжный сервер под почту. В MAATRIX можно арендовать VPS под почтовый сервер с Rspamd в России, США или Великобритании и оплатить картой РФ, по СБП, криптой или токеном MAAT — иностранная карта не требуется.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS под почтовый сервер

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Rspamd запущен, но не фильтрует письма — почему?

Postfix не передаёт письма через milter. Проверьте порт 11332, настройки smtpd_milters в main.cf и перезагрузите Postfix. В заголовках проверенных писем должна быть отметка X-Spamd-Result.

Что делать при milter timeout и торможении почты?

Убедитесь, что Rspamd и Redis работают, и обязательно задайте milter_default_action = accept в Postfix, чтобы сбой фильтра не блокировал всю почту.

Rspamd режет нужные письма, как исправить?

Поднимите порог reject в actions.conf, добавьте доверенных отправителей в белый список и обучайте байес на не-спаме через rspamc learn_ham. Не отключайте фильтр целиком.

Не работает байес и статистика?

Скорее всего недоступен Redis. Проверьте redis-cli ping и правильность адреса Redis в local.d/redis.conf. Rspamd хранит в Redis обучение и greylisting.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.