Виртуальные почтовые ящики Postfix

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


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


Введение

Для крупных почтовых серверов абсолютно непрактично использовать в Postfix системные учетные записи для отправки/доставки почты. Гораздо логичнее в таком случае воспользоваться виртуальными почтовыми ящиками. Для этого необходимо изменить ряд настроек Postfix и подготовить окружение ОС.

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

Виртуальные почтовые ящики Postfix

Все почтовые данные должны сохраняться на диске (если почтовый сервер не используется только как релей). Если Postfix использует системные учетные записи, почтовая информация каждой из них сохраняется на диске под их же уникальными идентификаторами. Но что делать, когда используются виртуальные почтовые ящики, для каждого из которых системные учетки не создаются?

Ответ прост — мы должны как-то сообщить Postfix о том, чтобы он сохранял почтовые данные под какой-то определенной учетной записью операционной системы 1. Для этого используются параметры virtual_uid_maps и virtual_gid_maps. Они задают уникальные идентификаторы пользователя и группы, с правами которых необходимо сохранять полезные данные. Разумеется также придется указать и отдельный каталог для хранения почты.

Приступим.

Открываем конфиг Postfix:

добавляем параметры:

Теперь подробнее о каждом.

  • virtual_uid_maps 2 — Карты с сопоставлением пользователей и их уникальных идентификаторов. Как и другие карты, они могут принимать любые доступные типы 3. Поскольку я планирую сохранять все данные под одним пользователем, логично выбрать тип static и указать уникальный идентификатор пользователя (uid).
  • virtual_gid_maps 4 — Аналогично virtual_uid_maps, но только для групп.
  • virtual_minimum_uid 5 — Минимальный идентификатор пользователя, который может использоваться для сохранения данных. Ограничение повышает уровень безопасности, не позволяя ничего сохранять под привилегированными или системными учетными записями, которые обычно имеют идентификатор от 0 до 100. По умолчанию параметр имеет значение равное 100 (проверьте у себя командой postconf -d | grep virtual_minimum_uid) и у меня используется скорее для перестраховки. В принципе со статическими virtual_uid_maps и virtual_gid_maps использование параметра virtual_minimum_uid не имеет большого смысла.
  • virtual_mailbox_base 6 — Задает месторасположение почтовой БД.

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

Пользователя:

Ну и напоследок каталог, сразу изменив его владельца:

Если вы настраивали Postfix по моей статье Установка Postfix на Debian, то вам также надо изменить значение параметра mydestination, поскольку теперь ваши домены представляют из себя виртуальные домены и хранятся в отдельной базе данных MySQL, которую автоматически создал и настроил PostfixAdmin (см. статью Настройка связки Postfix PostfixAdmin). А вот что говорят разработчики по поводу этого:

NEVER list a virtual MAILBOX domain name as a mydestination domain!

NEVER list a virtual MAILBOX domain name as a virtual ALIAS domain!

Поэтому задаем параметру значения:

Теоретически можно оставить вообще только localhost, ведь в параметре virtual_mailbox_domains в прошлой статье (Настройка связки Postfix PostfixAdmin) я установил карту mysql. То есть теперь все записи об обслуживаемых доменах хранятся в отдельной базе данных MySQL.

Есть изменения и в других параметрах, например в принципе отпадает необходимость в myhostname и mydomain, можно оставить только myorigin, в значении которого определить имя основного домена. И все у вас будет работать, ведь значений по умолчанию никто не отменял (см. команду postconf -d). Тем не менее оставлять конфигурацию совсем без этих двух параметров не совсем правильно, поскольку тот же myhostname является основой для множества других. Да и кто его знает что будет в значениях по умолчанию в следующей версии Postfix. Именно поэтому лучше все же оставить как есть:

Настройка виртуальных почтовых ящиков на этом заканчивается.

Вывод

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

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


UPD 08.06.2016: а вот и оттестированные конфиги как и обещал:

Позже будут ещё.


comments powered by HyperComments