Почтовый сервер · 2 min read · Oct 05, 2025

Полное решение почтового сервера с виртуальными доменами и пользователями (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Страница 12

C. Безопасный Dovecot

Сервер Dovecot может поддерживать IMAPS практически сразу после установки… так что давайте установим его на secure-mail. Как обычно, Debian берет на себя большую часть работы:

# apt-get install dovecot-imapd

Для наших целей нам не нужен POP3 (и на самом деле, вам тоже не нужен), но если он вам нужен, просто добавьте dovecot-pop3d в конец этой команды.

Откройте файл конфигурации Dovecot, расположенный в /etc/dovecot/dovecot.conf, и измените его следующим образом. Вероятно, уже выполнена большая часть конфигурации по умолчанию, поэтому вам, вероятно, нужно будет только раскомментировать определенные разделы и изменить незначительные вещи. Обратите особое внимание на разделы ssl_ в файле, так как они отличаются на этом сервере.

## Файл конфигурации Dovecot  
#  
base_dir = /var/run/dovecot/  
#  
# imap imaps pop3 pop3s (используйте imaps и pop3s, если настроено для SSL)  
protocols = imaps  
#  
# Раскомментируйте инструкции ssl_listen и закомментируйте listen, если используете SSL  
protocol imap {  
# listen = *:143  
ssl_listen = *:993  
}  
#protocol pop3 {  
#listen = *:110  
# ssl_listen = *:995  
#}  
#  
log_timestamp = "%Y-%m-%d %H:%M:%S "  
syslog_facility = mail  
#  
# Раскомментируйте это, если используете SSL  
ssl_cert_file = /etc/ssl/example.com/mailserver/mail-cert.pem  
ssl_key_file = /etc/ssl/example.com/mailserver/mail-key.pem  
#ssl_ca_file = /etc/ssl/mycompany/ca/mycompany.pem  
#ssl_verify_client_cert = yes  
ssl_parameters_regenerate = 168  
verbose_ssl = no  
#  
# Где расположены почтовые ящики  
mail_location = maildir:/vmail/%d/%u  
#  
mail_extra_groups = mail  
mail_debug = no  
first_valid_uid = 150  
last_valid_uid = 150  
maildir_copy_with_hardlinks = yes  
#  
protocol imap {  
login_executable = /usr/lib/dovecot/imap-login  
mail_executable = /usr/lib/dovecot/imap  
imap_max_line_length = 65536  
}  
#protocol pop3 {  
#login_executable = /usr/lib/dovecot/pop3-login  
#mail_executable = /usr/lib/dovecot/pop3  
#pop3_uidl_format = %08Xu%08Xv  
#}  
protocol lda {  
postmaster_address = [email protected]  
sendmail_path = /usr/lib/sendmail  
auth_socket_path = /var/run/dovecot/auth-master  
}  
#  
auth_verbose = no  
auth_debug = no  
auth_debug_passwords = no  
#  
auth default {  
 mechanisms = plain  
 passdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 userdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 user = nobody  
socket listen {  
 master {  
 path = /var/run/dovecot/auth-master  
 mode = 0660  
 user = vmail  
 group = mail  
 }  
 client {  
 path = /var/spool/postfix/private/auth  
 mode = 0660  
 user = postfix  
 group = postfix  
 }  
 }  
 #  
 # Если вы хотите клиентские сертификаты, используйте эти строки  
 # ssl_require_client_cert = yes  
 # ssl_username_from_cert = yes  
}

ПРИМЕЧАНИЕ: Вы не можете просто скопировать приведенную выше конфигурацию и ожидать, что она будет работать! Вам нужно будет внести любые изменения выше в вашу собственную конфигурацию.

Конфигурация Dovecot почти завершена, но, как и в предыдущей конфигурации, настройки MySQL нужно будет интегрировать.

Откройте файл /etc/dovecot/dovecot-sql.conf и убедитесь, что следующее присутствует.

driver = mysql  
connect = host=sql-1.internal.example.com dbname=virtual_mail user=vmail_user password=vmail_user_password  
# Новое имя для MD5 - это MD5-CRYPT, поэтому вам, возможно, нужно будет изменить это в зависимости от версии  
default_pass_scheme = MD5  
# Получить почтовый ящик  
user_query = SELECT '/vmail/%d/%n' AS home, 'maildir:/vmail/%d/%n' AS mail, 150 AS uid, 8 AS gid, CONCAT('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'  
# Получить пароль  
password_query = SELECT username AS user, password, '/vmail/%d/%n' AS userdb_home, 'maildir:/vmail/%d/%n' AS userdb_mail, 150 AS userdb_uid, 8 AS userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'  
# Если используете клиентские сертификаты для аутентификации, закомментируйте вышеуказанное и раскомментируйте следующее  
#password_query = SELECT null AS password, '%u' AS user

Поскольку мы сохранили наш пароль MySQL в открытом текстовом формате в этом документе, мы хотим убедиться, что только мы можем его прочитать!

# chmod 600 /etc/dovecot/*.conf  
# chown vmail /etc/dovecot/*.conf

Конфигурация внешнего/безопасного Dovecot теперь завершена! Перезапустите службу dovecot:

# invoke-rc.d dovecot restart

… и ваши внешние/незащищенные пользователи теперь могут проверять почту на secure-mail.example.com!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.