ปัญหาในการเข้าร่วมโดเมน Active Directory


9

ฉันพยายามที่จะเข้าร่วม Ubuntu 16.04 เซิร์ฟเวอร์ไปยังโดเมนที่ใช้ Windows 2003 R2 โดยต่อไปนี้อูบุนตู SSSD และคู่มือ ผู้ดูแลระบบของฉันบอกว่าจากด้านควบคุมมันเป็นส่วนหนึ่งของโดเมน แต่ SSSD ไม่สามารถเริ่มและnet ads joinล้มเหลวได้

The krb5.confถูกแก้ไขโดยตัวติดตั้งและตอนนี้มี:

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

ในการติดตั้งก่อนหน้านี้ฉันคิดว่ามีอย่างอื่น[realms]ที่ถูกขอระหว่างการติดตั้ง แต่ฉันจำไม่ได้ว่าอะไรและมันไม่ได้ถามในเวลานี้

ของฉัน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

แม้ว่าบริการ 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'.

และเนื่องจากคู่มือบอกว่าการเป็นเจ้าของและการอนุญาตมีความสำคัญ:

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

ของฉันnsswitch.conf:

kyle@Server21:~$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat sss
group:          compat sss
shadow:         compat sss
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files sss
ethers:         db files
rpc:            db files

netgroup:       nis sss
sudoers:        files sss

ของฉัน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

นี่คือที่ที่ปัญหาเริ่มต้นขึ้น การใช้sudoเพื่อรันkinitผลลัพธ์ดังต่อไปนี้:

kyle@Server21:~$ sudo kinit adminstrator
kinit: Client 'adminstrator@COMPANYNAME.LOCAL' not found in Kerberos database while getting initial credentials

มันจะตรวจสอบถ้าฉันวางsudoแม้ว่า:

kyle@Server21:~$ kinit -V administrator
Using default cache: /tmp/krb5cc_1000
Using principal: administrator@COMPANYNAME.LOCAL
Password for administrator@COMPANYNAME.LOCAL:
Authenticated to Kerberos v5

และฉันสามารถตรวจสอบตั๋วได้:

kyle@Server21:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@COMPANYNAME.LOCAL

Valid starting       Expires              Service principal
06/23/2016 13:41:55  06/23/2016 23:41:55  krbtgt/COMPANYNAME.LOCAL@COMPANYNAME.LOCAL
        renew until 06/24/2016 13:41:48

แต่เมื่อฉันพยายามเข้าร่วมโดเมน:

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.

ก่อนหน้านี้ฉันได้รับNT_STATUS_UNSUCCESSFULข้อความที่กล่าวถึงในคำแนะนำ แต่ก็สามารถแก้ไขได้โดยแก้ไขhostsไฟล์ของฉัน

คำแนะนำเกี่ยวกับการตรวจสอบว่าบัญชีคอมพิวเตอร์ถูกสร้างขึ้นใน Active Directory และผู้ดูแลระบบของฉันบอกว่าเขาสามารถดูเครื่องได้ดีดังนั้นฉันเชื่อว่าไม่เป็นไร ตัวเลือกการยืนยันตัวที่สองไม่ได้บอกสิ่งที่ฉันควรจะได้รับกลับมาจากคำสั่งนั้น แต่ฉันไม่ได้รับอะไรเลยฉันจึงคิดว่ามันไม่ทำงาน

ดังนั้นฉันจะไปผิดที่นี่ที่ไหน


แก้ไข:

ฉันไม่แน่ใจว่าฉันทำอะไร แต่ SSSD กำลังทำงานอยู่


Ubuntu 14.04 ใช้ระบบพุ่งพรวดไม่ใช่ systemd ผลผลิตนั้นคาว
muru

@muru ขอโทษที่พิมพ์ผิด ฉันอายุ 16.04 แก้ไขคำถามแล้ว
embedded.kyle

คำตอบ:


3

ปัญหาดูเหมือนว่าจะเป็นที่ผู้ดูแลระบบของฉันได้สร้างรายการบนตัวควบคุมโดเมนสำหรับเซิร์ฟเวอร์นี้ สิ่งนี้ทำให้เกิดข้อขัดแย้งที่ทำให้ 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. ผู้ดูแลระบบลบรายการใน Domain Controller
  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'

0

ฉันคิดว่าคุณไม่มีคีย์แท็บ คุณสามารถสร้างมันผ่านเครื่องมือ kadmin พิมพ์kadminและในประเภทพรอมต์ช่วยดูว่าจะเพิ่มแท็บคีย์ได้อย่างไร


/etc/krb5.keytabมีอยู่แล้วและมีสิ่งที่เข้ารหัสบางส่วนสลับกับชื่อเซิร์ฟเวอร์และชื่อโดเมน ฉันจำเป็นต้องสร้างเพิ่มเติมหรือไม่
embedded.kyle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.