ค้นหาเว็บไซต์

รวม Ubuntu เข้ากับ Samba4 AD DC ด้วย SSSD และ Realm - ตอนที่ 15


บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับวิธีเข้าร่วมเครื่อง Ubuntu Desktop เข้ากับโดเมน Samba4 Active Directory ด้วย SSSD และ Realmd บริการเพื่อตรวจสอบสิทธิ์ผู้ใช้กับ Active Directory

ความต้องการ:

  1. สร้างโครงสร้างพื้นฐาน Active Directory ด้วย Samba4 บน Ubuntu

ขั้นตอนที่ 1: การกำหนดค่าเริ่มต้น

1. ก่อนที่จะเริ่มเข้าร่วม Ubuntu ใน Active Directory ตรวจสอบให้แน่ใจว่าชื่อโฮสต์ได้รับการกำหนดค่าอย่างถูกต้อง ใช้คำสั่ง hostnamectl เพื่อตั้งชื่อเครื่องหรือแก้ไขไฟล์ /etc/hostname ด้วยตนเอง

sudo hostnamectl set-hostname your_machine_short_hostname
cat /etc/hostname
hostnamectl

2. ในขั้นตอนถัดไป แก้ไขการตั้งค่าอินเทอร์เฟซเครือข่ายของเครื่องและเพิ่มการกำหนดค่า IP ที่เหมาะสมและที่อยู่เซิร์ฟเวอร์ DNS IP ที่ถูกต้องเพื่อชี้ไปที่ตัวควบคุมโดเมน Samba AD ดังที่แสดงในภาพหน้าจอด้านล่าง

หากคุณได้กำหนดค่าเซิร์ฟเวอร์ DHCP ในสถานที่ของคุณให้กำหนดการตั้งค่า IP สำหรับเครื่อง LAN ของคุณโดยอัตโนมัติด้วยที่อยู่ IP AD DNS ที่เหมาะสม คุณสามารถข้ามขั้นตอนนี้และก้าวไปข้างหน้าได้

ในภาพหน้าจอด้านบน 192.168.1.254 และ 192.168.1.253 แสดงถึงที่อยู่ IP ของ Samba4 Domain Controller

3. เริ่มบริการเครือข่ายใหม่เพื่อใช้การเปลี่ยนแปลงโดยใช้ GUI หรือจากบรรทัดคำสั่งและออกชุด คำสั่ง ping กับชื่อโดเมนของคุณเพื่อทดสอบว่าการแก้ไข DNS นั้น ทำงานตามที่คาดไว้ นอกจากนี้ ให้ใช้คำสั่ง host เพื่อทดสอบการแก้ไข DNS

sudo systemctl restart networking.service
host your_domain.tld
ping -c2 your_domain_name
ping -c2 adc1
ping -c2 adc2

4. สุดท้าย ตรวจสอบให้แน่ใจว่าเวลาเครื่องซิงค์กับ Samba4 AD ติดตั้งแพ็คเกจ ntpdate และเวลาซิงค์กับ AD โดยใช้คำสั่งด้านล่าง

sudo apt-get install ntpdate
sudo ntpdate your_domain_name

ขั้นตอนที่ 2: ติดตั้งแพ็คเกจที่จำเป็น

5. ในขั้นตอนนี้ให้ติดตั้งซอฟต์แวร์ที่จำเป็นและการอ้างอิงที่จำเป็นเพื่อเข้าร่วม Ubuntu เข้ากับบริการ Samba4 AD DC: Realmd และ SSSD

sudo apt install adcli realmd krb5-user samba-common-bin samba-libs samba-dsdb-modules sssd sssd-tools libnss-sss libpam-sss packagekit policykit-1 

6. ป้อนชื่อของขอบเขตเริ่มต้นด้วยตัวพิมพ์ใหญ่และกดปุ่ม Enter เพื่อดำเนินการติดตั้งต่อ

7. จากนั้น สร้างไฟล์การกำหนดค่า SSSD โดยมีเนื้อหาดังต่อไปนี้

sudo nano /etc/sssd/sssd.conf

เพิ่มบรรทัดต่อไปนี้ในไฟล์ sssd.conf

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

[sssd]
domains = tecmint.lan
config_file_version = 2
services = nss, pam
default_domain_suffix = TECMINT.LAN


[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = ad

auth_provider = ad
chpass_provider = ad
access_provider = ad
ldap_schema = ad
dyndns_update = true
dyndns_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600

ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนชื่อโดเมนตามพารามิเตอร์ต่อไปนี้:

domains = tecmint.lan
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN

8. ถัดไป เพิ่มการอนุญาตที่เหมาะสมสำหรับไฟล์ SSSD โดยออกคำสั่งด้านล่าง:

sudo chmod 700 /etc/sssd/sssd.conf

9. ตอนนี้ ให้เปิดและแก้ไขไฟล์การกำหนดค่า Realmd และเพิ่มบรรทัดต่อไปนี้

sudo nano /etc/realmd.conf

ไฟล์ Realmd.conf ที่ตัดตอนมา:

[active-directory]
os-name = Linux Ubuntu
os-version = 17.04

[service]
automatic-install = yes

 [users]
default-home = /home/%d/%u
default-shell = /bin/bash

[tecmint.lan]
user-principal = yes
fully-qualified-names = no

10. ไฟล์สุดท้ายที่คุณต้องแก้ไขเป็นของ Samba daemon เปิดไฟล์ /etc/samba/smb.conf เพื่อแก้ไข และเพิ่มบล็อกของโค้ดต่อไปนี้ที่จุดเริ่มต้นของไฟล์ ต่อจากส่วน [global] ดังที่แสดงใน ภาพด้านล่าง

 workgroup = TECMINT
   client signing = yes
   client use spnego = yes
   kerberos method = secrets and keytab
   realm = TECMINT.LAN
   security = ads

ตรวจสอบให้แน่ใจว่าคุณได้แทนที่ค่า ชื่อโดเมน โดยเฉพาะ ค่าขอบเขต เพื่อให้ตรงกับชื่อโดเมนของคุณและเรียกใช้คำสั่ง testparm เพื่อตรวจสอบว่าการกำหนดค่าหรือไม่ ไฟล์ไม่มีข้อผิดพลาด

sudo testparm

11. หลังจากที่คุณได้ทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดแล้ว ให้ทดสอบการตรวจสอบสิทธิ์ Kerberos โดยใช้บัญชีผู้ดูแลระบบ AD และแสดงรายการตั๋วโดยใช้คำสั่งด้านล่าง

sudo kinit [email 
sudo klist

ขั้นตอนที่ 3: เข้าร่วม Ubuntu กับ Samba4 Realm

12. เพื่อเข้าร่วมเครื่อง Ubuntu กับปัญหา Samba4 Active Directory โดยปฏิบัติตามชุดคำสั่งดังที่แสดงด้านล่าง ใช้ชื่อของบัญชี AD DC ที่มีสิทธิ์ของผู้ดูแลระบบเพื่อให้การผูกกับขอบเขตทำงานตามที่คาดไว้ และแทนที่ค่าชื่อโดเมนตามลำดับ

sudo realm discover -v DOMAIN.TLD
sudo realm list
sudo realm join TECMINT.LAN -U ad_admin_user -v
sudo net ads join -k

13. หลังจากการผูกโดเมนเกิดขึ้น ให้รันคำสั่งด้านล่างเพื่อให้แน่ใจว่าบัญชีโดเมนทั้งหมดได้รับอนุญาตให้ตรวจสอบสิทธิ์บนเครื่อง

sudo realm permit --all

จากนั้น คุณสามารถอนุญาตหรือปฏิเสธการเข้าถึงบัญชีผู้ใช้โดเมนหรือกลุ่มโดยใช้คำสั่ง realm ดังที่แสดงในตัวอย่างด้านล่างนี้

sudo realm deny -a
realm permit --groups ‘domain.tld\Linux Admins’
realm permit [email 
realm permit DOMAIN\\User2

14. จากเครื่อง Windows ที่ติดตั้งเครื่องมือ RSAT คุณสามารถเปิด AD UC และนำทางไปยังคอนเทนเนอร์ คอมพิวเตอร์ และตรวจสอบว่าบัญชีวัตถุที่มีชื่อหรือไม่ ของเครื่องของคุณถูกสร้างขึ้นแล้ว

ขั้นตอนที่ 4: กำหนดค่าการตรวจสอบบัญชี AD

15. ในการตรวจสอบสิทธิ์บนเครื่อง Ubuntu ด้วยบัญชีโดเมน คุณต้องเรียกใช้คำสั่ง pam-auth-update ด้วยสิทธิ์รูท และเปิดใช้งานโปรไฟล์ PAM ทั้งหมด รวมถึงตัวเลือกในการสร้างโดยอัตโนมัติ โฮมไดเร็กทอรีสำหรับแต่ละบัญชีโดเมนเมื่อเข้าสู่ระบบครั้งแรก

ตรวจสอบรายการทั้งหมดโดยกดปุ่ม [space] แล้วกด ok เพื่อใช้การกำหนดค่า

sudo pam-auth-update

16. ในระบบให้แก้ไขไฟล์ /etc/pam.d/common-account ด้วยตนเอง และบรรทัดต่อไปนี้เพื่อสร้างบ้านโดยอัตโนมัติสำหรับผู้ใช้โดเมนที่ได้รับการตรวจสอบสิทธิ์

session    required    pam_mkhomedir.so    skel=/etc/skel/    umask=0022

17. หากผู้ใช้ Active Directory ไม่สามารถเปลี่ยนรหัสผ่านจากบรรทัดคำสั่งใน Linux ให้เปิดไฟล์ /etc/pam.d/common-password และลบ use_autthok จากบรรทัดรหัสผ่านเพื่อดูข้อความที่ตัดตอนมาด้านล่างในที่สุด

password       [success=1 default=ignore]      pam_winbind.so try_first_pass

18. สุดท้าย ให้รีสตาร์ทและเปิดใช้งานบริการ Realmd และ SSSD เพื่อใช้การเปลี่ยนแปลงโดยออกคำสั่งด้านล่าง:

sudo systemctl restart realmd sssd
sudo systemctl enable realmd sssd

19. เพื่อทดสอบว่าเครื่อง Ubuntu สามารถรวมเข้ากับขอบเขตได้สำเร็จหรือไม่ ให้ติดตั้งแพ็คเกจ winbind และรันคำสั่ง wbinfo เพื่อแสดงรายการบัญชีโดเมนและกลุ่มตามที่แสดงด้านล่าง

sudo apt-get install winbind
wbinfo -u
wbinfo -g

20. นอกจากนี้ ให้ตรวจสอบโมดูล Winbind nsswitch ด้วยการออกคำสั่ง getent กับผู้ใช้โดเมนหรือกลุ่มที่ระบุ

sudo getent passwd your_domain_user
sudo getent group ‘domain admins’

21. คุณยังสามารถใช้คำสั่ง Linux id เพื่อรับข้อมูลเกี่ยวกับบัญชี AD ดังที่แสดงในคำสั่งด้านล่าง

id tecmint_user

22. หากต้องการตรวจสอบความถูกต้องบนโฮสต์ Ubuntu ด้วยบัญชี Samba4 AD ให้ใช้พารามิเตอร์ชื่อผู้ใช้ของโดเมนหลังคำสั่ง su – เรียกใช้คำสั่ง id เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับบัญชี AD

su - your_ad_user

ใช้คำสั่ง pwd เพื่อดูไดเร็กทอรีการทำงานปัจจุบันของผู้ใช้โดเมนและคำสั่ง passwd หากคุณต้องการเปลี่ยนรหัสผ่าน

23. หากต้องการใช้บัญชีโดเมนที่มีสิทธิ์รูทบนเครื่อง Ubuntu คุณต้องเพิ่มชื่อผู้ใช้ AD ในกลุ่มระบบ sudo โดยออกคำสั่งด้านล่าง:

sudo usermod -aG sudo [email 

เข้าสู่ระบบ Ubuntu ด้วยบัญชีโดเมนและอัปเดตระบบของคุณโดยใช้คำสั่ง apt update เพื่อตรวจสอบสิทธิ์ของรูท

24. หากต้องการเพิ่มสิทธิ์รูทสำหรับกลุ่มโดเมน ให้เปิดไฟล์แก้ไข /etc/sudoers โดยใช้คำสั่ง visudo และเพิ่มบรรทัดต่อไปนี้ตามภาพประกอบ .

%domain\ [email        		 ALL=(ALL:ALL) ALL

25. หากต้องการใช้การตรวจสอบบัญชีโดเมนสำหรับ Ubuntu Desktop ให้แก้ไขตัวจัดการการแสดงผล LightDM โดยแก้ไข /usr/share/lightdm/lightdm.conf.d/50-ubuntu conf ให้เพิ่มสองบรรทัดต่อไปนี้แล้วรีสตาร์ทบริการ lightdm หรือรีบูตเครื่องเพื่อใช้การเปลี่ยนแปลง

greeter-show-manual-login=true
greeter-hide-users=true

เข้าสู่ระบบ Ubuntu Desktop ด้วยบัญชีโดเมนโดยใช้ไวยากรณ์ your_domain_username หรือ your_domain_username@your_domain.tld

26. หากต้องการใช้รูปแบบชื่อย่อสำหรับบัญชี Samba AD ให้แก้ไขไฟล์ /etc/sssd/sssd.conf เพิ่มบรรทัดต่อไปนี้ใน [sssd] บล็อกดังภาพด้านล่าง

full_name_format = %1$s

และรีสตาร์ท SSSD daemon เพื่อใช้การเปลี่ยนแปลง

sudo systemctl restart sssd

คุณจะสังเกตเห็นว่าพรอมต์ทุบตีจะเปลี่ยนเป็นชื่อย่อของผู้ใช้ AD โดยไม่ต้องผนวกชื่อโดเมนต่อท้าย

27. ในกรณีที่คุณไม่สามารถเข้าสู่ระบบได้เนื่องจากอาร์กิวเมนต์ enumerate=true ที่ตั้งไว้ใน sssd.conf คุณต้องล้างฐานข้อมูลแคช sssd โดยออกคำสั่งด้านล่าง : :

rm /var/lib/sss/db/cache_tecmint.lan.ldb

นั่นคือทั้งหมด! แม้ว่าคู่มือนี้จะเน้นไปที่การรวมเข้ากับ Samba4 Active Directory เป็นหลัก แต่ก็สามารถใช้ขั้นตอนเดียวกันนี้เพื่อรวม Ubuntu เข้ากับบริการ Realmd และ SSSD ลงใน Microsoft Windows Server Active Directory