Установка и настройка Dovecot

Dovecot-logoУстановка и настройка Dovecot является достаточно простой задачей, но содержит на пути множество подводных камней. Эта статья призвана донести до читателей краткую информацию о принципе работы, нюансах связки Dovecot с другими программами, а также обозначить место и роль Dovecot в глобальном потоке почтового трафика.

Dovecot я планирую рассматривать как один из основных компонентов связки с MTA, а потому статья находится в иерархии информации о Postfix на моем блоге.


Найти больше информации о Postfix вы можете в основной статье по его настройке — Настройка Postfix.


Установка Dovecot

 

Поскольку Dovecot присутствует в репозиториях, процесс установки представляет из себя лишь одну команду:

apt-get install dovecot-core

Перед изменением любых конфигов не забудьте на всякий случай их бэкапить. Речь идет как об основном конфигурационном файле /etc/dovecot/dovecot.conf, так и о вспомогательных, находящихся в директории /etc/dovecot/conf.d/. Помимо явного плюса в присутствии резервной копии, есть ещё и некоторое удобство в последующем администрировании — если вы видите бэкап конфига, то значит в этом конфиге вы однозначно выполняли изменения. Если бэкапа нет, значит конфиг вы не трогали. Это будете понимать без необходимости открытия файла. За годы администрирования у меня сложилась такая практика и она себя оправдывала множество раз.

Сделать бэкап можно одной командой:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Уже после внесения изменения просмотреть все заданные вручную параметры конфига можно командой:

doveconf -n

Для просмотра значений параметров по умолчанию, выполните команду doveconf без ключей. Отфильтровать вывод по нужному параметру можно с помощью grep:

doveconf | grep login_greeting
login_greeting = Dovecot ready.

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

Настройка Dovecot

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

1. Обратите внимание, что в Dovecot начиная с версии 2.0 и более поздних произошли достаточно сильные изменения во многих компонентах. Очень много статей по настройке связки Postfix+Dovecot на блогах в интернете просто устарели и, подняв по ним свой почтовый сервер, вы удивитесь количеству варнингов в логах, если у вас вообще стартанут сервисы.

2. Настройки разбиты по множеству файлов в каталоге /etc/dovecot/conf.d/. Кто-то считает это большим плюсом, но для меня это ужасно — постоянно думаешь в каком конфиге искать тот или иной параметр и в конце концов решаешь это сделать просто «грепом» по всему каталогу, например вот так:

grep 'service auth {' /etc/dovecot/conf.d/*
/etc/dovecot/conf.d/10-master.conf:service auth {

После этого проверяешь подключен ли конфиг в dovecot.conf. В общем ужас. Именно поэтому для меня самый удобный вариант — хранить все настройки в основном конфиге. Я просто делаю так — перемещаю оригинальный конфиг на всякий случай, создаю пустой новый:

mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
nano /etc/dovecot/dovecot.conf

Тем не менее, полностью игнорировать иерархию конфигурационных файлов было бы неправильно. Чтобы все было красиво, просто делайте комментарии секции, указывайте её принадлежность к соответствующему файлу в conf.d/. Вот пример с секцией SSL:

...

#---------------------------10-ssl.conf--------------------------
ssl = yes
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

...

Таким образом dovecot.conf у вас будет разделен на множество небольших частей.

3. А какую вообще функцию выполняет Dovecot в классической связке с Postfix? Казалось бы вопрос очевидный, но от непонимания принципов работы почтовых протоколов возникает очень много проблем в очевидных нюансах.

Вообще Dovecot является агентом доступа к почте (MAA — Mail Access Agent). То есть он предоставляет клиентам возможность подключаться по протоколам IMAP/POP. При этом все движения почтовых сообщений между серверами находятся в ведении агента доставки почты (MTA — Mail Transfer Agent), которым является например Postfix. Он, в свою очередь, общается уже по протоколу SMTP с другими себе подобными.

Помимо этого, функционал Dovecot позволяет использовать его для аутентификации пользователей. Собственная реализация SASL позволяет это сделать очень просто, да и Postfix полностью поддерживает эту связку.

Ну и нельзя не сказать про то, что очень часто Dovecot также выступает в качестве агента локальной доставки (LDA — Local Delivery Agent или MDA — Mail Delivery Agent, это синонимы), отвечающего за доставку сообщений в ящики пользователей.

Сказанное выше хорошо объединяет иллюстрация 1:

настройка Dovecot

Собственно Dovecot на ней может враз являться MAA и MDA. MTA — Postfix, а MUA — это обычный почтовый клиент, например ThunderBird. Хранилище — это каталог с почтовыми данными пользователей (поддерживаются разные форматы хранения — mbox, maildir).

Вывод

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

Будьте внимательны с правами файлов/каталогов, которые будет использовать Dovecot. Обратите внимание на защищенность закрытого ключа сертификата.

comments powered by HyperComments