หลังจากที่ ติดตั้ง OpenLDAP Server ไปแล้ว บทความนี้จะเป็นการเริ่มต้นใส่ข้อมูลเข้าไปใน LDAP ซึ่งในที่นี้จะใส่ข้อมูลให้สามารถเก็บบัญชีผู้ใช้งาน (User Account) และรหัสผ่าน (Password) เพื่อให้สามารถ authenticate user บนลีนุกซ์ได้
การเพิ่มข้อมูลเข้าไปใน LDAP ได้นั้น วิธีการหนี่งที่ทำได้คือสร้างไฟล์เป็นรูปแบบ ldif ก่อน แล้วใช้คำสั่ง ldapadd เพื่อเพิ่มข้อมูลเข้าไปใน LDAP
เพิ่มข้อมูลพื้นฐานของ LDAP
ตัวอย่างไฟล์ ldif สำหรับใส่ข้อมูลพื้นฐานของ LDAP และการใช้คำสั่ง ldapadd เพิ่มข้อมูลเข้าไปใน LDAP
[root@fc9-min ldif]# cat ldap-base.ldif dn: dc=test-ldap,dc=com dc: test-ldap objectClass: top objectClass: domain
dn: ou=People,dc=test-ldap,dc=com ou: People objectClass: top objectClass: organizationalUnit
dn: ou=Group,dc=test-ldap,dc=com ou: Group objectClass: top objectClass: organizationalUnit
[root@fc9-min ldif]# ldapadd -x -D uid=root,ou=People,dc=test-ldap,dc=com -W -f ldap-base.ldif Enter LDAP Password: adding new entry "dc=test-ldap,dc=com"
adding new entry "ou=People,dc=test-ldap,dc=com"
adding new entry "ou=Group,dc=test-ldap,dc=com"
หมายเหตุ LDAP Password ที่ต้องใส่ในคำสั่ง ldapadd คือรหัสที่ถูกเข้ารหัสด้วยคำสั่ง slappasswd แล้วนำมาใส่ไว้เป็นคอนฟิก rootpw ในไฟล์ /etc/openldap/slapd.conf
เพิ่ม user01 เข้าไปใน LDAP
ตัวอย่างไฟล์ ldif เพื่อเพิ่ม user01 เข้าไปใน LDAP
[root@fc9-min ldif]# cat add-user01.ldif dn: uid=user01,ou=People,dc=test-ldap,dc=com uid: user01 cn: user01 objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {crypt}!! shadowLastChange: 14030 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 1001 gidNumber: 100 homeDirectory: /home/user01
ใช้คำสั่ง ldapadd เพิ่ม user01 เข้าไปใน LDAP
[root@fc9-min ldif]# ldapadd -x -D uid=root,ou=People,dc=test-ldap,dc=com -W -f add-user01.ldif Enter LDAP Password: adding new entry "uid=user01,ou=People,dc=test-ldap,dc=com"
แก้ใขให้ลีนุกซ์ตรวจสอบผู้ใช้งานจาก LDAP
ใช้คำสั่ง authconfig-tui เพื่อคอนฟิกให้อ่านค่าผู้ใช้งาน (User Account) จาก LDAP Server โดยในที่นี้จะให้ LDAP Server รันอยู่บนเครื่องเดียวกัน เราสามารถระบุ Server เป็น 127.0.0.1 หรือ localhost ได้
ในหน้าแรกของคำสั่ง authconfig-tui ส่วนของ User Information ให้คลิกเลือก [*] Use LDAP และส่วนของ Authentication ให้คลิกเลือก [*] Use LDAP Authentication เสร็จเรียบร้อยให้กด Next
┌────────────────┤ Authentication Configuration ├─────────────────┐ │ │ │ User Information Authentication │ │ [ ] Cache Information [ ] Use MD5 Passwords │ │ [ ] Use Hesiod [*] Use Shadow Passwords │ │ [*] Use LDAP [*] Use LDAP Authentication │ │ [ ] Use NIS [ ] Use Kerberos │ │ [ ] Use Winbind [ ] Use SMB Authentication │ │ [ ] Use Winbind Authentication │ │ [*] Local authorization is sufficient │ │ │ │ ┌────────┐ ┌──────┐ │ │ │ Cancel │ │ Next │ │ │ └────────┘ └──────┘ │ │ │ │ │ └─────────────────────────────────────────────────────────────────┘
ในหน้าที่สองจะเป็นการระบุ Server เพื่อชี้ไปยัง LDAP Server โดยจะใส่ ldap:// นำหน้า IP Address หรือชื่อ Hostname อีกส่วนที่ต้องแก้ไขคือ Base DN ซึ่งเป็นค่าเดียวกับที่ตั้งไว้ในไฟล์ slapd.conf เสร็จเรียบร้อยให้กด Ok ออกมา
┌─────────────────┤ LDAP Settings ├─────────────────┐ │ │ │ [ ] Use TLS │ │ Server: ldap://127.0.0.1/_______________________ │ │ Base DN: dc=test-ldap,dc=com_____________________ │ │ │ │ ┌──────┐ ┌────┐ │ │ │ Back │ │ Ok │ │ │ └──────┘ └────┘ │ │ │ │ │ └───────────────────────────────────────────────────┘
ทดสอบตรวจสอบบัญชีผู้ใช้งานจาก LDAP
สามารถใช้คำสั่ง id เพื่อตรวจสอบผู้ใช้งานจาก LDAP ได้ ดังนี้
[root@fc9-min ~]# id user01 uid=1001(user01) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
หรือใช้คำสั่ง getent เพื่อดูรายละเอียดเพิ่มเติมของผู้ใช้นั้นๆ
[root@fc9-min ~]# getent passwd user01 user01:x:1001:100:user01:/home/user01:/bin/bash
ขอบคุณค่ะสำหรับความรู้ใหม่ ๆ