Active Directory 도메인 가입 문제

Active Directory 도메인 가입 문제

Ubuntu 14.04 서버를 Windows 2003 R2 도메인에 가입시키려고 합니다. 내 관리자는 컨트롤러 측에서 도메인의 일부라고 말합니다. 하지만 SSSD가 시작되지 않는 것 같고 DNS 업데이트가 실패합니다.

나는 이 작업을 수행하기 위해 다양한 가이드를 따랐지만 오류 없이 가이드 중 하나를 완료하는 데 실패했습니다.

우분투 서버 가이드
킬로루트
NetNerds
페도라 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.

resolv.conf지금까지 이 오류에 대해 제가 찾은 유일한 조언은 AD 서버가 있고 해당 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

관련 정보