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

จากครั้งก่อนได้กล่าวถึง การติดตั้งและคอนฟิก Fedora Directory Server เบื้องต้น  ซึ่งเป็น LDAP Server ที่พัฒนาจากทีมงานของ Fedora ในบทความนี้จะกล่าวถึงอีกทางเลือกหนึ่งในการเลือกใช้งาน LDAP Server โดยจะเป็นการติดตั้งและเริ่มต้นคอนฟิก OpenLDAP Server 

หมายเหตุ ตัวอย่างในบทความนี้จะติดตั้งบนเครื่องที่ ติดตั้ง Fedora 9 แบบประหยัดพื้นที่สุด

ดาวน์โหลดไฟล์ rpm สำหรับติดตั้ง OpenLDAP

สามารถดาวน์โหลดไฟล์ rpm เวอร์ชั่นล่าสุด (update) ของ Fedora 9 สำหรับการติดตั้งได้ที่ http://mirrors.kernel.org/fedora/updates/9/ โดยรายชื่อไฟล์ที่ต้องดาวน์โหลด (ตุลาคม 2551) มีดังนี้

  • openldap-2.4.10-1.fc9.i386.rpm
  • openldap-clients-2.4.10-1.fc9.i386.rpm
  • openldap-servers-2.4.10-1.fc9.i386.rpm

ติดตั้งโปรแกรมไฟล์ rpm ของ openldap

หลังจากได้ไฟล์ที่ดาวน์โหลดมา ใช้คำสั่ง rpm ในการติดตั้ง

ตัวอย่างการติดตั้งไฟล์ rpm โปรแกรม OpenLDAP

[root@fc9-min ~]# rpm -U openldap-2.4.10-1.fc9.i386.rpm
[root@fc9-min ~]# rpm -i openldap-clients-2.4.10-1.fc9.i386.rpm
[root@fc9-min ~]# rpm -i openldap-servers-2.4.10-1.fc9.i386.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.etZSRT'
-----
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 ด้วยออปชั่น -U (Upgrade) เพราะว่าจากการติดตั้ง Fedora 9 จะมีไฟล์ rpm ของ openldap ติดมาด้วย และมีโปรแกรมอื่นๆ ที่บังคับไม่ให้เราสามารถถอดไฟล์ rpm นี้ออกไปก่อนจะลงใหม่ได้ ออปชั่น -U จะเป็นการสั่งให้ปรับปรุงและแทนที่ด้วยเวอร์ชั่นใหม่ทับของเก่าไป
  • การติดตั้ง openldap-servers จะมีข้อความขึ้นมา ซึ่งเป็นการสร้างคีย์ไฟล์เพื่อความปลอดภัยในการรับส่งข้อมูลระหว่างเซิร์ฟเวอร์กับไคลเอนต์  ณ ตอนนี้ไม่ต้องสนใจ

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

[root@fc9-min ~]# rpm -qa | grep openldap
openldap-servers-2.4.10-1.fc9.i386
openldap-clients-2.4.10-1.fc9.i386
openldap-2.4.10-1.fc9.i386

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

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

Suffix:  dc=test-ldap,dc=com
Root DN: uid=root,ou=People,dc=test-ldap,dc=com
Root PW: ldap1234

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

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

[root@fc9-min openldap]# slappasswd
New password: ldap1234
Re-enter new password: ldap1234
{SSHA}zA4XZB4pD1TUh/mRO31MC0kbUF+V0v2Y

นำผลลัพธ์การเข้ารหัสที่ได้ ไปใส่ไว้ในไฟล์ slapd.conf

ตัวอย่างการแก้ไขไฟล์ slapd.conf

database    bdb
suffix      "dc=test-ldap,dc=com"
rootdn      "uid=root,ou=People,dc=test-ldap,dc=com"
rootpw      {SSHA}zA4XZB4pD1TUh/mRO31MC0kbUF+V0v2Y
directory   /var/lib/ldap

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

ก่อนที่จะรันเซอร์วิส ต้อง copy ไฟล์ DB_CONFIG มาใส่ไว้ในไดเร็คทอรี /var/lib/ldap/ ก่อน แล้วใช้คำสั่ง service เพื่อรันเซอร์วิส ldap ดังนี้

[root@fc9-min ~]# cp /usr/share/doc/openldap-servers-2.4.10/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@fc9-min ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[root@fc9-min ~]# chmod 600 /var/lib/ldap/DB_CONFIG

[root@fc9-min ~]# service ldap start
Starting slapd:                                 [  OK  ]

สามารถตรวจสอบโปรเซสของ ldap ได้จากคำสั่ง ps ดังนี้

[root@fc9-min openldap]# ps -ef | grep ldap
ldap      2382     1  0 13:17 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -u ldap

ไฟล์ข้อมูลของ OpenLDAP Server จะถูกเก็บไว้ในไดเร็คทอรีที่ระบุในส่วนคอนฟิก directory ในไฟล์ slapd.conf จากตัวอย่างด้านบนจะเป็น /var/lib/ldap

[root@fc9-min ~]# ls -l /var/lib/ldap
total 700
-rw-r--r-- 1 ldap ldap     2048 2008-10-12 01:39 alock
-rw------- 1 ldap ldap    24576 2008-10-12 01:39 __db.001
-rw------- 1 ldap ldap   278528 2008-10-12 01:39 __db.002
-rw------- 1 ldap ldap   270336 2008-10-12 01:39 __db.003
-rw------- 1 ldap ldap    98304 2008-10-12 01:39 __db.004
-rw------- 1 ldap ldap   352256 2008-10-12 01:39 __db.005
-rw------- 1 ldap ldap    24576 2008-10-12 01:39 __db.006
-rw------- 1 ldap ldap      921 2008-10-17 16:18 DB_CONFIG
-rw------- 1 ldap ldap     8192 2008-10-12 01:39 dn2id.bdb
-rw------- 1 ldap ldap    32768 2008-10-12 01:39 id2entry.bdb
-rw------- 1 ldap ldap 10485760 2008-10-12 01:39 log.0000000001

ทดสอบการดึงข้อมูลจาก LDAP

ถ้า OpenLDAP Server รันได้ถูกต้อง เราสามารถใช้คำสั่ง ldapsearch เพื่อดึงข้อมูลจาก LDAP ตัวอย่างด้านล่างจะเป็นการทดสอบดึงข้อมูลทั้งหมดมา ซึ่งตอนนี้ยังไม่มีข้อมูล ดังนั้นผลลัพธ์จะแสดงดังนี้

[root@fc9-min ldif]# ldapsearch -x -b "dc=test-ldap,dc=com" "(objectclass=*)"
# extended LDIF
#
# LDAPv3
# base <dc=test-ldap,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1

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

Leave a Reply

Your email address will not be published.