Минимальный почтовый сервер на основе Postfix и Dovecot. Часть 1: Dovecot / Хабр

Структура почтовой системы

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

Основные плюсы классической системы по сравнению с упрощенной:

  1. Производительность. Postfix имеет доступ к почтовым ящикам и может быстрее и проще, нежели во втором случае, доставить почту непосредственно пользователю.
  2. Независимость частей системы друг от друга. В случае отключения Dovecot, Postfix продолжит свою основную функцию — принимать письма.

Основные недостатки классической системы по сравнению с упрощенной:

  1. Формат почтовых ящиков должен быть понятен обеим программам.
  2. Необходимо синхронизировать доступ к почтовым ящикам.
  3. Безопасность. Необходимы дополнительные полномочия для Postfix. Postfix должен иметь прямой доступ к почтовым ящикам и списку пользователей.
  4. Настройка и сопровождение немного сложнее.

Введение

У меня есть аналогичная статья про настройку postfix на centos 7. Она в целом не утратила актуальность, кроме ссылок на старые версии софта. С тех пор ничего принципиально не изменилось. Если вы не хотите использовать Centos 8, то смело используйте ту статью. У 7-й версии centos еще очень долго будет поддержка, так что вам скорее всего хватит этого времени.

Как я уже сказал, настраивать почтовый сервер буду на ОС linux, а точнее на CentOS 8. За основу будет взят postfix, который присутствует в этой системе из коробки. Инструкция получится универсальной, можно использовать и для других дистрибутивов.

Дополнительный функционал почтового сервера postfix

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

Похожее:  Личный кабинет Uber такси: для водителей и пассажиров

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

  1. Защиту от подбора паролей с помощью fail2ban.
  2. Мониторинг почтового сервера postfix с помощью zabbix.
  3. Сбор статистики с помощью pflogsumm или чего-то подобного.
  4. Просмотр и анализ логов с помощью webmin.
  5. Использование бесплатных сертификатов let’s encrypt.
  6. Регулярную очистку служебных почтовых ящиков.
  7. Бэкап всей почтовой базы.
  8. Сбор логов с почтовых серверов в ELK Stack.

Расскажу еще почему я не настраиваю некоторые популярные программы, которые использую на почтовых серверах:

Acl vfile бакэнд

Для глобальных ACL и ACL каждого ящика поддерживается vfile-бакэнд (vfile – virtual file).

Для каждого ящика ACL хранится в файле dovecot-acl , который находится:

  • Maildir: почтовый каталог владельца ящика (например ~/Maildir, ~/Maildir/.folder/)
  • MailBox: Контролируемый каталог. Нужно явно указать расположение почты :CONTROL=<path>
  • Dbox: Каталог почты Dbox (например ~/dbox/INBOX/dbox-Mails/)

КСТАТИ! RoundCube имеет плагин “acl”, при подключении которого, в настройках появляется дополнительная вкладка “Совместный доступ” у свойств любой папки.

Acl для мастер-пользователя

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

Дать особые полномочия мастер-пользователю можно следующим образом:

Dovecot – общие моменты

Dovecot выполняет две основные функции – предоставляет интерфейс для доступа MUA через POP или IMAP, и выполняет окончательную доставку почты, от MTA в ящики (в папки). Эту функцию доставки может выполнять и сам Postfix с помощью своей LDA, а может и сторонний LDA.

Но в рассматриваемой конфигурации этим все же занимается Dovecot. Причем в процессе доставки задействован механизм lmtp.

ВАЖНО! Для поддержки протокола lmtp, должен быть установлен пакет dovecot-lmtp.

В рассматриваемом варианте почта физически хранится в формате Maildir (каждое сообщение в отдельном файле). Но у Dovecot, кроме поддержки еще одного стандартного формата “Mbox” (хранение сообщений в одном файле; здесь не рассматривается), есть еще поддержка двух собственных форматов “sdbox” и “mdbox” (здесь так же не рассматриваются).

Версии. Dovecot постоянно модифицируется и пакеты в репозитариях Debian стабильной версии конечно отстают. В новых версиях встречаются существенные изменения, которые могут быть очень интересны. Из последнего, что мне, например очень понравилось – доработка инструмента командной строки doveadm новой командой “deduplicate”, которая позволяет из консоли просканировать указанные виртуальные папки пользователей и уничтожить дубликаты писем (вылавливая их по Message-ID). К сожалению в стабильной версии такого функционала нет.

Если захочется рискнуть поставить последнюю версию, то сначала нужно добавить строку с указанием на последнюю версию (на момент написания заметки это версия 2.2)

/etc/apt/sources.list:

Maildir

Maildir хранит каждое сообщение в отдельном файле, и требует, чтобы у каждого был уникальный ID. Список файлов и соответствующих им ID хранится в файле “dovecot-uidlist”.

Этот файл не должен быть заблокирован на чтение. Новые строки добавляются в конец файла. Данные в нем не могут быть изменены – только заменены. Сообщения после окончательной доставки так же не могут быть изменены, а могут быть только заменены целиком.

Для ускорения доступа к тысячам сообщений в папках, имеет смысл использовать поддержку индексирования директорий на уровне файловой системы (это возможно для новых версий ext3). Возможно имеет смысл использовать для каталога почты “ReiserFS” – файловую систему, заточенную для быстрой работы с большим количеством маленьких файлов.

По умолчанию Dovecot использует структуру директорий Maildir . Это означает, что все папки находятся непосредственно внутри каталога ~/Maildir.

Обычно, имя папки внутри родительского каталога начинается с “.” (точки), – все они хранятся в корневом каталоге (“INBOX”), включая подкаталоги (напр.: ~/Maildir/.folder/, ~/Maildir/.folder.subfolder/).

Пример настройки конфигурации /etc/dovecot/conf.d/10-mail.conf:

mail_location = maildir:/var/mail/%d/%n/Maildir:LAYOUT=fs

Начиная с версии Dovecot 2.0, разрешения для вновь созданных файлов больше не копируются из файла “dovecot-shared”.

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

Индексное хранилище можно принудительно указывать персональное каждому используя, например “:INDEX=~/public” для параметра mail_location или location. Например, в случае доступа к дополнительным публичным каталогам, можно назначать для такого каталога каждому пользователю свое индексное хранилище.

ВАЖНО! С версии 2.2 необходимо использовать :INDEXPVT.

/etc/dovecot/conf.d/10-mail.conf:

mail_location = maildir:/home/vmail/%d/%n
namespace {
  type = private
  separator = /
  prefix =
  hidden = no
  inbox = yes
}
namespace {
  type = public
  separator = /
  prefix = Public/
  location = maildir:/var/vmail/public:LAYOUT=fs:INDEX=/home/vmail/%d/%n/pub_index
  list = yes
  subscriptions = no
}

В этом примере (он немного изменен и отличается от примера в официальных доках) у каждого пользователя кроме своего ящика, есть доступ к публичному каталогу, но индексное хранилище публичного каталога (с назначенным именем “pub_index”) у каждого пользователя находится в его домашнем каталоге.

Если кроме этого, создать в целевой папке файл “dovecot-shared”, то это позволит каждому пользователю устанавливать свои “SEEN” на письма в этом каталоге (помечать как просмотренные персонально для себя, не меняя флаг для других пользователей).

ВАЖНО! Каталоги type = public требуют настройки ACL, иначе они будут недоступны. Самое простое в указанном выше примере – установить глобальный ACL в соответствующем каталоге, создав файл .DEFAULT. Для примера приведенного выше, это может быть что-то вроде /etc/dovecot/acl/public/.DEFAULT с соответствующими разрешениями. См. также заметку Dovecot 2 – ACL.

Кроме того нужно помнить о том, что корневая публичная папка сама по-себе не является почтовым каталогом и не будет содержать писем, пока вручную не будут созданы все требуемые подпапки формата Maildir (cur, new, tmp).

Подробнее о namespace – см. выше.

Namespace

Dovecot поддерживает настраиваемые пространства имен (namespace), в соответствие со спецификацией “RFC 2342” (к сожалению, не все клиенты ее поддерживают), содержащей указания IMAP-клиенту: где находятся почтовые ящики, являются ли они частными (private), публичными (public) или общедоступными (shared).

Xexec plugin

Интересное экспериментальное расширение IMAP-протокола (плагин), позволяющее запускать любые приложения на стороне сервера по команде MUA с установленными соответствующими плагинами (например Thunderbird). Можно сделать так, что отправка сообщений для MUA будет происходить без использования SMTP.

Авторизация мастер-пользователя

Мастер-пользователь имеет расширенные возможности – он может входить в систему под другими пользователями.

Для этого есть два метода:

Аутентификация

Также как и Postfix Dovecot будет использовать обычные учетные записи пользователей, созданные в системе (хоть и реально поддерживаются разные варианты5). Для этого необходимо настроить секцию passdb6.

Базовая настройка

Для начала нужно создать хотя бы одного пользователя, который и будет получать/отправлять почту.

Создаем юзера командой:

и сразу перенаправляем всю входящую почту root’a на него (это нужно для безопасности), добавив запись в /etc/aliases:

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

На этом все. Более подробно базовую настройку системы я уже рассматривал ранее в статье Настройка Debian для Postfix.

Безопасность

Если установка Postfix прошла по стандартному сценарию, то как минимум дефолтные сертификаты должны присутствовать. В том или ином виде конфиг будет содержать параметры:

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

Примечание: В этом куске конфига вы можете встретить параметр smtpd_use_tls=yes. Его можно безболезненно убрать, поскольку он устарел и предназначен для совместимости устаревших версий Postfix. Вместо него используется smtpd_tls_security_level, значение которого имеет приоритет.

Следующую секцию параметров, относящуюся к SASL, вам нужно добавить вручную:

Ключ smtpd_sasl_auth_enable по умолчанию имеет значение no, то есть аутентификация не требуется. Именно поэтому нужно задать yes в явном виде. По умолчанию Postfix использует Cyrus SASL и чтобы он обратил свой взор в сторону Dovecot, нужно изменить параметр smtpd_sasl_type и указать путь до сокета в параметре smtpd_sasl_path.

Примечание: полный путь до сокета будет /var/spool/postfix/private/auth, просто параметр smtpd_sasl_path является составным и по умолчанию включает в себя  путь до очереди — queue_directory = /var/spool/postfix .

Советую к прочтению официальные мануалы34.

Ну и последний момент: проследите, чтобы в конфиге был определен параметр smtpd_relay_restrictions (иначе почта отправляться не будет). По умолчанию для только что установленного Postfix он будет иметь значения permit_mynetworks permit_sasl_authenticated defer_unauth_destination.

С настройками TLS и SASL разобрались, двигаемся дальше.

Виртуальные папки (плагин virtual)

В этом разделе – чистая отсебятина. Официальная документация показалась мне недостаточно ясной, поэтому, для быстрого знакомства с плагином и понимания его работы, лучше для начала рассмотреть пару примеров. Настоятельно рекомендую после всех ознакомительных экспериментов перечитать официальную документацию по плагину (см. раздел Источники).

ВАЖНО! Плагин не всегда правильно обрабатывает ошибки. В некоторых ситуациях, когда допущена ошибка – он продолжает работать, но глючит.

Плагин virtual позволяет создавать виртуальные каталоги.

Они доступны в MUA как отдельные папки, но изначально в них ничего не отображается, – в них нужно добавлять нечто вроде поискового фильтра, описанного в файле “dovecot-virtual” (для каждой папки/подпапки – свой файл). Используются IMAP LIST-совместимые шаблоны и IMAP SEARCH команды, описанные в RFC 3501.

ВАЖНО! В виртуальных папках письма физически не хранятся! Они только отображают письма из других папок в соответствие с правилами, описанными в файлах “dovecot-virtual”.

  • * – все совпадения из namespace с пустым prefix =
  • mail* – совпадения в каталогах, начинающихся с mail из namespace с пустым prefix =
  • mail/* – совпадения из namespace с prefix = “mail/”

Главный конфигурационный файл dovecot

Основные настройки Dovecot хранит в файле конфигурации /etc/dovecot/dovecot.conf (или, реже /etc/dovecot.conf).

Сразу делаем копию конфигурационного файла:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak

Примечение: путь к файлу может быть /etc/dovecot.conf, проверьте сначала, где у вас в системе этот файл.

Рабочий конфигурационный файл Dovecot 2.0.9 (для 2.3.11 все подходит, может, где-то и есть мелочи, но я не заметил):

Глобальный acl

Глобальный ACL, в отличие от наследуемого ACL, применяется всегда и для всех пользователей. Типичные цели его использования:

  1. Удаление некоторых разрешений из личных папок пользователей. Например каждый пользователь может иметь сообщения “Счета”, которые будут доступны ему только для чтения.
  2. Дополнительный допуск для мастер-пользователя. Мастер-пользователь не имеет своего почтового ящика, поэтому по умолчанию он вообще не имеет никаких разрешений. Добавление разрешений для него осуществляется в глобальном ACL. См. ниже – подробнее о мастер-пользователе.

Каталог глобальных ACL задается с помощью параметра vfile. например: /etc/dovecot/acls/ (см. выше). ACL должны выглядеть, как реальное имя каталога ящика. Например:

  • для INBOX: /etc/dovecot/acls/INBOX
  • для archives.2007: /etc/dovecot/acls/archives.2007
  • для archives/2007: /etc/dovecot/acls/archives/2007

Имена каталогов просматриваются с реальным разделителем, а не виртуальным как в namespace. Таким образом, даже если для Maildir указан разделитель “/” (separator=/), ACL будут сопоставлены каталогам с таким разделителем, который присутствует в реальных именах каталогов (напр “.”). Хотя в именах ACL не будет “.”

Источники

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

Как убрать фантомные папки (lda-dupes и т.п.)

Если используется Sieve и расширения vacation, vnd.dovecot.duplicate, а также redirect и т.п., то в настройках становится доступна “папка” lda-dupes. На самом деле это на папка, а служебный файл этих расширений “.dovecot.lda-dupes”, начинающийся с точки.

ВАЖНО! Все, что начинается с точки, воспринимается в Maildir как imap-папка.

Может быть этот файл был назван так нарочно, чтобы пользователь мог самостоятельно его удалять в настройках MUA, в случае сбоя упомянутых расширений, но у меня с его удалением были проблемы (“…failed: Not a directory” (c))

По-видимому имеет смысл его скрыть. Это можно сделать с помощью глобального ACL примерно так

# mkdir /etc/dovecot/acl/domain.tld/dovecot/

# nano /etc/dovecot/acl/domain.tld/dovecot/lda-dupes:

anyone rp

Аналогично можно скрывать другие папки. Параметры rp здесь нужны для того, чтобы к файлу/”папке” был доступ у LDA (для корректной отработки Sieve). См. также заметку Dovecot 2 – ACL

Как указывать параметры

В Dovecot настройки, которые не указаны – применяются по умолчанию. Это может приводить к интересным последствиям.

Например, если в файле /etc/dovecot/conf.d/10-master.conf закомментирован listener, то это не значит, что он не работает. А может быть так, что если он описан в форме, отличающейся от той, что принята по умолчанию, то получим два слушателя.

Рассмотрим такой пример

/etc/dovecot/conf.d/10-master.conf:

Конфигурация dovecot

Для начала забэкапим текущий конфиг командой:

Все необходимые параметры я буду задавать в /etc/dovecot/dovecot.conf, полностью минуя конфиги из /etc/dovecot/conf.d/.

Конфигурация postfix

Первым делом необходимо вычистить из системы MTA, используемый по умолчанию:

И удалить его конфигурацию:

Ну а далее ставим Postfix:

Наследуемый acl

Каждый раз, когда создается новый подкаталог, он получает свой ACL от родительского каталога. Во время создания родительского корневого каталога, ему назначается ACL по умолчанию из namespace. Полноценное наследование не поддерживается! “Наследование” происходит только в момент создания подчиненного каталога.

ACL переносится из namespace по умолчанию из файла dovecot-acl корневого каталога (например: /var/public/Maildir). Это происходит только при создании новых каталогов, и не касается каталогов, которые уже были созданы ранее без поддержки ACL.

Настройка dkim

Напишу своими словами как я понимаю работу dkim. С помощью dkim вся исходящая почта сервера подписывается электронной цифровой подписью, связанной с именем домена. Открытый ключ шифрования с помощью DNS публикуется в txt записи. Таким образом, удаленный сервер, при получении письма от вас, сравнивает цифровую подпись с опубликованным в dns открытым ключом вашего домена.

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

Установка dkim на Centos 8 на момент написания статьи имеет некоторые сложности. Дело в том, что этого пакета до сих пор нет в стабильной версии репозитория Epel, где он обычно был для предыдущих версию. Хорошая новость в том, что он уже есть в тестовой ветке.

Для настройки dkim устанавливаем соответствующий пакет:

# dnf install opendkim

Создаем директорию для хранения ключей:

# mkdir -p /etc/postfix/dkim && cd /etc/postfix/dkim

Генерируем ключи для домена:

Настройка dmarc

Для настройки DMARC на самом почтовом сервере ничего делать не надо. По своей сути это просто указание другим, что делать с письмами от вас, не прошедшими проверки dkim и spf (которые являются подделками, если у вас все настроено правильно). Для этого сам принимающий почтовый сервер должен поддерживать работу в соответствии с dmark. Плюс, для вашего домена должны быть настроены правила, что делать в том или ином случае.

Есть три типа действий, которые можно настроить с помощью dmark:

  1. Отклонить письмо.
  2. Пометить письмо как спам.
  3. Ничего не делать.

При этом можно настроить при каждом действии формирование отчета и отправку его на какой-то email адрес. Я очень осторожно отношусь к этим правилам и никогда не настраиваю блокировку или пометку о спаме. Так можно выстрелить себе в ногу и загубить всю свою почту из-за какой-нибудь ошибки.

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

Указанные правила мы сейчас и добавим с помощью txt записи в DNS. Запись будет такая:

Настройка dovecot

Займемся настройкой dovecot — сервер доставки почты пользователю по протоколам pop3 и imap. Я не вижу причин использовать pop3. Он неудобен по сравнению с imap. Чаще всего pop3 отключаю вовсе. Но это уже на ваше усмотрение. Приведу пример с настройкой обоих протоколов. Помимо основного функционала по доставке почты, я настрою несколько полезных плагинов. Расскажу о них поподробнее:

  • Sieve — выполняет фильтрацию почты по заданным правилам в момент локальной доставки на почтовом сервере. Удобство такого подхода в том, что вы один раз можете настроить правило сортировки, и оно будет работать во всех клиентах, которыми вы будете получать почту по imap. Правила создаются, хранятся и исполняются на самом сервере.
  • Acl — позволяет пользователям расшаривать папки в своем почтовом ящике и предоставлять доступ к этим папкам другим пользователям. Не часто видел, чтобы этот функционал настраивали и использовали. Думаю, просто по незнанию. По мне так очень удобный и полезный функционал.

Часто вижу, что люди настраивают плагин quota, который позволяет ограничивать максимальный размер почтового ящика. Я лично в своей работе его не использую. Возможно, когда у тебя клиентов сотни и тысячи это имеет значение и надо обязательно настроить ограничение.

Когда же ящиков меньше, нет смысла напрягать людей постоянной чисткой. Сейчас диски стоят не так дорого. Мне кажется, проще и дешевле увеличить место на сервере, нежели постоянно беспокоить пользователей необходимостью чистки ящика. Лучше ограничить максимальный размер письма, скажем 20-ю мегабайтами.

Настройка postfix

Сердце нашего почтового сервера на linux — postfix. В дистрибутиве centos 8 минимальной установки он по-умолчанию отсутствует. Так что сначала устанавливаем postfix.

# dnf install postfix postfix-mysql

Приводим конфиг postfix /etc/postfix/main.cf к следующему виду.

Настройка spf

Настроим еще одно средство для повышения доверия к нашей почте со стороны других серверов — spf. Расскажу опять своими словами для чего это нужно. Spf запись добавляется в виде txt записи в dns вашего домена. С помощью этой записи вы указываете, какие ip адреса имеют право отправлять почту от вашего имени.

Можно указать конкретные ip адреса в записи, а можно сказать, чтобы ip адреса проверялись по спискам A и MX записей. У нас простой случай и только 1 сервер с одним ip, поэтому укажем конкретно этот ip адрес. Идем в панель управления dns и добавляем новую txt запись.

Настройка ssl

В секции SSL указаны пути к сертификатам:

ssl = yesssl_cert = </etc/pki/dovecot/certs/server.crtssl_key = </etc/pki/dovecot/private/server.key

Проверте пути к файлам, по-умолчанию это вполне может быть, например, так:

ssl = yesssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem

Права на эти файлы д.б. только для root:

chown root:root /etc/pki/dovecot/certs/dovecot.pemchown root:root /etc/pki/dovecot/private/dovecot.pemchmod 444 /etc/pki/dovecot/certs/dovecot.pemchmod 400 /etc/pki/dovecot/private/dovecot.pem

Настройка автоответчика

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

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

# mcedit /var/www/html/webmail/plugins/managesieve/config.inc.php

Изменяем там параметр:

$config['managesieve_vacation'] = 1;

После этого достаточно просто обновить веб интерфейс roundcube, и появятся новые настройки по адресу Настройки -> Отпуск.

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

Необязательные настройки

Есть некоторые необязательные опции, на которые можно не обращать внимания, но тем не менее их настройка обеспечит некоторое удобство в будущем. Одна из них — дефолтные каталоги почтовых ящиков.

В более ранних версиях Dovecot (2.0 и старше) использовался плагин Autocreate12, теперь же он устарел и рекомендуют использовать директиву namespace inbox13. Вот один из вариантов конфигурации:

Теперь можно объединить все настройки в один работающий конфиг.

Откуда может появляться папка “name” в каталогах пользователей

Когда я знакомился и экспериментировал с Dovecot, у меня на каком-то этапе стала автоматически создаваться папка “name” в каталоге каждого ящика, которая была доступна для подписки. Очень долго не мог понять откуда она берется, и в конце-концов махнул рукой.

Это файл /etc/dovecot/conf.d/15-mailboxes.conf:

...
namespace inbox {
...
  mailbox name {
...
     auto = create
...
   }
...
}
...

Ее можно закомментировать, либо переименовать весь файл, например

# mv /etc/dovecot/conf.d/15-mailboxes.conf /etc/dovecot/conf.d/15-mailboxes.conf_

Переменные

Специальные переменные можно использовать в нескольких местах:

Переменные, которые работают почти везде:

Помогла статья? подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Проверка dns записей

Проверим наши настройки dns. Для этого зайдем на любой сервер по ssh, где установлен пакет bind-utils. Если у вас его нет, то ставьте командой ниже.

# dnf install bind-utils

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

Соединение dovecot с mysql

Для проверки валидности почтового адресата с помощью базы данных MySQL, Dovecot использует файл “/etc/dovecot/dovecot-mysql.conf”. Если его нет, создаем его:

touch /etc/dovecot/dovecot-mysql.conf

В этот файл помещаем следующий текст:

Установка dovecot

Я уже давно для себя выбрал CentOS как основу для серверов. Поэтому все команды установки софта будут именно для этой операционной системы. Я крайне не советую ставить основные программы из исходников командами типа make, make install и т.д. Это приведет только к невозможности получения обновлений в удобной форме.

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

yum install dovecotyum install dovecot-mysqlchkconfig dovecot on

Вот и все, дальше надо настраивать конфиг.

Установка web интерфейса roundcube

Установим и настроим самый популярный web интерфейс для postfix — roundcube. Вообще говоря, его не обязательно ставить на почтовый сервер. Более того, я бы рекомендовал его ставить в другое место. Если в инфраструктуре имеется отдельный веб сервер, лучше поставить roundcube туда.

Скачиваем исходники последней lts версии roundcube. Я обычно использую именно lts версию, хотя она достаточно старая. Но моя практика показывает, что именно в ней все работает стабильно и сразу, без лишней возни. К примеру, когда я готовил эту статью, у меня не получилось настроить работу автоответчика, о котором я расскажу отдельно ниже.

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

Файл dovecot-acl-list

Все каталоги, которые будут перечислены в файле dovecot-acl-list получают символ-директиву “l”. Если будет использоваться файл dovecot-acl, то файл dovecot-acl-list по-видимому следует удалить.

Формат директив в файлах acl

Внутренний формат директив в файлах ACL такой: <identifier> <ACLs>[:<named ACLs>],

где <identifier> может быть одним из:

Списки ACL обрабатываются в порядке уменьшения приоритета, в очередности указанной выше (т.е. в приведенном списке не просто перечисены идентификаторы, а показан их приоритет по отношению друг к другу, например “group-override” имеет наиболее высокий приоритет и может отменять/переопределять те идентификаторы, которые ниже в этом списке).

Хранилище

Настройка хранилища в упрощенной конфигурации с локальными учетками упирается всего лишь в один параметр:

Запись означает, что почта будет храниться в формате maildir9 (maildir:) в домашнем каталоге текущего пользователя (~/) внутри папки Maildir (Maildir), используя иерархию каталогов (:LAYOUT=fs), а не в плоском виде как то подразумевает формат Maildir 10.

На этом настройка хранилища завершена.

Итоговый конфиг postfix

А вот и итоговый конфиг:

Уникальными для вашего окружения будут параметры myhostname и mydestination. Их вы можете задать соответственно командами:

И после этого выполнить:

После этого настройки вступят в силу и вы можете протестировать отправку почты командой:

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

Итоговый вариант конфигурации не подразумевает использования доп. конфигов из директории conf.d.

Ну и не забываем перезапустить демона:

На этом настройка завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *