วิธีทดสอบการเชื่อมต่อ LDAP จากไคลเอนต์


47

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

เครื่องไคลเอนต์มี Cent OS 6.3 และเซิร์ฟเวอร์ LDAP มี Cent OS 5.5

ซอฟต์แวร์ LDAP คือ Openldap

บันทึกเซิร์ฟเวอร์ LDAP ไม่ได้แสดงข้อความใด ๆ

ดังนั้นวิธีการทดสอบว่าลูกค้าสามารถเชื่อมต่อกับ LDAP ได้สำเร็จหรือไม่


2
ในฐานะโน้ตเล็กน้อยสำหรับโพสต์เก่านี้คุณสามารถทำการค้นหา (เช่น ldapsearch) โดยไม่มีการตั้งค่า PAM แต่เพื่อให้ผู้ใช้ตรวจสอบสิทธิ์ผ่าน LDAP คุณจะต้องตั้งค่า PAM สำหรับ LDAP ldapsearch พื้นฐานเพียงแสดงว่าคุณได้ติดตั้งแพคเกจ ldap lib และเครื่องมือไคลเอนต์ (เช่น. yum ติดตั้ง openldap openldap-clients) และสามารถเข้าถึงเซิร์ฟเวอร์ไดเรกทอรี LDAP มันเป็นขั้นตอนที่ดีในกระบวนการติดตั้งหรือแก้ไขปัญหา
เออร์นี่

คำตอบ:


44

ใช้ ldapsearch มันจะส่งคืนข้อผิดพลาดหากคุณไม่สามารถสอบถามเซิร์ฟเวอร์ LDAP

ไวยากรณ์สำหรับการใช้ ldapsearch:

ldapsearch -x -LLL -h [host] -D [user] -w [password] -b [base DN] -s sub "([filter])" [attribute list]

ตัวอย่างง่ายๆ

$ ldapsearch -x -LLL -h host.example.com -D user -w password -b"dc=ad,dc=example,dc=com" -s sub "(objectClass=user)" givenName

โปรดดูลิงค์นี้: http://randomerror.wordpress.com/2009/10/16/quick-tip-how-to-search-in-windows-active-directory-from-linux-with-ldapsearch/

แก้ไข : ดูเหมือนว่าคุณไม่ได้กำหนดค่า pam corectlly สำหรับ gdm / xdm นี่เป็นตัวอย่างวิธีการทำ: http://pastebin.com/TDK4KWRV


ฉันใช้คำสั่งนี้: ldapsearch -h hostname -x -b "dc = example, dc = com" 'uid = user' และมันคืนค่าข้อมูลผู้ใช้นั้นจากฐานข้อมูล LDAP แต่ฉันไม่สามารถลงชื่อเข้าใช้เดสก์ท็อปผ่านการตรวจสอบสิทธิ์ LDAP
FELDAP

หากเซิร์ฟเวอร์ของคุณไม่มีข้อผิดพลาดอาจเป็นเพราะลูกค้าของคุณ โปรดดูที่ auth.log และดูว่ามีอะไรที่เกี่ยวข้องกับ ldap
Sacx

ใช่ฉันเดาว่าเป็นลูกค้า มันไม่ได้ค้นหาเซิร์ฟเวอร์ LDAP สิ่งที่ควรทำเพื่อให้ไคลเอ็นต์ค้นหาเซิร์ฟเวอร์ LDAP สำหรับการตรวจสอบสิทธิ์ ฉันแก้ไข /etc/pam.d/system-auth แล้ว คุณสามารถตรวจสอบได้ที่นี่: pastebin.com/jQjN7cYU
FELDAP

1
ใช้ ldapwhoami พร้อมพารามิเตอร์ที่ถูกต้องและลองตรวจสอบกับผู้ใช้ของคุณ
Sacx

คุณติดตามการสอนเพื่อเตรียมไคลเอนต์สำหรับการตรวจสอบสิทธิ์ gdm / xdm หรือไม่?
Sacx

5

หากต้องการทราบว่าการตั้งค่าเซิร์ฟเวอร์และไคลเอนต์ของฉันถูกต้องฉันใช้สิ่งนี้:

ldapsearch -x -b "uid=username,ou=people,dc=example,dc=com"

คำตอบจะเป็นอย่างนี้ในความสำเร็จ:

# extended LDIF
#
# LDAPv3
# base <uid=username,ou=people,dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# username, people, example.com
dn: uid=username,ou=people,dc=example,dc=com
cn: User Name
uid: username
uidNumber: 1050
loginShell: /bin/bash
homeDirectory: /home/webminder
gidNumber: 1030
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
gecos: User Name
sn: User Name

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

คุณสามารถใช้ตัวกรองที่แตกต่างกัน ฉันมีเพียงเซิร์ฟเวอร์เดียวในเครือข่ายของฉัน


3

ปัญหาของคุณไม่ใช่ LDAP เป็น PAM

ตามที่ระบุไว้ในการแสดงความคิดเห็นในคำตอบ SACX ของคุณอาจไม่ได้มีการประยุกต์ใช้คอนโซลการเข้าสู่ระบบ (ปกติของ PAM system, xdm, gdmฯลฯ บริการ (s)) การกำหนดค่าเพื่อให้คำปรึกษา LDAP สำหรับการตรวจสอบผู้ใช้

คุณควรตรวจสอบเอกสาร PAM สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตั้งค่านี้


ฉันได้กำหนดค่าไฟล์เหล่านั้นแล้ว แต่มันไม่ทำงาน คุณสามารถตรวจสอบไฟล์ที่ฉันโพสต์ในความคิดเห็นข้างต้น LDAP ขาดเอกสารจริงๆ
FELDAP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.