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

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

Ключ

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

Оглавление



Информация
titleДанная статья применима к:
  • ОС ОН Орёл 2.12
    • 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

    ОС СН Смолнск 1.6


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

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

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

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

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

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

    Command

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

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

    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

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

    Информация

    – Общий тип почтовой конфигурации:            доставка только локальной почты; доступа к сети нет

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

    – IP-адреса, с которых следует ожидать входящие соединения:       IP-адрес_сервера (например, 192.168.32.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/


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

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

    Информация

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

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

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

    Command
    kinit admin
    ipa service-add imap/exim1.astra.mta@ASTRA.MTA
    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 и разрешить его автоматический запуск после перезагрузки:

    Command
    sudo systemctl start exim4
    sudo systemctl enable exim4

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