Домен/Kerberos

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
Строка 2: Строка 2:
|Title          = Работа с Kerberos в ALT-домене
|Title          = Работа с Kerberos в ALT-домене
|Annotation    = Работа с Kerberos в ALT-домене
|Annotation    = Работа с Kerberos в ALT-домене
-
|Author        = [[АндрейЧерепанов|Андрей Черепанов (cas)
+
|Author        = AндрейЧерепанов
|Tag            = kerberos,домен
|Tag            = kerberos,домен
|Section        = практика
|Section        = практика
Строка 15: Строка 15:
Kerberos — сетевой протокол аутентификации, позволяющий передавать данные через незащищённые сети для безопасной идентификации. Более подробно узнать об этом протоколе можете в статье на Wikipedia [http://ru.wikipedia.org/wiki/Kerberos Kerberos]. В [[Домен|домене ALT Linux]] этот протокол занимает важное место, так как обеспечивает инфраструктуру для аутентификации пользователей (для входа в систему, для использования сетевых ресурсов по протоколу SMB и доступа в Интернет через прокси-сервер.
Kerberos — сетевой протокол аутентификации, позволяющий передавать данные через незащищённые сети для безопасной идентификации. Более подробно узнать об этом протоколе можете в статье на Wikipedia [http://ru.wikipedia.org/wiki/Kerberos Kerberos]. В [[Домен|домене ALT Linux]] этот протокол занимает важное место, так как обеспечивает инфраструктуру для аутентификации пользователей (для входа в систему, для использования сетевых ресурсов по протоколу SMB и доступа в Интернет через прокси-сервер.
-
Сервер аутентификации выполняет одну функцию: получает запрос, содержащий имя клиента, запрашивающего аутентификацию, и возвращает ему зашифрованный TGT (Ticket Granting Ticket, билет для получения билета). Затем пользователь может использовать этот TGT для запроса дальнейших билетов на другие службы.
+
Сервер аутентификации выполняет одну функцию: получает запрос, содержащий имя клиента, запрашивающего аутентификацию, и возвращает ему зашифрованный TGT (Ticket Granting Ticket, билет для получения билета). Затем пользователь может использовать этот TGT для запроса дальнейших билетов на другие службы. Часто специалисты билет называют «тикетом».
-
С практической точки зрения нас интересуют нюансы использования и отладки Kerberos. Итак, при создании ALT-домена настраивается также и служба Kerberos на сервере {{prg|krb5kdc}}. Основной её чертой является крайняя немногословность, что затрудняет отладку.
+
С практической точки зрения нас интересуют нюансы использования и отладки Kerberos.  
 +
 
 +
== Проверка работы сервера ==
 +
 
 +
Итак, при создании ALT-домена настраивается также и служба Kerberos на сервере {{prg|krb5kdc}}. Основной её чертой является крайняя немногословность (по соображениям безопасности), что затрудняет отладку.  
 +
 
 +
В модуле «Домен» веб-интерфейса показывается текущее состояние в том числе и службы Kerberos. Если всё в порядке, то показывается
 +
KDC: OK
 +
 
 +
Альтернативный способ получить статус домена:
 +
<pre># alterator-cmdline /net-domain action read
 +
domain:test.altlinux
 +
resolver:OK
 +
access:OK
 +
ldap:OK
 +
kdc:OK
 +
smb:OK (TEST.ALTLINUX)
 +
dhcpd:OK
 +
master:#t</pre>
 +
 
 +
В ALT Linux Kerberos хранит все свои данные в LDAP. Поэтому для успешной работы Kerberos требуется как запуск сервера LDAP {{prg|slapd}}, так и заполнение структуры базы для Kerberos (при проверки в LDAP ищутся записи класса {{pkg|krbRealmContainer}}).
 +
 
 +
Если служба krb5kdc не запущена, но попробуйте запустить её вручную:
 +
# service krb5kdc start
 +
 
 +
Настройка сервера Kerberos (KDC) осуществляется в файле {{path|/var/lib/kerberos/krb5kdc/kdc.conf}}
 +
 
 +
Там же видно, что журналы kdc и admin_server прописываются в секции {{path|[logging]}} и через {{prg|syslogd}} попадают в файл {{path|/var/log/messages}}.
 +
 
 +
{{attention|Если служба {{prg|krb5kdc}} не может быть запущена из-за того, что записи в LDAP не созданы (такое случалось на [[Branches/p6|Шестой платформе]], когда домен создавался '''до''' того, как настраивался сервер DHCP; в Седьмой платформе это исправлено), то нужно настроить DHCP и попробовать создать домен с другим именем.}}
 +
 
 +
== Принципалы (пользователи) ==
 +
 
 +
В Kerberos билеты (тикеты) выдаются <s>только членам профсоюза</s> зарегистрированным принципалам. Это могут быть как пользователи, так и службы. При создании домена создаются и принципалы поддерживаемых служб. В базу Kerberos пользователи добавляются через веб-интерфейс (раздел «Пользователи») или из командной строки в программе [[Домен/Скрипты#ldap-useradd|ldap-useradd]].
 +
 
 +
Для заведения пользователей и в базе Kerberos в файле {{path|/etc/sysconfig/system}} должна быть указана роль сервера '''master''':
 +
SERVER_ROLE=master
 +
 
 +
Проверить, заведён ли пользователь можно программой {{prg|kadmin.local}}.
 +
 
 +
=== kadmin.local ===
 +
 
 +
Проверка заведённых пользователей:
 +
<pre># kadmin.local -q 'listprincs *'
 +
Authenticating as principal root/admin@TEST.ALTLINUX with password.
 +
K/M@TEST.ALTLINUX
 +
krbtgt/TEST.ALTLINUX@TEST.ALTLINUX
 +
kadmin/admin@TEST.ALTLINUX
 +
kadmin/changepw@TEST.ALTLINUX
 +
kadmin/history@TEST.ALTLINUX
 +
kadmin/main.test.altlinux@TEST.ALTLINUX
 +
nfs/main.test.altlinux@TEST.ALTLINUX
 +
cifs/main.test.altlinux@TEST.ALTLINUX
 +
host/main.test.altlinux@TEST.ALTLINUX
 +
pop3/main.test.altlinux@TEST.ALTLINUX
 +
http/main.test.altlinux@TEST.ALTLINUX
 +
HTTP/main.test.altlinux@TEST.ALTLINUX
 +
pop/main.test.altlinux@TEST.ALTLINUX
 +
imap/main.test.altlinux@TEST.ALTLINUX
 +
smtp/main.test.altlinux@TEST.ALTLINUX
 +
cas@TEST.ALTLINUX
 +
l1@TEST.ALTLINUX
 +
admin@TEST.ALTLINUX
 +
tt@TEST.ALTLINUX
 +
karpov_d@TEST.ALTLINUX
 +
ldap/main.test.altlinux@TEST.ALTLINUX</pre>
 +
 
 +
Обратите внимание, выводятся как обычные пользователи, так и службы. Последние идут с FDDN (полным доменным именем) сервера, указанным через / от названия службы.
 +
 
 +
 
 +
Примечание: {{prg|kadmin.local}} работает и при выключенной службе {{prg|krb5kdc}}
== Нюансы работы ==
== Нюансы работы ==

Версия 12:50, 28 февраля 2013

Работа с Kerberos в ALT-домене
ALT-review logo.png
Работа с Kerberos в ALT-домене

Автор: AндрейЧерепанов   Раздел: практика   Тег: kerberos,домен

Alt Club.png
Alt linux team.png

Навигация

Главная: ALT-review

Все статьи

Предложения и пожелания

Ресурсы

FAQ


Kerberos — сетевой протокол аутентификации, позволяющий передавать данные через незащищённые сети для безопасной идентификации. Более подробно узнать об этом протоколе можете в статье на Wikipedia Kerberos. В домене ALT Linux этот протокол занимает важное место, так как обеспечивает инфраструктуру для аутентификации пользователей (для входа в систему, для использования сетевых ресурсов по протоколу SMB и доступа в Интернет через прокси-сервер.

Сервер аутентификации выполняет одну функцию: получает запрос, содержащий имя клиента, запрашивающего аутентификацию, и возвращает ему зашифрованный TGT (Ticket Granting Ticket, билет для получения билета). Затем пользователь может использовать этот TGT для запроса дальнейших билетов на другие службы. Часто специалисты билет называют «тикетом».

С практической точки зрения нас интересуют нюансы использования и отладки Kerberos.

Содержание

Проверка работы сервера

Итак, при создании ALT-домена настраивается также и служба Kerberos на сервере krb5kdc. Основной её чертой является крайняя немногословность (по соображениям безопасности), что затрудняет отладку.

В модуле «Домен» веб-интерфейса показывается текущее состояние в том числе и службы Kerberos. Если всё в порядке, то показывается

KDC: OK

Альтернативный способ получить статус домена:

# alterator-cmdline /net-domain action read
domain:test.altlinux
resolver:OK
access:OK
ldap:OK
kdc:OK
smb:OK (TEST.ALTLINUX)
dhcpd:OK
master:#t

В ALT Linux Kerberos хранит все свои данные в LDAP. Поэтому для успешной работы Kerberos требуется как запуск сервера LDAP slapd, так и заполнение структуры базы для Kerberos (при проверки в LDAP ищутся записи класса krbRealmContainer).

Если служба krb5kdc не запущена, но попробуйте запустить её вручную:

# service krb5kdc start

Настройка сервера Kerberos (KDC) осуществляется в файле /var/lib/kerberos/krb5kdc/kdc.conf

Там же видно, что журналы kdc и admin_server прописываются в секции [logging] и через syslogd попадают в файл /var/log/messages.

Внимание! Если служба krb5kdc не может быть запущена из-за того, что записи в LDAP не созданы (такое случалось на Шестой платформе, когда домен создавался до того, как настраивался сервер DHCP; в Седьмой платформе это исправлено), то нужно настроить DHCP и попробовать создать домен с другим именем.


Принципалы (пользователи)

В Kerberos билеты (тикеты) выдаются только членам профсоюза зарегистрированным принципалам. Это могут быть как пользователи, так и службы. При создании домена создаются и принципалы поддерживаемых служб. В базу Kerberos пользователи добавляются через веб-интерфейс (раздел «Пользователи») или из командной строки в программе ldap-useradd.

Для заведения пользователей и в базе Kerberos в файле /etc/sysconfig/system должна быть указана роль сервера master:

SERVER_ROLE=master

Проверить, заведён ли пользователь можно программой kadmin.local.

kadmin.local

Проверка заведённых пользователей:

# kadmin.local -q 'listprincs *'
Authenticating as principal root/admin@TEST.ALTLINUX with password.
K/M@TEST.ALTLINUX
krbtgt/TEST.ALTLINUX@TEST.ALTLINUX
kadmin/admin@TEST.ALTLINUX
kadmin/changepw@TEST.ALTLINUX
kadmin/history@TEST.ALTLINUX
kadmin/main.test.altlinux@TEST.ALTLINUX
nfs/main.test.altlinux@TEST.ALTLINUX
cifs/main.test.altlinux@TEST.ALTLINUX
host/main.test.altlinux@TEST.ALTLINUX
pop3/main.test.altlinux@TEST.ALTLINUX
http/main.test.altlinux@TEST.ALTLINUX
HTTP/main.test.altlinux@TEST.ALTLINUX
pop/main.test.altlinux@TEST.ALTLINUX
imap/main.test.altlinux@TEST.ALTLINUX
smtp/main.test.altlinux@TEST.ALTLINUX
cas@TEST.ALTLINUX
l1@TEST.ALTLINUX
admin@TEST.ALTLINUX
tt@TEST.ALTLINUX
karpov_d@TEST.ALTLINUX
ldap/main.test.altlinux@TEST.ALTLINUX

Обратите внимание, выводятся как обычные пользователи, так и службы. Последние идут с FDDN (полным доменным именем) сервера, указанным через / от названия службы.


Примечание: kadmin.local работает и при выключенной службе krb5kdc

Нюансы работы

  • Тикет Kerberos по умолчанию выдаётся не более чем на 1 сутки. Если хотите выдавать тикет больше, чем на сутки, пропишите
    1. max_life = 30d
      в файле /var/lib/kerberos/krb5kdc/kdc.conf (максимальный срок выдаваемого тикета — 30 дней)
    2. на LDAP-сервере dn: krbPrincipalName=krbtgt/<ваш_домен>
      krbMaxTicketLife: 2592000
      (срок выдаваемого тикета с сервера — 30 дней, указывается в количестве секунд)
    3. Для указания периода возобновления тикета (хотя странно, имея такой «длинный» тикет, указывать период его обновления) параметры
      max_renewable_life = 30d
      и krbMaxRenewableAge: 2592000 соответственно.
  • При использовании сервера или клиента домена на Седьмой платформе с клиентами или сервером ранних версий на новой системе пропишите в раздел [libdefaults] файла /etc/krb5.conf строку
    allow_weak_crypto = true
    Без этого с тикетами Kerberos будут проблемы.

TODO

TODO:
  • Отладка получения тикета: kinit, klist, kdestroy
  • Troubleshooting
  • kadmin.local
  • срок тикета в /etc/krb5.conf
  • синхронизация времени с помощью settime-rfc867
 
Личные инструменты