ติดตั้ง openldap บน ubuntu

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 22-02-2553

ดูแลโดย KX

  • ทดสอบกับ Ubuntu 8.04, openldap 2.4.9


  1. ติดตั้งด้วยคำสั่ง sudo apt-get install slapd

    slapd คือชื่อ Service ของ OpenLDAP Server

    จากนั้นระบบจะให้กำหนดรหัสผ่านของ Admin ให้ใส่ลงไป และทำการยืนยันอีกครั้ง
    ระบบจะทำการติดตั้งจนเสร็จ

    หากต้องการทราบรุ่นของ OpenLDAP ใช้คำสั่ง sudo dpkg-query -l | grep slapd

  2. สั่งให้ slapd ทำงานด้วยคำสั่ง sudo /etc/init.d/slapd start
  3. การปรับแต่ง OpenLDAP ให้แก้ไขไฟล์ /etc/ldap/slapd.conf
    ฐานข้อมูลของระบบเก็บอยู่ที่ /var/lib/ldap
  4. การวางโครงสร้างของ Directory Service
    ในการติดตั้งครั้งแรก ระบบจะตั้งโครงสร้างตาม Domain ที่กำหนดไว้ของเครื่อง Server
    ตัวอย่างเช่น psu.ac.th

    ในไฟล์ /etc/ldap/slapd.conf จะกำหนดไว้ใน Directive : suffix ว่า
    suffix      "dc=example,dc=org"

    ตัวอย่างการแก้ไข โครงสร้างจาก example.org ให้เป็น my.domain
    suffix     "dc=my,dc=domain"
    rootdn   "cn=admin,dc=my,dc=domain"
    rootpw  xxxxxxxxxx
    access to attrs=userPassword,shadowLastChange
              by dn="cn=admin,dc=my,dc=domain" write
              by anonymous auth
              by self write
              by * none
    access to *
               by dn="cn=admin,dc=my,dc=domain" write
               by * read
    จากนั้นให้ Save

    หากมีโครงสร้างเดิมอยู่แล้วต้องการลบทิ้ง ให้ใช้คำสั่ง
    sudo rm /var/lib/ldap/*

     แล้ว Restart ด้วยคำสั่ง sudo /etc/init.d/slapd restart

  5. หากต้องการกู้ระบบเดิมที่ทำการ Backup เป็นไฟล์ .ldif ไว้แล้ว สมมุติชื่อ backup.ldif
    โดยต้องการให้โครงสร้างเหมือนเดิมทุกประการ
    ให้ทำดังนี้

    หยุดการทำงานของ OpenLDAP ด้วยคำสั่ง sudo /etc/init.d/slapd stop

    หากมีโครงสร้างเดิมอยู่แล้วต้องการลบทิ้ง ให้ใช้คำสั่ง
    sudo rm /var/lib/ldap/*

    แล้วใช้คำสั่ง sudo slapadd -l backup.ldif

    กำหนด owner ให้ Database Directory ให้เป็น openldap:openldap ด้วยคำสั่ง sudo chown -R openldap.openldap /var/lib/ldap

    แล้วเริ่มการทำงานใหม่ ด้วยคำสั่ง sudo /etc/init.d/slapd start
  6. การทำ Replication ด้วย Syncrepl
    แก้ไขไฟล์ /etc/ldap/slapd.conf
    ใส่ค่าต่อไปนี้ลงไป
    syncrepl rid=001
         provider=ldap://provider.my.domain:389
         type=refreshOnly
         interval=01:00:00:00
         searchbase="dc=my,dc=domain"
         filter="(objectClass=*)"
         scope=sub
         attrs="cn,sn,ou,telephoneNumber,title,l"
         schemachecking=off
         bindmethod=simple
         binddn="cn=admin,dc=my,dc=domain"
         credentials=xxxxxxxxxx
    จากนั้น Save ก็เรียบร้อย

    ค่าข้างต้น จะทำการ Replication จาก Provider ชื่อ ldap://provider.my.domain:389 โดยทำการ RefreshOnly