Pull to refresh

Comments 52

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я использую функциональный инструмент, который может решать большой круг задач.
Если я поставлю OpenSMTPD и в какой-то момент мне его функционала будет нехватать — мне придётся перелопачивать систему на МТА удовлетворяющем моим требованиям. Оно мне надо? Нет. Поэтому смысла юзать OpenSMTPD не вижу.
[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  Подпись
О ужаc… влезет даже на мой роутер с OpenWRT.
Этот спор не продуктивен как впрочем и любой из серии «а почему не ...»

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

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

OpenSMTPd без условно сильно проще но и проект моложе и возможностей у него поменьше. Но не стоит забывать что его задача быть «smtp сервером из коробки» его для этого создавали.
Вот здесь с 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 всем его отпочковываниям.
а где про настройку DKIM для opensmtpd почитать?
Да точно так-же как антиспам. dkimproxy пускаем и гоняем туда-сюда исходящую почту на подпись.
Легче всего прикрутить 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.
spampd

Requires
Perl modules:
Mail::SpamAssassin

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

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

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

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

Articles