Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление



Информация
titleДанная статья применима к:
  • ОС ОН Орёл 2.12
  • ОС СН Смолнск 1.6
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

  • Astra Linux Common Edition 2.12


Исходные данные

Предполагается, что уже установлен сервер контроллера домана домена FreeIPA с именем домена astra.mta

Почтовый сервер располагается на отдельном компьютере, :

  • введённом в домен
,
  • ;
  • с именем exim1.astra.mta;
  • с постоянным адресом, например, 192.168.32.3 в сети 192.168.32.0/24
Информацияwarning
Располагать почтовый сервер непосредственно на доменном контроллере возможно, но не рекомендуется, так как это повышает уязвимость контроллера, и может негативно влиять на его производительность.

Установка пакетов на почтовом сервере

Установить на почтовом сервере необходимые пакеты командой:

Command

sudo apt install exim4-daemon-heavy dovecot-imapd dovecot-gssapi

Устанавливаемые пакеты:

  • exim4-daemon-heavy – агент передачи сообщений СЭП (MTA) — Exim4 с поддержкой мандатного контекста;
  • dovecot-imapd – агент доставки сообщений СЭП (MDA) — Dovecot;
  • dovecot-gssapi – модуль поддержки GSSAPI-аутентификации для MDA Dovecot;

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

Dovecot

При установке  установке пакетов dovecot будет создан файл /etc/dovecot/conf.d/10-master.conf. В него в секцию "service auth" нужно добавить подсекцию:

Блок кода
unix_listener auth-client {
    mode = 0600
    user = Debian-exim
}

В итоге файл должен выглядеть примерно так (добавленная секция выделена):

Раскрыть

#default_process_limit = 100
#default_client_limit = 1000

# Default VSZ (virtual memory size) limit for service processes. This is mainly
# intended to catch and kill processes that leak memory before they eat up
# everything.
#default_vsz_limit = 256M

# Login user is internally used by login processes. This is the most untrusted
# user in Dovecot system. It shouldn't have access to anything at all.
#default_login_user = dovenull

# Internal user is used by unprivileged processes. It should be separate from
# login user, so that login processes can't disturb other processes.
#default_internal_user = dovecot

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    #port = 993
    #ssl = yes
  }

# Number of connections to handle before starting a new process. Typically
# the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
# is faster. <doc/wiki/LoginProcess.txt>
#service_count = 1

# Number of processes to always keep waiting for more connections.
#process_min_avail = 0

# If you set service_count=0, you probably need to grow this.
#vsz_limit = $default_vsz_limit
}

service pop3-login {
    inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    #port = 995
    #ssl = yes
  }
}

service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }

# Create inet listener only if you can't use the above UNIX socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}

service imap {
# Most of the memory goes to mmap()ing files. You may need to increase this
# limit if you have huge mailboxes.
#vsz_limit = $default_vsz_limit

# Max. number of IMAP processes (connections)
#process_limit = 1024
}

service pop3 {
# Max. number of POP3 processes (connections)
#process_limit = 1024
}

service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
# full permissions to this socket are able to get a list of all usernames and
# get the results of everyone's userdb lookups.
#
# The default 0666 mode allows anyone to connect to the socket, but the
# userdb lookups will succeed only if the userdb returns an "uid" field that
# matches the caller process's UID. Also if caller's uid or gid matches the
# socket's uid or gid the lookup succeeds. Anything else causes a failure.
#
# To give the caller full permissions to lookup all users, set the mode to
# something else than 0666 and Dovecot lets the kernel enforce the
# permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user =
    #group =
  }

# Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}

# Auth process is run as this user.
#user = $default_internal_user
  unix_listener auth-client {
    mode = 0600
    user = Debian-exim
  }
}

service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
#user = root
}

service dict {
# If dict proxy is used, mail processes should have access to its socket.
# For example: mode=0660, group=vmail and global mail_access_groups=vmail
unix_listener dict {
#mode = 0600
#user =
#group =
}
}

После внесения изменений выполнить команду для перенастройки реконфигурации Exim:

Command

sudo dpkg-reconfigure exim4-config

Указать в появившемся окне:

Информация

– Общий тип почтовой конфигурации:            интернет-сайт; прием и отправка почты напрямую, используя SMTP доставка только локальной почты; доступа к сети нет

– Почтовое имя системы:     astra.mta

– IP-адреса, с которых следует ожидать входящие соединения:       IP-адрес_сервера (например, 192.168.32.1)3), или оставить пустым, чтобы принимать соединения на всех доступных сетевых интерфейсах

– Другие места назначения, для которых должна приниматься почта:       astra.mta– Домены, для которых доступна релейная передача почты:     оставить пустым

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

– Машины, для которых доступна релейная передача почты:    оставить пустым 192.168.32.0/24

– Сокращать количество DNS-запросов до минимума:     Нет

– Метод доставки локальной почты:    Maildir формат в /var/mail/

– Разделить конфигурацию на маленькие файлы:     Да

Если в журнале Exim (файл /var/log/exim4/paniclog) появляются сообщения об ошибках вида:

Блок кода
 Failed to create spool file /var/spool/exim4//input//1jb2ok-00031u-5R-D: Operation not permitted

следует следует исправить права доступа к каталогу /var/spool/exim4:

Command
sudo chown -R Debian-exim:Debian-exim /var/spool/exim4/


Регистрация почтовых служб на контроллере домена

Добавить на контроллере домена принципалы служб:

Commandinfo

imap/exim1.astra.mta@ASTRA.MTA
smtp/exim1.astra.mta@ASTRA.MTA

Через Это можно сделать через графический интерфейс FreeIPA:

Или из командной строки после получения полномочий администратора домена:

Command
sudo kinit admin
sudo ipa service-add imap/exim1.astra.mta@ASTRA.MTA
sudo ipa service-add smtp/exim1.astra.mta@ASTRA.MTA

Получение таблицы ключей на почтовом сервере

На почтовом сервере получить таблицу ключей для службы imap, а потом добавить таблицу ключей для службы smtp. Это следует делать имея одновременно полномочия администратора домена и локального администратора:

Command

sudo kinit admin
sudo ipa-getkeytab --principal=imap/exim1.astra.mta@ASTRA.MTA --keytab=/var/lib/dovecot/dovecot.keytab
sudo ipa-getkeytab --principal=smtp/exim1.astra.mta@ASTRA.MTA --keytab=/var/lib/dovecot/dovecot.keytab


Проверить полученную таблицу ключей:
Command
Titlesudo klist -k /var/lib/dovecot/dovecot.keytab

Keytab name: FILE:/var/lib/dovecot/dovecot.keytab
KVNO Principal
---- --------------------------------------------------------------------------
1 imap/exim1.astra.mta@ASTRA.MTA
1 imap/exim1.astra.mta@ASTRA.MTA
1 smtp/exim1.astra.mta@ASTRA.MTA
1 smtp/exim1.astra.mta@ASTRA.MTA

Выдать пользователю dovecot права на чтение файла ключа Kerberos:

Command

sudo setfacl -m u:dovecot:x /var/lib/dovecot
sudo setfacl -m u:dovecot:r /var/lib/dovecot/dovecot.keytab


Убедиться, что в конфигурационном файле /etc/dovecot/dovecot.conf отключено использование протоколов POP3, в параметре protocols отключить ненужные протоколы, оставив только imap:

Блок кода
protocols = imap

Выполнить настройки в конфигурационном файле /etc/dovecot/conf.d/10-auth.conf :

  • для отключения передачи при аутентификации пароля открытым текстом установить параметр:
Блок кода
disable_plaintext_auth = yes
  • для настройки аутентификации посредством Kerberos с использованием метода GSSAPI  установить параметры:
Блок кода
auth_gssapi_hostname = exim1.astra.mta
auth_krb5_keytab = /var/lib/dovecot/dovecot.keytab
auth_mechanisms = gssapi


Перезапустить Dovecot:

Command

sudo systemctl restart dovecot

Настройка Exim

Для настройки аутентификации в Exim создать конфигурационный файл /etc/exim4/conf.d/auth/33_exim4-dovecot-kerberos-ipa со следующим содержимым:

Блок кода
dovecot_gssapi:
driver = dovecot
public_name = GSSAPI
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

Далее перезапустить сервер Exim  (2 варианта):  

перезапустить сервер полностью:

запустить сервер Exim и разрешить его автоматический запуск после перезагрузки:

Command
sudo systemctl
restart exim4 

или перечитать файл конфигурации, без остановки сервера:

Commandsudo systemctl reload
start exim4
sudo systemctl enable exim4

На этом настройка почтового сервера с авторизацией авторизации через Kerberos в домене FreeIPA закончена, далее требуется настройка параметров почтового сервера (параметров пересылки почты), настройка клиентской части стандартнаяи настройка клиентской части  на клиентах (см. "Руководство администратора", ч. 1, п. 13 "Защищенный комплекс программ электроннй почты").