Настройка предварительной аутентификации Kerberos
Эллес поддерживает предварительную аутентификацию Kerberos для различных типов учетных записей и предоставляет необходимые инструменты администрирования.
Общие сведения
Предварительная аутентификация используется в протоколе Kerberos для повышения безопасности.
Без предварительной аутентификации клиент посылает в KDC (Key Distribution Center) запрос к сервису аутентификации (AS-REQ, Authentication Service Request) и после проверки имени учетной записи получает в ответе KDC (AS-REP, Authentication Service Response) билет TGT (Ticket-Granting Ticket), зашифрованный ключом KDC, и сессионный ключ, зашифрованный ключом на основе пароля учетной записи или открытого ключа клиента (в случае использования смарт-карты).
Таким образом, клиент имеет возможность расшифровать этот сессионный ключ, так как ему доступен пароль учетной записи или закрытый ключ для нее (в случае использования смарт-карты).
Если сессионный ключ зашифрован ключом на основе пароля учетной записи, то появляется возможность запрашивать билеты TGT для разных пользователей, получать их и пытаться взломать зашифрованный сессионный ключ методом подбора пароля. При недостаточно сложном пароле такая атака может стать успешной.
Предварительная аутентификация добавляет дополнительный шаг в процесс получения билета TGT: перед выдачей билета KDC запрашивает проверку того, что клиент действительно обладает паролем учетной записи.
Существует несколько типов предварительной аутентификации. Например, тип PA-ENC-TIMESTAMP предусматривает шифрование клиентом временной метки ключом на основе пароля пользователя. KDC, проверяя эту метку, убеждается в том, что клиенту доступен пароль пользователя (так как он использовал его для шифрования) и временная метка актуальна.
Контроллеры домена Эллес поддерживают те же типы предварительной аутентификации, что и контроллеры домена Microsoft Active Directory Domain Services (AD DS), для следующих учетных записей:
-
пользователи;
-
компьютеры;
-
служебные учетные записи (MSA, GMSA).
Отключение предварительной аутентификации для учетной записи
Предварительная аутентификация включена по умолчанию для всех типов учетных записей, которые ее поддерживают.
| Отключение предварительной аутентификации для учетных записей в целях тестирования производительности или иных целях приводит к снижению уровня безопасности для них. Поэтому рекомендуется отключать предварительную аутентификацию только на определенное время при возникновении такой необходимости. |
Чтобы отключить предварительную аутентификацию, например, для учетной записи пользователя User1:
-
Выполните вход на сервер контроллера домена Эллес с учетной записью с административными правами в домене.
-
Получите уникальное имя (distinguished name, DN) учетной записи любым доступным способом. Например:
DN=$(samba-tool user show User1 --attributes=dn | awk '$2 != "" {print $2}') -
Установите флаг
ADS_UF_DONT_REQUIRE_PREAUTHатрибутаuserAccountControl, указывающий на то, что для учетной записи не требуется предварительная аутентификация, используя полученное значение DN:samba-tool uac modify $DN DoesNotRequirePreAuth True
-
Убедитесь, что значение флага изменено:
samba-tool uac show $DN | grep -ie 'preauth' DoesNotRequirePreAuth: True
См. описание синтаксиса и параметров вызова подкоманд samba-tool uac в разделе
«Администрирование атрибута управления учетной записью (userAccountControl)»).
|
Включение предварительной аутентификации для учетной записи
Чтобы включить предварительную аутентификацию, например, для учетной записи пользователя User1:
-
Выполните вход на сервер контроллера домена Эллес с учетной записью с административными правами в домене.
-
Получите уникальное имя (distinguished name, DN) учетной записи любым доступным способом. Например:
DN=$(samba-tool user show User1 --attributes=dn | awk '$2 != "" {print $2}') -
Снимите флаг
ADS_UF_DONT_REQUIRE_PREAUTHатрибутаuserAccountControl, указывающий на то, что для учетной записи не требуется предварительная аутентификация, используя полученное значение DN:samba-tool uac modify $DN DoesNotRequirePreAuth False
-
Убедитесь, что значение флага изменено:
samba-tool uac show $DN | grep -ie 'preauth' DoesNotRequirePreAuth: False
См. описание синтаксиса и параметров вызова подкоманд samba-tool uac в разделе
«Администрирование атрибута управления учетной записью (userAccountControl)»).
|
Логирование действий по управлению предварительной аутентификацией для учетной записи
Чтобы включить логирование действий по изменению состояния флага ADS_UF_DONT_REQUIRE_PREAUTH атрибута userAccountControl, установите уровень логирования 2 или выше для класса отладки auth_audit или auth_json_audit.
| См. подробнее в разделе «Аудит Эллес». |
Например, для логирования в файл:
-
Выполните вход на сервер контроллера домена Эллес с учетной записью с локальными административными правами.
-
Добавьте значение уровня логирования 2 или выше и путь к лог-файлу в конфигурационный файл smb.conf (полный путь после установки пакета inno-samba):
[global] ... log level = 1 auth_json_audit:2@/tmp/auth_audit.log ...
Настройка поддержки расширения PKINIT Freshness Extension
Технология PKINIT (Public Key Cryptography for Initial Authentication in Kerberos) позволяет использовать ключи и сертификаты, выпущенные доверенным удостоверяющим центром, для идентификации клиента и сервера Kerberos (Key Distribution Center, KDC) на этапе предварительной аутентификации.
Расширение Freshness Extension представляет собой доработку PKINIT, которая может быть использована для подтверждения того, что клиент, запрашивающий билет Kerberos, имеет доступ к закрытому ключу в данный момент, а не только имел его когда-либо в прошлом или будет иметь будущем.
Эллес поддерживает следующие способы управления поддержкой расширения PKINIT Freshness Extension:
-
с помощью конфигурационного параметра
kdc:pkinit_freshnessв разделеglobalфайла smb.conf, который может принимать одно из следующих значений:-
по умолчанию параметр не установлен;
-
0— расширение PKINIT Freshness Extension отключено в KDC;Подтверждающий актуальность запроса токен не передается клиенту и не обрабатывается.
-
1— расширение PKINIT Freshness Extension поддерживается в KDC;Подтверждающий актуальность запроса токен передается клиенту по его запросу и далее валидируется в KDC. Если запроса от клиента на токен не было, то он клиенту не передается и не обрабатывается; аутентификация происходит без учета его влияния.
-
2— расширение PKINIT Freshness Extension требуется в KDC;При отсутствии поддержки расширения со стороны клиента аутентификация не будет успешной.
-
-
с помощью административного шаблона групповой политики KDC → KDC support for PKInit Freshness Extension (см. подробнее в разделе «Управление групповыми политиками KDC»).