Домен/Kerberos: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 2: | Строка 2: | ||
|Title = Работа с Kerberos в ALT-домене | |Title = Работа с Kerberos в ALT-домене | ||
|Annotation = Работа с Kerberos в ALT-домене | |Annotation = Работа с Kerberos в ALT-домене | ||
|Author = | |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}} | |||
== Нюансы работы == | == Нюансы работы == |
Версия от 15:50, 28 февраля 2013
Журнал ALT-review
Title::Работа с Kerberos в ALT-домене- Автор: Author::AндрейЧерепанов Раздел: Section::практика Тег: Tag::kerberos,домен
|
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.
Принципалы (пользователи)
В 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 сутки. Если хотите выдавать тикет больше, чем на сутки, пропишите
- в файле /var/lib/kerberos/krb5kdc/kdc.conf (максимальный срок выдаваемого тикета — 30 дней)
max_life = 30d
- на LDAP-сервере dn: krbPrincipalName=krbtgt/<ваш_домен> (срок выдаваемого тикета с сервера — 30 дней, указывается в количестве секунд)
krbMaxTicketLife: 2592000
- Для указания периода возобновления тикета (хотя странно, имея такой «длинный» тикет, указывать период его обновления) параметры и krbMaxRenewableAge: 2592000 соответственно.
max_renewable_life = 30d
- При использовании сервера или клиента домена на Седьмой платформе с клиентами или сервером ранних версий на новой системе пропишите в раздел [libdefaults] файла /etc/krb5.conf строку Без этого с тикетами Kerberos будут проблемы.
allow_weak_crypto = true
TODO
- Отладка получения тикета: kinit, klist, kdestroy
- Troubleshooting
- kadmin.local
- срок тикета в /etc/krb5.conf
- синхронизация времени с помощью settime-rfc867