การตั้งค่า openldap พื้นฐานโดยใช้การกำหนดค่า slapd.d


14

ฉันกำลังพยายามตั้งค่าเซิร์ฟเวอร์ทดสอบ openldap โดยที่ไม่เคยทำงานกับ openldap มาก่อน ฉันใช้แพ็คเกจ openldap-servers มาตรฐานบนเครื่องที่ใช้ Redhat (ใช้ Oracle Linux) ฉันติดตั้งแพ็คเกจแล้วและเริ่มเซิร์ฟเวอร์

ตอนนี้ฉันไม่รู้เลยว่าจะให้เซิร์ฟเวอร์ทำอะไรที่มีประโยชน์ได้จริง ฉันไม่สามารถเรียกดูได้โดยใช้ luma ('ไม่มีวัตถุดังกล่าว' เมื่อพยายามเข้าถึงรายการระดับบนสุด) เอกสาร openldap นั้นป้านว่าคุณได้รับเซิร์ฟเวอร์มาจากการทำงานขั้นพื้นฐานและข้อมูลออนไลน์ทั้งหมดได้อย่างไร ใช้สำหรับไฟล์ slapd.conf เก่าแทน slapd.d ใหม่และ cn = config

ฉันจะได้รับการติดตั้งแบบเปิดแพคเกจวานิลลาที่ทำงานได้ที่ฉันสามารถเรียกดูไปยังรูตดีเอ็นในลูมาได้อย่างไร?

คำตอบ:


20

ฉันรู้สึกถึงความเจ็บปวดของคุณ.

ลองสิ่งนี้ (ผ่านการทดสอบบน Scientific Linux 6.5 ดังนั้นควรใช้กับ OL ด้วย):

  • ติดตั้งเซิร์ฟเวอร์ OpenLDAP: yum install openldap-servers openldap-clients)
  • เริ่มต้นslapd: service slapd start(และอาจจะchkconfig slapd on)
  • สร้างรหัสผ่านสำหรับcn=configผู้ใช้และผู้ดูแลระบบ LDAP slappasswdปกติของคุณด้วย จดบันทึกผลลัพธ์ของสิ่งนี้
  • สร้างไฟล์ LDIF โดยมีเนื้อหาดังต่อไปนี้:
dn: olcDatabase = {0} config, cn = config
ประเภท: แก้ไข
เพิ่ม: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj

dn: olcDatabase = {2} bdb, cn = config
ประเภท: แก้ไข
เพิ่ม: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj
-
แทนที่: olcRootDN
olcRootDN: cn = ผู้ดูแลระบบ dc = your, dc = ฐาน, dc = com
-
แทนที่: olcSuffix
olcSuffix: dc = your, dc = base, dc = com
  • ค่าสำหรับolcRootPWควรถูกแทนที่ด้วยผลลัพธ์ของslappaswdคุณที่ระบุไว้ก่อนหน้า
  • โดยธรรมชาติolcSuffixและolcRootDNควรปรับให้เข้ากับ DN ฐานใหม่ของคุณ
  • ฟีดทั้งหมดนี้ไปยังเซิร์ฟเวอร์ LDAP ด้วยคำสั่งต่อไปนี้:

    ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif

afer ว่าคุณควรจะสามารถเชื่อมต่อกับทั้งสองcn=configและdc=your,dc=base,dc=comผ่าน LDAP


7
ขอบคุณนี่เป็นเหมือนฝันร้ายสำหรับผู้เริ่มต้น มีการตั้งค่า แต่ในบรรทัดแรกของ slap.d / * - อย่าแก้ไขในขณะที่วิธีการ / การเริ่มต้น / คู่มือทั้งหมดบอกเกี่ยวกับ "เปิดการกำหนดค่าในการแก้ไขที่คุณชื่นชอบ"
fghj

9

ก่อนที่คุณจะเริ่มต้นเซิร์ฟเวอร์ OpenLDAP คุณต้องตั้งค่าบางอย่างก่อน

การกำหนดค่าพื้นฐาน

คุณต้องตั้งค่าผู้ใช้รูทและรหัสผ่านพร้อมกับกำหนด DN ฐานของคุณ ในslapd.confค้นหาบรรทัดต่อไปนี้บรรทัดและตั้งค่าเป็นค่าที่คุณต้องการ

suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"

โดยปกติ DN ฐาน (หมายถึงคุณsuffixในไฟล์) dc=เป็นส่วนหนึ่งของชื่อโดเมนของคุณคั่นด้วยเครื่องหมายจุลภาคและนำหน้าด้วย ดังนั้นอาจจะกลายเป็นserverfault.com dc=serverfault,dc=comคุณrootdnต้องอยู่ภายใต้คำต่อท้ายนั้น

คุณต้องเปลี่ยนบรรทัดที่กำหนดรหัสผ่านรูท คุณสามารถตั้งค่าเป็นข้อความธรรมดาหรือใช้slappasswdเพื่อสร้างแฮช จากนั้นคุณต้องใส่ค่าธรรมดาหรือค่าแฮชออกจากslappasswdในบรรทัดที่มีลักษณะดังนี้:

rootpw myultrasecurepassword

schemas

ตอนนี้เป็นความคิดที่ดีที่จะเริ่มคิดเกี่ยวกับสกีมาที่คุณต้องการใช้ สคีมากำหนดคุณสมบัติที่วัตถุสามารถมีได้ดังนั้นคุณต้องรวมสกีมาที่มีคุณสมบัติที่คุณต้องการ สกีมาเหล่านี้รวมอยู่ที่ด้านบนสุดslapd.confและโดยทั่วไปแล้วที่นี่เป็นสกีมาพื้นฐานขั้นพื้นฐานที่คุณต้องการ:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

พา ธ เหล่านี้คือเส้นทางที่ใช้ใน Arch Linux ดังนั้นคุณอาจจำเป็นต้องปรับเปลี่ยนให้เหมาะกับ Oracle Linux

เกี่ยวกับslapd.confvsslapd.d

OpenLDAP ได้เปลี่ยนจากการกำหนดค่าแบบออฟไลน์ (ทำในslapd.conf) การกำหนดค่าออนไลน์จัดเก็บข้อมูลในพิเศษต้นไม้ที่พบในcn=config slapd.dอย่างไรก็ตามการแก้ไขldifไฟล์ในslapd.dนั้นเป็นกระบวนการที่เจ็บปวดดังนั้นจึงง่ายต่อการแก้ไขslapd.confดังที่กล่าวมาแล้วแปลงเป็นslapd.dรูปแบบใหม่

slapd.dก่อนลบทุกอย่างใน ถัดไปเรียกใช้คำสั่งต่อไปนี้ตรวจสอบให้แน่ใจว่าได้ปรับเส้นทางไปยัง Oracle Linux:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

จากนั้นเพียงตั้งเจ้าของเป็นผู้ใช้และกลุ่ม LDAP ของคุณในไดเรกทอรีนั้นซ้ำ ๆ และคุณควรพร้อมที่จะไป สิ่งนี้จะต้องทำทุกครั้งที่คุณแก้ไขslapd.conf- อย่าลืมหยุดเซิร์ฟเวอร์ OpenLDAP ก่อนที่จะทำ!

วิ่งครั้งแรก

ก่อนที่คุณจะสามารถใช้ไดเรกทอรีได้คุณต้องสร้าง DN พื้นฐาน (และผู้ใช้รูท) สร้าง.ldifไฟล์ที่มีบรรทัดคล้ายกับที่แสดงดังต่อไปนี้:

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example

dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root

ตอนนี้เริ่มต้นเซิร์ฟเวอร์ OpenLDAP เราเพียงต้องการส่งข้อมูลนั้นไปยังไดเรกทอรี LDAP:

ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif

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

ตอนนี้คุณควรจะตั้งค่าไดเรกทอรี LDAP ที่ใช้งานได้และพร้อมที่จะบรรจุแล้ว!


Arch Linux wiki เป็นแหล่งข้อมูลที่ดีเกี่ยวกับหัวข้อนี้ - ดูhttps://wiki.archlinux.org/index.php/OpenLDAPและhttps://wiki.archlinux.org/index.php/LDAP_Authenticationหากคุณต้องการ เรียนรู้เพิ่มเติม


สิ่งเหล่านี้ส่วนใหญ่ทำโดยตัวจัดการแพคเกจและดำเนินการจัดการการกำหนดค่าผ่านทางslapd.confและslaptestในขณะที่เซิร์ฟเวอร์หยุดทำงานจะมีจุดประสงค์ในการกำหนดค่าออนไลน์
สเวน

2
สำหรับการกำหนดค่าเริ่มต้นใช้slapd.confงานได้ดีและแน่นอนว่าใช้งานง่ายกว่าการแก้ไขslapd.dโดยตรง ผมไม่ทราบว่าเท่าไหร่ของไดเรกทอรีจะกระทำโดยผู้จัดการแพคเกจใน Oracle Linux แต่ถ้า OP ไม่สามารถเข้าถึงฐาน DN แล้วมันไม่สามารถได้รับเพียงพอ
Xenopathic

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