Теперь поговорим об абонентах, которые не имеют аккаунт на сервере — виртуальных пользователях. Про почтовый сервер для системных пользователей писал ране. Для виртуальных аккаунтов, кроме основных настроек необходимо настроить ещё файл пользователей.
Настройка Dovecot
За аутентификацию отвечают настройки в файле /etc/dovecot/conf.d/10-auth.conf Там надо раскомментировать строку: !include auth-passwdfile.conf.ext и соответственно, в файл /etc/dovecot/conf.d/auth-passwdfile.conf.ext внести изменения:
passdb {
driver = passwd-file
args = /etc/dovecot/users
}
userdb {
driver = static
args = uid=vmail gid=vmail /var/mail/vusers/%d/%n
# Override fields from passwd-file
override_fields = home=/var/mail/vusers/%d/%n
}
секция passdb
определяет параметры аутентификации пользователей, после чего станет доступна аутентификация из файла /etc/dovecot/users (файл можно переопределять).
секция userdb
определяет расположение почты виртуальных пользователей. В нашем случае это /var/mail/vusers/%d/%n
где %d — это домен, а %n это имя пользователя (всё что до @domain.tld).
Еще не забудьте создать пользователя vmail и группу vmail. И присвойте этого пользователя папке /var/mail/vusers
sudo chown vmail:vmail /var/mail/vusers
Теперь вернёмся к аутентификации пользователей. За это у нас отвечает файл /etc/dovecot/users. Его формат довольно прост:
#user@domain.tld:{pass_type}pass:::
user@webexit.ru:{CRYPT}$2y$05$EnRAYxmU3mH.DYUNLZdGbNwO/vOwqx8fJjzTEJiPSQ6:::
user2@webexit.ru:{PLAIN}mypassword:::
Если не хотите оставлять пароль в открытом виде ({PLAIN}), то надо воспользоваться утилитой:
$ doveadm pw
Enter new password:
Retype new password:
{CRYPT}$2y$05$EnRAYxmU3mH.DYUNLZdGbNwO/vOwqx....
Введите пароль, повторите его и утилита выдаст вам строку, которую надо скопировать в файл /etc/dovecot/users сразу после логина и домена.
Все, после этого станет работать Dovecot (после перезапуска) и пользователи смогут авторизоваться. Теперь остается настроить Postfix, чтобы почта попадала в эти почтовые ящики.
Настройка Postfix
Создадим файл виртуальных доменов /etc/postfix/vhosts следующего содержания:
domain.tld
mail.domain.tld
И подключим его в файле /etc/postfix/main.cf добавив строчку:
virtual_mailbox_domains = /etc/postfix/vhosts
Далее, сами пользователи. Для них создадим файл /etc/postfix/vmaps следующего содержания:
#user@domain.tld vusers/domain.tld/user/Maildir/
webadmin@webexit.ru vusers/webexit.ru/webadmin/Maildir/
И выполнить команду:
postmap /etc/postfix/vmaps
Далее, подключим его в файле /etc/postfix/main.cf добавив строчки:
virtual_mailbox_base = /var/mail
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_uid_maps = static:1024
virtual_gid_maps = static:1024
Где 1024 это uid и gid вашего пользователя vmail (у вас будут другие цифры).
Алиасы для виртуальных пользователей
Механизм пересылки сообщений для виртуальных пользователей достаточно прост и одновременно имеет гибкий функционал.
Добавим в файл /etc/postfix/main.cf следующий параметр:
virtual_alias_maps = hash:/etc/postfix/valiases
Затем создадим и отредактируем файл /etc/postfix/valiases
#pattern address, address
user2@domain.tld user@domain.tld
можно использовать просто user без доменной части, тогда будет подставлен домен из $myorigin либо использовать конструкцию @domain.tld address тогда все остальные писма будут пересылаться на этот адрес.