Домен/Решение проблем

Материал из ALT Linux Wiki
Внимание! Домен нужно устанавливать только после настройки сервера DHCP. В противном случае придётся выбирать другое имя домена.

Если что-то не работает, алгоритм следующий:

Проверка сервера

1. Проверяем на сервере домен и то, что он использует Kerberos:

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

Все параметры (кроме domain и master) должны быть OK, domain содержит правильное имя домена, master — значение #t.

Если проблемы с KDC, то следует выполнить следующий алгоритм действий:

  1. В модуле «DHCP-сервер» настроить сервер для подсети.
  2. Создать новый домен с другим именем (и с выставленным флажком «Обслуживать домен Kerberos»). При попытке использовать старое имя домена не создадутся нужные ветки в базе LDAP.

Проверка клиента

2. Проверяем схему аутентификации на клиенте:

# system-status
krb5 dc=test,dc=altlinux,dc=ru ldaps://ldap.test.altlinux.ru

Схема — krb5, выбран правильный домен. Примечание: на сервере используется схема ldap.

Если в модуле «Аунтификация» не показывается домен, то на клиенте нужно запустить службу avahi-daemon:

service avahi-daemon start

или добавить аутентификацию в домене вручную:

system-auth write krb5 dc=test,dc=altlinux,dc=ru ldaps://ldap.test.altlinux.ru

3. Смотрим доступность сервера по имени:

# ping ldap.test.altlinux.ru

а) Если пишет 'unknown host', проверьте, прописан ли сервер как сервер DNS для этой машины. Рекомендуется сервер домена использовать как сервер DHCP и DNS для обслуживаемой подсети.

б) Если ping не идёт, проверьте сетевые подключения клиента и сервера и маршрутизацию сети.

4. Проверьте время на клиенте и сервере командой

# date

Оно не должно сильно отличаться. Kerberos очень чувствителен к разнице во времени.

5. Проверьте, виден ли клиент в LDAP:

# ldapsearch -LLL -b "dc=test,dc=altlinux,dc=ru" -x -H "ldaps://ldap.test.altlinux.ru" "(&(objectClass=posixAccount)(uid=fill))"                        
dn: uid=fill,ou=People,dc=test,dc=altlinux,dc=ru                                                                                                                                    
uid: fill                                                                                                                                                                           
cn:: 0KTQuNC70LjQv9C/0L7QsiDQmNCy0LDQvSDQlNC80LjRgtGA0LjQtdCy0LjRhw==
sn:: 0KTQuNC70LjQv9C/0L7Qsg==
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
loginShell: /bin/sh
uidNumber: 5006
gidNumber: 5009
homeDirectory: /home/fil
sambaAcctFlags: [U          ]
sambaSID: S-1-5-21-2552966934-293145977-2108249345-11012
sambaPwdLastSet: 2147483647
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 0
givenName:: 0JjQstCw0L0=

6. Проверьте, видим ли пользователь через NSS на клиентской машине:

# getent passwd fill
fill:*:5006:5009:Филиппов Иван Дмитриевич:/home/fil:/bin/sh

Если ничего не выдано, проверяйте имя домена и работу службы LDAP (slapd) на сервере.

7. Проверяем получение тикета Kerberos:

# kinit l1
Password for l1@SCHOOL-5:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: l1@SCHOOL-5

Valid starting     Expires            Service principal
09/30/12 18:17:00  10/01/12 18:17:00  krbtgt/SCHOOL-5@SCHOOL-5

В первой команде нужно указать имя пользователя и его пароль. Команда klist должна показать полученный тикет.