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

mrvtn

Постоянный участник
ДРУЗЬЯ ФОРУМА

mrvtn

Постоянный участник
ДРУЗЬЯ ФОРУМА
Регистрация
2 Июн 2018
Сообщения
116
Реакции
58
Репутация
0
Введение

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


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

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

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


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

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

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


Приступим.

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

nano /etc/postfix/main.cf

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

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_minimum_uid = 5000
virtual_mailbox_base = /var/vmail

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


  • virtual_uid_maps

    Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

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

    Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    . Поскольку я планирую сохранять все данные под одним пользователем, логично выбрать тип static и указать уникальный идентификатор пользователя (uid).
  • virtual_gid_maps

    Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    — Аналогично virtual_uid_maps, но только для групп.
  • virtual_minimum_uid

    Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

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

    Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    — Задает месторасположение почтовой БД.

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

groupadd vmail -g 5000

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

useradd vmail -g vmail -u 5000 -d /home/vmail -m

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

mkdir /var/vmail
chown -R vmail:vmail /var/vmail

Если вы настраивали Postfix по моей статье

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

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

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

). А вот что говорят разработчики по поводу этого:


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

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

mydestination = localhost.$mydomain, localhost, localhost.localdomain

Теоретически можно оставить вообще только localhost, ведь в параметре virtual_mailbox_domains в прошлой статье (

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

) я установил карту mysql. То есть теперь все записи об обслуживаемых доменах хранятся в отдельной базе данных MySQL.

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

myhostname = mail.bissquit.com
mydomain = bissquit.com
myorigin = $mydomain #значение по умолчанию - $myhostname

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

Вывод

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


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