Проблемы с присоединением к домену Active Directory

Проблемы с присоединением к домену Active Directory

Я пытаюсь присоединить сервер Ubuntu 14.04 к домену Windows 2003 R2. Мой администратор говорит, что со стороны контроллера он является частью домена. Но SSSD, похоже, не может запуститься, и обновление DNS не удается.

Я следовал различным руководствам, чтобы попытаться заставить это работать, но не смог завершить ни одно из них без ошибок.

Руководство по серверу Ubuntu
KiloRoot
NetNerds
Руководство по Fedora SSSD

Похоже, Discovery работает просто отлично:

kyle@Server21:~$ realm discover COMPANYNAME.LOCAL
CompanyName.Local
  type: kerberos
  realm-name: COMPANYNAME.LOCAL
  domain-name: companyname.local
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: sssd-tools
  required-package: sssd
  required-package: libnss-sss
  required-package: libpam-sss
  required-package: adcli
  required-package: samba-common-bin
  login-formats: %U
  login-policy: allow-realm-logins
companyname.local
  type: kerberos
  realm-name: COMPANYNAME.LOCAL
  domain-name: companyname.local
  configured: no

realmdговорит, что я тоже присоединен к домену:

kyle@Server21:~$ realm join COMPANYNAME.LOCAL
realm: Already joined to this domain

Kerberos выполнил аутентификацию моего администратора:

kyle@Server21:~$ kinit -V administrator
Using default cache: /tmp/krb5cc_0
Using principal: [email protected]
Password for [email protected]:
Authenticated to Kerberos v5

Но когда приходит время присоединиться, обновление DNS дает сбой:

kyle@Server21:~$ sudo net ads join -k
Using short domain name -- COMPANYNAME
Joined 'SERVER21' to dns domain 'CompanyName.Local'
No DNS domain configured for server21. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

А у SSSD все еще возникают проблемы с запуском:

kyle@Server21:~$ systemctl status sssd.service
● sssd.service - System Security Services Daemon
   Loaded: loaded (/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2016-06-22 09:57:57 EDT; 37min ago
  Process: 16027 ExecStart=/usr/sbin/sssd -D -f (code=exited, status=1/FAILURE)

Jun 22 09:57:55 Server21 sssd[16038]: Starting up
Jun 22 09:57:55 Server21 sssd[16041]: Starting up
Jun 22 09:57:55 Server21 sssd[16042]: Starting up
Jun 22 09:57:56 Server21 sssd[be[16043]: Starting up
Jun 22 09:57:57 Server21 sssd[be[16043]: Failed to read keytab [default]: No such file or directory
Jun 22 09:57:57 Server21 sssd[16031]: Exiting the SSSD. Could not restart critical service [COMPANYNAME.LOCAL].
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Control process exited, code=exited status=1
Jun 22 09:57:57 Server21 systemd[1]: Failed to start System Security Services Daemon.
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Unit entered failed state.
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Failed with result 'exit-code'.

Единственное, krb5.confчто касается меня конкретно, это [libdefaults]:

kyle@Server21:~$ cat /etc/krb5.conf
[libdefaults]
        default_realm = COMAPNYNAME.LOCAL

Хотя на предыдущей установке я думал, что там что-то еще [realms], но не могу вспомнить что. В руководстве Fedora говорится о добавлении чего-то туда, когда DNS-поиск не работает, но не вдается в достаточно подробные сведения, чтобы я мог точно понять, что там должно быть.

Мои изменения в smb.conf:

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = COMPANYNAME
   client signing = yes
   client use spnego = yes
   kerberos method = secrets and keytab
   realm = COMPANYNAME.LOCAL
   security = ads

Мойsssd.conf

kyle@Server21:~$ sudo cat /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = COMPANYNAME.LOCAL

[domain/COMPANYNAME.LOCAL]
id_provider = ad
access_provider = ad
override_homedir = /home/%d/%u

И поскольку в руководстве Ubuntu говорится, что права собственности и разрешения важны:

kyle@Server21:~$ sudo ls -la /etc/sssd
total 12
drwx--x--x   2 sssd sssd 4096 Jun 21 14:34 .
drwxr-xr-x 103 root root 4096 Jun 22 10:21 ..
-rw-------   1 root root  172 Jun 21 14:22 sssd.conf

В руководстве Ubuntu также упоминается, что этот hostsфайл может вызвать проблемы с обновлением DNS, но я думаю, что я правильно последовал их примеру:

kyle@Server21:~$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       Server21
192.168.XXX.XXX Server21 Server21.COMPANYNAME.LOCAL

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Так где же я ошибаюсь? Контроллер домена говорит, что он часть домена. У меня Apache и OpenSSH оба запущены и доступны. Но этот сервер будет делать гораздо больше, поэтому я хочу убедиться, что все настроено правильно, прежде чем двигаться дальше.


Редактировать:

Я изменил свой hostsфайл, следуя советуэта страницатак что теперь это выглядит так:

kyle@Server21:~$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       Server21.COMPANYNAME.LOCAL Server21
192.168.11.11   Server21.COMPANYNAME.LOCAL Server21

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Теперь getentвозвращается:

kyle@Server21:~$ sudo getent hosts Server21
127.0.1.1       Server21.COMPANYNAME.LOCAL Server21 Server21
192.168.11.11   Server21.COMPANYNAME.LOCAL Server21 Server21

И net ads joinтеперь другое сообщение об ошибке:

kyle@Server21:~$ sudo net ads join -k
Failed to join domain: failed to lookup DC info for domain 'COMPANYNAME.LOCAL' over rpc: An internal error occurred.

Пока что единственный совет, который я нашел по этой ошибке, — убедиться, что сервер AD включен resolv.confи его IP-адрес является единственной записью.

kyle@Server21:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.XXX.XXX

Чтобы ответить на комментарий:

kyle@Server21:~$ nslookup -type=SRV _ldap._tcp.companyname.local
Server:         192.168.XXX.XXX
Address:        192.168.XXX.XXX#53

_ldap._tcp.companyname.local      service = 0 100 389 companynamedc.companyname.local.

Где-то по пути SSSD удалось запуститься и теперь он активен. Хотя я не уверен, что я сделал, чтобы это исправить.

решение1

Проблема, похоже, была в том, что мой администратор создал запись на контроллере домена для этого сервера. Это, по-видимому, вызвало конфликт, из-за которого Kerberos столкнулся со следующей ошибкой при попытке присоединения:

kyle@Server21:~$ sudo net ads join -k
Failed to join domain: failed to lookup DC info for domain 'COMPANYNAME.LOCAL' over rpc: An internal error occurred.

Я не уверен, что эта ошибка была полностью точной, так как мой администратор сказал, что сервер был присоединен к домену с его стороны, и realmdуказал, что я также присоединен:

kyle@Server21:~$ realm join COMPANYNAME.LOCAL
realm: Already joined to this domain

Для успешного присоединения к Kerberos мне пришлось выполнить следующие шаги:

  1. Администратор удалил запись в контроллере домена
  2. Повторите конфигурацию Kerberos, используя:sudo dpkg-reconfigure krb5-config
  3. Выберите параметры в конфигурации, чтобы явно добавить контроллер домена в [realms]разделkrb5.conf
  4. Изменено имя хоста, чтобы гарантировать создание новой записи.
  5. Вытащил новый билет, используяkinit
  6. Присоединился к домену, используяsudo net ads join -k

Конечный результат:

kyle@SERV21:~$ sudo net ads join -k  
Using short domain name -- COMPANYNAME  
Joined 'SERV21' to dns domain 'CompanyName.Local'

решение2

попробуйте это на Server21:

realm leave -v -U [your admin username] COMPANYNAME.LOCAL

затем

realm join -v -U [your admin username] COMPANYNAME.LOCAL

Связанный контент