Настраиваем виртуальный почтовый хостинг с ипользованием Postfix и dovecot. Продолжение.

Насчет dovecot дело обстоит немного сложнее. Все дело в том, что в дистрибутивах CentOS версия dovecot старовата (0.99.11-4.EL4) а разработчики настоятельно советуют переходить на более новые версии. Кроме того, при переходе с 0.99.x на версию > 1.0 сменился синтаксис конфигурационного файла dovecot, в связи с чем возникла масса проблем у администраторов при переходе на более новую версию. С другой стороны в версиях с 1.0test53 по 1.0.rc14 была обнаружена уязвимость ссылка. Поэтому мы не будем пользоваться этими версиями. Идем на сайт dovecot и выбираем пакет под наш дистрибутив. Так как мы инсталлируем все под CentOS, то нам нужен rpm пакет для RHEL 4. Значит будем переходить по следующей ссылке:

Заходим в шелл и выполняем:

cd /usr/local/src wget http://dl.atrpms.net/all/dovecot-devel-1.0.0-8_56.el4.at.i386.rpm
wget http://dl.atrpms.net/all/dovecot-1.0.0-8_56.el4.at.i386.rpm
rpm -ivh dovecot-1.0.0-8_56.el4.at.i386.rpm

Тут небольшое дополнение. Версии дистрибутива частенько обновляются, поэтому через какое-то время приведенные выше ссылки перестанут вести куда надо. Так что тут нужно будет применить немного смекалки :-) С установкой закончили, перейдем к настройке. Конфигурационный файл /etc/dovecot.conf выглядит примерно так:

01 base_dir = /var/run/dovecot/
02 log_path = /var/log/dovecot
03 info_log_path = /var/log/dovecot.info
04 login_dir = /var/run/dovecot/login
05 login_user = dovecot
06 login_chroot = yes
07 protocol imap {
08 listen = *:143
09 login_executable = /usr/libexec/dovecot/imap-login
10 }
11 protocol pop3 {
12 pop3_uidl_format = %08Xu%08Xv
13 listen = *:110
14 login_executable = /usr/libexec/dovecot/pop3-login
15 }
16 default_mail_env = mbox:/var/spool/mail/vhosts/imap/%d/%n:INBOX=/var/spool/mail/vhosts/%d/%n
17 auth default {
18 mechanisms = plain digest-md5
19 userdb passwd-file {
20 args = /etc/dovecotusers
21 }
22 passdb passwd-file {
23 args = /etc/dovecotpasswd
24 }
25 }
26 auth_executable = /usr/libexec/dovecot/dovecot-auth
27 auth_verbose = yes

В общем-то все настройки достаточно прозрачны. Кратко остановимся на нескольких из них. Строки 07-10 и 11-15 описывают работу с протоколами IMAP и POP3 соответственно. В строке 16 описываем тип почтового хранилища (mbox) и пути до почтовых хранилищ. В строке 18 описываем список механизмов авторизации. В строках 19-20 описываем путь до файла, в котором мы будем хранить описание виртуальных пользователей. В строках 22-23 описываем путь до файла паролей наших виртуальных пользователей. Файл /etc/dovecotusers имеет следующий формат:

admin@domain1.com::5000:5000 info@domain1.com::5000:5000 admin@domain2.com::5000:5000

Где admin@domain1.com соответствующее имя виртуального пользователя, 5000:5000 - uid и gid пользователя, от имени которого будет осуществляться доступ. (В нашем случае - пользователя virtual) Файл /etc/dovecotpasswd имеет следующий формат:

admin@domain1.com:{DIGEST-MD5}14047eef548ca5c4ec3d8fe0fbd0008d info@domain1.com:{DIGEST-MD5}a007da406ccb88f19d6eb084e86a64b4 admin@domain2.com:{DIGEST-MD5}fe7eaec0af385078759d38b5c78dec10

Соответственно имя виртуального пользователя, схема {DIGEST-MD5}, и пароль. Для всех имен в нашем примере пароль test. Для генерации паролей в пакете dovecot присутствует утилита dovecotpw. Пример использования для имени

admin@domain1.com: dovecotpw -s DIGEST-MD5 -u admin@domain1.com

утилита запрашивает пароль, его подтверждение и выдает на консоль сгенерированный пароль, который и нужно добавить в файл /etc/dovecotpasswd.  С настройкой разобрались. Теперь рестартуем dovecot

service dovecot restart

настраиваем наш локальный POP3 IMAP клиент и принимаем почту.

Чего то у меня не получается

Чего то у меня не получается настроить ( Делаю все как написано в статье, отключаюсь от интернета и пытаюсь отослать письмо от одного юзера в сети к другому, но ничего не получается. Как узнать, в чем причина?

уфф, разобрался =) теперь

уфф, разобрался =) теперь почта доставляется в папку пользователя в maildir формате
А про shared mailbox (вопрос чуть выше) Вы ничего не можете посоветивать?

ой, простите, ещё раз спасибо

ой, простите, ещё раз спасибо =)
пойду тогда с начала разбираться с maildir

Вы не совсем корректно

Вы не совсем корректно поставили вопрос. И я на него некорректно ответил. :-) Правильнее было бы спросить какой их mailbox форматов предпочтительнее: mbox или maildir? Я бы ответил что на данный момент правильнее было бы использовать maildir. Он лучше и надежнее и с IMAP именно он правильно работает. Короче прошу у всех прощения за введение в заблуждение. maildir - предпочтительнее.

Простите, а вы с shared

Простите, а вы с shared mailbox сталкивались?
Нашел тут заметку http://tumbleweed.org.za/2007/10/03/dovecot-shared-mailboxes-the-correct-way/ , всё настроил, но есть одна проблема:
Как сделать чтобы все клиенты могли отправлять почту от имени расшаренного аккаунта? Но сделать это нужно средствами сервака, чтобы клиентам ничего не нужно было настраивать =(

спасибо! тоже почему-то mbox

спасибо! тоже почему-то mbox больше нравится. ага доступ по imap делаю. осталось разобраться с shared mailbox ;)

Я бы посоветовал использовать

Я бы посоветовал использовать mbox.
Так исторически сложилось. :-)
Не будет проблем к примеру с IMAP, с dovecot опять же. Используйте лучше mbox.

Не могли бы вы подсказать,

Не могли бы вы подсказать, что предпочтительнее: mbox или mailbox? Разницу между ними я понимаю, но что лучше выбрать, чтобы потом не было проблем?

Лично я использую связку

Лично я использую связку postfix+mailscanner+clamav. Попозже думаю напистаь на эту тему заметку. Сложностей там особых нет.

вот об этом неплохо было бы

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

Согласен! Сайт отличный у

Согласен! Сайт отличный у них. Но решить частично проблему спама можно менее трудоемкими методами.

http://www.gentoo.org/doc/en/

http://www.gentoo.org/doc/en/mailfilter-guide.xml
вот кстати очень развернутая дока и очень заумная)
как-нибудь попытаюсь с ней разобратся, вообще сайт генто это кладезь полезных доков практически по любым вопросам)

Напишу и об этом. Эта тема

Напишу и об этом. Эта тема тоже очень актуальна. Спасибо за хороший отзыв.

эх еще б на постфик с

эх еще б на постфик с довкотом сверху спамасаси и кламав) да еще б понять накой все эти сертификаты) было бы вообще роскошно)
а вообще спасибо за материал, кое-что почерпнул)

Спасибо за положительный

Спасибо за положительный отзыв!
Возможно скоро опишу как устанавливать тоже самое только для связки postfix + cyrus sasl. Как вариант могу рекомендовать вот эту ссылку http://howtoforge.org/perfect_server_centos4.5_p5

Ошибочка =) Не Cyrux, я

Ошибочка =)
Не Cyrux, я Cyrus

Замечательная статья, как и

Замечательная статья, как и сам сайт =)
Сейчас как раз разбираюсь с postfix.
Не могли бы Вы рассказать про то, как тоже самое сделать в Cyrux.