ตรวจสอบ OpenBSD กับ Active Directory


24

แก้ไข:ฟอร์แมตใหม่เป็นคำถาม & คำตอบ หากใครก็ตามสามารถเปลี่ยนจาก Community Wiki เป็นคำถามทั่วไปได้ก็อาจเหมาะสมกว่าเช่นกัน

ฉันจะตรวจสอบ OpenBSD กับ Active Directory ได้อย่างไร


ดีมาก! ที่มีลักษณะอย่างละเอียดและเขียนได้ดีมาก ฉันไม่ได้ใช้ OpenBSD แต่ชิ้นส่วนโฆษณาดูตรงไปตรงมา
Evan Anderson

+1 สำหรับคำแนะนำที่ดีแม้ว่ามันจะไม่ใช่คำถาม
David Schmitt

คุณควรเปลี่ยนเป็นรูปแบบคำถามและคำตอบ
Doug Luxem

เปลี่ยนแม้ว่าจะยังคงเป็น Wiki ชุมชน หากคนอื่นสามารถเปลี่ยนได้ให้ไปข้างหน้า
sh-beta

คำตอบ:


17

คำนำ

การพิสูจน์ตัวตนกับ Active Directory กับ Kerberos นั้นค่อนข้างง่ายในระบบที่ใช้ PAM แต่ OpenBSD ไม่ได้ทำให้ยากขึ้น จาก tcpdump ดูเหมือนว่าระบบ PAM กำลังทำการตรวจสอบล่วงหน้าในขณะที่ระบบ bsd_auth ของ OpenBSD ใช้กระบวนการตรวจสอบสิทธิ์ Kerberos ทั้งหมด

อย่างไรก็ตามนี่ใช้เวลาสักครู่กว่าจะคิดออกดังนั้นหวังว่าคำแนะนำสั้น ๆ บางอย่างจะช่วยคุณประหยัดเวลา

บันทึกย่อสั้น ๆ ก่อนที่เราจะเริ่มต้น:

  • ผู้ใช้จะต้องมีอยู่ในระบบ OpenBSD ก่อนที่จะพยายามเข้าสู่ระบบ พวกเขาไม่ได้สร้างอัตโนมัติ
  • หากคุณต้องการให้ผู้ใช้สร้างอัตโนมัติให้ดูที่ Samba / Winbind ฉันไม่มีอะไรนอกจากปัญหา (ขัดข้องอธิบายไม่ได้สแปมอย่างจริงจังบันทึกการตรวจสอบไม่น่าเชื่อถือ) จากมันดังนั้นฉันจะใช้มันเมื่อฉันต้อง
  • สิ่งนี้ได้รับการทดสอบใน OpenBSD 4.5 และ Windows Server 2003 ฉันค่อนข้างแน่ใจว่ามันจะทำงานกับ Win2k แต่เป็น YMMV
  • OpenBSD รุ่นนี้ใช้ Heimdal 0.7.2 ทุกอย่างที่นี่นอกเหนือจากเส้นทางและสิ่งที่ login.conf อาจทำงานกับ * nixes อื่นที่ใช้ Heimdal เดียวกัน แต่อีกครั้ง YMMV

คำแนะนำ

ขั้นตอนเหล่านี้ถือว่าคุณพยายามรับรองความถูกต้อง myuser@myhost.fqdn กับโดเมน EXAMPLE.COM ตัวควบคุมโดเมนคือ pdc.EXAMPLE.COM

  1. สร้างบัญชีผู้ใช้ Active Directory ชื่อmyhost (นั่นไม่ใช่การพิมพ์ผิดคำแนะนำเหล่านี้จะไม่สามารถใช้ได้กับบัญชีคอมพิวเตอร์) ปิดใช้งานการหมดอายุของรหัสผ่านและไม่อนุญาตให้ผู้ใช้เปลี่ยนรหัสผ่านของตัวเอง ตั้งรหัสผ่านเป็นสิ่งที่คุณต้องการ - มันจะเปลี่ยนในไม่ช้า

  2. อาจเป็นความคิดที่ดีในการสร้างบัญชีผู้ใช้ภายใต้ OU ใหม่ลบออกจากกลุ่มผู้ใช้โดเมนและเพิ่มลงในกลุ่มเฉพาะ ทั้งหมดนี้เป็นเรื่องของรสนิยมและรูปแบบความปลอดภัยของคุณ

  3. ใน pdc.EXAMPLE.COM ให้ดาวน์โหลดและติดตั้งเครื่องมือสนับสนุน Windows Server (โดยเฉพาะคุณต้องมี ktpass.exe)

  4. ใน pdc.EXAMPLE.COM ให้เรียกใช้:

    ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -pType KRB5 _NT_PRINCIPAL + rndpass

    สิ่งนี้จะอัปเดตรหัสผ่านของผู้ใช้ myhost เป็นแบบสุ่ม (+ rndpass) แม็พหลักการของ Kerberos "host/myhost.fqdn@EXAMPLE.COM" กับผู้ใช้ "myhost" ใน Active Directory จากนั้นจึงทิ้งข้อมูลหลักและคีย์ส่วนตัวลงใน - ออกไฟล์ keytab

  5. คัดลอก c: \ temp \ myhost.keytab ไปยัง myhost อย่างปลอดภัยและลบไฟล์จาก pdc.EXAMPLE.COM

  6. บน myhost ให้เพิ่ม AD keytab ในแท็บหลักของคุณ:

    คัดลอก ktutil /path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. กำหนดค่า /etc/krb5.conf ด้านล่างเป็นขั้นต่ำเปลือยที่คุณต้องการ มีตัวเลือกมากมายให้ดูที่ manpage สำหรับรายละเอียดเพิ่มเติม เพียงแค่ตั้งค่านาฬิกาที่ยอมรับได้สูงสุดถึง 5 นาทีทำให้ EXAMPLE.COM เป็นขอบเขตเริ่มต้นและบอก Kerberos ถึงวิธีการแปลระหว่าง DNS และ Kerberos realms

    [libdefaults]
    clockskew = 300
    default_realm = EXAMPLE.COM

    [อาณาจักร]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm] .EXAMPLE.COM
    = EXAMPLE.COM

  8. ตรวจสอบว่าคุณสามารถรับตั๋ว:

    # kinit Administrator@EXAMPLE.COM
    Administrator@EXAMPLE.COM's Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: Administrator@EXAMPLE.COM

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM

  9. แก้ไข /etc/login.conf เพื่อใช้การพิสูจน์ตัวตน Kerberos การกำหนดค่า login.conf ที่แน่นอนของคุณจะแตกต่างกันไปขึ้นอยู่กับวิธีที่คุณใช้ระบบของคุณ แต่จากการติดตั้งวานิลลาเพื่อใช้ Kerberos เพียงแก้ไขและแสดงความคิดเห็นบรรทัดนี้ภายใต้คลาสล็อกอินเริ่มต้น:

    :tc=auth-defaults:\

    และเพิ่มข้างบน:

    :auth=krb5-or-pwd:\

    สิ่งนี้จะตรวจสอบ Kerberos ก่อนเว้นแต่ว่าผู้ใช้เป็นรูท หาก Kerberos ล้มเหลวจะใช้รหัสผ่านในเครื่อง

  10. เพิ่มผู้ใช้ที่คุณต้องการรับรองความถูกต้องในโฮสต์นี้ ปล่อยให้รหัสผ่านว่างเปล่าเว้นเสียแต่ว่าคุณต้องการให้พวกเขาสามารถใช้ทั้ง Active Directory และรหัสผ่านท้องถิ่น (ไม่แนะนำ)

    คุณสามารถเว้นว่างรหัสผ่านของผู้ใช้ที่มีอยู่ "chpass <user>" และแทนที่ค่า "รหัสผ่านที่เข้ารหัส:" ด้วยเครื่องหมายดอกจัน (*)

  11. ทดสอบ SSH และ Sudo ทั้งสองควรทำงานอย่างไม่มีที่ติกับข้อมูลประจำตัว Active Directory ของคุณ

นั่นคือทั้งหมดที่มีให้มัน

การเชื่อมโยง

ไซต์ที่มีประโยชน์สองแห่ง:


ดูเหมือนว่า 2008 R2 จะมีการอบ ktpass.exe บางทีอาจเป็นปี 2008 เช่นกันไม่สามารถพูดได้อย่างแน่นอนในขั้นตอนนี้ ถ้าทุกคนสามารถชี้แจงได้นั่นจะเป็นการดี
Aaron Mason

นอกจากนี้ในการทำเช่นนี้กับ 5.7 เป็นต้นไปคุณจะต้องติดตั้งแพคเกจ Heimdal - มันถูกลบออกจากฐานใน 5.6
Aaron Mason

ภาคผนวกไปยังความคิดเห็นก่อนหน้า - คุณจะต้องติดตั้งแพคเกจ login_krb5 และคัดลอกlogin_krb5-or-pwdไป/usr/libexec/authยัง - ไฟล์การกำหนดค่าและตารางคีย์ตอนนี้อยู่ใน/etc/heimdalและไม่/etc/kerberosVเหมือนในรุ่นก่อนหน้าของ OpenBSD
Aaron Mason

5

การอัปเดตคำแนะนำข้างต้นเนื่องจากมีการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ตั้งแต่นั้นมา

ใน OpenBSD 5.6 มีการตัดสินใจที่จะลบ Heimdal ออกจากการกระจายฐานเนื่องจากความกังวลเกี่ยวกับคุณภาพของรหัสและไม่มีใครเต็มใจที่จะใช้เวลาในการตรวจสอบ ใน 5.7 มันให้บริการเป็นแพคเกจ (สำหรับ 5.6 คุณจะต้องสร้างจากแหล่งที่มาหรือหาวิธีเปิดใช้งานมันในแหล่งที่มา) ดังนั้นก่อนที่จะทำตามคำแนะนำข้างต้นขั้นตอนเพิ่มเติมต่อไปนี้จะต้องเสร็จสมบูรณ์:

-3 ติดตั้งheimdalและlogin_krb5แพ็คเกจจากกระจกโปรดของคุณ

-2 คัดลอกไป/usr/local/libexec/auth/login_krb5*/usr/libexec/auth

-1 หากคุณตั้งใจจะใช้เครื่องมือ heimdal มาก ๆ ให้เพิ่ม/usr/local/heimdal/binเส้นทางของระบบของคุณ มิฉะนั้นโปรดอ้างอิงเครื่องมือด้วยพา ธ เต็มเมื่อใช้งาน

นอกจากนี้ไฟล์krb5.confและkrb5.keytabยังเข้าสู่/etc/heimdalตอนนี้

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