Dovecot
Установка
# если через imap
apt install dovecot-core dovecot-imapd dovecot-ldap dovecot-lmtpd -y
# dovecot-lmtp - тип чтобы правильно с postfix на dovecot почта шла (если они локално)Подсказка
Так можно подсмотреть параметры все
doveconf -d
Настройка
# Создаем юзера vmail
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/vmail -m -s /usr/sbin/nologin
mkdir -p /var/vmail
chown -R vmail:vmail /var/vmail/etc/dovecot/dovecot.conf
# Раскомментировать. Тут слушают все ipv4 и ipv6, если нужны определенные изменить
listen = *, ::/etc/dovecot/conf.d/10-auth.conf
# line 100: Добавить
auth_mechanisms = plain login
# line 35: Добавить
# будет добавлять записям @domain чтобы всегда было user@nova.a7.test ( иначе не робит пункт с users где ключи )
auth_default_domain = nova.a7.test
# line 120+- одно коментим второе раскоментим
#!include auth-system.conf.ext
!include auth-ldap.conf.ext/etc/dovecot/conf.d/auth-ldap.conf.ext
# чтобы порт TLS 389
ldap_uris = ldap://ldap.nova.a7.test
ldap_starttls = yes
# если нужен 636
#ldap_uris = ldaps://ldap.nova.a7.test
ldap_base = ou=People,dc=nova,dc=a7,dc=test
ldap_auth_dn = uid=mail-reader,ou=Services,dc=nova,dc=a7,dc=test
ldap_auth_dn_password = MailReader39@A7
passdb ldap {
# ВАЖНО доабвить username в %{user} иначе будет искать uid=maya@nova.a7.test. А у нас просто uid=maya
ldap_filter = (&(objectClass=posixAccount)(uid=%{user|username}))
ldap_bind = yes
}
userdb ldap {
ldap_filter = (&(objectClass=posixAccount)(uid=%{user|username}))
fields {
uid = vmail
gid = vmail
home = /var/vmail/%{user|domain}/%{user|username}
}
}/etc/dovecot/conf.d/10-mail.conf
# line 51
namespace inbox {
mail_driver = maildir
# Создавать ?var/vmail/nova.a7.test/user/Maildir
mail_path = /var/vmail/%{user|domain}/%{user|username}/Maildir
mail_uid = vmail
mail_gid = vmail
}/etc/dovecot/conf.d/10-master.conf
# line 21: раскоментировать для SSL
service imap-login {
inet_listener imaps {
port = 993
ssl = yes
}
}
# line 58: Если всё же решил через lmtp
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0666
user = postfix
group = postfix
}
# line 100: раскоментировать и дать подобный образ
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}/etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = /ca/mail.crt
ssl_key = /ca/mail.key/etc/dovecot/conf.d/20-lmtp.conf
# ЗАКОМЕНТИТЬ, иначе почта не будет ложится в /var/vmail/DOMAIN потому что домена тут не будет
#auth_username_format = %{user | username | lower}Перезапуск
systemctl start dovecot
systemctl enable dovecotНастройка SMTP
Установка
apt install postfix postfix-ldap -y- Вылезет псевдографика выбираем “Internet Site”
- Далее указываем доменное имя например: vm.local
Подсказка
Так можно подсмотреть параметры все
postconf
man ldap_table
Настройка
/etc/postfix/main.cf
myhostname = mail.nova.a7.test
mydomain = nova.a7.test
myorigin = $mydomain
# !!!ВАЖНО!!!!
mydestination = localhost
mynetworks = 127.0.0.0/8
# Для сертификатов поменять пути до сертфикатов
smtpd_tls_cert_file=/ca/postfix.crt
smtpd_tls_key_file=/ca/postfix.key
# SASL через Dovecot (для отправки — авторизация всё равно нужна)
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# Виртуальная доставка 2 ВАРИАНТА
virtual_mailbox_domains = nova.a7.test
virtual_mailbox_maps = ldap:/etc/postfix/ldap.cf
# 1 ВАРИАНТ) использованием LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp
# 2 ВАРИАНТ) встроенным механизмом Postfix, без LMTP/Dovecot
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
# virtual_transport трогать не надо — по умолчанию = virtual, это и есть встроенная доставка
Файл подключения к ldap
--> vi /etc/postfix/ldap.cf
============================
server_host = ldap.nova.a7.test
server_port = 389
start_tls = yes
search_base = ou=People,dc=nova,dc=a7,dc=test
bind = yes
bind_dn = uid=mail-reader,ou=Services,dc=nova,dc=a7,dc=test
bind_pw = MailReader39@A7
query_filter = (mail=%s)
result_attribute = mail
# ЕСЛИ БЕЗ LMTP
result_format = %d/%u/Maildir/
============================--> vi /etc/postfix/master.cf
============================
submission inet n - y - - smtpd
# везде где -o раскоментировать где-то 8 будет
============================systemctl start postfix
systemctl enable postfix