Конфиг Dovecot для связки с Postfix, PostfixAdmin, MySQL

Конфиг Dovecot для связки с Postfix, PostfixAdmin, MySQLВ этой статье я представлю Конфиг Dovecot для связки с Postfix, PostfixAdmin, MySQL, о которой подробно рассказывал в ряде предыдущих статей. Все сказанное справедливо исключительно для определенных версий пакетов. Очень ленивым читателям сразу можно промотать описания и посмотреть на итоговый конфиг, который находится в самом конце.

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


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


Конфиг Dovecot для связки с Postfix, PostfixAdmin, MySQL

Хочу сразу сделать одну оговорку – настройки в конфиге справедливы только для связки следующих версий ПО:

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

Примечание: настройки Dovecot разнесены по множеству конфигурационных файлов, которые вы можете найти в директории /etc/dovecot/conf.d. Основным же конфигом является /etc/dovecot/dovecot.conf. Вы можете сосредоточить все настройки в главном конфиге, либо раскидать по вспомогательным. Мне больше нравится первый вариант, но чтобы сохранить некоторую логическую связь с конфигами conf.d/, я условно разделю основной конфиг на секции, названия которых совпадает с аналогичными файлами в conf.d/.

Поскольку в оригинальном dovecot.conf очень много всякого, лучше этот конфиг сразу переименовать, а на его месте создать полностью новый.

Теперь пришло время наполнить этот конфиг осознанным содержимым.

Общие параметры

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

Ещё раз повторю, параметр protocols не обязателен, он и так имеет значение imap pop3, а imaps и pop3s активированы по умолчанию и если их вписать в конфиг, у вас вообще будет вылезать ругань:

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

Итого: в общих параметрах будет всего одна строка, озвученная выше.

10-auth.conf

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

disable_plaintext_auth запрещает аутентификацию простым текстом без использования ssl/tls (для всех соединений, кроме локальных). Параметр имеет значение по умолчанию = yes, тем не менее я хочу быть уверенным в правильности конфигурации сейчас и в последующем, поэтому задаю значение в явном виде.

auth_mechanisms задает механизмы аутентификации. По умолчанию = plain, login используется для некоторых продуктов Microsoft, а cram-md5 я добавил для удобства, поскольку пароли в базе я храню именно в этом виде, о чем подробно рассказывал в статье Настройка связки Postfix PostfixAdmin.

Итоговый список параметров аутентификации будет выглядеть точно также, как я и написал выше – всего два параметра.

10-logging.conf

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

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

Общий вид секции на этапе отладки конфигурации будет такой:

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

Стоит отметить один момент – нужно выдать корректные права на файлы логов, иначе почта ходить не будет! Сделать это нужно уже после рестарта Dovecot, чтобы файлы присутствовали в каталоге, либо создать их вручную. Изменить права можно командой:

Не забудьте выставить нужного пользователя и группу, у меня это vmail.

10-mail.conf

Параметры этой секции я подробно рассматривал во время настройки Dovecot, работающего как агент локальной доставки (LDA или MDA, что одно и то же). Подробнее вы можете прочитать в статье Связка Postfix и Dovecot (ищите по вхождению слова 10-mail.conf). Я же просто скопирую итоговый вид сюда, опустив второстепенные параметры:

Также не забудьте создать каталог и настроить права, этим я занимался в статье Виртуальные почтовые ящики Postfix (ищите по вхождению строки /var/vmail). Идем дальше.

10-master.conf

Как и 10-mail.conf, секцию 10-master.conf я подробно рассматривал в прошлой статье Связка Postfix и Dovecot (ищите по вхождению слова 10-master.conf), но сейчас необходимо внести ясность по поводу некоторых других опций. Дело в том, что в этой секции осуществляется некоторая настройка протоколов imap/pop и именно тут вы можете произвести тонкую настройку компонентов, отвечающих за процесс входа 2 пользователей на сервер (Login process). Конкретно за эту задачу отвечают параметры:

Но, да возрадуются лентяи (то есть такие же как я), все уже настроено оптимальным образом за вас! Речь идет как об используемых протоколах (imap/pop3, imaps/pop3s + ssl enable), так и настройках безопасности. В принципе можете оставить секцию как есть на будущее, может быть захотите что-то переопределить, задать свои настройки. Как вариант можете вообще ничего не указывать. Обобщая сказанное, а также взяв уже настроенные ранее параметры, получаем полное содержимое секции:

Напоминаю, что опция service auth отвечает за аутентификацию и подробно её принцип работы, а также значения всех необходимых параметров, я рассматривал в статье Связка Postfix и Dovecot.

10-ssl.conf

Пришло время поговорить о сертификатах. Разумеется самым лучшим вариантом будет сертификат от публичного доверенного центра, но он стоит денег, а потому выбор нищебродов – самозаверенные сертификаты. После установки Dovecot у меня уже был автоматически сгенерирован сертификат, но если по каким-то причинам у вас этого не произошло, можете получить сертификат, выполнив команду:

Большинство значений параметров ssl по умолчанию нас также устраивает, но все же нужно проверить путь до сертификата и его ключа, а также жестко задать использование ssl. Получаем итоговые параметры секции ssl:

В зависимости от того где у вас располагается сертификат и ключ, вам нужно изменить пути соответствующим образом. Идем далее.

15-lda.conf

У меня эта секция получилась пустой. Разве что можно на будущее оставить директиву protocol lda. Я оставил в конфиге только вот что:

В статьях в интернете вы также можете увидеть в секции lda параметры lda_mailbox_autocreatelda_mailbox_autosubscribe, которые отвечают за автосоздание и автоподписку на папки в почтовых ящиках соответственно. По умолчанию значения этих опций = no.

На данный момент я до конца не уверен в необходимости этих параметров, ведь их функционал можно задать в директиве namespace, просто выставив auto = subscribe (обеспечивает враз автосоздание и автоподписку). В любом случае без их явного определения у меня все работает отлично.

15-mailboxes.conf

Ну а теперь пришло время поговорить об автосоздании папок в почтовых ящиках и автоматической подписке на их изменения. На самом деле есть как минимум два пути для достижения этой цели. Первый из них и наиболее старый – использование плагина autocreate 3 (+ автоподписка в нем же). Если вы выберите этот путь, то ваш ждет разочарование – Dovecot будет сыпать варнинги, что метод устарел. Да и вообще сейчас он работает как-то криво, по крайней мере у меня было так (хочу уточнить, что я его изучал просто для общего развития, а на деле использовал описанный ниже способ).

Следующий вариант – использование директивы namespace inbox 4. Этот вариант более современный, да и к тому же все настройки будут сосредоточены в одном месте. Разумеется все описания нужно проводить в файле 15-mailboxes.conf. В конечном счете он будет иметь вид:

Как я и упоминал ранее, auto = subscribe обеспечивает автосоздание и автоподписку враз.

90-plugin.conf

Секция также получилась полностью пустой. На будущее можно только оставить основную директиву plugin, чтобы при необходимости вписать нужные парамеры. Общий вид будет следующий:

Переходим к последнему разделу.

auth-sql.conf.ext

Этот конфиг отвечает за проверку учетных данных пользователей и его я также настраивал в статье Связка Postfix и Dovecot. Напомню, что все имена и пароли пользователей хранятся в отдельной базе данных MySQL, которая была автоматически создана и настроена при установке PostfixAdmin (см. статью Настройка связки Postfix PostfixAdmin). Напомню, что необходимо создать файл /etc/dovecot/dovecot-sql.conf и в нем написать все параметры и запросы для вытаскивания нужных данных (а это имя пользователя и пароль).

В сам же конфиг добавляем только:

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

Итоговый конфиг dovecot.conf

Представляю вашему вниманию итоговый вариант рабочего конфига Dovecot, работающего в связке с Postfix, PostfixAdmin, MySQL. Для вашего удобства конфиг разделен на секции, каждая из которых имеет имя, соответствующее определенному файлу из каталога /etc/dovecot/conf.d и снабжена ссылкой на официальную документацию. Для собственного удобства я свел все в один конфиг – /etc/dovecot/dovecot.conf, вы можете все разбить по разным файлам конфигурации.

Если что-то не работает – тестируйте, смотрите что в логах. Напоминаю, что конфиг актуален только для почтового сервера, настройкой которого я занимался в нескольких последних статьях (подробнее читайте в Настройка Postfix).

Вывод

Хоть и конфиг Dovecot получился достаточно большой, в нем все предельно просто, а многие директивы оставлены просто на будущее. Достаточно подробная и внятная официальная документация упрощает процесс настройки, а также предлагает готовые примеры реализации функционала.

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

Разбивать конфиг на части (в соответствующие файлы конфигурации в каталоге conf.d/) или сводить все в один dovecot.conf решать конечно же вам, но второй вариант лично для меня более удобен, информативен, прост в отладке.

Яндекс.Метрика