Почтовый сервер Postfix Dovecot — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Настройка Dovecot)
Строка 50: Строка 50:
 
scope = subtree
 
scope = subtree
  
# Использовать фильтр для поиска пользователей - искать только пользователей (sAMAccountType=805306368), у которых совпадает c переданным логином IMAP или имя пользователя (userPrincipalName=%Lu) или электронная почта (mail=%Lu)
+
# Использовать фильтр для поиска пользователей - искать только пользователей (sAMAccountType=805306368),
 +
# у которых совпадает c переданным логином IMAP или имя пользователя (userPrincipalName=%Lu) или электронная почта (mail=%Lu)
 
user_filter = (&(sAMAccountType=805306368)(|(userPrincipalName=%Lu)(mail=%Lu)))
 
user_filter = (&(sAMAccountType=805306368)(|(userPrincipalName=%Lu)(mail=%Lu)))
  
Строка 114: Строка 115:
 
}</pre>
 
}</pre>
 
В этом же файле настроим сокет для приема писем из postfix-a - секция {{path|service lmtp}}:
 
В этом же файле настроим сокет для приема писем из postfix-a - секция {{path|service lmtp}}:
service lmtp {
+
<pre>service lmtp {
 
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
 
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
 
     group = postfix
 
     group = postfix
Строка 121: Строка 122:
 
   }
 
   }
 
   user = vmail
 
   user = vmail
}
+
}</pre>
 
В файле {{path|/etc/dovecot/dovecot.conf}} можно все оставить по умолчанию, например он может выглядеть так:
 
В файле {{path|/etc/dovecot/dovecot.conf}} можно все оставить по умолчанию, например он может выглядеть так:
 
<pre>protocols = imap pop3 lmtp
 
<pre>protocols = imap pop3 lmtp
Строка 133: Строка 134:
 
<pre># systemctl enable dovecot
 
<pre># systemctl enable dovecot
 
# systemctl start dovecot</pre>
 
# systemctl start dovecot</pre>
 +
 
== Настройка Postfix ==
 
== Настройка Postfix ==

Версия 14:12, 4 июля 2017

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

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

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

Как самостоятельно сгенерировать SSL сертификаты можно посмотреть тут

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

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

# 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

Далее настраваем параметра SSL Dovecot в файле /etc/dovecot/conf.d10-ssl.conf:

ssl = required
ssl_cert = </etc/dovecot/imap.test.alt.crt
ssl_key = </etc/dovecot/imap.test.alt.key

Далее настраиваем сокет авторизации для postfix. Он настраивается в файле /etc/dovecot/conf.d/10-master.conf секция service auth:

service auth {
  unix_listener auth-userdb {
    mode = 0660
    user = vmail
  }
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

В этом же файле настроим сокет для приема писем из postfix-a - секция service lmtp:

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
  user = vmail
}

В файле /etc/dovecot/dovecot.conf можно все оставить по умолчанию, например он может выглядеть так:

protocols = imap pop3 lmtp
listen = *
base_dir = /var/run/dovecot/
login_greeting = Dovecot ready.
dict {
}
!include conf.d/*.conf

Теперь можно запускать и добавлять в автозагрузку сервис dovecot:

# systemctl enable dovecot
# systemctl start dovecot

Настройка Postfix