![Проблемы с присоединением к домену Active Directory](https://rvso.com/image/89183/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B%20%D1%81%20%D0%BF%D1%80%D0%B8%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%BA%20%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83%20Active%20Directory.png)
Я пытаюсь присоединить сервер 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 мне пришлось выполнить следующие шаги:
- Администратор удалил запись в контроллере домена
- Повторите конфигурацию Kerberos, используя:
sudo dpkg-reconfigure krb5-config
- Выберите параметры в конфигурации, чтобы явно добавить контроллер домена в
[realms]
разделkrb5.conf
- Изменено имя хоста, чтобы гарантировать создание новой записи.
- Вытащил новый билет, используя
kinit
- Присоединился к домену, используя
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