Debian настройка почтового сервера (Postfix, Dovecot)

В Debian настройка почтового сервера чаще всего предполагает использование связки из Postfix — SMTP сервера, отвечающего за передачу писем и Dovecot, обеспечивающего их хранение.

Альтернативными Postfix вариантами являются Sendmail и Exim, но применяются они значительно реже ввиду меньшего удобства эксплуатации и меньших возможностей (в случае с Sendmail) и большей сложности настройки (в случае с Exim).


В распределенных системах Dovecot работает с сервером баз данных (чаще всего — MySQL) храня данные о ящиках и доменах в базе, письма хранятся на диске.

Debian настройка почтового сервера

По умолчанию же Dovecot используем системных пользователей и хранит письма в их домашних каталогах.



Разберем настройку связки Postfix + Dovecot для случая когда последний использует системных пользователей.

Почтовый сервер будет работать по защищенному соединению, SSL сертификат и ключ сгенерируем самостоятельно.



Когда ключ и сертификат сгенерированы — начинаем настройку. Используется машина, созданная на основе дистрибутива Debian 8. Аутентификаиця пользователей будет осуществляться посредством SSL + TLS.



Настройка почтового сервера Debian Postfix + Dovecot

Убедимся в том, что для сервера используется статический IP-адрес


mcedit /etc/network/interfaces

Для адреса должен быть установлен параметр static



Устанавливаем Postfix из репозитория

apt-get install postfix


В первом окне выбираем опцию Internet site

При запросе System mail name вводим имя домена

example.com

Те же параметры в любой момент можно изменить в конфиге пакета, также можно запустить реконфигуратор


dpkg-reconfigure postfix



Открываем при помощи текстового редактора основной конфигурационный файл postfix


mcedit /etc/postfix/main.cf

home_mailbox = Maildir/
mailbox_command =

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_enable = yes

myorigin=$mydomain


В конфиге указываем директорию, в которой будут храниться письма пользователя и задаем параметры аутентификации, которые будут применяться при работе почтовой системы.

SASL (Simple Authentication and Security Layer)

Если в файле присутствовала строка mailbox_command с определенным значением — комментируем ее.



Конфигурационный файл postfix можно не редактировать вручную, вместо этого можно вводить в консоль команды вида postconf -e «команда».


Продолжим конфигурацию именно этим способом. После ее завершения можно просмотреть конфиг чтобы убедиться в том, что нужная информация в него действительно записалась .


Будем использовать tls

postconf -e «smtpd_tls_auth_only=no»

postconf -e «smtpd_use_tls=yes»

postconf -e «smtp_use_tls=yes»

postconf -e «smtp_tls_note_starttls_offer=yes»



Задаем пути к ключу и сертификату SSL

postconf -e «smtp_tls_key_file=/etc/ssl/private/example.key»

postconf -e «smtp_tls_cert_file=/etc/ssl/private/example.crt»

postconf -e «smtp_tls_CAfile=/etc/ssl/certs/example.pem»

postconf -e «smtp_tls_loglevel=1»

postconf -e «smtp_tls_received_header=yes»

postconf -e «smtp_tls_session_timeout=3600s»

 


Ниже приведен минимальный, но полностью рабочий конфигурационный файл /etc/postfix/main.cf

mydomain = example.com
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no

readme_directory = no

 

smtpd_tls_cert_file=/etc/dovecot/dovecot.crt
smtpd_tls_key_file=/etc/dovecot/private/dovecot.key
smtpd_use_tls = yes
smtp_use_tls = yes
smtpd_tls_auth_only = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_note_starttls_offer = yes

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
tls_random_source = dev:/dev/urandom

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = example.com, localhost
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
mailbox_command =



Перезапускаем сервис

/etc/init.d/postfix restart



Устанавливаем dovecot, письма будем забирать по imap

apt-get install dovecot-common dovecot-imapd


Затем добавляем в конфиг пути к файлам с ключом и сертификатом, а также указание на необходимость использования SSL


mcedit /etc/dovecot/conf.d/10-ssl.conf

ssl = required
ssl_certs = </etc/ssl/certs/example.crt
ssl_key = </etc/ssl/private/example.key


Снимаем знак комментария со следующей строки:

disable_plaintext_auth = yes

mcedit /etc/dovecot/10-master.conf


Здесь раскомментируем и поправим при необходимости значение следующей директивы:

unix_listener /var/spool/postfix/private/auth {

mode = 0666
user = postfix
group = postfix
}


Устанавливаем правильные права, пользователя и группу пользователя

mcedit /etc/dovecot/10-mail.conf


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

mail_location = maildir:~/Maildir

Также раскомментируем следующую строку с упоминанием mail_location в конфиге
Раскомментируем:

mail_privileged_group = mail


Перезапускаем сервис

/etc/init.d/dovecot restart


Добавляем пользователей и задаем им пароли при помощи passwd

adduser user1

passwd user1

adduser user2

passwd user2



Открываем Thanderbird и проверяем работоспособность настроенной почтовой системы, авторизовываться в интерфейсе программы необходимо по логинам и паролям системных пользователей созданных на последнем шаге.


Настройка почтового сервера Debian с Postfix и Dovecot на этом завершена. Читайте про удобный веб-интерфейс Rainloop для работы с почтой.