Как работает Kerberos 5 в картинках | Пикабу

32-bit or 64-bit windows?

To follow the instructions in this document, you will need to know whether you are running 32-bit or 64-bit Windows. If you don’t know this, Microsoft have instructions on finding out:

Download and install kerberos

The distribution of Kerberos to install depends on whether you are running 32-bit or 64-bit Windows (see above).

For 64-bit Windows, we recommend Heimdal Kerberos:

Heimdal Kerberos for Windows (64-bit)

For 32-bit Windows, we recommend MIT Kerberos:

MIT Kerberos for Windows (32-bit)

Download and install network identity manager

The next stage in the process is to download and install Network Identity Manager, again from Secure Endpoints:

What now?

Now that you have installed Kerberos on Windows, you may want to:

Configure AFSConfigure SSH (including logging in without a password)Configure Firefox and Chrome for single-sign-on with our Cosign service

Вторичный kdc

Когда у вас есть один центр распространения ключей (KDC) в сети, хорошей практикой является создание вторичного KDC на случай, если первичный будет недоступен. Также, если у вас Kerberos клиенты расположены в различных сетях (возможно разделенные роутерами, использующими NAT), разумно будет поместить вторичные KDC в каждую такую сеть.

sudo apt-get install krb5-kdc krb5-admin-server
kadmin -q "addprinc -randkey host/kdc02.example.com"

После, выполняя любые команды kadmin, у вас будет запрашиваться пароль вашей учетной записи username/admin@EXAMPLE.COM

kadmin -q "ktadd -norandkey -k keytab.kdc02 host/kdc02.example.com"
sudo mv keytab.kdc02 /etc/krb5.keytab

Если путь до файла keytab.kdc02 иной, замените соответственно.

Также вы можете вывести список учетных записей в файл keytab, который может быть полезен при решении проблем, используя утилиту klist:

sudo klist -k /etc/krb5.keytab

Опция -k показывает, что это keytab файл.

    host/kdc01.example.com@EXAMPLE.COM
    host/kdc02.example.com@EXAMPLE.COM
sudo kdb5_util -s create
sudo kpropd -S
sudo kdb5_util dump /var/lib/krb5kdc/dump
    kadmin -q "ktadd -k keytab.kdc01 host/kdc01.example.com"
    sudo mv keytab.kdc01 /etc/krb5.keytab

Убедитесь, что это host для kdc01.example.com, перед извлечением Keytab.

sudo kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com

Должно вернуться сообщение SUCCEEDED, если распространение сработало. Если вернулось сообщение об ошибке, проверьте /var/log/syslog на вторичном KDC для дополнительной информации.

Вы можете также создать задачу cron для периодического обновления базы данных на вторичных KDC. Например, следующий код будет выгружать базу данных каждый час (обратите внимание, что длинная строка разделена чтобы соответствовать формату документа):

:/>  Настройка UEFI-загрузчика. Самое краткое руководство в мире

    # m h  dom mon dow   command
    0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && 
    /usr/sbin/kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com
sudo kdb5_util stash
sudo /etc/init.d/krb5-kdc start

Вторичный KDC теперь должен иметь возможность выдавать билеты для своей области. Вы можете это проверить, остановив сервис krb5-kdc на первичном KDC и затем запросив билет с помощью kinit. Если все пойдет хорошо, вы получите билет со вторичного KDC. В противном случае проверяйте /var/log/syslog и /var/log/auth.log на вторичном KDC.

Как работает kerberos 5 в картинках

Несколько дней назад я просвещалась (в очередной раз) по какой-то теме, связанной с AD. Поскольку AD работает с Kerberos, захотелось понять, как он работает. То есть, в общих чертах понятно: можно не обмениваться секретными ключами в открытом виде. Есть посредник – сервер аутентификации. Но когда я начинала читать описание этапов обмена, я через пару абзацев теряла нить повествования. В таких случаях я рисую процесс.

Ну и вот что получилось. Сразу скажу, основной материал из вики добавлены несколько пропущенных этапов. Картинки повеселее и (на мой взгляд) понятнее.

Линукс клиент kerberos

Эта часть освещает настройку клиента Kerberos на системе Линукс. Это позволит получить доступ к любому керберезированному сервису как только пользователь удачно авторизуется в системе.

Настройка

Вопросы, задаваемые в процессе установки, используются для настройки файла /etc/krb5.conf. Если вам требуется скорректировать настройки KDC, просто измените файл и перезапустите сервис krb5-kdc. Если вам требуется перенастроить Kerberos сначала, возможно для изменения имени области, вы можете это сделать набрав следующее:

sudo dpkg-reconfigure krb5-kdc
    sudo kadmin.local
    Authenticating as principal root/admin@EXAMPLE.COM with password.
    kadmin.local: addprinc steve/admin
    WARNING: no policy specified for steve/admin@EXAMPLE.COM; defaulting to no policy
    Enter password for principal "steve/admin@EXAMPLE.COM": 
    Re-enter password for principal "steve/admin@EXAMPLE.COM": 
    Principal "steve/admin@EXAMPLE.COM" created.
    kadmin.local: quit

В примере выше steve – учетная запись, /admin – требование, а @EXAMPLE.COM – определяет область. “Ежедневная” учетная запись, она же пользовательская – steve@EXAMPLE.COM и она будет иметь только обычные права пользователя.

Замените EXAMPLE.COM и steve на ваши имена области и администратора.

steve/admin@EXAMPLE.COM        *

Эта запись предоставляет для steve/admin возможность выполнять любые операции над любыми учетными записями в этой области. Вы можете настроить учетные записи более ограниченными правами, которые удобны если вам требуется учетная запись младшего администратора, которую можно использовать на клиентах Kerberos. Пожалуйста, посмотрите страницу руководства (man) по kadm5.acl.

:/>  Горячие клавиши для Яндекс браузера и Google Chrome - шпаргалка

sudo /etc/init.d/krb5-admin-server restart
    kinit steve/admin
    steve/admin@EXAMPLE.COM's Password:

После ввода пароля используйте утилиту klist чтобы увидеть информацию о билете для получения билетов (TGT):

    klist
    Credentials cache: FILE:/tmp/krb5cc_1000
            Principal: steve/admin@EXAMPLE.COM

      Issued           Expires          Principal
    Jul 13 17:53:34  Jul 14 03:53:34  krbtgt/EXAMPLE.COM@EXAMPLE.COM

где имя файла кэша krb5cc_1000 составлено из префикса krb5cc_ и id пользователя (uid), который в нашем случае 1000. У вас может возникнуть необходимость добавить запись в /etc/hosts для KDC чтобы клиент мог его найти. Например:

192.168.0.1   kdc01.example.com       kdc01

Замените 192.168.0.1 на IP адрес вашего KDC. Обычно такое требуется, когда ваша Kerberos область охватывает различные сети, разделенные роутерами.

    _kerberos._udp.EXAMPLE.COM.     IN SRV 1  0 88  kdc01.example.com.
    _kerberos._tcp.EXAMPLE.COM.     IN SRV 1  0 88  kdc01.example.com.
    _kerberos._udp.EXAMPLE.COM.     IN SRV 10 0 88  kdc02.example.com. 
    _kerberos._tcp.EXAMPLE.COM.     IN SRV 10 0 88  kdc02.example.com. 
    _kerberos-adm._tcp.EXAMPLE.COM. IN SRV 1  0 749 kdc01.example.com.
    _kpasswd._udp.EXAMPLE.COM.      IN SRV 1  0 464 kdc01.example.com.

Замените EXAMPLE.COM, kdc01 и kdc02 на ваши имя домена, первичный и вторичный KDC

Смотрите Служба доменных имен (DNS) для детальных инструкций по настройке DNS.

Ваша новая область Kerberos теперь готова аутентифицировать клиентов.

Обзор

Если вы новичок в Kerberos, есть несколько терминов, которые хорошо понять до установки сервера Kerberos. Большинство терминов связаны с вещами, которые могут быть вам знакомы по другим окружениям:

  1. Учетная запись (Principal): любые пользователи, компьютеры или сервисы, предоставляемые серверами, должны быть определены как учетные записи Kerberos .

  2. Требования (Instances): используются для сервисных и специальных административных учетных записей.

  3. Области (Realms): уникальная область управления, обеспечиваемая установкой Kerberos. Представляйте ее себе как домен или группу ваших компьютеров и пользователей, ей принадлежащих. По умолчанию Ubuntu использует имя DNS домена в верхнем регистре (EXAMPLE.COM) в качестве имени области.

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

  5. Билет для получения билета (TGT): изданный сервером аутентификации, TGT зашифровывается на пароле пользователя, который известен только пользователю и KDC.

  6. Сервер распространения билетов (TGS): выпускает сервисные билеты для клиентов по запросу.

  7. Билеты (Tickets): подтверждение идентичности двух учетных записей. Одна учетная запись – пользователь, а другая – сервис, запрашиваемый этим пользователем. Билеты устанавливают секретный ключ, используемый для защищенного соединения во время авторизованной сессии.

  8. Файлы ключей (Keytab Files): файлы, извлеченные из базы учетных записей KDC и содержащие ключ шифрования для сервиса или компьютера.

:/>  Как присвоить имя компьютеру windows 10

Чтобы сложить все вместе: Область содержит как минимум один KDC, лучше больше для обеспечения безотказности, которые содержат базу данных учетных записей. Когда пользователь под учетной записью заходит на рабочую станцию, которая настроена на Kerberos аутентификацию, KDC выпускает билет для получения билетов (TGT). Если пользователь предоставляет совпадающие параметры, он считается аутентифицированным и может запрашивать билеты для сервисов, поддерживающих Kerberos, на сервере распространения билетов (TGS). Сервисные билеты позволяют пользователю аутентифицироваться на сервисах без ввода имени и пароля.

Установка

Для данного обсуждения мы создадим домен MIT Kerberos со следующими параметрами (изменяйте их для соответствия вашим требованиям):

  1. Область: EXAMPLE.COM

  2. Первичный KDC: kdc01.example.com (192.168.0.1)

  3. Вторичный KDC: kdc02.example.com (192.168.0.2)

  4. Учетная запись пользователя: steve

  5. Учетная запись администратора: steve/admin

Настоятельно рекомендуется, чтобы ваши авторизованные в сети пользователи имели uid в отдельном диапазоне от ваших локальных пользователей (скажем, начиная с 5000).

Перед установкой сервера Kerberos требуется правильно настроить DNS сервер для вашего домена. Поскольку область Kerberos по соглашению совпадает с именем домена, этот раздел использует домен EXAMPLE.COM, настроенный как Primary Master по документации DNS.

Кроме того, Kerberos – протокол, зависимый от времени. Поэтому если локальное время системы на клиентской машине и на сервере отличается более чем на 5 минут (по умолчанию), рабочая станция не будет аутентифицирована. Для решения проблемы все узлы сети должны синхронизировать свое время по одному серверу NTP. Детали настройки NTP смотрите в разделе Синхронизация времени по NTP.

Первый шаг по созданию области Kerberos – это установка пакетов krb5-kdc и krb5-admin-server. Введите в терминале:

sudo apt-get install krb5-kdc krb5-admin-server

В конце установки у вас запросят сетевые имена серверов Kerberos и административного, которые могут быть одним и тем же или разными серверами для определенной области.

По умолчанию область создается из доменного имени KDC.

Далее создаем новую область с помощью утилиты kdb5_newrealm:

sudo krb5_newrealm

Оставьте комментарий