Почтовый сервер Postfix Dovecot

Материал из ALT Linux Wiki
Версия от 16:42, 4 июля 2017; Новиков Сергей (обсуждение | вклад) (Новая страница: «{{stub}} В этой статье описывается минимальная настройка почтового сервера на основе Postfix (SMTP)...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

В этой статье описывается минимальная настройка почтового сервера на основе Postfix (SMTP) и Dovecot (IMAP, POP3) c авторизаций пользователей через LDAP в Samba4 DC.
Предполагается что уже есть настройенная Samba4 в роли контроллера домена. Исходные данные:

  • Домен: test.alt
  • Контроллер домена: dc.test.alt
  • Почтовый сервер: mail.test.alt
  • Сгенерированные сертификаты и ключи для Dovecot и Postfix
  • Пользователь для доступа к LDAP серверу: ldapbind

Установка и предварительная настройка

Для работы почтового сервера необходимо установить следующие пакеты:

# apt-get install postfix-dovecot postfix-ldap postfix dovecot

Проверим работу DNS:

# dig +short -t A dc.zoros.alt
10.10.105.1
# dig +short -t A mail.test.alt
10.10.105.2

Проверим доступ к LDAP-серверу:

# ldapsearch -h dc.test.alt -p 389 -W -D "ldapbind@test.alt" -b "cn=Users,dc=test,dc=alt"

Это команда должна выдать информацию о пользователях. Все почтовые ящики пользователей будут хранится в директории /var/vmail и обрабатываться системным пользователем vmail c домашней директорией /var/vmail.
Создадим пользователя vmail и его домашнюю директорию:

# useradd -b /var -m -s /bin/false vmail

Настройка Dovecot

Создадим файл /etc/dovecot/dovecot-ldap.conf.ext параметров подключения Dovecot к LDAP:

# Контроллер домена (сервер LDAP)
hosts = dc.test.alt

# Пользователь и пароль для подключения к LDAP
dn = ldapbind@test.alt
dnpass = 'PaSSword'

# Следующая опция позволяет аутентифицировать пользователей с помощью подключения к серверу LDAP с их аутентификационными данными
auth_bind = yes

# Преобразуем все имена пользователей в нижний регистр
auth_bind_userdn = %Lu

# Используем защищенное LDAP соединение
tls = yes

# Версия протокола LDAP
ldap_version = 3

# Где искать в LDAP
base = cn=Users,dc=zoros,dc=alt
deref = never

# Искать во всех вложенных объектах
scope = subtree

# Использовать фильтр для поиска пользователей - искать только пользователей (sAMAccountType=805306368), у которых совпадает c переданным логином IMAP или имя пользователя (userPrincipalName=%Lu) или электронная почта (mail=%Lu)
user_filter = (&(sAMAccountType=805306368)(|(userPrincipalName=%Lu)(mail=%Lu)))

# Указываем расположение домашнего каталога подсоединенного пользователя, параметр "%$" будет заменен на значение userPrincipalName (формата user@domain)
user_attrs = userPrincipalName=home=/var/vmail/%$

# Использовать фильтр для паролей
pass_filter = (&(sAMAccountType=805306368)(userPrincipalName=%Lu))

# Указываем имя пользователя найденное в LDAP
pass_attrs = userPrincipalName=user

Ссылка на этот конфигурационный файл есть в файле /etc/dovecot/conf.d/auth-ldap.conf.ext:

passdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}
userdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}

Далее настраиваем параметры аутентификации в файле /etc/dovecot/conf.d/10-auth.conf:

# Добавляемое к имени пользователю имя домена по умочанию (если пользователь введет имя user, то для dovecot он будет user@test.alt)
auth_default_realm = test.alt

# Преобразуем все имена пользователей в нижний регистр
auth_username_format = %Lu

# Указываем методы аутентификации
auth_mechanisms = plain login

# Добавляем поддержку аутентификации в LDAP
!include auth-ldap.conf.ext

Далее настраиваем параметры работы с почтой в файле /etc/dovecot/conf.d/10-mail.conf:

# Настроим формат и расположение почты пользователей, %h - указывает, что почта располагается в домашнем каталоге пользователя установленном в параметре user_attrs файла  dovecot-ldap.conf.ext
mail_location = maildir:%h

# Далее указывется системный пользователь, созданный реннее, для работы с почтой и минимальные/максимальные gid/uid пользователей имеющих право работать с почтой (id vmail)
mail_uid = vmail
mail_gid = vmail
first_valid_uid = 1001
last_valid_uid = 1001
first_valid_gid = 1001
last_valid_gid = 1001

# Метод блокировок записи
mbox_write_locks = fcntl