20.15. Использование виртуальных доменов Postfix

Проблема
Сервер Postfix должен обслуживать сразу несколько доменов. А может быть, вы
хотите отделить системные учетные записи Linux от почтовых учетных записей.
Другими словами, вы хотите иметь возможность раздавать пользователям почто вые учетные записи, не создавая для них учетные записи Linux на почтовом сер вере. Чем меньше системных учетных записей, тем безопаснее система.
Решение
Воспользуйтесь виртуальными доменами Postfix. Это позволит вам создавать вирту альные почтовые ящики без создания системных учетных записей пользователей.
Затем введите данные пользователей в файле userdb в Courier (для POP или IMAP).
Сначала включите следующий фрагмент в /etc/postfix/main.cf (подставьте свои
имена доменов и каталогов):
virtualmailboxdomains = tuxcomputing.com test.net foober.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 1000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
Создайте или отредактируйте файл /etc/postfix/vmailbox. В этом файле указы ваются пары из имен пользователей и их локальных каталогов для хранения по чты, которые в данном примере находятся в каталоге/var/mail/vhosts:
akkana@tuxcomputing.com tuxcomputi ng.com/akkana/
dancer@tuxcomputi ng.com tuxcomputi ng.com/dancer/
telsa@test.net test.net/telsa/
telsa.gwynne@test.net test.net/telsa/
val. henson@foober.com foober.com/valh/
# Для спана и вирусов
0foober.com foober.com/catchall
Преобразуйте файл в таблицу поиска Postfix:
# postmap /etc/postfix/vmailbox
На следующем этапе создаются почтовые учетные записи пользователей. Это
делается не в Postfix, а в Courier. Создайте или отредактируйте файл /etc/courier/
userdb, используя следующий формат (обязательно включите символ табуляции
после имени и задайте уникальную комбинацию UID/GID):
tel sa uid=1100gid=11001home=/var/mail/vhosts/telsa|shel l=/bin/bash|imapww=|pop3pw=
В строке не должно быть пробелов.
Теперь наступает самая нудная часть: для каждого нового пользователя необ ходимо сгенерировать новый пароль командой userdbpw. В следующем примере
пароль создается с применением хеширования MD5:
$ userdbpw -md5
Password:
Reenter password:
$l$G41nVriv$GzWal_KidkoVIE2DxMxHBxl
Скопируйте полученный код в /etc/courier/userdb:
telsa
uid=1100gid=11001 home=/var/mai 1 /vhosts/tel sa | shen=/bin/bash | imapw=$l$G
41nVriv$GzWaLKidkoVIE2DxMxHBxl|pop3pw=$l$G41nVriv$GzWaLKidkoVIE2DxMxHBxl
He забудьте записать пары «имя/пароль»! Когда все будет готово, остановите
authdaemond и преобразуйте/etc/courieruserdb в хешированную базу данных:
# /etc/init.d/courier-authdaemon stop
# makeuserdb
Настройте Courier так, чтобы при аутентификации наряду с системными па ролями использовался файл /etc/courier/userdb. Для этого в файл /etc/courier/
authdaemonrc включается строка
authmodulelist="authuserdb" "authpam"
Наконец, перезапустите authdaemonrc:
# /etc/init.d/courier-authdaemon start
Теперь пользователи могут изменить конфигурацию своих почтовых клиен тов, а ваша работа закончена.
Комментарий
Если количество доменов велико, перечислите их в текстовом файле (по одному
домену на строку) и включите в директиву virtual_mailbox_domains имя этого файла:
virtualmaiiboxdomains « /etc/postfix/virtualdomains