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

บทความนี้ขอปรับปรุงเนื้อหาการติดตั้ง OpenLDAP Server เพื่อติดตั้งบน Fedora 10 ที่ ติดตั้ง Fedora 10 แบบประหยัดพื้นที่สุด  และเตรียมความพร้อมคอนฟิกบางส่วของเซิร์ฟเวอร์สำหรับติดตั้ง Samba และคอนฟิกเป็น Domain Controller ต่อไป

จากการติดตั้งแบบประหยัดพื้นที่สุดจะมี openldap ที่เป็นเฉพาะในส่วน library ที่จำเป็นในการใช้งานเท่านั้น สามารถตรวจสอบ package openldap ได้โดยใช้คำสั่ง rpm

[root@fc10-pdc ~]# rpm -qa | grep openldap
openldap-2.4.12-1.fc10.x86_64

เพื่อจะทำหน้าที่เป็น OpenLDAP Server จำเป็นต้องลง package เพิ่มเติม ไฟล์ rpm สองไฟล์มีอยู่ในแผ่น DVD ติดตั้งแล้ว สามารถ mount แล้วติดตั้งได้เลย

[root@fc10-pdc ~]# mount /dev/scd0 /media/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@fc10-pdc ~]# rpm -i  /media/package/openldap-clients-2.4.12-1.fc10.x86_64.rpm
[root@fc10-pdc ~]# rpm -i  /media/package/libtool-ltdl-1.5.26-4.fc10.x86_64.rpm
[root@fc10-pdc ~]# umount /media/

อีก package หนึ่ง ที่จำเป็นคือ openldap-servers ต้องดาวน์โหลดมาจาก Fedora 10 Everything  ไฟล์ชื่อ openldap-servers-2.4.12-1.fc10.x86_64.rpm

ใช้คำสั่ง rpm เพื่อติดตั้ง openldap-servers

จะมีข้อความขึ้นบนหน้าจอ ซึ่งเป็นการสร้างคีย์ต่างๆ เพื่อความปลอดภัยของข้อมูล

[root@fc10-pdc ~]# rpm -i openldap-servers-2.4.12-1.fc10.x86_64.rpm
/etc/pki/tls/certs /
umask 77 ; \
        PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
        /usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
        cat $PEM1 >  slapd.pem ; \
        echo ""    >> slapd.pem ; \
        cat $PEM2 >> slapd.pem ; \
        rm -f $PEM1 $PEM2
Generating a 1024 bit RSA private key
..................++++++
....................++++++
writing new private key to '/tmp/openssl.QqH8Pr'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:State or Province Name (full name) [Berkshire]:Locality Name (eg, city) [Newbury]:Organization Name (eg, company) [My Company Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []:/

หลังจากติดตั้งแล้ว สามารถตรวจสอบเวอร์ชั่นของไฟล์ rpm ที่ติดตั้งได้ ดังนี้

[root@fc10-pdc ~]# rpm -qa | grep openldap
openldap-2.4.12-1.fc10.x86_64
openldap-clients-2.4.12-1.fc10.x86_64
openldap-servers-2.4.12-1.fc10.x86_64

แก้ไขคอนฟิกไฟล์ /etc/openldap/slapd.conf

ก่อนที่จะเริ่มแก้ไขไฟล์คอนฟิก ต้องรันคำสั่ง spappasswd เพื่อเข้ารหัส Root PW แล้วนำผลลัพธ์ที่ได้ไปใส่ไว้ส่วนของคอนฟิก rootpw ในไฟล์ slapd.conf โดยรหัสนี้จะใช้เมื่อต้องการแก้ไขข้อมูลที่อยู่ใน LDAP เช่นเพิ่ม แก้ไข ลบ ข้อมูล

ตัวอย่างการรันคำสั่ง spappasswd

[root@fc10-pdc ~]# slappasswd
New password:
Re-enter new password:
{SSHA}fFeU/EgRu6B9dbg7dlo4sxcUu19IMWJ2

ไฟล์คอนฟิกหลักของ OpenLDAP Server คือไฟล์ /etc/openldap/slapd.conf ในเบื้องต้นจะต้องมีการแก้ไขบางส่วนก่อนที่จะเริ่มใช้งานได้ ในที่นี้จะสมมติข้อมูลเบื้องต้นสำหรับการคอนฟิก OpenLDAP Server เป็นดังนี้ โดยแสดงเฉพาะส่วนที่เพิ่มเติมเท่านั้น

[root@fc10-pdc ~]# cat /etc/openldap/slapd.conf
...
include         /etc/openldap/schema/samba.schema
...
database        bdb
suffix          "dc=fc10-ldap,dc=com"
rootdn          "uid=root,ou=People,dc=fc10-ldap,dc=com"
rootpw          {SSHA}fFeU/EgRu6B9dbg7dlo4sxcUu19IMWJ2
...

รันเซอร์วิส ldap

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

[root@fc10-pdc ~]# service ldap start
Starting slapd:                                            [  OK  ]

ตรวจสอบ process ที่รัน

[root@fc10-pdc ~]# ps -ef | grep ldap
ldap      3064     1  0 17:13 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -u ldap

ถึงจุดนี้ OpenLDAP Server สามารถใช้งานได้แล้ว แต่ที่จริงต้องมีไฟล์คอนฟิกเพิ่มเติม เพื่อเพิ่มประสิทธิภาพในการค้นหาข้อมูลใน LDAP

ทดสอบโดยใช้คำสั่ง service stop เพื่อปิดเซอร์วิส openldap และใช้คำสั่ง service start อีกครั้ง จะมีข้อความฟ้องเตือนเรื่องเกี่ยวกับ performance

[root@fc10-pdc ~]# service ldap stop
Stopping slapd:                                            [  OK  ]
[root@fc10-pdc ~]# service ldap 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=fc10-ldap,dc=com".
config file testing succeeded
Starting slapd:                                            [  OK  ]
ตรวจสอบไฟล์ที่อยู่ใน /var/lib/ldap/
[root@fc10-pdc ~]# cd /var/lib/ldap/
[root@fc10-pdc ldap]# ls -l
total 964
-rw-r--r-- 1 ldap ldap     2048 2009-05-15 17:14 alock
-rw------- 1 ldap ldap    24576 2009-05-15 17:13 __db.001
-rw------- 1 ldap ldap   188416 2009-05-15 17:13 __db.002
-rw------- 1 ldap ldap   270336 2009-05-15 17:13 __db.003
-rw------- 1 ldap ldap    98304 2009-05-15 17:13 __db.004
-rw------- 1 ldap ldap   729088 2009-05-15 17:13 __db.005
-rw------- 1 ldap ldap    32768 2009-05-15 17:13 __db.006
-rw------- 1 ldap ldap     8192 2009-05-15 17:13 dn2id.bdb
-rw------- 1 ldap ldap    32768 2009-05-15 17:13 id2entry.bdb
-rw------- 1 ldap ldap 10485760 2009-05-15 17:14 log.0000000001

ถึงแม้จะใช้งาน OpenLDAP Server ได้ แต่แนะนำให้ copy ไฟล์ DB_CONFIG มาใส่ไว้ใน /var/lib/ldap/ ด้วย ซึ่งมีตัวอย่างไฟล์อยู่แล้วใน /usr/share/doc/openldap-servers-2.4.12/

ใช้คำสั่ง service stop เพื่อปิดเซอร์วิส openldap ก่อน copy ไฟล์

[root@fc10-pdc ldap]# service ldap stop
Stopping slapd:                                            [  OK  ]

copy ไฟล์ DB_CONFIG.sample และเปลี่ยนชื่อไฟล์เป็น DB_CONFIG พร้อมเปลี่ยน owner, group, permission ของไฟล์ด้วย

[root@fc10-pdc ldap]# cp /usr/share/doc/openldap-servers-2.4.12/DB_CONFIG.example DB_CONFIG
[root@fc10-pdc ldap]# chown ldap.ldap DB_CONFIG
[root@fc10-pdc ldap]# chmod 600 DB_CONFIG

ใช้คำสั่ง service start เพื่อรันเซอร์วิส openldap อีกครั้ง ก็ยังมีข้อความฟ้องเตือนอีก เพราะมีการสร้างไฟล์ index ใหม่

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

วิธีการแก้ไขคือ stop แล้ว start ใหม่อีกครั้ง ข้อความคำเตือนก็จะหายไป

[root@fc10-pdc ldap]# service ldap stop
Stopping slapd:                                            [  OK  ]
[root@fc10-pdc ldap]# service ldap start
Starting slapd:                                            [  OK  ]

ตรวจสอบไฟล์ที่อยู่ใน /var/lib/ldap/ จะมีไฟล์ index ขึ้นมาเพิ่มอีกหลายไฟล์ เพื่อทำให้การค้นหาข้อมูลใน LDAP ได้เร็วขึ้น

[root@fc10-pdc ldap]# ls -l
total 22132
-rw-r--r-- 1 ldap ldap      2048 2009-05-16 00:09 alock
-rw------- 1 ldap ldap     16384 2009-05-15 18:55 cn.bdb
-rw------- 1 ldap ldap     24576 2009-05-15 17:15 __db.001
-rw------- 1 ldap ldap   9093120 2009-05-15 17:15 __db.002
-rw------- 1 ldap ldap 335552512 2009-05-15 17:15 __db.003
-rw------- 1 ldap ldap   2359296 2009-05-15 17:15 __db.004
-rw------- 1 ldap ldap    729088 2009-05-15 17:15 __db.005
-rw------- 1 ldap ldap     32768 2009-05-15 17:15 __db.006
-rw------- 1 ldap ldap       921 2009-05-15 17:15 DB_CONFIG
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 dn2id.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 gidNumber.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:45 givenName.bdb
-rw------- 1 ldap ldap     65536 2009-05-15 18:55 id2entry.bdb
-rw------- 1 ldap ldap  10485760 2009-05-16 00:09 log.0000000001
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 loginShell.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:30 memberUid.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 objectClass.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:30 ou.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 17:45 sn.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 uid.bdb
-rw------- 1 ldap ldap      8192 2009-05-15 18:55 uidNumber.bdb

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

Leave a Reply

Your email address will not be published.