Настройка Exim4 / Dovecot в Astra Linux SE 1.5
Настройка почты в Astra Linux 1.5 ALD
Исходные данные и задачи
Необходимо настроить сервер электронной почты, работающий в рамках домена Astra Linux 1.5 SE. Исходные данные:
Параметр | Значение |
---|---|
Имя домена | local.net |
FQDN сервера | server.local.net |
IP-адрес сервера | 192.168.0.1 |
Маска сети: | 255.255.255.0 |
Настройка сети
Отключаем графический менеджер управления сетевыми подключениями wicd
.
chkconfig wicd off
Прописываем настройки сети в файле /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
network 192.168.0.0
broadcast 192.168.0.255
dns-nameservers 192.168.0.1
dns-search local.lan
После этого нужно выполнить перезапуск демона сети:
service networking stop && service networking start
В документации к демону networking написано, что команда restart
является устаревшей и работает не так, как ожидается.
Необходимо в файле /etc/hosts
прописать соответствие FQDN сервера и его IP-адреса, а также задать hostname
127.0.0.1 localhost
192.168.0.1 server.local.net server
192.168.0.101 arm01.local.net arm01
192.168.0.102 arm02.local.net arm02
192.168.0.103 arm03.local.net arm03
В файле /etc/hostname
меняем краткое имя компьютера server
на полное server.local.net
, а также изменяем текущее значение системной переменной:
echo server.local.net > /etc/hostname
hostname server.local.net
Инициализация домена
Действуем согласно официальной инструкции от РусБиТех:
ald-init init
Появится уведомление о том, что команда init
уничтожит всю базу данных LDAP и Kerberos, будут остановлены и перезапущены службы, и упадет с неба большая звезда, горящая подобно светильнику, и падет на третью часть рек и на источники вод... Отвечаем утвердительно
Попросят ввести пароли для доступа к базе данных Kerberos и пароль администратора Astra Linux Directory. Лучше записать куда-нибудь, потому что понадобится ещё не раз.
Спустя какое-то время на экране появится сообщение:
Astra Linux Directory сконфигурирована.
Сервер ALD активен.
Клиент ALD включен.
Astra Linux Directory сервер успешно инициализирован.
Установка и настройка почтовых сервисов.
Необходимо установить три пакета:
Пакет | Описание |
---|---|
exim4-daemon-heavy | Передает сообщения и умеет работать с мандатными метками. |
dovecot-imapd | Умеет отдавать почту клиентам. |
dovecot-gssapi | Умеет принимать авторизацию на сервере через Kerberos (ALD). |
Отдельно отмечу, что сразу же после установки нужно будет запустить конфигурирование exim4
.
aptitude install exim4-daemon-heavy dovecot-imapd dovecot-gssapi -y
dpkg-reconfigure exim4-config
Процесс настройки exim4
не очень сложный, но нужно правильно ответить на несколько вопросов.
Вопрос | Ответ |
---|---|
Общий тип почтовой конфигурации | интернет-сайт; приём и отправка почты напрямую, используя SMTP |
Почтовое имя системы: | local.net |
IP-адреса, с которых следует ожидать входящие соединения SMTP: | 192.168.0.1 |
Другие места назначения, для которых должна приниматься почта: | local.net |
Домены, для которых доступна релейная передача почты: | Оставляем пустым |
Машины, для которых доступна релейная передача почты: | Оставляем пустым |
Сокращать количество DNS-запросов до минимума (дозвон по требованию)? | Нет |
Метод доставки локальной почты: | Maildir формат в домашнем каталоге |
Разделить конфигурацию на маленькие файлы? | Да |
Теперь нужно удалить из каталога /var/mail
файл с именем пользователя, созданного при установке системы (у меня обычно administrator
).
rm /var/mail/administrator
Создадим сервисы ALD для работы с почтой:
ald-admin service-add imap/server.local.lan
ald-admin sgroup-svc-add imap/server.local.lan --sgroup=mac
ald-admin sgroup-svc-add imap/server.local.lan --sgroup=mail
ald-admin service-add smtp/server.local.lan
ald-admin sgroup-svc-add smtp/server.local.lan --sgroup=mac
ald-admin sgroup-svc-add smtp/server.local.lan --sgroup=mail
ald-client update-svc-keytab imap/server.local.lan --ktfile="/var/lib/dovecot/dovecot.keytab"
ald-client update-svc-keytab smtp/server.local.lan --ktfile="/var/lib/dovecot/dovecot.keytab"
Указывая имя сервиса, важно помнить, что после слеша указывается то же самое имя сервера, что и в файле /etc/hostname
. Если даже в настройках Bind вы потом укажете, что mail.local.net
и smtp.local.net
являются всего лишь псевдонимами для server.local.net
, почта работать не будет, потому что Kerberos очень строго проверяет этот параметр.
После создания файла ключей нужно предоставить доступ к нему для dovecot
:
setfacl -m u:dovecot:x /var/lib/dovecot
setfacl -m u:dovecot:r /var/lib/dovecot/dovecot.keytab
Dovecot
Выполняем настройку dovecot
. Если убрать все комментарии из файлов, то получится примерно следующее (в тех файлах, где меняли):
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap
listen = 192.168.0.1
dict {}
!include conf.d/*.conf
!include_try local.conf
disable_plaintext_auth = yes
auth_mechanisms = gssapi
auth_gssapi_hostname = server.local.lan
auth_krb5_keytab = /var/lib/dovecot/dovecot.keytab
!include auth-system.conf.ext
Я не могу в настройку SSL. Отключаем:
ssl = no
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </dovecot/private/dovecot.pem
Маленькая настройка для корректной работы с почтой - добавляем в файле /etc/dovecot/conf.d/10-master.conf
в секцию service auth
:
# ...
service auth {
unix_listener auth-client {
mode = 0600
user = Debian-exim
}
# ...
}
Немного упрощаем себе и пользователям жизнь, автоматически создавая на сервере каталоги под входящие, отправленные и удаленные письма при первой авторизации (параметр auto = subscribe
).
namespace inbox {
mailbox Drafts {
special_use = \Drafts
auto = subscribe
}
mailbox Junk {
special_use = \Junk
}
mailbox Trash {
special_use = \Trash
auto = subscribe
}
mailbox Sent {
special_use = \Sent
auto = subscribe
}
}
Расположение каталогов внутри /var/mail/%username%
можно изменить, сделав более удобным, если в /etc/dovecot/conf.d/10-mail.conf
немного изменить параметр mail_location
:
mail_location = maildir:/var/mail/%u:LAYOUT=fs
Exim4
Теперь нужно сделать пару дополнительных настроек Exim4.
dovecot_gssapi:
driver = dovecot
public_name = GSSAPI
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1 # В конце цифра один, а не маленькая эль
Файл /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt
очень большой, поэтому не привожу его полностью. В самом начале нужно добавить в секцию acl_check_rcpt
4 строки, чтобы выглядело примерно так:
acl_check_rcpt:
deny
message = "Auth required"
hosts = *:+relay_from_hosts
!authenticated = *
accept:
hosts = :
control = dkim_disable_verify
# и так далее
Проверка работоспособности
Заходим от имени пользователя ALD. Запускаем Thunderbird и создаем новую учетную запись. В параметрах IMAP- и SMTP-серверов пишем одно и то же - server.local.net
. При нажатии кнопки "Проверка параметров" параметры авторизации должны измениться на Kerberos/GSSAPI. Сохраняем, перезапускаем почтовый клиент. После второго запуска должно загрузиться дерево папок с сервера. Пишем письмо сами себе, если пришло - все хорошо. Если нет - очень внимательно проверяем содержимое всех конфигурационных файлов. Я сам потерял три дня из-за того, что в одном месте пропустил всего одну строку.
Подскажите пожалуйста данный способ настройки относится если почтовый сервер и сервер алд находятся на одном сервере или на разных?
ОтветитьУдалитьНа одном.
УдалитьЗдравствуйте! А без развертывания ALD работать связка будет?
ОтветитьУдалитьНет. У меня авторизация через Kerberos. Вам нужно искать, как сделать авторизацию через PAM.
УдалитьАктуально ли на Astra 1.6?
ОтветитьУдалитьАктуально
УдалитьПодскажите, пожалуйста, какие и как указать мандатные метки для пользователей почты и могут ли у нас размещаться на одной машине и сервер и один из клиентов. Две недели уже мучаюсь с почтой, тяму не хватает
ОтветитьУдалитьДобрый день!
ОтветитьУдалитьУ меня не существует файла /etc/exim4/conf.d/auth/33_exim4-dovecot-kerberos-ald.
В этой папке только файлы 30_exim4-config_example и 00_exim4-config-header. В чем проблема?
Другой способ настройки. В статье рассматривается вход через Kerberos. У Вас, судя по всему, PAM.
УдалитьЗдравствуйте, расскажите подробнее как добавить или создать пользователя в thunderbird.
ОтветитьУдалитьПри запуске выбираю создать, он мне пишет что не находит сервер.
Если выбираю пропустить и использовать существующую.
И в поля забить какие то данные.
То в ручную я могу выбрать настройки SMTP и ICMP настроенного сервера.
Не понимаю как создать почтового клиента для этого сервера.