Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Информация |
---|
Kerberos — сетевая служба аутентификации, основанная на одноименном протоколе аутентификации, Аутентификация через Kerberos является фактическим стандартом аутентификации доменных пользователей, и применяется в Windows Active Directory, Samba AD DC, FreeIPA, Astra Linux Directory (ALD). В Linux-системах существуют две основные реализаций Kerberos - MIT и Heimdal. В ОС Astra Linux (и далее в примерах этой статьи) используется MIT Kerberos (смю см. также Samba с поддержкой Heimdal Kerberos в Astra Linux Special Edition 1.6). При описании работы Kerberos применяются некоторые специфические термины:
|
Подготовка к установке
Все серверы и клиенты, участвующие в работе Kerberos, должны иметь возможность коммуницировать друг с другом, и иметь точные показания системных часов.
Далее в примере используются
- условное имя домена astradomain.ru;
- условное имя сервера kdc.astradomain.ru.
В терминологии Kerberos домену соответствует область (realm), которая обозначается заглавными буквами. Для домена astradomain.ru это будет область ASTRADOMAIN.RU
Имена и доступность компьютеров
Сервис Kerberos следует устанавливать в сети, в которой уже настроена служба DNS. Каждому серверу, входящему в область Kerberos, должно быть присвоено Полное Квалифицированное Доменное Имя (Fully Qualified Domain Name, FQDN).
Настроенный DNS-сервис должен обеспечивать прямое и обратное (реверсивное) разрешение FQDN (для отключения реверсивного разрешения можно в файле конфигурации клиента krb5.conf установить переменной rdns значение false)
Проверить настройку прямого и обратного разрешения имён можно командами:
Command |
---|
nslookup <FQDN_имя_сервера> |
Для использования команды nslookup следует установить пакет dnsutils:
Command |
---|
sudo apt install dnsutils |
Для проверки доступности компьютеров можно использовать команду ping:
Command |
---|
ping kerberos.astradomain.ru |
Синхронизация времени
Протокол Kerberos требует соответствия показаний часов всех клиентов и серверов, и при рассинхронизации часов аутентификация становится невозможной.
Простой и стандартный путь обеспечения синхронизации - использование сервиса Network Time Protocol (NTP).
Настройка сервера
Установка пакетов
Пакеты сервиса Kerberos входят в стандартные дистрибутивы Astra Linux, и могут быть установлены с помощью графического менеджера пакетов,
или из командной строки командой
Command |
---|
sudo apt install krb5-kdc krb5-admin-server krb5-user |
При установке выдаётся предупреждение о том, что пакет не настроен, которое пока можно проигнорировать.
После установки сервис автоматически не запускается, и должен быть настроен для запуска.
Настройка
При установке пакета будет создан файл конфигурации сервиса /etc/krb5kdc/kdc.conf со стандартным содержимым, в котором автоматически будет указано имя области Kerberos, полученное из FQDN сервера, на котором выполняется установка:
Информация |
---|
[kdcdefaults] [realms] |
Kerberos использует для контроля доступа к администрированию сервиса Списки Управления Доступом (Access Control List, ACL) .
По умолчанию, список располагается в файле /etc/krb5kdc/kadm5.acl.
Для примера, создадим файл /etc/krb5kdc/kadm5.acl, дающий неограниченные права любому принципалу, чьё имя заканчивается на /admin:
Информация |
---|
*/admin@ASTRADOMAIN.RU * |
И создадим новую область Kerberos командой:
Command |
---|
krb5_newrealm |
При выполнении команды нужно будет ввести и подтвердить пароль администратора, после чего будут автоматически созданы нужные базы данных.
Далее, для выполнения задач по администрированию сервиса Kerberos нужно создать принципала с правами администратора.
Для этого используем инструмент командной строки kadmin.local, предназначенный для администрирования Kerberos на локальном компьютере.
Предупреждение |
---|
При использовании инструмента kadmin.local подразумевается, что этот инструмент вызывается с защищенного сервера Kerberos, |
Инструмент вызывается из командной строки командой
Информация |
---|
kadmin.local |
После вызова инструмента можно ввести символ "вопросительный знак", в ответ на это будет выдана подсказка по списку команд.
Добавим нового принципала admin/admin командой addprinc:
Информация |
---|
kadmin.local: addprinc admin/admin |
После ввода команды будет запрошен пароль для создаваемого принципала.
Выход из инструмента kadmin.local осуществляется командой quit.
После создания принципала admin/admin его можно использовать для администрирования сервера Kerberos с удалённых компьютеров с помощью инструмента командной строки kadmin.
Этот инструмент аналогичен инструменту kadmin.local, однако рассчитан на удалённое подключение, и требует авторизации пользователя через указание принципала и ввод пароля:
Command |
---|
kadmin -p admin/admin |
Настройка DNS для автоматизации подключения клиентов
Для автоматического получения клиентами адреса сервера Kerberos можно использовать специальные настройки сервера DNS: служебные записи (SRV-записи).
Пример таких записей для службы Kerberos см. в статье про сервер DNS
Настройка клиентов
Установка пакетов
Клиентский пакет Kerberos krb5-user входит в дистрибутивы Astra Linux, но по умолчанию не устанавливается. Пакет может быть установлен с помощью графического менеджера пакетов, или из командной строки командой
Command |
---|
sudo apt install krb5-user |
При установке пакета krb5-user, кроме самого пакета, автоматически будет установлен пакет krb5-config для настройки клиента
Настройка
Предупреждение |
---|
Если Kerberos предполагается использовать с контроллером домена Samba AD DC, |
Настройка клиента Kerberos выполняется командой
Command |
---|
sudo dpkg-reconfigure krb5-config |
При этом команда
- Попросит указать имя домена (в нашем примере - ASTRADOMAIN.RU);
- Задаст вопрос о необходимости указать сервер(ы) Kerberos в файле конфигурации клиента /etc/krb5.conf.
Если ответить "да", то программа попросит ввести имена сервера (серверов) Kerberos
Если DNS уже настроен (см "Настройка DNS для автоматизации подключения клиентов"), можно просто ответить "нет".
После завершения работы программы настройки результат настройки можно проверить получением принципала. Команда kinit должна выполняться без ошибок:
Command |
---|
kinit admin/admin |
Проверить содержимое полученного принципала можно командой
Command |
---|
klist |
Настройка аутентификации клиентов через Kerberos
Для обеспечения возможности аутентификации пользователей через Kerberos требуется дополнительно установить пакет libpam-krb5:
Command |
---|
sudo apt install libpam-krb5 |
После установки пакета необходимые модули аутентификации будут автоматически добавлены в стек авторизации PAM.