Страница 1 из 1

Sendmail + dovecot, проблема с "виртуальными" пользователями

Добавлено: 2012-10-17 12:44:06
StreamThreader
Всем доброго времени суток!
Вот разбираюсь, читаю как сделать так что бы:
1) Sendmail работал как MTA
2) Почту доставлял в ящики виртуальным пользователям dovecot-lda он же индексирует maildir
3) Просмотр ящиков производился через IMAP (dovcot)
4) В роли MUA выступал в основном roundcube на том же хосте, но была возможность получать почту через всякие Thunderbird или TheBat!
Я вот даже мануал начал писать 2012-10-10-FreeBSD веб-почта.doc (он пока содержит мои ошибки)

У меня проблема.
На данный момент любая почта которая отправлена в мой домен приходит пользователю dovecot и всё. Я так понимаю, что письма приходят к этому пользователю, а затем сортируются по maildir-ам виртуальных пользователей, но так не происходит.
Читаю - http://wiki2.dovecot.org/LDA/Sendmail
Добавляю строки в файл relay.mailx.local.mc (мой домен для тестов mailx.local, машина где всё делаю relay.mailx.local)
в секцию ко всяким FEATURE

Код: Выделить всё

FEATURE(`local_procmail', `/usr/local/libexec/dovecot/dovecot-lda',`/usr/local/libexec/dovecot/dovecot-lda -d $u')
MODIFY_MAILER_FLAGS(`LOCAL', `-f')
В конце файл выглядит вот так

Код: Выделить всё

MAILER(procmail)dnl                                                                                                                                                                            
MAILER(local)dnl                                                                                                                                                                               
MAILER(smtp)dnl  
Я так понимаю что, dovecot-lda "маскируеться" под procmail, просто на некоторых форумах видел люди пишут в добавок строку MAILER(dovecot)dnl поэтому эта строка не нужна, тем более в оф. сайте нет таких строк.
Затем читаю дальше и вижу, что если sendmail запускается вот так: define(`confRUN_AS_USER', `sendmail')dnl
то необходимо комментировать некоторые строки и т. д.. У меня таких извращений похоже нет, значит пропускаю этот пункт.
Теперь говорят, что надо добавить в файл mailertable строку: mailx.local vmail:vmail
А потм не понятное предложение:
"The dovecot (or some other random text) after the colon character is required, else sendmail will fail to pass command arguments to dovecot-lda correctly. Make sure all
the virtual domains are in the virtuserdomains file. "
На сколько я понял тут говорят, что dovecot или какой-то любой текст может быть после двоеточия (только не понятно какого именно) иначе сендмейл не правильно передаст аргументы dovecot-lda программе. И убедитесь что все виртуальные домены перечислены в файле virtuserdomains
Я можно сказать впервые работаю с sendmail и на сколько я понял файл virtuserdomains служит для того, что бы сопоставлять пользователей одного домена с другим для перессылки писем.
Я указал в этом файле так: @mailx.local dovecot
Домен у меня один, и я так понял, что вся почта должна приходить существующему пользователю dovecot, а затем сортироваться программой dovecot-lda по виртуальным пользователям.
После редактирования делаю make && amke install && make restart
Сами виртуальные пользователи сделаны в довекоте так:

Код: Выделить всё

passdb {
    driver = passwd-file
    args = /usr/local/etc/dovecot/passwd
}

userdb {
    driver = static
    args = uid=vmail gid=vmail home=/home/vmail/%u
}
фалй аля passwd содержит виртуальных пользователей:

Код: Выделить всё

root:{PLAIN}1
postmaster:{PLAIN}1
dovecot:{PLAIN}1
www:{PLAIN}1
abuse:{PLAIN}1
hostmaster:{PLAIN}1
admin:{PLAIN}1
admin4ik:{PLAIN}1
Подскажите, кто знает, что я не так делаю.
Мануалы по довекоту читаю, но там явно чего-то не досказано.
Спасибо за помощь!

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-19 23:48:30
ASY
Я можно сказать впервые работаю с sendmail и на сколько я понял файл virtuserdomains служит для того, что бы сопоставлять пользователей одного домена с другим для перессылки писем.
Нет. Именно для перечисления виртуальных доменов. То есть, там должен быть только mailx.local. А вот про Dovecot и про нюансы настройки нужного MAILER не расскажу. Кстати, есть идея, как Sendmail должен проверить наличие пользователя и наличие квоты, если есть, до приёма сообщения ?

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-20 22:30:20
StreamThreader
Так, для начала сделал так, что-бы пока работало с системными пользователями но с паролями отличными от системных.
https://docs.google.com/open?id=0B_9mRG ... m43b0R2V1k

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-20 22:49:30
ASY
StreamThreader писал(а):Так, для начала сделал так, что-бы пока работало с системными пользователями но с паролями отличными от системных.
А смысл ? Если отдельную базу пользователей вести, так пусть она и будет отдельной. В общем, на мой взгляд, идеологически верный вариант - это когда есть система хранения почты и доступа к ней, и есть MTA, который у этой системы консультируется по всем вопросам локальной доставки. Вот это и надо стремиться построить. Скажем, в случае использования Cyrus-IMAP, sndmail-у вообще не надо знать ничего о пользователях. Если пользователь опознаётся, как пользователь обслуживаемого домена, через механизм socket map делается запрос к сервису cyrus smmapd, и, на основании ответа, письмо принимается, или нет. После приёма оно просто сливается в Cyrus по lmtp. Что-то похожее надо путаться сделать и с Dovecot, как мне думается.

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-22 10:17:26
mr. brightside
Где хранятся виртуальные юзеры?

Свой сендмыл на проверку существования пользователей до приема сообщений я пытался настроить написанием правил.

Ничего не вышло, пэтому верификация пользователя у меня происходит уже на уровне LDA.

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

Vmail - это юзер для доступа к почтовым каталогам. У Давкота еще есть юзер для проверки успешной авторизации и пользователь под которым запускается процесс логина. Это три различных пользователя.

Для стандартных нужд сендмыл должен работать от рута.

А локальный доставщик можно определить так:

Код: Выделить всё

define(`PROCMAIL_MAILER_PATH',`/usr/local/libexec/dovecot/deliver')dnl
FEATURE(`local_procmail', `/usr/local/libexec/dovecot/deliver', `deliver -d $u')dnl
....
MAILER(procmail)
MAILER(smtp)
Однако, надо все же понять, где хранятся виртуальные пользователи?
Для хранения в мускуле сендмыл надо патчить. Для хранения в ЛДАП - его надо пересобирать из сырцов. С остальным не заморачивался =)

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-24 16:46:13
StreamThreader
Виртуальные пользователи лежали в файле и читались драйвером passwd-file.
Но получается, что этот файл умеет читать только Dovecot, а SendMail всегда смотрит в /etc/shadow.

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-24 19:02:39
mr. brightside
StreamThreader писал(а):Виртуальные пользователи лежали в файле и читались драйвером passwd-file.
Но получается, что этот файл умеет читать только Dovecot, а SendMail всегда смотрит в /etc/shadow.
Довекоту надо сказать, что вся почта принадлежит одному пользователю, через этого же пользователя юзеры будут получать почту, верифицируя себе через файлик, где хранятся пароли.

Сендмыл должен знать, принимать письмо или нет на основе проверки существует ли пользователь в системе. По дефолту он смотрит на системных пользователей.

Спрашивайте гугл на тему написания правил для сендмыла, который также будет верифицировать юзера на этапе приемки письма по стороннему файлику, где хранятся данные по виртуальным юзерам.

Можете еще показать свой dovecot.conf?

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-25 20:35:15
ASY
Не, с Cyrus-IMAP + Sendmail ситуация получается значительно элегантнее...

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-26 9:21:52
mr. brightside
ASY писал(а):Не, с Cyrus-IMAP + Sendmail ситуация получается значительно элегантнее...
Кстати, не использовал такую связку

А чем элегантнее?

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-26 14:21:58
ASY
Тем, что вся настройка для пользователей делается в Cyrus-IMAP. Это основа, отвечающая за всё. Пользователей можно завести в sasldb, в mysql (через sasl-mysql), можно в LDAP.... Можно несколько доменов. Как только всё это заведено и настроено, берётся Sendmail, читается тут: http://anfi.homeunix.org/sendmail/. Я использую RTCyrus2, RTCyrus3 посмотреть руки не доходят который год (кстати, там есть аналогично для Exim). У Cyrus-IMAP, дополнительно к pop/imap, активируется сервис smmapd. После добавления нужных майлеров в дерево шаблонов Sendmail в mc дописывается что-то вроде

Код: Выделить всё

FEATURE(`mrs')dnl
FEATURE(`mrs_cyrus',`/var/lib/imap/socket/smmapd')dnl
dnl
define(`SMTP_MAILER_FLAGS', `A')dnl
MAILER(smtp)dnl
dnl
MAILER(local)dnl
dnl
define(`CYRUSV2_MAILER_ARGS',`FILE /var/lib/imap/socket/lmtp')dnl
MODIFY_MAILER_FLAGS(`CYRUSV2',`-A5')dnl
MAILER(cyrusv2)dnl
После этого, в mailertable пишется что-то вроде
my.dom mrs_cyrus_mailertable:error:5.1.1:550 User unknown or mailbox full

в access:
to:my.dom RELAY

И всё. Sendmail начинает приём письма. Если обнаруживается, что это домен, описанный в mailertable, и это my.dom, то через socket map делается запрос к сервису smmapd. Сервис отвечает о достижимости ящика и sendmail принимает или нет сообщение дальше. Никакой информации о пользователях, квотах и т.п. Sendmail-у знать не надо, достаточно списка доменов. Если нужна авторизация, то берётся saslauthd и назначается механизм проверки rimap. И, опять, всё завязано на тот же Cyrus.

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2012-10-26 14:33:17
mr. brightside
ASY писал(а): И всё. Sendmail начинает приём письма. Если обнаруживается, что это домен, описанный в mailertable, и это my.dom, то через socket map делается запрос к сервису smmapd. Сервис отвечает о достижимости ящика и sendmail принимает или нет сообщение дальше. Никакой информации о пользователях, квотах и т.п. Sendmail-у знать не надо, достаточно списка доменов. Если нужна авторизация, то берётся saslauthd и назначается механизм проверки rimap. И, опять, всё завязано на тот же Cyrus.
Я обязательно попробую =)

тем более, что помимо постфикса юзаю сендмыл.

Только я его с давкотом юзаю, как и постфикс.

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2014-07-09 13:06:13
medved
День добрый, подскажите ге можно взять ман по настройке Sendmail + dovecot, если такой есть?

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2014-07-09 19:34:24
mr. brightside
medved писал(а):День добрый, подскажите ге можно взять ман по настройке Sendmail + dovecot, если такой есть?
Добрый день,

Я давно отошел от сендмыла и администрирования в частности, но я помню, что на оф. сайте dovecot была информация.

Также вам может помочь следующий линк

Re: Sendmail + dovecot, проблема с "виртуальными" пользовате

Добавлено: 2014-07-10 8:59:02
medved
mr. brightside писал(а):
medved писал(а):День добрый, подскажите ге можно взять ман по настройке Sendmail + dovecot, если такой есть?
Добрый день,

Я давно отошел от сендмыла и администрирования в частности, но я помню, что на оф. сайте dovecot была информация.

Также вам может помочь следующий линк
Спасибо , буду пробывать...