Защита почтового сервера от спама — одна из самых важных задач для любого администратора. Особенно, если вы настраиваете собственный mail-сервер на VPS. В этой статье я расскажу, как я внедрила мощную систему фильтрации спама с помощью Rspamd и Postfix, что учла по ходу настройки и какие нюансы могут подстерегать вас на практике.
Зачем нужен антиспам-фильтр?
Если у вас нет защиты, почтовый сервер моментально становится жертвой:
- рассылки спама с вашей стороны (если скомпрометирован аккаунт),
- приёма тысяч мусорных писем (если открыт вход),
- попадания в блэклисты, после чего письма вообще не доставляются.
Поэтому связка Postfix + Rspamd — это почти must-have. Особенно если вы хотите избежать сложностей со старыми решениями вроде SpamAssassin. Я пробовала оба варианта — разница в скорости, точности и гибкости просто колоссальная.
Почему Rspamd, а не SpamAssassin?
| Параметр | Rspamd | SpamAssassin |
|---|---|---|
| Скорость | Высокая, на C языке | Низкая, на Perl |
| Обновления | Активно поддерживается | Обновляется медленно |
| Расширяемость | Lua-скрипты, интеграция с Redis | Ограничена |
| UI/Панель управления | Есть (Web-интерфейс) | Нет |
| Поддержка DKIM/ARC | Встроена | Требует сторонние модули |
Что нужно для старта?
- VPS с Linux (у меня — Debian 12, подойдёт и Ubuntu 22.04)
- Установленный и настроенный Postfix (MTA)
- Доступ по SSH с root-доступом
- Желание копаться в конфигах 😉
Установка Rspamd
Я ставила Rspamd из официальных репозиториев:
# Добавим репозиторий Rspamd
echo "deb [arch=amd64] http://rspamd.com/apt/debian bookworm main" | tee /etc/apt/sources.list.d/rspamd.list
curl -1sLf 'https://rspamd.com/apt-stable/gpg.key' | apt-key add -
# Установка
apt update && apt install rspamd redis-server -y
Rspamd будет использовать Redis для кэширования. Без него часть функций просто не работает — имейте в виду.
Интеграция Rspamd с Postfix
Самое интересное начинается, когда мы “вшиваем” Rspamd в поток почты. Вот основные изменения, которые нужно внести в /etc/postfix/main.cf:
smtpd_milters = inet:localhost:11332
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 6
Теперь письма, проходящие через Postfix, будут анализироваться Rspamd до приёма.
Настройка Rspamd
Файлы конфигурации Rspamd находятся в /etc/rspamd/local.d/. Важные модули:
dkim_signing.conf— для DKIM-подписейmilter_headers.conf— управление заголовкамиsurbl.confиrbl.conf— для работы с блэклистамиgreylist.conf— серый списокantivirus.conf— подключение ClamAVneural.conf— машинное обучение (!)
Советую включить Web-интерфейс, это очень помогает:
# Включение WebUI
nano /etc/rspamd/local.d/worker-controller.inc
bind_socket = "127.0.0.1:11334";
password = "$2$randomsalt$hash";
enable_password = true;
Затем перезапуск:
systemctl restart rspamd
Теперь по адресу http://127.0.0.1:11334 можно будет смотреть метрики, тренировать бейесовский фильтр и управлять конфигурацией.
Обучение антиспама
Rspamd может обучаться на письмах вручную. Я добавила в Roundcube возможность пометки письма как “спам” и “не спам”, и настроила rspamc для отправки образцов:
rspamc learn_spam < spam.eml
rspamc learn_ham < notspam.eml
Важно делать это регулярно, особенно в первое время — тогда фильтр начнёт работать как надо.
DKIM, SPF и DMARC
Антиспам — это не только фильтрация входящих, но и защита репутации отправляемых писем.
- Для DKIM я использовала встроенный модуль Rspamd (
dkim_signing.conf). - SPF и DMARC настроены через DNS-записи.
- Можно добавить отчёты DMARC на почту и мониторить доменную репутацию.
Возможные ошибки
- Не работает веб-интерфейс? Проверь
worker-controller.inc, правильный порт, нет ли firewall’а. - Письма не проходят? Возможно, слишком агрессивные настройки (например, выставлен
rejectвместоadd header). - Rspamd не запускается? Логи в
journalctl -u rspamdпомогут понять, что не так.
Мой итог
Я протестировала связку Rspamd + Postfix на 3 VPS — работает стабильно. Ловит 95% спама, ложно положительных почти нет. Интерфейс понятный, управление гибкое, можно кастомизировать под любые нужды.
Если раньше я мучилась с настройками SpamAssassin и Amavis, то теперь честно не понимаю, зачем тратить время — Rspamd реально лучше.