Интеграция Linux CentOS в Active Directory. Часть 1.
Давно не писал, но я исправлюсь, обещаю )). И начну с вполне заурядных вещей для сисадминов, это интеграция Linux в каталог Active Directory под управлением Windows Server 2003. Сегодня будем интегрировать Linux CentOS. Казалась бы простая задача, но ставит много вопросов, в процессе ввода в домен, и если не все то многие из них я рассмотрю в нескольких статях
Для работы нам понадобятся:
1) Уже работающий Домен под Windows Server 2003
2) Linux CentOS (я работаю на версии 5.3, но подойдет любая)
3) Samba
4) Kerberos 5
4) Права Администратора домена
5) Клавиатура
6) И очень редко мышь.
Начну с настройки протокол сетевой аутентификации Kerberos 5 и ошибки связанные с этим. Не буду углубляться в описание этого протокола, про него сможете прочитать тут . Вам надо знать одно, что без него ничего работать не будет. Для того что бы все работало правим Файлик krb5.conf который находится в каталоге etc (/etc/krb5.conf)
Изначально krb5.conf в CentOS выглядит так:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com:88
default_domain = example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Теперь разберемся что нам надо изменить. Допустим что наш основной домен называется dom.lan и мы будем настраивать все под него, имя основного домен контроллера one.dom.lan. Итак мы ведем что весь конфиг(krb5.conf) состоит из блоков [logging], [libdefaults], [realms], [domain_realm], [appdefaults]. Разберем что в них находится.
Блок [logging] указывает где находятся файлы логов, оставим все по умолчанию .
Блок [libdefaults]
default_realm - указывает на параметр в блоке [realms] в котором собраны все основные службы домена, данный параметр должен совпадать с указанным в блоке [realms]. В нашем случае:
default_realm = DOM.LAN
и соответственно в блоке [realms] будет
DOM.LAN = {
.
.
.
}
Параметры dns_lookup_realm, dns_lookup_kdc, ticket_lifetime, forwardable оставляем без изменений
Блок [realms]
Основная секция данного блока будет DOM.LAN = { ….. }, в ней укажем параметр kdc это будет имя нашего основного домен контроллера, который как я писал выше называется one.dom.lan, у вас он естественно будет называться по-другому ))
kdc = one.dom.lan
и параметр default_domain который указывает на имя основного домена, в нашем случае dom.lan
default_domain = dom.lan
Блок [domain_realm]
Данный блок устанавливает соответствие между DNS-именами и [realms]. Приведенные две строчки – минимально необходимые для работы, они указывают, что все компьютеры из домена dom.lan и собственно компьютер dom.lan будут относится к секции DOM.LAN блока [realms]. Выглядеть это будет так
.dom.lan = DOM.LAN
dom.lan = DOM.LAN
Блок [appdefaults] Полностью оставляем без изменений.
Теперь у нас полный настроенный конфиг для домена dom.lan с контроллером домена one.dom.lan выгляядет так:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOM.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
DOM.LAN = {
kdc = one.dom.lan
default_domain = dom.lan
}
[domain_realm]
.dom.lan = DOM.LAN
dom.lan = DOM.LAN
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Ну вот и закончили с настройкой Kerberos. Теперь пробуем подключится. Открываем терминал и пишем
# kinit admin@DOM.LAN
где admin - имя доменного админа, а DOM.LAN - имя секции в блоке [realms] можно и без этого параметра, а просто имя администратора домена.
Если все прошло хорошо в ответ на этот запрос вы ответа не получите.
А если где то ошибка, то вывалится сообщение Наиболее частая ошибка это:
# kinit(v5): Clock skew too great while getting initial credentials
Сия надпись означает что ваша машина не синхронизировала время с указанным контроллером домена (время на контроллере домена и у вас не совпадает), для этого выполним 3 несложных запроса:
1) Останавливаем службу ntpd, если этого не сделать мы не сможем синхронизировать время.
# /etc/init.d/ntpd stop
2) Запускаем синхронизацию
# ntpdate one.dom.lan
где one.dom.lan ваш основной контроллер домена с которым происходит синхронизация
3) Запускаем службу ntpd
# /etc/init.d/ntpd start
После этих нехитрых движений запрос kinit должен пройти без проблем. Если у вас возникли другие ошибки, внимательно изучите свой конфиг, наверняка ошибка скрыта в нем )))
Теперь проверим как прошло подключение.
# klist
Должно быть что то похожее на это:
Default principal: admin@DOM.LAN
Valid starting Expires Service principal
08/31/09 14:52:34 09/01/09 00:52:44 krbtgt/DOM.LANG@DOM.LAN
renew until 09/01/09 14:52:35
Вот на сегодня и все. В следующей статье я расскажу о конфигурации winbind для включения в домен Windows Server 2003.
Связанные записи
-
Kirill
-
Jamba
-
oleg
