Как использовать аутентификацию Kerberos в смешанной (Windows и UNIX) среде

Опубликовано: 12 Апреля, 2023

Метод аутентификации Kerberos возник в Массачусетском технологическом институте в 1980-х годах как часть проекта под названием Athena, который включал интеграцию компьютеров в кампусе Массачусетского технологического института, работающих на разных операционных системах, в сеть, которая предлагала единый вход (SSO). ). В то время большинство систем UNIX позволяли пользователям получать доступ к своим ресурсам, если у них были имя учетной записи и пароль. Первой настоящей сетевой операционной системой Microsoft была NT (Windows for Workgroups поддерживала общий доступ к файлам и принтерам, но не вход в сеть). Он использовал протокол проверки подлинности с вызовом рукопожатия (CHAP), а затем более надежную версию MS-CHAP.


Из-за слабых сторон метода CHAP и для лучшей совместимости в смешанных средах (тех, которые работают как с системами UNIX, так и с Windows), Microsoft переключилась на Kerberos в качестве протокола аутентификации по умолчанию, начиная с Windows 2000. Mac OS X, основанная на UNIX, также использует Kerberos, поэтому этот протокол лучше всего подходит для смешанных сетевых сред.



Примечание:
До внесения изменений в федеральные законы в 2000 году Kerberos, наряду со многими другими методами криптографии, классифицировался правительством США как боеприпас и не мог быть экспортирован за пределы страны.


Как работает Kerberos


Текущая версия Kerberos — v5, разработанная в 1993 году. Это версия, на которой основана реализация Microsoft в Windows 2000/XP/Server 2003. Домены основного режима Windows 2000 и Server 2003 по умолчанию используют Kerberos. Домены, которые должны аутентифицировать системы NT вместе с более новыми операционными системами, должны использовать аутентификацию NT LAN Manager (NTLM).


Кербер был назван в честь Цербера, трехголового пса из греческой мифологии, из-за его трех компонентов:



  • Центр распространения ключей (KDC), который представляет собой сервер, состоящий из двух компонентов: сервера аутентификации и службы выдачи билетов.
  • Клиент (пользователь)
  • Сервер, к которому клиент хочет получить доступ

Вот как работает процесс входа в систему с Kerberos в качестве метода аутентификации:




    1. Для входа в сеть пользователь вводит имя учетной записи и пароль.
    2. Компонент Authentication Server (AS) KDC обращается к информации об учетной записи пользователя Active Directory для проверки учетных данных.
    3. KDC выдает билет на получение билета (TGT), который позволяет пользователю получать билеты сеанса для доступа к серверам в домене без повторного ввода учетных данных (по умолчанию TGT действует в течение 10 часов; этот срок действия можно настроить с помощью администратор).
    4. Когда пользователь пытается получить доступ к ресурсам на сервере в домене, для выполнения запроса используется TGT. Клиент представляет TGT KDC для получения служебного билета.
    5. Компонент службы предоставления билетов (TGS) KDC аутентифицирует TGT, а затем предоставляет билет службы. Билет службы состоит из билета и сеансового ключа. Сервисный билет создается для клиента и сервера, к которому клиент хочет получить доступ.
    6. Клиент предоставляет билет службы для создания сеанса со службой на сервере. Сервер использует свой ключ для расшифровки информации из TGS, и клиент аутентифицируется на сервере.
    7. Если взаимная аутентификация включена, сервер также выполняет аутентификацию клиента.

Проблемы смешанной среды


Существуют некоторые различия между версией Kerberos 5 MIT и реализацией Microsoft. В среде UNIX области развертывания Kerberos называются областями. Область чем-то похожа на домен в сети Windows. Пользователи принадлежат к определенным областям и аутентифицируются в своих соответствующих областях так же, как пользователи сети Windows аутентифицируются в доменах, членами которых они являются. KDC, службы и приложения, использующие Kerberos, составляют область.


Приложения и службы, использующие Kerberos, называются приложениями с поддержкой Kerberos. В дополнение к самому приложению данные аутентификации сохраняются в кэше учетных данных. Билеты, выдаваемые для идентификации приложений с поддержкой Kerberos, кэшируются, чтобы их можно было использовать повторно, пока не истечет срок их действия.


Версия Kerberos 5 для MIT включает следующие утилиты, которые можно использовать для управления Kerberos:



  • Kadmin: используется для внесения изменений в учетные записи в базе данных Kerberos.
  • Klist: используется для просмотра билетов в кеше учетных данных.
  • Kinit: используется для входа в мир с помощью ключа клиента.
  • Kdestroy: стирает кеш учетных данных, чтобы его не мог использовать неавторизованный пользователь.
  • Kpasswd: используется для смены паролей пользователей.
  • Kprop: используется для синхронизации главного KDC с репликами, если таковые имеются.

В сетях Windows контроллером домена является KDC (в дополнение к серверу Active Directory). Windows Kerberos поддерживает транзитивные доверительные отношения между доменами; это означает, что если домен 1 доверяет домену 2, а домен 2 доверяет домену 3, то существует неявное доверие между доменами 1 и 3. Домены Windows организованы в иерархические деревья, которые образуют пространство имен (родительские домены порождают дочерние домены, которые включают родительского домена. Например, sales.acme.com является дочерним доменом acme.com). Группы деревьев доменов составляют лес. У каждого дерева есть собственное пространство имен, но между всеми деревьями в лесу существуют доверительные отношения.


Windows использует стандартный протокол Kerberos, как указано в RFC 1510. Это означает, что способ представления учетных записей пользователей Active Directory в Kerberos такой же, как учетные записи в областях UNIX.


Использование Kerberos в смешанной среде


Windows и MIT KDC могут сосуществовать в смешанной среде. Может возникнуть ситуация, когда клиентам Windows необходимо пройти аутентификацию на UNIX KDC, а клиентам, отличным от Windows, необходимо пройти аутентификацию на Windows KDC или и то, и другое. Вам также необходимо учитывать ресурсы, к которым осуществляется доступ; то есть, хранятся ли они на сервере Windows или UNIX.


Вам потребуется настроить клиентское программное обеспечение Kerberos для использования правильного KDC и области. Обычно это настраивается для входа на локальный компьютер. Клиенты UNIX можно настроить для получения билетов Kerberos с контроллера домена Windows с помощью инструмента kinit, чтобы указать его на Windows DC в качестве основного KDC. Аналогично, вы можете настроить Windows-клиенты для аутентификации на UNIX KDC с помощью следующего инструмента командной строки Microsoft Ksetup, который настраивает области Kerberos, KDC и серверы Kpasswd.


Если сетевые ресурсы находятся в области MIT Kerberos и вам необходимо, чтобы клиенты Windows могли регулярно получать к ним доступ, вы можете сделать это, создав одностороннее доверие между областью Kerberos и доменом Windows, чтобы область доверяла домен. Таким образом, когда пользователи Windows входят в домен Windows, сервер UNIX Kerberos автоматически доверяет им, поскольку они прошли аутентификацию на сервере Windows.


Если пользователям, которые входят на сервер UNIX, также необходимо получить доступ к ресурсам в домене Windows, вы можете создать другое доверие, которое работает в обратном направлении (домен Windows доверяет области MIT), делая его двусторонним доверием. Таким образом, пользователи, отличные от Windows, входят в систему на сервере UNIX, а пользователи Windows входят в систему на сервере Windows (контроллер домена/KDC), и оба могут получить доступ к ресурсам как в домене Windows, так и в области MIT, поскольку область и домен доверяют друг другу.


Вы можете использовать сопоставление учетных записей, чтобы предоставить информацию об управлении доступом и авторизации на сервер Windows для пользователей из области Kerberos. Для этого создайте учетные записи в домене Windows, соответствующие каждой учетной записи в сфере Kerberos, и синхронизируйте эти учетные записи друг с другом. Также возможно сопоставить все учетные записи в сфере Kerberos с одной учетной записью в домене Windows. Вы можете использовать интерфейс службы Active Directory (ADSI) или упрощенный протокол доступа к каталогам (LDAP) для синхронизации Active Directory с базой данных Kerberos в сфере MIT. Например, вы можете написать пакетный скрипт, используя LDAP и утилиту kadmin. Подробные инструкции о том, как это сделать, см. в Приложении A к документу о совместимости Windows 2000 Kerberos на сайте Microsoft TechNet по адресу http://www.microsoft.com/technet/prodtechnol/windows2000serv/maintain/featusability/kerbinop.mspx.


Теперь, когда, например, клиенту Windows, вошедшему в домен Windows, необходимо получить доступ к ресурсам на сервере UNIX, клиент Windows предоставит билет, выданный Windows KDC, приложению или службе UNIX. Поскольку между доменом Windows и областью MIT Kerberos существует доверие, ресурс UNIX примет билет и предоставит доступ в соответствии с методом авторизации, установленным для этого ресурса.


Резюме


Kerberos — это стандарт проверки подлинности, который можно использовать в смешанной среде, где домены Windows (которые также являются областями Kerberos) сосуществуют с областями UNIX/MIT Kerberos. Пользователи в одной области могут получить доступ к ресурсам в другой благодаря реализации двусторонних доверительных отношений и сопоставлению учетных записей. Подробное пошаговое руководство по настройке контроллера домена Windows для использования в качестве KDC для клиентов и хостов MIT или по настройке клиентов Windows для использования области UNIX/MIT Kerberos см. в руководстве по совместимости Kerberos на сайте Microsoft TechNet по адресу http: //www.microsoft.com/technet/prodtechnol/windows2000serv/howto/kerbstep.mspx