Почтовый сервер Postfix Dovecot: различия между версиями
Нет описания правки |
|||
Строка 7: | Строка 7: | ||
*Сгенерированные сертификаты и ключи для Dovecot и Postfix | *Сгенерированные сертификаты и ключи для Dovecot и Postfix | ||
*Пользователь для доступа к LDAP серверу: ldapbind | *Пользователь для доступа к LDAP серверу: ldapbind | ||
Как самостоятельно сгенерировать SSL сертификаты можно посмотреть [[Nextcloud#Создание_самоподписных_SSL_сертификатов|тут]] | |||
== Установка и предварительная настройка == | == Установка и предварительная настройка == | ||
Для работы почтового сервера необходимо установить следующие пакеты: | Для работы почтового сервера необходимо установить следующие пакеты: | ||
Строка 97: | Строка 98: | ||
mbox_write_locks = fcntl</pre> | mbox_write_locks = fcntl</pre> | ||
Далее настраваем параметра SSL Dovecot в файле {{path|/etc/dovecot/conf.d10-ssl.conf}}: | Далее настраваем параметра SSL Dovecot в файле {{path|/etc/dovecot/conf.d10-ssl.conf}}: | ||
ssl = required | <pre>ssl = required | ||
ssl_cert = </etc/dovecot/imap.test.alt.crt | ssl_cert = </etc/dovecot/imap.test.alt.crt | ||
ssl_key = </etc/dovecot/imap.test.alt.key | ssl_key = </etc/dovecot/imap.test.alt.key</pre> | ||
Далее настраиваем сокет авторизации для postfix. Он настраивается в файле {{path|/etc/dovecot/conf.d/10-master.conf}} секция {{path|service auth}}: | |||
<pre>service auth { | |||
unix_listener auth-userdb { | |||
mode = 0660 | |||
user = vmail | |||
} | |||
unix_listener /var/spool/postfix/private/auth { | |||
mode = 0660 | |||
user = postfix | |||
group = postfix | |||
} | |||
}</pre> | |||
В этом же файле настроим сокет для приема писем из postfix-a - секция {{path|service lmtp}}: | |||
service lmtp { | |||
unix_listener /var/spool/postfix/private/dovecot-lmtp { | |||
group = postfix | |||
mode = 0600 | |||
user = postfix | |||
} | |||
user = vmail | |||
} | |||
В файле {{path|/etc/dovecot/dovecot.conf}} можно все оставить по умолчанию, например он может выглядеть так: | |||
<pre>protocols = imap pop3 lmtp | |||
listen = * | |||
base_dir = /var/run/dovecot/ | |||
login_greeting = Dovecot ready. | |||
dict { | |||
} | |||
!include conf.d/*.conf</pre> | |||
Теперь можно запускать и добавлять в автозагрузку сервис dovecot: | |||
<pre># systemctl enable dovecot | |||
# systemctl start dovecot</pre> | |||
== Настройка Postfix == |
Версия от 17:11, 4 июля 2017
В этой статье описывается минимальная настройка почтового сервера на основе 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