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-адрес (установлен параметр static)

mcedit /etc/network/interfaces

Если в настройки сети вносились изменения — перезагружаем серввер

reboot

 

Устанавливаем 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 для работы с почтой.