Comments 11
P.S. За статью спасибо, узнал про opensmtpd и rspamd :)
Для простоты/быстроты разворачивания: почтовый сервис (9 контейнеров) разворачивается (например, nomad'ом) за пару минут.
Ещё потому, что докер — это болезнь. Попробовал один раз — и отказаться уже не можешь. :)
Перешли на dovecot в итоге и всем довольны. Недовольны только тем, что с начала его не взяли)
Но для больших, нагруженных почтовиков согласен, что файлы будут быстрее.
База почти всегда однозначным образом ускоряется: партиции, индексы.
В том-то и дело, что "… и вам придется это делать".
Для нагруженных почтовиков — файлы будут быстрее.
А для ненагруженных DBMail тем более не нужен — им нет необходимости "создавать произвольное число точек входа", а других преимуществ нет, одни недостатки.
Тот же Dovecot создает какие-то нужные ему индексы "из коробки", без дополнительных настроек.
Установил и забыл.
В случае DBMail — почта гуляет внутри сервера между программами: сначала подгружается в СУБД, там кешируется, затем передается даймону DBMail, кешируется в нем (нужно же получить полный результат SQL-запроса), и только затем передается почтовому клиенту.
Зачем нужно всё это кратное усложнение процесса и соответствующее увеличение нагрузки на сервер, если можно просто сразу отдать содержимое письма из файла?
И это мы еще не говорим о разных "вкусностях" Dovecot, которые, например, позволяют создать в нем папку "Спам" и интегрировать скрипты, обучающие rspamd по факту перемещения почты в/из этой папки.
Да тот же DBMail даже SSL не умеет, судя по его Wiki — там предлагается SSL настраивать через stunnel. Зачем всё это надо?
Есть ряд замечаний по статье. Во-первых, режим --mime
предназначен не для реинжектирования письма по SMTP, а для того, чтобы передать готовое письмо на LDA, а не MTA. Проблема там ровно в том, что Rspamd не добавляет Received заголовок, отчего запросто можно получить mail loop. В теории, в 1.5 можно сделать поддержку правильного реинжектирования на базе lua_tcp и убрать все эти странные костыли на nc.
Тем не менее, все такие решения страдают одной неприятной проблемой: в них крайне сложно реализовать выборочный грейлистинг, который я считаю одним из самых эффективных методов борьбы со спамом: за время грейлистинга могут успеть среагировать спамтрапы и всякие репутационные списки: surbl, ip_score, rbl и прочее. Именно поэтому я довольно много общался с разработчиком opensmtpd на предмет форсирования проекта с фильтрами, но, увы, никакого прогресса по фильтрам я не вижу.
Ну и последний момент: а зачем вам еще сущность в виде dkim-proxy? Rspamd прекрасно работает как для проверки DKIM, так и для генерации подписей.
По поводу грейлистинга и фильтров — поддержу на все 100%. Если бы были фильтры, то из коробки бы всё заработало. Судя по прогрессу — может, через полгода будут фильтры.
dkim-proxy — чтобы логика обработки исходящих была прозрачной (и unixway). Получил opensmtpd письмо от внутренних систем на выделенный порт, отправил его на подпись dkim-proxy, тот его подписал и перенаправил на другой выделенный порт. А rspamd занимается только проверкой dkim/dmarc/spf, да.
Уже который год работаю с композицией exim + clamav + dspam + dovecot. Компактно (если не считать ощутимого расхода памяти ClamAV), стабильно и нет проблем добавлять фильтры и всё такое.
малое потребление памяти и меньше спама на почту.
Вы на Pentium 166 с 32 Mb памяти что-ли запускали? К чему весь этот геморой, когда проще поставить планку памяти в 8 гиг на сервер и не мучиться?
У меня стоит postfix + rspamd + dovecot (clamav выкинул нафиг т.к. он не эффективен в поиске вирусов, гораздо правильнее и проще запретить прием и отправку exe,com,dll и прочих файлов на уровне postfix) на сервере с 8 Гб ОЗУ, обслуживает порядка 30 доменов с 1500+ ящиками и никакого сверх потребления памяти нет, больше 3 гигов не съедают.
Интеграция почтового анти-спама rspamd с opensmtpd