Различия

Показаны различия между двумя версиями страницы.


dovecot [2021/07/31 21:57] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Dovecot ======
  
 +~~Title: Настройка сервера Dovecot и Postfix ~~
 +{{htmlmetatags>
 +metatag-description=(Настройка Dovecot с MysQL. Генерация SSL сертификатов для Dovecot. Рабочие примеры настройки сервера Dovecot.)
 +}}
 +
 +{{ ::dovecot_postfix.jpg?nolink&600 |}}
 +
 +Homepage: [[http://dovecot.org|Dovecot]]
 +
 +Ниже настройка **Dovecot** версии 2.0.19 работающей с [[MTA]] Postfix.
 +  * [[ssl#quick_dovecot_ssl_sertifikat|Quick Dovecot SSL сертификат]]
 +**Dovecot** - свободный [[IMAP]] - и [[POP3]] -сервер, разрабатываемый в расчёте на безопасность, гибкость настройки и быстродействие.
 +<file>
 +# aptitude install dovecot-core dovecot-imapd
 +</file>
 +  * Утилита **doveconf** служит для настройки Dovecot, запущенная без параметров выводит все настройки, если использовать ключ **-n** (или ) будут выведены только измененные нами настройки.
 +  * Утилита [[http://wiki2.dovecot.org/Tools/Doveadm|doveadm]]
 +  * Перезапуск<file>
 +# service dovecot restart
 +</file>
 +===== dovecot.conf =====
 +<file bash dovecot.conf>
 +# Enable installed protocols
 +#protocols = imap
 +!include_try /usr/share/dovecot/protocols.d/*.protocol
 +
 +listen = *
 +base_dir = /var/run/dovecot/
 +instance_name = dovecot
 +login_greeting = Dovecot ready.
 +shutdown_clients = yes
 +doveadm_socket_path = doveadm-server
 +
 +!include conf.d/*.conf
 +
 +</file>
 +===== 10-logging.conf=====
 +  * [[http://wiki2.dovecot.org/Logging|Dovecot Logging]]
 +Настройка лог файлов Dovecot производится в файле conf.d/10-logging.conf. По умолчанию используется [[syslog]]. Выведем сообщения в отдельный файл и настроим ротацию ([[logrotate]]) лог- файлов<file bash conf.d/10-logging.conf>
 +#log_path = syslog
 +log_path = /var/log/dovecot.log
 +debug_log_path = /var/log/dovecot-debug.log
 +
 +## Logging verbosity and debugging.
 +auth_verbose = yes
 +auth_verbose_passwords = no 
 +auth_debug = yes
 +auth_debug_passwords = yes
 +mail_debug = yes
 +verbose_ssl = yes
 +
 +</file><file bash /etc/logrotate.d/dovecot>
 +/var/log/dovecot*.log {
 +  rotate 8 
 +  missingok
 +  notifempty
 +  delaycompress
 +  sharedscripts
 +  postrotate
 +    doveadm log reopen
 +  endscript
 +}
 +</file>
 +===== 10-auth.conf =====
 +<file bash conf.d/10-auth.conf>
 +# выставлять no только для тестов SMTP AUTH без использования TLS, в остальных случаях yes
 +disable_plaintext_auth = yes
 +auth_mechanisms = plain login
 +#auth_mechanisms = plain login cram-md5 digest-md5
 +
 +!include auth-passwdfile.conf.ext
 +</file>
 +
 +===== 10-mail.conf =====
 +<file bash conf.d/10-mail.conf>
 +#   %u - username
 +#   %n - user part in user@domain, same as %u if there's no domain
 +#   %d - domain part in user@domain, empty if there's no domain
 +#   %h - home directory
 +#
 +mail_location = maildir:/home/vmail/%d/%n
 +mail_uid = 107
 +mail_gid = 115
 +first_valid_uid = 107
 +last_valid_uid = 109
 +</file>
 +===== 10-master.conf =====
 +<file bash conf.d/10-master.conf>
 +#default_process_limit = 100
 +#default_client_limit = 1000
 +#default_vsz_limit = 256M
 +#default_login_user = dovenull
 +#default_internal_user = dovecot
 +
 +service imap-login {
 +  inet_listener imap {
 +    #port = 143
 +  }
 +  inet_listener imaps {
 +    #port = 993
 +    #ssl = yes
 +  }
 +}
 +
 +service auth {
 +  # Postfix smtp-auth
 +  unix_listener /var/spool/postfix/private/auth {
 +    mode = 0666
 +  }
 +
 +  # Auth process is run as this user.
 +   user = postfix
 +   group = postfix
 +}
 +</file>
 +===== auth-passwdfile.conf.ext =====
 +  * [[http://wiki2.dovecot.org/AuthDatabase/PasswdFile|Passwd-file]]
 +  * [[http://wiki2.dovecot.org/Authentication/PasswordSchemes|Password Schemes]]
 +Настроем файл auth-passwdfile.conf.ext, в котором укажем, что имена и пароли пользователей, требующих [[smtp#komanda_auth|SMTP AUTH]], должны храниться в файле /etc/dovecot/users.
 +
 +Записи в файле /etc/dovecot/users должны храниться в формате<file>
 +user:password:uid:gid:(gecos):home:(shell):extra_fields
 +</file>Поле user в виде user@domain, а поле password шифроваться при помощи SHA256-CRYPT
 +
 +<file bash conf.d/auth-passwdfile.conf.ext>
 +passdb {
 +  driver = passwd-file
 +  args = scheme=SHA256-CRYPT username_format=%u /etc/dovecot/users
 +}
 +
 +userdb {
 +  driver = passwd-file
 +  args = username_format=%u /etc/dovecot/users
 +}
 +</file>
 +Создадим хеш для поля password используя тестового пользователя user1@example.com с паролем 12345:<file>
 +# doveadm pw -s SHA256-CRYPT -u user1@example.com -p 12345
 +{SHA256-CRYPT}$5$/y05qudkNwZipDS8$qur95mpxvQM6jneu5BnWeX8pzocdUMWCDkZn0mEca9C
 +</file>Добавим полную запись в /etc/dovecot/users:<file>
 +user1@example.com:{SHA256-CRYPT}$5$/y05qudkNwZipDS8$qur95mpxvQM6jneu5BnWeX8pzocdUMWCDkZn0mEca9C:postfix:postfix
 +</file>Протестируем полученную запись для SMTP и IMAP при помощи утилиты **doveadm**<file>
 +# doveadm auth -x service=smtp -x rip=192.0.2.143 user1@example.com 12345
 +passdb: user1@example.com auth succeeded
 +extra fields:
 +  user=user1@example.com
 +</file>
 +==== Скрипт создания пользователя ====
 +
 +Bash скрипт для добавления нового пользователя в Dovecot SASL<file bash users_pw.sh>
 +#!/bin/bash
 +
 +FUSERS='/etc/dovecot/users'
 +
 +echo -n 'Please enter username: '
 +read
 +USER1=$REPLY
 +HP2=`/usr/bin/doveadm pw -s SHA256-CRYPT -u $USER1`
 +USERADD="$USER1:$HP2::postfix:postfix"
 +echo $USERADD >> $FUSERS
 +echo -n $USERADD
 +echo -e "\n\nDONE\n"
 +</file>
 +====== Dovecot и MySQL ======
 +
 +===== 10-auth.conf =====
 +<file bash conf.d/10-auth.conf>
 +# выставлять no только для тестов SMTP AUTH без использования TLS, в остальных случаях yes
 +disable_plaintext_auth = yes
 +auth_mechanisms = plain login
 +#auth_mechanisms = plain login cram-md5 digest-md5
 +
 +!include auth-sql.conf.ext
 +</file>
 +
 +===== dovecot-sql.conf.ext =====
 +<file bash dovecot-sql.conf.ext>
 +driver = mysql
 +connect = host=127.0.0.1 dbname=postfixadmin user=postfix password=yourpassword
 +default_pass_scheme = MD5-CRYPT
 +
 +user_query = SELECT '/var/vmail/%d/%u' as home,'maildir:/var/vmail/%d/%u'as mail, 1001 AS uid, 
 +1001 AS gid FROM mailbox WHERE username = '%u' AND active = '1'
 +
 +password_query = SELECT username as user, password, '/var/vmail/%d/%u' AS userdb_home, 
 +'maildir:/var/vmail/%d/%u' as userdb_mail, 1001 as userdb_uid, 1001 as userdb_gid FROM mailbox 
 +WHERE username = '%u' AND active = '1'
 +</file>
 +====== Ссылки ======
 +  * [[http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL|HowTo Postfix and Dovecot 2 SASL]] + Using SASL with Postfix submission port
 +  * [[http://bozza.ru/art-170.html|Настройка Dovecot]]
 +  * [[http://yakim.org.ua/articles/servers/131-postfix-dovecot2-ldap.html|Установка почтового сервера на основе Postfix и Dovecot 2.xx]]

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!