ติดตั้ง OpenLDAP Server บน Fedora 13

การเปลี่ยนแปลงอย่างหนึ่งใน Fedora เวอร์ชั่นหลังๆ คือการเปลี่ยนวิธีการคอนฟิก OpenLDAP ซึ่งจะเป็นรูปแบบใหม่ที่มีมาตั้งแต่ OpenLDAP เวอร์ชั่น 2.3 เป็นต้นมา แต่ทาง Fedora เพิ่งเริ่มนำมาใช้

แบบเก่าไฟล์คอนฟิกหลักจะอยู่ในไฟล์ /etc/openldap/slapd.conf แต่แบบใหม่คอนฟิกจะถูกเก็บแยกเป็นไฟล์ LDIF เป็นโครงสร้างอยู่ในไดเร็คทอรี /etc/openldap/slapd.d/ และเมื่อรันเซอร์วิส ไฟล์เหล่านี้จะถูกอ่านเข้าไปใน LDAP เลย ซึ่งทำให้เราสามารถแก้ไขคอนฟิกเซิร์ฟเวอร์ ได้ เหมือนกับการแก้ไขข้อมูลอื่นๆ ใน LDAP

รายละเอียดเพิ่มเติมหาอ่านได้จาก ข้อมูลอ้างอิง Configuring slapd

เพื่อความสะดวก ทางทีมพัฒนา OpenLDAP ได้สร้างคำสั่ง slaptest เพื่อใช้ในการเปลี่ยนคอนฟิกแบบเก่าไฟล์เดียว ให้เป็นรูปแบบใหม่ได้

ในบทความนี้จะแสดงขั้นตอนการติดตั้งและคอนฟิก OpenLDAP บนเครื่อง Fedora 13 (x86_64)

ติดตั้ง openldap

ใช้คำสั่ง rpm เพื่อตรวจสอบการติดตั้ง openldap ว่ามีอยู่แล้วหรือไม่

[root@fc13-64a ~]# rpm -qa | grep openldap
openldap-2.4.21-4.fc13.x86_64

เพื่อจะคอนฟิกเป็นเซิร์ฟเวอร์ได้ ต้องติดตั้งไฟล์ rpm เพิ่มเติม บางไฟล์หาได้จากแผ่นดีวีดีติดตั้ง

[root@fc13-64a ~]# mount /dev/scd0 /media
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@fc13-64a ~]# cd /media/Packages/
[root@fc13-64a Packages]# rpm -i libtool-ltdl-2.2.6-20.fc13.x86_64.rpm
[root@fc13-64a Packages]# rpm -i openldap-clients-2.4.21-4.fc13.x86_64.rpm

ดาวน์โหลดไฟล์เพิ่มเติมจาก fc13 Everything แล้วติดตั้ง

[root@fc13-64a Everything]# rpm -i openldap-servers-2.4.21-4.fc13.x86_64.rpm

ไฟล์คอนฟิกดีฟอลต์ของ OpenLDAP จะถูกติดตั้งอยู่ใน /etc/openldap/

[root@fc13-64a ~]# cd /etc/openldap/
[root@fc13-64a openldap]# ls -l
total 24
drwxr-xr-x. 2 root root 4096 Feb 24 16:19 cacerts
-rw-r--r--. 1 root root  245 Feb 24 16:19 ldap.conf
drwxr-xr-x  3 root root 4096 Jul 16 20:37 schema
-rw-r-----  1 root ldap 4153 Feb 24 16:19 slapd.conf.bak
drwx------  3 ldap ldap 4096 Jul 16 20:37 slapd.d

รันเซอร์วิส

ใช้คำสั่ง service เพิ่มรัน slapd (OpenLDAP server)

[root@fc13-64a ~]# service slapd start
/var/lib/ldap/__db.004 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.001 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.002 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.006 is not owned by "ldap"              [WARNING]
/var/lib/ldap/__db.005 is not owned by "ldap"              [WARNING]
/var/lib/ldap/alock is not owned by "ldap"                 [WARNING]
/var/lib/ldap/__db.003 is not owned by "ldap"              [WARNING]
ln: accessing `/var/run/openldap/slapd.pid': No such file or directory

มีข้อผิดพลาดฟ้องเรื่อง permission ไม่ถูกต้อง

[root@fc13-64a ~]# ls -l /var/lib/ldap/
total 884
-rw------- 1 root root   2048 Jul 16 20:37 alock
-rw------- 1 root root  24576 Jul 16 20:37 __db.001
-rw------- 1 root root 212992 Jul 16 20:37 __db.002
-rw------- 1 root root 270336 Jul 16 20:37 __db.003
-rw------- 1 root root 163840 Jul 16 20:37 __db.004
-rw------- 1 root root 802816 Jul 16 20:37 __db.005
-rw------- 1 root root  32768 Jul 16 20:37 __db.006

ใช้คำสัง chown เพื่อเปลี่ยนเจ้าของไฟล์ (owner)

[root@fc13-64a ldap]# chown ldap.ldap *
[root@fc13-64a ldap]# ls -l
total 884
-rw------- 1 ldap ldap   2048 Jul 16 20:37 alock
-rw------- 1 ldap ldap  24576 Jul 16 20:37 __db.001
-rw------- 1 ldap ldap 212992 Jul 16 20:37 __db.002
-rw------- 1 ldap ldap 270336 Jul 16 20:37 __db.003
-rw------- 1 ldap ldap 163840 Jul 16 20:37 __db.004
-rw------- 1 ldap ldap 802816 Jul 16 20:37 __db.005
-rw------- 1 ldap ldap  32768 Jul 16 20:37 __db.006

ใช้คำสั่ง service เพื่อรันเซอร์วิสอีกครั้ง

[root@fc13-64a ldap]# service slapd start
Starting slapd:                                            [  OK  ]

ใช้คำสั่ง ps เพื่อตรวจสอบ process

[root@fc13-64a ldap]# ps -ef | grep ldap
ldap     22636     1  0 21:18 ?        00:00:00 /usr/sbin/slapd -h  ldap:/// -u ldap

ใช้คำสั่ง service เพื่อปิดเซอร์วิส

[root@fc13-64a ldap]# service slapd stop
Stopping slapd:                                            [  OK  ]

แล้วทดลองรันเซอร์วิสอีกครั้ง จะมีข้อความฟ้องเรื่อง performance

[root@fc13-64a ldap]# service slapd start
Checking configuration files for slapd:                    [WARNING]
bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).
Expect poor performance for suffix "dc=my-domain,dc=com".
config file testing succeeded
Starting slapd:                                            [  OK  ]

ปิดเซอร์วิสอีกครั้ง

[root@fc13-64a ldap]# service slapd stop
Stopping slapd:                                            [  OK  ]

เพื่อปรับปรุงเรื่อง performance ต้องสร้างไฟล์ DB_CONFIG  จากตัวอย่างไฟล์ใน /usr/share/doc/openldap-servers-2.4.21/

[root@fc13-64a ldap]# cp /usr/share/doc/openldap-servers-2.4.21/DB_CONFIG.example DB_CONFIG
[root@fc13-64a ldap]# chown ldap.ldap DB_CONFIG
[root@fc13-64a ldap]# chmod 600 DB_CONFIG

ทดสอบการเปิด/ปิด เซอร์วิส ครั้งแรกจะมีฟ้องว่า มีการปรับเปลี่ยนคอนฟิก แล้วหลังจากนั้นก็สามารถรันได้ตามปกติ

[root@fc13-64a ldap]# service slapd start
Checking configuration files for slapd:                    [WARNING]
bdb_db_open: DB_CONFIG for suffix "dc=my-domain,dc=com" has changed.
Performing database recovery to activate new settings.
bdb_db_open: database "dc=my-domain,dc=com": recovery skipped in read-only mode. Run manual recovery if errors are encountered.
config file testing succeeded
Starting slapd:                                            [  OK  ]
[root@fc13-64a ldap]# service slapd stop
Stopping slapd:                                            [  OK  ]
[root@fc13-64a ldap]# service slapd start
Starting slapd:                                            [  OK  ]

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.