Короткий гайд о том, как настроить почтовый сервер с авторизацией по PAM (пользователям в системе). Просто и понятно (надеюсь).
Подготовка
Действо выполнялось на Ubuntu 20.04. Поставим необходимые пакеты:
apt install postfix dovecot-core dovecot-imapd
При установке Postfix выберем Internet site
, чтобы сгенерировался конфигурационный файл, также укажем домен, например, example.com
Полезные команды:
- Изменить параметр:
postconf -e "smtpd_sasl_type = dovecot"
- Проверить конфигурацию:
postfix check
Настроим SASL
Что такое SASL? Это протокол авторизации. Т.е. вместо того, чтобы настраивать авторизацию (например, через СУБД или LDAP) на каждом из почтовых серверов, мы настроим ее на Dovecot, а Postfix будет взаимодействовать с ним, чтобы авторизовать клиента.
Добавим в /etc/dovecot/dovecot.conf:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
Включаем SASL в Postfix (можно через postconf -e):
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
Включим сервисы Submission и smtps
Зачем? Postfix по дефолту слушает 25 порт и не умеет отправлять через него почту (вернее, не хочет), он рассчитан только на прием писем от сторонних почтовых серверов.
Необходимо запустить сервис submission (и, желательно smtps), он предназначен для отправки почту по SMTP (для реле). Если пытаться отправить почту через 25 порт, то будет ошибка Relay access denied
.
Добавляем в /etc/postfix/master.cf:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
Завершение
Перезапустим сервисы: systemctl restart dovecot postfix
Создадим пользователя: useradd -G mail helloworld
Поставим пароль на пользователя: passwd helloworld
Вы восхитительны! Можно авторизовываться и обмениваться письмами.
Где письма?
Правится расположение в данном конфиге — /etc/dovecot/conf.d/10-mail.conf
По дефолту письма хранятся в формате mbox по такому пути:
mail_location = mbox:~/mail:INBOX=/var/mail/%u