1 / 45

Linux for Organization Infrastructure Management

Linux for Organization Infrastructure Management. Part 1 Light Weight Directory Access Protocol. Light-Weight Directory Access Protocol (LDAP).

tammy
Download Presentation

Linux for Organization Infrastructure Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux for Organization Infrastructure Management

  2. Part 1Light Weight Directory Access Protocol

  3. Light-Weight Directory Access Protocol (LDAP) • Directory Access คือระบบฐานข้อมูลที่มีโครงสร้างแบบต้นไม้ ซึ่งนิยมใช้งานกันมากในการเก็บฐานข้อมูลผู้ใช้ในระบบปฏิบัติการต่างๆ (ในระบบวินโดวส์จะเรียกวิธีการเก็บแบบนี้ว่า Active Directory)

  4. Light-Weight Directory Access Protocol (LDAP) • LDAP จัดเก็บข้อมูลอยู่ในรูปของโครงสร้างของต้นไม้ ทำให้ง่ายต่อการนำเอาโครงสร้างขององค์กรวางลงไปในฐานข้อมูลของ LDAP • LDAP อิงตามมาตรฐาน X.500 ในการจัดเก็บข้อมูล

  5. ข้อดี / ข้อเสีย • ข้อดีของ LDAP • LDAP เก็บข้อมูลเป็นโครงสร้างแบบต้นไม้ ซึ่งสามารถเก็บข้อมูลแยกกันอยู่หลายๆเครื่องได้ โดยแยกตามโครงสร้างของต้นไม้ • LDAP สามารถทำงานได้ทั้งบนโปรโตคอลแบบ Secure และไม่ Secure • ระบบ Authentication บน Linux สามารถใช้งานผ่าน LDAP ได้อย่างสมบูรณ์ • สามารถทำ Replication ได้ • ข้อเสียของ LDAP • การคอนฟิกยุ่งยากมาก ต้องใช้คำสั่งเฉพาะของ LDAP ในการเพิ่ม/ลบผู้ใช้ออกจากฐานข้อมูลเท่านั้น • โครงสร้างข้อมูลซับซ้อน

  6. LDAP Schema • กลุ่มของข้อมูลในแต่ละโหนดในฐานข้อมูล • ประกอบด้วยวัตถุหนึ่งประเภทหรือมากกว่า วัตถุแต่ละประเภทเรียกว่า objectClass • สามารถขยายจาก schema ที่มีอยู่แล้วได้ • การสร้างเป็นโหนดไม่จำเป็นต้องมีข้อมูลครบทุกประเภท

  7. objectclass ( 2.5.6.2 NAME 'country' DESC 'RFC2256: a country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) objectclass ชื่อ country ขยายมากจากวัตถุ top ต้องมีข้อมูล c อาจมีข้อมูล searchGuide หรือ description ก็ได้ ตัวอย่าง LDAP Schema

  8. LDAP ใน Linux • LDAP Server ที่ใช้งานกันอย่างแพร่หลายในระบบ Linux คือ OpenLDAP • OpenLDAP (www.openldap.org) จะมีส่วนประกอบสำคัญๆสองส่วนคือ • Slapd – เป็นแดมอนหลักของ OpenLDAP • Slurpd – เป็นแดมอนสำหรับการทำ Replication เพื่อการ Backup หรือการใช้งาน OpenLDAP หลายๆที่ • Fedora Directory Server (directory.fedora.redhat.com) • LDAP Server ที่พัฒนาต่อมาจาก Netscape Directory Server • สนับสนุนคุณลักษณะเด่นทุกอย่างของ OpenLDAP • ยังใช้งานไม่เป็นที่แพร่หลายมากเท่า OpenLDAP • นอกจากนี้ใน Linux Distribution ส่วนใหญ่ ยังประกอบไปด้วยโมดูลสำหรับการทำ Authentication ผ่านระบบ LDAP ทำให้สามารถทำระบบ Authentication ได้โดยง่าย

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

  10. การตั้งค่า OpenLDAP สำหรับเป็นฐานข้อมูล • ก่อนที่จะคอนฟิกระบบ LDAP ให้ใช้เป็น Authentication system ควรจะทดสอบการคอนฟิกให้เป็นระบบฐานข้อมูลปกติก่อน แล้วจึงค่อยคอนฟิกให้ใช้ LDAP เป็นระบบ Authentication • ขั้นตอนการคอนฟิก • ปรับแก้ /etc/openldap/slapd.conf ให้ตรงตามความต้องการ • ปรับแก้ /etc/openldap/ldap.conf ให้ตรงกับ slapd.conf • เริ่มการทำงานของ slapd • สร้างไฟล์ฐานข้อมูลเริ่มต้น • นำเข้าฐานข้อมูลเข้าไปใน OpenLDAP • ทดสอบผลการคอนฟิกด้วยการ search

  11. โครงสร้างฐานข้อมูลที่จะใช้โครงสร้างฐานข้อมูลที่จะใช้

  12. /etc/openldap/slapd.conf • แก้ไข Option suffix และ rootdn ให้ตรงตามความต้องการ • suffix – suffix เปรียบเสมือนสิ่งที่ใช้อธิบายองค์กรของเรา • O=Traincorp1,c=TH หรือ o=Traincorp2,c=TH • rootdn – rootdn เปรียบเสมือนชื่อแอคเคานต์ของผู้ที่เป็น Admin ของระบบ Ldap • cn=Manager,o=Traincorp1,c=TH หรือ cn=Manager,o=Traincorp2,c=TH • rootpw – password ของ rootdn ซึ่งจะต้องสร้างโดยใช้คำสั่ง slappasswd • slappasswd >> slapd.conf • พิมพ์ password ที่ต้องการลงไป แล้วนำเอา password ที่ใส่ลงไปใน slapd.conf ไปวางไว้หลัง rootpw

  13. /etc/openldap/slapd.conf (ต่อ) • จะเห็นว่า LDAP มีลักษณะกาทำงานคล้ายคลึงกับระบบฐานข้อมูลทั่วไป คือจะต้องมีแอคเคานต์สำหรับผู้ใช้ที่จะเป็น Admin ของระบบ ซึ่งในกรณีของ LDAP จะเก็บแอคเคานต์ของ Admin ในรูปแบบ X.500 และเก็บลงในฐานข้อมูลเดียวกัน เราต้องกำหนดชื่อของ Admin ของระบบในไฟล์ slapd.conf ไว้ก่อน เนื่องจากหากไม่มี Admin account แล้วเราก็จะไม่สามารถนำเข้าฐานข้อมูลได้ ทำให้ไม่สามารถนำเอาฐานข้อมูลเข้าได้เลยถ้าไม่ระบุชื่อแอคเคานต์ Admin ในไฟล์คอนฟิกนอกระบบฐานข้อมูล

  14. /etc/openldap/ldap.conf • ไฟล์คอนฟิกนี้เป็นไฟล์คอนฟิกสำหรับคำสั่งพื้นฐานในการ Query ข้อมูลจาก LDAP เช่น คำสั่ง ldapsearch, ldapadd ldapmodify เป็นต้น • แก้ไข HOST ให้มี Address ตรงกับเครื่องที่รัน slapd และ BASE ให้ตรงกับ suffix ที่กำหนดใน slapd.conf • BASE เป็นเหมือนกับ search filter โดยทุกครั้งที่คำสั่ง ldap ทำงานจะนำเอา BASE ไปต่อท้ายกับคำที่ต้องการค้นหาเสมอ เช่น cn=Group1,ou=Group ก็จะกลายเป็น cn=group1,ou=Group,o=Traincorp1,c=TH

  15. เริ่มการทำงานของ Slapd server • /sbin/service ldap start • /sbin/chkconfig ldap on • ทดสอบว่าระบบทำงานได้หรือไม่โดยสั่ง ldapsearch –x • -x หมายถึงว่าให้ใช้ simple authentication

  16. สร้างไฟล์ฐานข้อมูลเริ่มต้นสร้างไฟล์ฐานข้อมูลเริ่มต้น • ใช้รูปแบบ Ldif ในการจัดเก็บข้อมูล โดยถูกส่งเข้าไปในระบบฐานข้อมูลของ OpenLDAP ด้วยคำสั่ง ldapadd • ใน Red Hat Linux ตั้งแต่เวอร์ชัน 9 จะมีคำสั่งสำหรับแปลง /etc/passwd และ /etc/group ให้กลายเป็นไฟล์ในรูปแบบของ ldif • LDAP_DEFAULT_MAIL_DOMAIN=localhost LDAP_EXTENDED_SCHEMA=1 LDAP_BASEDN="o=Traincorp1,c=TH" /usr/share/openldap/migration/migrate_passwd.pl /etc/passwd > pwd.ldif • LDAP_DEFAULT_MAIL_DOMAIN=localhost LDAP_EXTENDED_SCHEMA=1 LDAP_BASEDN="o=Traincorp1,c=TH" /usr/share/openldap/migration/migrate_group.pl /etc/group >> pwd.ldif

  17. สร้างไฟล์ฐานข้อมูลเริ่มต้น (ต่อ) • เพิ่ม parent directory เข้าไปที่ต้นไฟล์ pwd.ldif dn: o=Traincorp1,c=TH o: Traincorp1 objectClass: top objectClass: organization dn: ou=People,o=Traincorp1,c=TH ou: People objectClass: top objectClass: organizationalUnit dn: ou=Group,o=Traincorp1,c=TH ou: Group objectClass: top objectClass: organizationalUnit

  18. สร้างไฟล์ฐานข้อมูลเริ่มต้น (ต่อ) • เพิ่มผู้ใช้ที่ต้องการ (user1-3 และ group1-3) เข้าไปในไฟล์ pwd.ldif • ลบแอคเคานต์ของระบบเช่น root ออกจากฐานข้อมูล LDAP เพื่อป้องกันความผิดพลาดในกรณีที่เครื่องลูกข่ายใช้แอคเคานต์ที่มีชื่อแอคเคานต์และ User ID ไม่ตรงกัน และเพื่อเหตุผลทางความปลอดภัยด้วย

  19. การนำเข้าฐานข้อมูลเริ่มต้นการนำเข้าฐานข้อมูลเริ่มต้น • นำเข้าฐานข้อมูลโดย • ldapadd –x –W –D ‘cn=Manager,o=Traincorp1,c=TH’ –f pwd.ldif • ทดสอบโดยการใช้คำสั่ง ldapsearch –x อีกครั้ง • ทดลองใช้คำสั่ง ldapsearch –x ‘uid=user1’ • หากต้องการลดเวลาในการเพิ่มผู้ใช้อาจใช้วิธีการ add user เข้าไปในไฟล์ก่อนแล้วจึง convert อีกทีหนึ่ง

  20. นำเอาระบบ LDAP มาใช้เป็นระบบ Authentication • เรียกคำสั่ง system-config-authentication หรือเรียกจาก System Setting -> Authentication

  21. นำเอาระบบ LDAP มาใช้เป็นระบบ Authentication

  22. ความแตกต่างระหว่าง User Information Configuration และ AuthenticationConfiguration • User Information Configuration – วิธีการที่จะดึงข้อมูลของผู้ใช้ แต่ไม่รวมไปถึงการ Authenticate (Log-in) เข้าสู่ระบบ • คำสั่งจำนวนมากต้องการอ่านข้อมูลเกี่ยวกับผู้ใช้ ไม่ว่าจะเป็น finger, lsUser Information Configuration • Authentication Configuration – วิธีการ Authenticate เพื่อเข้าสู่ระบบ • เช่น แหล่งที่จะอ่าน password และ username

  23. การทดสอบ • ลองใช้คำสั่ง finger user1 เพื่อทดสอบว่าสามารถมองเห็น user คนนั้นหรือไม่ • หมายเหตุ: เราจำเป็นต้องสร้าง home directory ของผู้ใช้คนนั้นเอง เนื่องจากเราไม่ได้เพิ่มผู้ใช้เข้าในระบบด้วยคำสั่ง useradd เอง • mkdir /home/user1 • cd /etc/skel • tar –cf - .[a-zA-Z]* | (cd /home/user1 ; tar –xf -) • chown –R user1.group1 /home/user1

  24. ปฏิบัติการ 1: ทดลองการใช้งาน LDAP • สร้างระบบ Authentication ในเครื่องที่ท่านใช้อยู่ โดยให้ Authenticate ผ่าน LDAP และมีรายชื่อผู้ใช้ตามตัวอย่างข้างต้นทั้งหมด

  25. ชุดคำสั่งสำหรับ LDAP • ldapadd – เพิ่มข้อมูลเข้าสู่ฐานข้อมูล โดยต้องส่งไฟล์ในรูปแบบของ LDIF เข้าไป • ldapmodify – แก้ไขข้อมูลที่มีอยู่แล้ว • ldapsearch – ค้นหาข้อมูลในฐานข้อมูล • ldapdelete – ลบ entry ในฐานข้อมูล • ldapmodrdn – rename entry ในฐานข้อมูล • ladppasswd – เปลี่ยน password ของ entry นั้นๆ • slappasswd – สร้าง password สำหรับระบบฐานข้อมูล LDAP

  26. ชุดคำสั่งสำหรับ LDAP • ldapadd • ldapadd –c –x –W –D ‘cn=Manager,o=Traincorp1,c=TH’ –f add.ldif • -x – ใช้ simple authentication • -W – ให้ถาม password จาก prompt • -D – ระบุ rootdn • -f – อ่านข้อมูลจากไฟล์ add.ldif (หากไม่ระบุ คำสั่งจะอ่านข้อมูลจาก standard input) • -c – ทำงานต่อไปเรื่อยๆแม้ว่าจะมีปัญหาเกิดขึ้น (เช่น มี entry ซ้ำ หากเป็นปกติจะหยุดทำงานทันที แต่หากระบุ –c จะไม่หยุดจนกว่าจะหมด input) • argument ส่วนใหญ่ของคำสั่งนี้จะเหมือนกับคำสั่งอื่นๆ

  27. ชุดคำสั่งสำหรับ LDAP • ldapdelete • ldapdelete –x –W –D ‘cn=Manager,o=Traincorp1,c=TH’ ‘cn=mailman,ou=Group,o=Traincorp1,c=TH’ • ลบ entry cn=mailman,ou=Group,o=Traincorp1,c=TH ออกจากฐานข้อมูล • ในการลบ entry ใดๆ entry นั้นต้องเป็นปลายสุดของโครงสร้างต้นไม้ทั้งหมดจึงจะลบได้ เช่น เราจะไม่สามารถลบ ou=People,o=Traincorp1,c=TH ได้หากไม่ลบ entry ที่อยู่ภายใต้ ou=People ออกให้หมดก่อน

  28. ชุดคำสั่งสำหรับ LDAP • ldapmodrdn • ldapmodrdn –x –W –D ‘cn=Manager,o=Traincorp1,c=TH’ –f rdn.ldif • โดย rdn.ldif มีข้อมูลดังต่อไปนี้ cn=mailman,ou=Group,o=Traincorp1,c=TH cn=mailwoman • เปลี่ยนชื่อ group mailman จาก mailman เป็น mailmanjung

  29. ldapmodify ldapmodify –x –W –D ‘cn=Manager,o=Traincorp1,c=TH’ –f mod.ldif ลบ entry ที่ระบุในไฟล์ mod.ldif ออกจากฐานข้อมูล รูปแบบของไฟล์ mod.ldif dn: cn=Modified, o=Traincorp1, c=TH changetype: modify replace: mail mail: xx@yy.org - add: title title: Modified One - delete: description สั่งให้เปลี่ยนฟิลด์ mail ของ entry cn=Modified, o=Traincorp1, c=TH เป็นxx@yy.org และเพิ่มฟิลด์ title โดยให้มีค่าเป็น Modified One และลบ field description ออก ตัวคั่นระหว่างการเปลี่ยนแปลงคือ – เสมอ หากมีหลาย entry ที่ต้องการเปลี่ยนแปลง ให้คั่นด้วยบรรทัดว่างหนึ่งบรรทัด dn: cn=group1,ou=Group, o=Traincorp1, c=TH changetype: modify add: memberUid memberUid: uid=user1,ou=People,o=Traincorp1,c=TH memberUid: uid=user2,ou=People,o=Traincorp1,c=TH เพิ่มฟิลด์ memberUid เข้าไปใน entry group1 โดยมีค่าที่เพิ่มสองค่าคือ uid=user1,ou=People,o=Traincorp1,c=TH และ uid=user2,ou=People,o=Traincorp1,c=TH จริงๆแล้วคำสั่ง ldapadd และ ldapdelete ก็คือการเรียก ldapmodify โดยมี changetype เป็น add และ delete นั่นเองเราสามารถทำทุกคำสั่งได้ด้วย ldapmodify ชุดคำสั่งสำหรับ LDAP

  30. ชุดคำสั่งสำหรับ LDAP • ldapsearch • ldapsearch –x ‘cn=mailman,ou=Group,o=Traincorp1,c=TH’ • ค้นหาข้อมูลของ entry ที่ระบุ (cn=mailman) • ldapsearch –x –b ‘ou=People,o=Traincorp1,c=TH’ ‘uid=roo*’ • ค้นหาข้อมูลของ entry ที่ขึ้นต้นด้วย uid= roo โดยเริ่มค้นหาจาก ou=People • slappasswd • slappasswd –h ‘{CRYPT}’ • สร้าง password สำหรับใช้ใน entry ที่เก็บ password ต่างๆเช่น userPassword โดยสามารถระบุวิธีการเข้ารหัสได้ด้วย ตัวอย่างนี้เป็นการสร้าง password โดยใช้วิธีการเข้ารหัสโดยใช้ฟังก์ชัน crypt ใน UNIX • หมายเหตุ: หากต้องการให้ password สามารถนำกลับมาใช้ในฟอร์แมตของไฟล์ password ธรรมดาได้ควรจะใช้วิธีการเข้ารหัสแบบ Crypt เสมอ (default จะเป็น SSHA)

  31. ปฏิบัติการ 2: ตัวอย่างการใช้งานคำสั่ง LDAP • ทดลองเพิ่มผู้ใช้ชื่อว่า user4 ลงไปในฐานข้อมูลโดยใช้คำสั่ง ldapadd • เปลี่ยน gecos ของ user1 ให้เป็นคำว่า “I am user1” แล้วทดสอบผลด้วยการใช้คำสั่ง fingeruser1 ดู • ลบ user4 ที่พึ่ง add เข้ามาในระบบ

  32. ปรับแก้ให้ผู้ใช้สามารถเปลี่ยน password ของตัวเองในฐานข้อมูลได้ • ต้องปรับตั้งให้ slapd ยอมให้ผู้ใช้ที่ Log-in แก้ไขฐานข้อมูลในส่วนของตัวเองก่อน โดยเพิ่ม Config ชุดนี้เค้าไปใน /etc/openldap/slapd.conf access to * by self write by users read by anonymous read • access to * หมายถึง access มายังฐานข้อมูลตรงส่วนไหนก็ได้ • by self หมายถึงเมื่อตัวเอง Log-in เข้ามา • by users หมายถึง เมื่อเป็น users Log-in • by anonymous หมายถึงเมื่อไม่ได้ Log-in • LDAP เก็บ password สำหรับ user คนนั้นๆไว้ที่ฟิลด์ userPassword ในส่วนของแต่ละ User เราสามารถแก้ไข password ของผู้ใช้คนนั้นได้โดยการใช้คำสั่ง ldapmodify โดยตรงเพื่อแก้ไขข้อมูลเฉพาะฟิลด์ • หมายเหตุ: ต้องให้ anonymous read ได้เสมอเพราะการใช้งานคำสั่งโดยทั่วๆไปทั้งหมดเป็นการ Log-in แบบ anonymous เสมอ • ผู้ใช้จะสามารถเปลี่ยน password ได้ในทันที

  33. ปรับแก้ให้ root สามารถเปลี่ยน password ของผู้ใช้ได้ • ในกรณีของ root แม้ว่าจะเปลี่ยน password ของ User ก็จำเป็นที่จะต้องรู้ password ของ rootdn หรือของ user นั้นๆก่อนเสมอ (ปัญหาทำนองเดียวกับ NIS) แต่หาสร้างไฟล์ /etc/ldap.secret และใส่ password ของ rootdn ไว้ในนั้นจะสามารถทำให้เปลี่ยน password ได้ด้วยคำสั่ง passwd โดยไม่ต้องใส่ password ของ rootdn เลย • สมมุติ password เป็นคำว่า “secret” • แก้ไขออพชั่น rootbinddn ใน /etc/ldap.conf ให้เป็น rootdn ของระบบ • rootbinddn cn=Manager,o=TrainCorp1,c=TH • echo secret > /etc/ldap.secret • chmod 600 /etc/ldap.secret # หากไม่ทำระบบจะไม่ยอมอ่านไฟล์นี้ • ไฟล์ /etc/ldap.conf เป็นไฟล์คอนฟิกหลักของระบบ Authentication ผ่าน LDAP (แยกคนละไฟล์กับ /etc/openldap/ldap.conf ซึ่งเป็นไฟล์คอนฟิกสำหรับชุดคำสั่ง LDAP เท่านั้น)

  34. การเพิ่มความเร็วให้กับ LDAP • ระบบ Authentication มีการทำงานเกือบตลอดเวลา ความเร็วของ OpenLDAP อาจไม่เพียงพอจริง • เราสามารถเพิ่มความเร็วในการทำ Authentication ได้ โดยใช้ Name service caching daemon (nscd) ซึ่งจะ cache การร้องขอข้อมูลเกี่ยวกับการ Authentication ไว้เสมอ • เริ่มการทำงานได้โดยการเลือกที่หัวข้อ “Cache information” ของโปรแกรม system-config-authentication โดยไม่ต้องคอนฟิกอย่างอื่นเพิ่มเติมเลย • nscd สามารถใช้ร่วมกับการ authentication อื่นๆได้ • บางครั้ง nscd อาจไม่ได้ update ข้อมูล สามารถบังคับให้ nscd refresh ข้อมูลก็สั่ง /sbin/service nscd reload ได้

  35. การเพิ่มความเร็วให้กับ LDAP

  36. การเพิ่มความเร็วให้กับ LDAP • นอกจากนั้นระบบ LDAP เป็นระบบที่ใช้งานไฟล์เป็นจำนวนมาก จำเป็นอย่างยิ่งที่จะต้องแก้ไขคอนฟิกของเคอร์เนลให้สามารถรองรับการเปิดไฟล์จำนวนมากๆได้ • /sbin/sysctl –w fs.file-max = 65536

  37. การใช้งาน LDAP ผ่านโปรโตคอลแบบปลอดภัย (TLS) • OpenLDAP สามารถทำงานผ่าน TLS ได้ • เอาคอมเมนต์ของคอนฟิกที่ขึ้นต้นด้วยคำว่า TLS ออกให้หมดในไฟล์ /etc/openldap/slapd.conf • TLSCertificateFile /usr/share/ssl/certs/slapd.pem • TLSCertificateKeyFile /usr/share/ssl/certs/slapd.pem • TLSCACertificateFile /usr/share/ssl/certs/ca-bundle.crt • ไปที่ /usr/share/ssl/certs และสร้าง certificate ใหม่ • cd /usr/share/ssl/certs • rm –f slapd.pem && make slapd.pem • ตอบคำถามทั้งหมดที่ปรากฏ และต้องตอบคำถามในขั้นตอนที่ถาม Common name ให้ถูกต้องโดยต้องใส่ชื่อ host ที่ถูกต้องลงไป • chgrp ldap slapd.pem && chmod 640 slapd.pem • เมื่อแก้ไขทั้งหมดแล้วให้ restart ldap server • service ldap restart

  38. การใช้งาน LDAP ผ่าน TLS • แก้ไขคอนฟิกไฟล์ /etc/openldap/ldap.conf • แก้ชื่อโฮสต์ (HOST) ให้ตรงกับสิ่งที่ใส่ไปใน Common Name • คำตอบของ Common Name จะเป็นตัวกำหนดชื่อเครื่องที่ถูกต้องที่ต้องใส่ใน /etc/openldap/ldap.conf เพราะฉะนั้นต้องใส่ชื่อเครื่องให้ถูกต้อง เช่น myhostname.mydomainame.com • เพิ่มออพชั่น TLS_REQCERT allow • สร้าง link จากไดเรคทอรี่ /usr/share/ssl/certs มาที่ /etc/openldap/cacerts ln -s /usr/share/ssl/certs /etc/openldap/cacerts • ทดสอบผลการคอนฟิกได้โดยใช้คำสั่ง ldapsearch –x –ZZ (-ZZ หมายถึงบังคับให้ใช้ TLS ในการติดต่อขอข้อมูล)

  39. การ Authentication โดยใช้ LDAP/TLS • เลือกออพชั่น Use TLS ในคำสั่ง system-config-authentication เพื่อบังคับให้ใช้ TLS และต้องใส่ชื่อ Host ให้ตรงกับ Common name ใน Certificate ด้วย • เพิ่มออพชั่น tls_checkpeer no ลงใน /etc/ldap.conf • ทดสอบผลการคอนฟิกโดยการใช้งานคำสั่ง finger user1

  40. การ Authentication โดยใช้ LDAP/TLS

  41. การ Authentication โดยใช้ LDAP/TLS

  42. เกี่ยวกับระบบ Certificates Authority (CA) • ในการคอนฟิก TLS ข้างต้นที่ผ่านมา จะไม่มีการตรวจสอบ CA หรือเครื่องปลายทางว่าเป็นเครื่องที่ถูกต้องหรือไม่ • TLS_REQCERT allow • tls_checkpeer no • ข้อมูลที่รับส่งจะถูกเข้ารหัส แต่ยังมีโอกาศที่เครื่องปลายทางอาจจะไม่ใช่เครื่องที่เราต้องการจะติดต่อจริงๆ • ในระบบจริงควรจะมี CA ซึ่งมีความปลอดภัยสูง เพื่อดูแลการออก Certificates ในองค์กรทั้งหมด

  43. ปฏิบัติการ 3: TLS + LDAP + NSCD • บังคับให้ทุกๆส่วนทำ Authentication แบบปลอดภัยโดยผ่าน TLS ทั้งหมด • ใช้งานแดมอน NSCD แล้วดูผลว่าการทำ Authentication เร็วขึ้นหรือไม่

  44. การคอนฟิกเพิ่มเติม • ไฟล์คอนฟิกที่คำสั่ง system-config-authentication ไปแก้ไขนั้นจะอยู่ในไดเรคทอรี่ /etc/pam.d/system-auth ซึ่งเป็นไฟล์คอนฟิกหลักของการทำ Authentication ทั้งระบบ ขอให้ผู้เรียนทดลองเปลี่ยนคอนฟิกด้วยคำสั่ง system-config-authentication และดูผลของคอนฟิกที่เปลี่ยนไปด้วยตัวเอง • ไฟล์คอนฟิกในส่วนของ User Information Configuration ใน system-configu-authenticaion จะอยู่ที่ /etc/nsswitch.conf ซึ่งเป็นไฟล์คอนฟิกที่ใช้ระบุแหล่งที่มาของข้อมูลต่างๆไม่ว่าจะเป็น passwd, hosts, ethers, netgroup, autofs • เราสามารถระบุ search base ในการอ่านข้อมูลรวมไปถึง account ที่ใช้ในการ Log-in แทน account anonymous ในการใช้งานระบบ Authentication ผ่าน ldap ได้ โดยการแก้ไขคอนฟิกไฟล์ /etc/ldap.conf ซึ่งสามารถระบุคอนฟิกดังกล่าวได้ เช่น การอ่านรายชื่อผู้ใช้โดยปกติจะอ่านจาก ou=People,o=Traincorp1,c=TH เราสามารถระบุให้อ่านจากส่วนอื่นแทนได้ เช่น ou=HumanResource,ou=Employee,o=Traincorp1,c=TH

  45. สรุป • ระบบฐานข้อมูล LDAP เป็นระบบฐานข้อมูลสำหรับจัดเก็บข้อมูลในลักษณะของโครงสร้างต้นไม่ซึ่งมีความยืดหยุ่นสูงมาก • สามารถใช้งานเป็นระบบ Authentication ได้ • ไฟล์คอนฟิกหลักทั้งหมด 3 ไฟล์คือ • /etc/openldap/slapd.conf – OpenLDAP server • /etc/openldap/ldap.conf – OpenLDAP command suite • /etc/ldap.conf – Authentication system configuration • ในการนำ LDAP ไปใช้งานจริง นอกจากนำไปทำระบบ Authentication แล้ว ยังสามารถนำไปจัดเก็บข้อมูลเพื่อใช้ในการค้นหาข้อมูลผ่านทางโปรแกรมอื่นๆ เช่นโปรแกรม Outlook Express ก็มีส่วนสนับสนุนการค้นหาชื่อบุคคลทีต้องการผ่าน Directory service ได้

More Related