OpenSMTPD + UW IMAP как альтернатива тяжелым почтовым системам

  • Tutorial
Почти каждому, у кого есть сервера с привязанными к ним доменами, так или иначе приходится решать вопрос с почтой, как минимум с доступностью адресов вида webmaster/postmaster/abuse@domain.
Кто-то учит M4 и настраивает встроенный sendmail, кто-то использует сторонние сервисы ( например от Google ), кто-то — поднимает стандартную связку postfix+courier-imap+mysql ( ну или аналоги ).

Мне первое было делать лениво, второе — не хотелось по идеологическим причинам, а третье — слишком избыточно. Поэтому я нашел свой «срединный путь», о чем и хочу рассказать в этой статье.

Prerequirements


При написании этого руководства я предполагал, что пользователь способен взаимодействовать с *nix-системами посредством консоли, умеет устанавливать пакеты своего дистрибутива и владеет как минимум одним текстовым редактором для редактирования конфигов. В качестве примера я буду устанавливать пакеты на Arch Linux, поскольку это мой домашний дистрибутив.

Постановка задачи


Прежде чем что-то делать нужно понять, зачем это делать. Описываемая конфигурация имеет смысл в том случае, если:
  • Количество локальных пользователей невелико и для них допустимо создать записи в /etc/passwd
  • Количество обслуживаемых доменов > 1, иначе нас спасает «sendmail по-умолчанию» ИЛИ
  • Нужны какие-то дополнительные вещи, например SSL/TLS или аутентификация ИЛИ
  • Конфигурация сервера недостаточна, чтоб запускать там тяжелые MTA

В моем случае совпали все пункты: небольшая виртуалка, на которой я паркую десяток доменов для друзей и знакомых.

Установка UW IMAP — опциональная часть. Я не ставил его до тех пор, пока у меня не появилось дополнительных пользователей в системе, поскольку сам я без проблем заходил по ssh и делал mutt.

Установка и первичная настройка OpenSMTPD


В Arch Linux установка занимает секунд 5 :-)


Конфигурация состоит из одного файла smtpd.conf и опциональных файлов с таблицами. Мой первоначальный конфиг выглядит так:
smtpd.conf
# разрешаем работу только по ipv4
limit mta inet4
# слушаем порт 25 на all, представляемся как server.com
listen on 0.0.0.0 port 25 hostname server.com
# таблицы можно вынести в отдельные файлы. Сейчас они маленькие и умещаются в тексте конфига
table aliases { root = xxx, abuse = xxx, postmaster = xxx, webmaster = xxx }
table domains { server.com, domain1.ru, domain2.net, domain3.in }
# Принимаем почту для указанных алиасов этих доменов и доставляем в локальный почтовый ящик (mbox)
accept from any for domain <domains> alias <aliases> deliver to mbox
# Пересылаем почту, полученную от локальных пользователей ( отправленную командой mail например )
accept from local for any relay
# Все остальное - не принимаем
reject from any for any


Как видите — ничего сложно, любая почта проходит по всем цепочкам reject/accept до тех пор, пока не попадет под какое-либо правило.

Проверка работоспособности
Теперь можно проверить, работает ли почта. Запускаем smtpd -n для проверки конфига и smtpd -d для запуска в foreground с логами в stdin:

Пытаемся отправить почту на root@domain1.ru…

И смотрим в вывод сервера


Mutt подтверждает — почта доставлена!

Этой минимальной конфигурации вполне достаточно для приема технической почты для десятка-другого доменов.

SMTPS/TLS и аутентификация


В opensmtpd аутентифицированный пользователь становится local. Аутентификация включается ключевым словом auth ( или auth-optional ) в строке с listen, но предварительно надо настроить smtps/tls. Доверенный сертификат можно получить в разных местах, например у StartSSL. В любом случае предполагаем, что у вас есть 3 файла в формате PEM:
  1. server.crt — сертификат сервера
  2. server.key — приватный ключ от сертификата
  3. cachain.crt — цепочтка подтверждающих сертификатов

Теперь мы можем включить smtps/tls и аутентификацию:
smtpd.conf
# указываем где лежит сертификат, ключ и ca
pki server certificate "/etc/ssl/certs/server.crt"
pki server key "/etc/ssl/private/server.key"
pki server ca "/etc/ssl/certs/cachain.crt"

# разрешаем работу только по ipv4
limit mta inet4

# слушаем порт 25 на all, представляемся как server.com, разрешаем startssl и аутентификацию по желанию
listen on 0.0.0.0 port 25 tls pki server hostname server.com auth-optional
# слушаем порт 465 на all, представляемся как server.com, требуем ssl и аутентификацию, прячем в заголовках ip отправителя
listen on 0.0.0.0 port 465 smtps pki server hostname server.com auth mask-source

# таблицы можно вынести в отдельные файлы. Сейчас они маленькие и умещаются в тексте конфига
table aliases { root = xxx, abuse = xxx, postmaster = xxx, webmaster = xxx }
table domains { server.com, domain1.ru, domain2.net, domain3.in }
# Принимаем почту для указанных алиасов этих доменов и доставляем в локальный почтовый ящик (mbox)
accept from any for domain <domains> alias <aliases> deliver to mbox
# Пересылаем почту, полученную от локальных пользователей ( отправленную командой mail например )
accept from local for any relay
# Все остальное - не принимаем
reject from any for any



Теперь клиенты могут отправлять почту наружу с ssl и аутентификацией.
Тестируем
Настраиваем smtp-сервер:

Отправляем письмо:

Смотрим на output сервера:


Mutt (обратите внимание на Received заголовок ):


Антиспам и прочее



Например, можно добавить антиспам через spampd.
smtpd.conf
# указываем где лежит сертификат, ключ и ca
pki server certificate "/etc/ssl/certs/server.crt"
pki server key "/etc/ssl/private/server.key"
pki server ca "/etc/ssl/certs/cachain.crt"

# разрешаем работу только по ipv4
limit mta inet4

# слушаем порт 25 на all, представляемся как server.com, разрешаем startssl и аутентификацию по желанию
listen on 0.0.0.0 port 25 tls pki server hostname server.com auth-optional
# слушаем порт 465 на all, представляемся как server.com, требуем ssl и аутентификацию, прячем в заголовках ip отправителя
listen on 0.0.0.0 port 465 smtps pki server hostname server.com auth mask-source
# На этом порту мы получаем почту от spampd - уже фильтрованную
listen on 127.0.0.1 port 10026 tag Filtered

# таблицы можно вынести в отдельные файлы. Сейчас они маленькие и умещаются в тексте конфига
table aliases { root = xxx, abuse = xxx, postmaster = xxx, webmaster = xxx }
table domains { server.com, domain1.ru, domain2.net, domain3.in }

# Принимаем уже отфильтрованную почту и доставляем в mbox
accept tagged Filtered for domain <domains>  alias <aliases> deliver to mbox

# Принимаем почту для указанных алиасов этих доменов и отправляем ее к spampd
accept from any for domain <domains> relay via "smtp://127.0.0.1:10025"

# Остальное по тегу Filtered удаляем - чтоб антиспам случайно кому-то чего-то не послал
reject tagged Filtered

# Пересылаем почту, полученную от локальных пользователей ( отправленную командой mail например )
accept from local for any relay

# Все остальное - не принимаем
reject from any for any


И снова ничего сложного, легко настраивается по аналогии с фаерволом или другим поточным фильтром.

Установка и настройка UW IMAP


Как я уже писал, это часть опциональна, если на сервере один пользователь-сисадмин, то скорее всего imap там и не нужен.

Установка:


Настройка:

Сначала из ключа, сертификата сервера и сертификатов CA создаем PEM-файл для imapd ( его имя фиксированно ), потом создаем xinetd-unit для xinetd и запускаем xinetd соответственно. Все, ура :-)

Тестируем
Настраиваем почтовый клиент для работы с IMAP

Проверяем почту и сравниваем с тем, что было в MUTT


Итого


Мы получили полноценную почтовую систему, с SSL/TLS и аутентификацией, способную работать даже на микроволновке и не требующую при этом часов вдумчивого чтения манов. По желанию можно расширить ее дальше, добавив например DKIM, backup MX, Greylisting и многое другое. В качестве бонуса: OpenSMTPD делает команда OpenBSD, а значит шанс на наличие там критической уязвимости очень и очень мал.

Спасибо за внимание.
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 52

    –7
    У вас таки странные идеологические причины не пользоваться бесплатными почтовыми сервисами для доменов с нормальными спам-фильтрами и прочими веб-интерфейсами :)
    И да, уж простите, но
    спойлер
    ШГ
      +4
      Например нежелание ассоциировать некоторые почтовые адреса и домены с основными аккаунтами, что Гугл или Яндекс обязательно сделают.

        –3
        Это ведь удобно, нажимать везде на кнопку «Sign in with Google», например. Но тут дело личное :)
        • UFO just landed and posted this here
        +2
        Бесплатные почтовые сервиса, говорите? Вот, например, крайний случай — vds на одном популярном хостинге, поддерживает Ipv6, sendmail, работает через gmail. Вдруг, отправка логов и сообщений различных скриптов стали заворачиваться — gmail стал считать их спамом. Помогло только отключение поддержки IPv6 (sendmail по умолчанию пытался отправить по IPv6). В данном случае, как показывает автор статьи, мы просто забираем всю почту со своего сервера и плевать хотели на «популярный бесплатный почтовый сервис» с его не пробиваемой паранойей.
        Автору статья большая благодарность за подробности и описание простой технологии настройки своего простого mail-сервера.
          0
          Дело не в паранойи. На самом деле эти сервисы весьма посредственны в обработке почты. У них есть своя идеология. И самое главное нужно понимать, что бесплатно, не потому, что они такие добрые альтруисты, а потому, что вы так работаете на них, обучая их системы спам обороны.
          И про непробиваемость. Я могу рассказать, как с подключенной почты для домена, я могу срать всем пользователям яднекса спамом, от любых выдуманных и не выдуманных ящиков. Могу от имени президента РФ написать. Только дайте его почту, и своию на яндексе, и вы получите письмо от президента. Там паранойей не пахнет. А пахнет построением комеррческого сервиса за счёт бесплатной рабочей силы в виде бесплатных пользователей.

          На претензии по получению почты спамерской, которая вообще не могла бы добраться до меня хотя бы при малейшей разумной настроке SMTP сервера (Не спам фильтра!), техническая поддержка отвечает, что ничего не можем поделать, жамкайте кнопочку спам.

          После всех этих вскрытий изъял из ящика всю почту, собираю сам.
            0
            Следует отметить, что яндекс прикрыл лозейку теперь нельзя от имени президента слать пользователям яндекс почты.
        • UFO just landed and posted this here
          +3
          Слушайте, а это действительно настоящий логотип проекта или кто-то так пошутил?
          лого
          image

            0
            Дак у OpenBSD
            похожий
            image
              +2
              Да это понятно, дело не в рыбе-еже, а в исполнении и деталях. У OpenBSD нормальный такой логотип для ПО, а у OpenSMTPD — адский ад, подходящий скорее для логотипа форума любителей психоактивных веществ, имхо.
                0
                Позвольте с вам не согласиться. Ваше мнение субъективно. Весьма прекрасный логотип.
              0
              +3
              Не очень понял смысл использования малоизвестных маргинальных софтин вместо распространённых (не просто так) и проверенных временем postfix / exim + divecot
                +1
                а где про настройку DKIM для opensmtpd почитать?
                  0
                  s/divecot/dovecot
                    0
                    Предположение: ТС идеологический маргинал.
                      –2
                      <irony>А еще не очень понятен смысл использования малоизвестных маргинальных ОС вместо распространенных (не просто так ) и проверенных временем ОС Windows</irony>
                      <irony>А еще не очень понятен смысл использования малоизвестной маргинальной OpenSSH вместо распространенного (не просто так ) и проверенного временем MSTSC</irony>
                      итд
                        0
                        Ирония — это хорошо, а вы по сути то объясните.
                          0
                          По-сути:
                          Cуществуют оптимальные и неоптимальные способы решения задачи.
                          Поднимать тяжелый и сложный в настройке ( если не копипастить конфиги с howto а делать самому ) postfix для парковки доменов и десятка мыл — неоптимальный способ. Есть требования к окружению, есть требования к производительности, есть требования к функциональности сервиса, на основании этого выбирается его реализация — будь то opensmtpd, exim или вообще MS Exchange.

                          И да, называть что-либо от команды OpenBSD «маргинальным» я бы не рискнул.
                            +2
                            Поднимать тяжелый и сложный в настройке ( если не копипастить конфиги с howto а делать самому ) postfix

                            Postfix сложный в настройке? Это очень спорное утверждение.
                            Тяжелый? Я даже комментировать не буду :) Для embedded — может быть.

                            И да, называть что-либо от команды OpenBSD «маргинальным» я бы не рискнул.

                            Ну, не нужно чесать всё под одну гребёнку.
                            Если их SSH сервер снискал популярность — значит это заслуженно.
                            Если их ОС используется крайне мало (в сравнении с Linux и FreeBSD) — значит тому тоже есть причина (это уже оффтопик).

                            Так что «маргинальный» тут используется в распространённом смысле — «малоиспользуемый».
                              0
                              Сложнее чем сабж? Да.
                              Тяжелее чем сабж? Да.
                              Избыточен для описанных в статье целей и задач? Да.

                              Или вы его везде пихаете просто потому, что не хотите что-то новое изучать?
                                0
                                Сложнее чем сабж? Да.

                                Я еще раз говорю — это спорно.

                                Тяжелее чем сабж? Да.

                                Есть тесты занимаемой памяти в различных ситуациях?
                                Если он и тяжелее, то на современном железе это будет незаметно, более чем уверен.

                                Или вы его везде пихаете просто потому, что не хотите что-то новое изучать?

                                Я использую функциональный инструмент, который может решать большой круг задач.
                                Если я поставлю OpenSMTPD и в какой-то момент мне его функционала будет нехватать — мне придётся перелопачивать систему на МТА удовлетворяющем моим требованиям. Оно мне надо? Нет. Поэтому смысла юзать OpenSMTPD не вижу.
                                  0
                                  [kreon@xaron ~]$ pacman -Si opensmtpd
                                  Репозиторий           : community
                                  Название              : opensmtpd
                                  Версия                : 5.4.4p1-1
                                  Описание              : Free implementation of the server-side SMTP protocol
                                  Архитектура           : x86_64
                                  URL                   : http://www.opensmtpd.org/
                                  Лицензии              : custom
                                  Группы                : Нет
                                  Предоставляет         : smtp-server  smtp-forwarder
                                  Зависит от            : libasr  libevent  openssl
                                  Дополнительно         : Нет
                                  Конфликтует с         : smtp-server  smtp-forwarder
                                  Заменяет              : Нет
                                  Будет загружено : 231,09 KiB
                                  Установленный размер: 797,00 KiB
                                  Сборщик               : Lukas Fleischer <archlinux@cryptocrack.de>
                                  Дата сборки           : Пт 09 янв 2015 17:53:23
                                  Проверен : MD5  SHA256  Подпись
                                  


                                  vs

                                  [kreon@xaron ~]$ pacman -Si postfix
                                  Репозиторий           : extra
                                  Название              : postfix
                                  Версия                : 3.0.0-2
                                  Описание              : Fast, easy to administer, secure mail server
                                  Архитектура           : x86_64
                                  URL                   : http://www.postfix.org/
                                  Лицензии              : custom
                                  Группы                : Нет
                                  Предоставляет         : smtp-server  smtp-forwarder  postfix-tools
                                  Зависит от            : openssl  pcre  icu  libsasl  libldap  db  libmariadbclient  postgresql-libs  sqlite  tinycdb
                                  Дополнительно         : Нет
                                  Конфликтует с         : smtp-server  smtp-forwarder  postfix-tools
                                  Заменяет              : postfix-tools
                                  Будет загружено : 1229,66 KiB
                                  Установленный размер: 3998,00 KiB
                                  Сборщик               : Gaetan Bisson <bisson@archlinux.org>
                                  Дата сборки           : Чт 12 фев 2015 06:48:48
                                  Проверен : MD5  SHA256  Подпись
                                  
                                    –1
                                    О ужаc… влезет даже на мой роутер с OpenWRT.
                                      +1
                                      Этот спор не продуктивен как впрочем и любой из серии «а почему не ...»

                                      Я бы не назвал postfix тяжелым, скорее наоборот, а то что его по умолчанию собирают с полным набором всех возможных опций и в раз-те он тащит с собой кучу библиотек не показатель.

                                      В настройке он тоже не сложный НО только если вам достаточно настроек по умолчанию (а это наверно 90%). Более того скорее всего базовую настройку за вас сделает какой нибудь debconf. Если же нет, то придется погрузится в дебри продвинутой настройки а это уже не так просто. У меня к примеру postconf | wc -l выдает 928 строк. Но на мой взгляд это всего лишь показывает богатство возможностей и гибкость.

                                      OpenSMTPd без условно сильно проще но и проект моложе и возможностей у него поменьше. Но не стоит забывать что его задача быть «smtp сервером из коробки» его для этого создавали.
                                    0
                                    Вот здесь с blind_oracle соглашусь. Я вообще фанат OpenBSD. Принципиально пытаюсь их решениями обходиться. Но OpenSMTPD… У них в какой-то версии сменился синтаксис. Каково же было моё удивление. Я не так, чтобы пристально слежу за ним. Настроил и забыл. А тут с настройкой на новой системе удивился. Ну, как на новой в debian сильно старый OpenSMTPD и там по другом писать конфиг нужно, не так, как диктует современная версия.
                                    Многие вещи, что умеет Postfix не умеет OpenSMTPD, это я только в части SMTP сервера сравниваю, не говоря уже об остальных возможностях. Ну, и самое главное — примеры конфигурации. Возьмём «The Book of Postfix», где очень хорошо описаны различные варианты настройки и детали устройства протокола SMTP, и вот такие статейки в интернетах не выдерживающие серьёзной критики. А ещё сюда приплюсуем тот факт что в полный функционал OpenSMTPD будет работать только на OpenBSD, ну может ещё в FreeBSD, а в Linux начинаются некоторые условности.

                                    В общем выбор между Postfix и OpenSMTPD подобен выбору между httpd в OpenBSD и Nginx. Если вы энтузиаст, которому не седится на месте, то вы выберете OpenSMTPD, HTTPD на OpenBSD. Если же вы рационально вкладывающий усилия системный администратор, то даже на OpenBSD вы выберете Postfix и Nginx, потому что вам возможно придётся настраивать сложные конфигурации, возможно на других системах. А по принципу Парето куда практичней использовать универсальные, зарекомендовавшие себя технлогии.
                                    А все эти писькомеры, какая программ на сколько килопайт больше кушает, это уже придирки. Да, скорей всего Postfix будет значительно сильней использовать ресурсы, в том числе и диск. Но у него и возможностей по оптимизации настройки использования ресурсов больше. В bottleneck вы упрётесь раньше в OpenSMTPD, я имею ввиду тот bottleneck, когда выхода уже нет в рамках одной машины, и нужно заводить вторую и распределять нагрузку.

                                    И вот это очень важно донести обывателям, которые настраивают системы впервые, точнее только выбирают на какую сесть систему с перспективами усложнения эксплуатации. Ниша OpenSMTPD — почтовый шлюз в локальной сети за внешним огромным шлюзом на базе Postfix, либо уж совсем мало популярные мелкие игроки, вроде колхозной веб-студии занимающейся хостингом параллельно в очень малых объёмах и не несущих лошадиных нагрузок по почтовому трафику. Как только появляются перспективы серьёзных нагрузок, сложной логики, то ту однозначно нужно уходить на Postfix.

                                    Почему в локальных сетях, корпоративный сетях OpenSMTPD может пригодиться? Аторизация. С авторизацией чудить в OpenSMTPD проще на базовом уровне сделать авторизацию без сожных вчитываний куда проще на OpenSMTPD в разы. В Postfix это отдельные плагинчики, работу которых ещё нужно суметь отладить. Именно поэтому Postfix такой надёжный, как СКАЛА! Он сам по себе не умеет авторизовывать. Соответственно в разы снижается риски взлома на этом уровне системы. Если вас и поломают, то на уровне плагинчика. А сам Postfix будет прекрасно маршрутизировать почту без авторизаций проверяя сертификаты, MX записи, домены…

                                    OpenSMTPD например не умеет проверять MX запись шлющего серера.

                                    А! Ещё чуть не забыл… OpenSMTPD опирается на связку с PF в части внешних атак. Если вы используете linux, то вы в принципе себе обрезаете очень большой пласт гибкости настройки OpenSMTPD. В linux это накручивают failtoban'ами — так себе костыляние.

                                    Итог таков, что на linux OpenSMTPD будет использовать знатный извращенец. Ну, либо нубас не шибко интересующейся вопросом почтовых сообщений, который поиграется, поиграется и, либо прочитает что-то посерьёзней и столкнётся с правдой жизни, либо посмотрит в глаза правде и пересядет на какого-то крупного почтового провайдера, просто, чтобы не заморачиваться.

                                    Ещё раз говорю это при всей моей любви и уважении к проекту OpenBSD всем его отпочковываниям.
                          0
                          Да точно так-же как антиспам. dkimproxy пускаем и гоняем туда-сюда исходящую почту на подпись.
                            0
                            Легче всего прикрутить amavis для этого (мне правда пришлось его хакнуть, ибо с настройкой одной вещи я не разобрался). Особенно если потом надо несколько доменов.
                            Если кому надо то вот мои конфиги:

                            /etc/amavis/conf.d/50-user
                            $max_servers = 2;
                            $enable_dkim_verification = 1; # enable DKIM signatures verification
                            $enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
                            dkim_key('domain1.pw', 'mail', '/etc/nginx/ssl/dkim.domain1.pw.key.pem', h=>'sha256', k=>'rsa');
                            dkim_key('domain2.pw', 'mail', '/etc/nginx/ssl/dkim.domain2.pw.key.pem', h=>'sha256', k=>'rsa');

                            @dkim_signature_options_bysender_maps = (
                            { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } }
                            );
                            @mynetworks = qw( 127.0.0.0/8 [::1] );

                            $inet_socket_port = [10024,10026,10028];
                            $interface_policy{'10028'} = 'MYNETS';

                            $policy_bank{'MYNETS'} = { # no checks, just DKIM signing
                            originating => 1, # allows signing
                            mynetworks_maps => [], # avoids loading MYNETS policy unnecessarily
                            os_fingerprint_method => undef,
                            penpals_bonus_score => undef,
                            bounce_killer_score => 0,
                            bypass_decode_parts => 1,
                            bypass_header_checks_maps => [1],
                            bypass_virus_checks_maps => [1],
                            bypass_spam_checks_maps => [1],
                            bypass_banned_checks_maps => [1],
                            spam_lovers_maps => [1],
                            banned_files_lovers_maps => [1],
                            archive_quarantine_to_maps => [],
                            remove_existing_x_scanned_headers => undef,
                            remove_existing_spam_headers => undef,
                            signed_header_fields => { 'Sender' => 1 },
                            };

                            #------------ Do not modify anything below this line -------------


                            /etc/smtpd.conf
                            limit mta inet4

                            # generate db using makemap
                            table aliases { support = root, abuse = root, no-reply = root }
                            table domains { domain1.pw, domain2.pw }
                            table helonames { 127.0.0.1 = localhost }

                            # Define keys and certs (PEM encoded)
                            pki domain1.pw certificate "/etc/nginx/ssl/domain1.pw.crt"
                            pki domain1.pw key "/etc/nginx/ssl/domain1.pw.key"
                            pki domain2.pw certificate "/etc/nginx/ssl/domain2.pw.crt"
                            pki domain2.pw key "/etc/nginx/ssl/domain2.pw.key"

                            listen on 0.0.0.0 hostname domain1.pw
                            listen on lo port 10025 tag DKIM hostname domain1.pw
                            accept from any for domain alias deliver to mbox
                            accept tagged DKIM for any relay hostname "domain1.pw"
                            accept from local for any relay via smtp://127.0.0.1:10028 source 127.0.0.1 hostname "domain1.pw"


                            Здесь используется 1 домен, но нагуглить как связать с двумя доменами вроде не проблема.Мне пока просто это оказалось не нужно.

                            А хак такой
                            вставил строчку:
                            $msginfo->originating($new_orig);
                            
                            после
                            $msginfo->originating($new_orig)  if ($old_orig?1:0) != ($new_orig?1:0);
                            


                            Намучался я с этими почтовиками поэтому и примел хак, хотя это тоже было не просто, ибо поди в коде амависа разберись.
                            Без хака он отказывался подписывать письма DKIM.
                            0
                            spampd

                            Requires
                            Perl modules:
                            Mail::SpamAssassin
                            

                            А вы не смотрели, сколько ресурсов потребляет ваш антиспам, который использует SpamAssassin?
                              0
                              Так это в качестве примера подключения сторонних сервисов.
                                0
                                было бы логично использовать spamd от проекта OpenBSD (который совсем другой spamd :) )но к сожалению он сильно привязан к pf, можно попробовать что то вроде github.com/mikey-austin/greyd (сам не эспериментировал)
                                  0
                                  Я даже смотрел на сорцы spamd ( который от OpenBSD ) и думал, сколько дней потребуется для его переноса под linux :-)
                                  Но в целом — да, мысль правильная. Может быть даже и портирую, если будет пара свободных недель.
                                    0
                                    посмотрите проект по ссылке возможно передумаете
                                      0
                                      Посмотрел, пойду собирать пакет и тестировать :-)
                                        0
                                        Собрал кстати :-)
                                        aur.archlinux.org/packages/greyd/

                                        Что, теперь и про него статью написать?
                                      0
                                      спасибо. Давно собирался поэкспериментировать с OpenSMTPd нас своем дроплете, там есть уже не совсем тривиальный конфиг для postfix, но и сложного ничего нет. Будет интересно проверить насколько легко будет перенести все на OpenSMTPd.
                                  0
                                  Нет ли проблем с тем, что другие smtp сервера отвергают почту от вашего сервера без предварительного whitelisting-а?
                                    0
                                    Я не замечал. Гонял на рабочую посту где грейлисты стоят — все рано или поздно приходило
                                      0
                                      по какой причине они могуь это делать?
                                        0
                                        Буквально только что наблюдал ситуацию, когда смена исходящего адреса при отправке почты привела к тому, что почта на некоторые адреса (больше всего отличились yahoo и aol) перестала уходить. Пришлось списываться с тамошней поддержкой и просить их внести новый адрес в белый список. Справедливости ради надо отметить, что на другие адреса (например gmail) почта уходила без проблем.
                                          0
                                          Настройка почты имеет много гитик, в основном это правильная настройка DNS, записи в прямой и обратной зоне, MX, настройка SPF, DKIM. Это покрывает 95% всех возможных проблем.
                                            0
                                            В данном случае все было сделано правильно. Все, что вы упомянули выше, было учтено. Тем не менее пришлось выкручиваться и временно посылать почту на некоторые домены со старого айпи. После того, как проблему утрясли с принимающими сторонами исключения из когфигурации убрали и все заработало как надо без дополнительных правок.
                                              0
                                              А SPF когда стал в стандарт записан? На сколько мне известно раньше он не относился к общепринятым правилам обработки сообщений, кто-то SPF использовал, кто-то нет. По мне так принимать письма от балалаек на которых есть записи SPF — это так себе решение. Какая мотивация на суровом внешнем почтовом шлюзе принимать письма от машинок только по SPF?

                                              Куда логичней и организованней принимать почту от MX серверов на суровом почтовом шлюзе. И соответственно, если вы хотите слать от балалайки сообщения, то вы их шлёте на правильно оформленный суровый или не совсем почтовый шлюз, который легко определяется, как адекватный на уровне MX записи.

                                              Однко, взять примером Яндекс, те пошли очень далеко, они вбирают в себя любую гадость, шибко не заморачиваясь адекватностью шлющего. Адекватность шлющего помогают определить миллионы пользователь жмущих кнопочку СПАМ. Да, они так и говорят в техподдержке — Жмите конопочку Спам. — Вопрос как мне могли прислать почту от моего же имени ящика, с именем хоста localhost без каких либо MX записей со внешних сетей, кроме яндексовских MX, они отмалчиваются. И вот, если мы про такой быдло подход говорим к обработке почты, то в таком случае — да, можно использовать и OpenSMTPD — получится настроить не хуже, чем обрабатывает почту яндекс. В Mail.ru ящик у меня переполнен спамом, там вообще не понятно как они её фильтруют. Но от Яндекса у меня, прям, подгарает. Сколько ни писал в техподдержку, отвечают какие-то «дети» и всегда ответ — Жми Спам!

                                              А говорю я это к тому, что сейчас тенденция очень сильно расслабления почтовой маршрутизации, в погоне за деньгами, за удиторией почтовых рассылок, крупные провайдеры пропускают очень много хлама настроенного абы как. В результате конфигурирования, настройки почтовых пересылок, упираешься в общие проблемы:
                                              — Что делать с подсетями Cloud'ов, вроде Google, Yandex, Mail.ru, AWS и прочих?
                                              — Что делать с почтовыми провайдерам вроде Yandex, Mail.ru, Google с которых успешно летит много всякой дичи?
                                              По факту очень мало доверенных серверов, которые строго придерживались бы жёстких правил и отбивали пересылки весьма сомнительного характера с правильными SPF, DKIM вроде бы.
                                        0
                                        Есть ли какая-то возможность поднять домашний smtp сервер, если провайдер блокирует порт 25? Гугление на тему портов 587 и 465 к сожалению не принесло ответа на вопрос…
                                          0
                                          Без использования внешнего сервера нет. Все что можно придумать в такой ситуации, тунель или «пересыльщик», требует чтобы у Вас где то стоял сервер с открытым 25 портом.
                                            0
                                            пересыльщики могут и по другому порту гнать
                                              0
                                              перекинуть на дамашний сервер по любому, но для того чтобы получить входящее письмо нужен 25
                                            0
                                            не рекомендую. кроме 25 порта есть ещё шанс, что ваш внешний домашний ip в диапазоне, который помечен, как-нибудь типа «clients pool». и с него почта будет мало куда доходить.
                                            0
                                            Прошу прощения за, возможно, глупый вопрос. Я использую для рассылки SmartResponder, можно ли делать рассылку с помощью этой системы на внешние адреса? Нужно как-то привязать к домену?
                                              0
                                              можно. нужно.

                                            Only users with full accounts can post comments. Log in, please.