LINUX.ORG.RU
решено ФорумAdmin

Вопрос о правильной организации почтовой системы

 , , ,


1

1

Здорово други!

Итак есть vps на котором уже крутится 1С Битрикс (тот самый сайт из прошлых топиков к которому я подключал pdd от Яндекса).

Сейчас встала задача поднять почтовый сервер на том же серваке, где Битрикс со всем своим говнокодом со всей своей бизнес-лабудой.

Можно, конечно, воспользоваться этой инструкцией. Но, честно вам сказать, мне, во-первых, не хочется складывать все яйца одну корзину. Битрикс и так штука довольно прожорливая. Во-вторых, я опасаюсь что-нибудь сломать в самом Битриксе пока буду настраивать.

Может проще взять еще одну vps, поднять на нем iRedMail и не морочить голову? Что скажете?

★★★★★

странный вопрос( он технический), причем тут администрирование?

если этим почтовым сервисом будет подьзоваться толькл битрикс для отправки уведомлений, то можно сбоку аккуратно поставить postfix и не надо комбайнов типа iredmail.

если же почта идет как отдельный сервис, то конечно надо разделять сервисы. 2017 год на дворе. время виртуализации всего и вся.

constin ★★★★ ()

Если есть место на диске на текущей VPS и почтой будет пользоваться только сайт - можно запихнуть почтовый сервер в отдельный контейнер LXC, если хочется изоляции. А потом уже по нагрузке смотреть, хотя тот же чистый postfix грузит систему очень слабо, если конечно не слать по 10000 писем в секунду

Pinkbyte ★★★★★ ()
Ответ на: комментарий от constin

почта идет как отдельный сервис

Именно так. Просто тоже представил, что на том же сервере где битрикс будет работать еще с десяток почтовых ящиков юзеров и понял, что-то тут не так :-)

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Еще есть задача создания массовых рассылок прямо из битрикса.

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

По мне так изначальная VPS для битрикс не лучшая идея. Чужой VPS - это значит, что нет функционала бэкапов всей системы целиком. Если бюджета совсем нет, то может взять б/у сервак у hetzner евро за 30-50 в месяц, поднять на нем proxmox и делать там виртуалки под каждый сервис?

https://robot.your-server.de/order/market#

constin ★★★★ ()
Ответ на: комментарий от constin

Чужой VPS

Почему чужой? Сам vps находится в той же области, где живет мой знакомый заказчик всего этого дела :-)

Twissel ★★★★★ ()

MrClon, не подскажешь отчего postfixadmin может давать отлуп dovecot с таким выхлопом

Error: mysql(127.0.0.1): Connect failed to database (postfix): Access denied for user ‘postfix’@’127.0.0.1’ (using password: YES) — waiting for 25 seconds before retry

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Это не postfixadmin, а mysql. Вообще для postfix-а и dovecot-а postfixadmin это просто мускулёвая база данных.
Вангую что доступ разрешён для пользователя 'postfix'@'localhost', а ты пытаешься конектиться как 'postfix'@'127.0.0.1'. Это такие традиционные мускулёвые грабли об которые должен удариться каждый: в мускуле 127.0.0.1 это соединения через loopback интерфейс (lo), а localhost это не то-же самое, localhost это соединения через unix-сокет.
С точки зрения mysql пользователь vasya подключающийся через юникс-сокет, пользователь vasya подключающийся через 127.0.0.1-интерфейс и пользователь vasya подключающийся по сети с хоста 10.10.10.1 (например) это три разных пользователя, у них могут быть разные права, разные пароли, и некоторых из них может и не быть вовсе.

tl;dr: в довекоте в настройках доступа к мускулю замени хост 127.0.0.1 на localhost

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Спасибо за помощь

driver = mysql
default_pass_scheme = CRYPT
connect = host = localhost  dbname = postfix user = postfix password = my_password
user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 5000 AS uid, 5000 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
password_query = SELECT username as user, password, '/var/vmail/%d/%u' as userdb_home, 'maildir:/var/vmail/%d/%u' as userdb_mail, 5000 as userdb_uid, 5000 as userdb_gid, concat('*:bytes=', quota) AS userdb_quota_rule FROM mailbox WHERE username = '%u' AND active = '1'

Простынь из dovecot.conf

Twissel ★★★★★ ()
Ответ на: Спасибо за помощь от Twissel

Re: Спасибо за помощь

connect = host = localhost dbname = postfix user = postfix password = my_password

Есть у меня подозрение что дело в пробелах вокруг «=» (всех кроме первого). У меня:

connect = host=localhost dbname=somename user=vasya password=hackme


А круглокуб и не должен работать, пока dovecot не заработает

MrClon ★★★★★ ()
Ответ на: Re: Спасибо за помощь от MrClon

А круглокуб и не должен работать, пока dovecot не заработает

Это понятно. На его плечах imap.

driver = mysql
connect = host=127.0.0.1 dbname=mail user=webmaster password=SuperMan
default_pass_scheme = CRYPT
password_query = SELECT email AS user, password FROM users WHERE email = '%u'

Вот такой у меня конфиг на тестовой впске, где почта уже год крутится, там правда без постфиксадмин и пых 5.6.

Twissel ★★★★★ ()
Ответ на: Re: Спасибо за помощь от MrClon
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.
s login "admin@site.com.ua" "hackme"
s NO [AUTHENTICATIONFAILED] Authentication failed.

Куда дальше крутить давкот? Это выхлоп телнета, вестимо.

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Возможно ты напутал что-то с протоколом, посмотри там как в IMAPе авторизовываться:
https://habrahabr.ru/company/truevds/blog/262819/#auth

И ещё можно проверить работу с БД довекотовской утилитой doveadm:

doveadm auth test admin@site.com.ua


И покажи что происходит в логах довекота во время попытки авторизации

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Был косяк с default_pass_scheme .

На время отладки оставил PLAIN. И еще косяк с правами на почтовый каталог. Буду устранять.

Twissel ★★★★★ ()
Ответ на: комментарий от MrClon

Вроде уже самостоятельно разбираюсь потихоньку.

Если вдруг будет совсем затык, апну тему.

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от MrClon

Пойдем дальше.

Судя по maillog письма на сервак приходят

Jun  5 13:34:00 mydomain postfix/smtpd[3847]: connect from mail-it0-f48.google.com[209.85.214.48]
Jun  5 13:34:00 mydomain postfix/smtpd[3847]: 61CF2287925: client=mail-it0-f48.google.com[209.85.214.48]
Jun  5 13:34:00 mydomain postfix/cleanup[3851]: 61CF2287925: message-id=<CAPQ5wy3D9HQK_vjK8Axe7VM4NEvhdQB-L9jbS4j1bV3=H9bxRg@mail.gmail.com>
Jun  5 13:34:00 mydomain postfix/qmgr[1461]: 61CF2287925: from=<bob@gmail.com>, size=3017, nrcpt=2 (queue active)
Jun  5 13:34:00 mydomain postfix/local[3852]: 61CF2287925: to=<alice@mydomain.com.ua>, relay=local, delay=0.17, delays

Но права на почтовый каталог /var/vmail/mydomain 0700 и соответственно писем нету нифига. Это что еще за штуки? :-)

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Небось к руту в хомяк сбрасываются. Судя по «relay=local» постфикс считает что alice должна быть юниксовым юзером (если я ничего не путаю). Если Алисы в системе нет то письмо любо не будет принято, либо уйдёт дефолтному получателю.

Проглядывал «Postfix. Подробное руководство» которую я рекомендовал?

MrClon ★★★★★ ()
Ответ на: комментарий от Twissel

Посмотрю, честно, честно :-).

За то время что ты переписываешься только со мной ты-бы успел уже как минимум проглядеть релевантные разделы той книги. А то и прочесть её полностью (хотя зачем читать её от корки до корки — не представляю)

Ты лучше скажи пожалуйста как можно мониторить взаимодействие dovecot <-> postfix ?

А как они у тебя взаимодействуют?

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

А как они у тебя взаимодействуют?

По-моему, так

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Короче, пойду полистаю книгу. Если что завтра буду нагло морочить тебе голову :-) На сегодня все. А то, действительно, обнаглел совсем.

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Во-первых ты уже больше двух дней с этим колупаешься.
Во-вторых вычти всякие там алфавитные указатели и прочую лабуду, будет уже ощутимо меньше (а ещё есть очевидно оффтопные для тебя разделы). И не забудь про листинги конфигов. Тысячи их, и одни повторяются («а теперь то-же самое плюс вот эта строчка»).
В третьих мало-ли у кого какая скорость чтения. Я вот вообще король слоупоков, но собственно читал эту книгу максимум дней пять (отвлекаясь на всё на что можно отвлекаться), а потом только поглядывал.

MrClon ★★★★★ ()
Ответ на: комментарий от Deleted

Не ну я думаю, когда-нить чисто для себя потыкать exim4, говорят, он шустрый.

Но в нормальную очередь не может.

Twissel ★★★★★ ()
Ответ на: комментарий от MrClon

Дай совет, пожалуйста, еще по такому поводу: как самостоятельно подружить amavisd и opendkim?

Если брать за основу вот эту инструкцию.

P.S. Возможно, там уже. интеграция «из коробки». Посмотрю зависимости пакета.

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от MrClon

Я вот выяснил, чтобы работало шифрование соединения в конфиге постфикса обязательна такая строчка

tls_random_source = dev:/dev/urandom
Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Погуглил про amavisd. Логично предположить что он умеет самостоятельно проверять DKIM подпись, но скорее всего он не умеет подписывать исходящие сообщения. Так-что входящие сообщения надо прогонять через него, а исходящие через OpenDKIM

MrClon ★★★★★ ()
Ответ на: комментарий от Twissel

/etc/amavis/conf.d/50-user


kim_key("test.net", "mail", "/var/lib/dkim/test.net.pem");

....
$signed_header_fields{'to'} = 1;

@dkim_signature_options_bysender_maps = ( {
key 

"test.net"  => { d => "test.net", a => 'rsa-sha256', ttl => 10*24*3600 },
.......

# catchall defaults
    '.' => { a => 'rsa-sha256', c => 'relaxed/simple', ttl => 30*24*3600 },
} );
constin ★★★★ ()
Ответ на: комментарий от MrClon

Привет!

Еще вопрос: слышал, что DKIM-селекторы должны быть уникальными, например, когда несколько сайтов (на каждый сайт свой домен) крутятся на одном IP, это правда?

И нужно ли создавать новую пару dkim-ключей каждые полгода как советуют некоторые бородатые админы?

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

слышал, что DKIM-селекторы должны быть уникальными

Нафига? Разные селекторы нужны если у тебя письма одного домена подписывают несколько серверов (в смысле один из нескольких, ну там, кластер вот это вот всё) и ты не хочешь держать на всех серверах один ключ. Один сервер подписывает используя селектор selector1 (и соответствующий ключ), второй использует selector2 (и соответствующий этому селектору ключ). Ну и для аккуратной замены ключа может быть полезно

И нужно ли создавать новую пару dkim-ключей каждые полгода как советуют некоторые бородатые админы?

Не сказал-бы что прямо нужно, но если тебя это не напрягает и ты можешь это сделать не сломав к чертям всё то лучше да чем нет

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

и ты можешь это сделать не сломав к чертям всё то лучше да чем нет

Нет, я понимаю, что я тебя достал с консультациями, но... разве я похож на ёжика без головы?!

Twissel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.