ฉันเห็นคำถามอื่น ๆ หลายข้อที่นี่เกี่ยวกับปัญหาที่คล้ายกัน แต่ฉันไม่พบสิ่งที่ใช้ได้ผลจริงสำหรับฉัน
เป้าหมายของฉันคือการพิสูจน์ตัวตน (สำหรับ SSH เป็นหลัก) เครื่อง Debian ทั้งหมดกับไดเร็กทอรี UCS (OpenLDAP) - ในอนาคตเฉพาะเมื่อผู้ใช้เป็นสมาชิกของกลุ่ม ldap ที่ระบุเท่านั้น แต่ตอนนี้ฉันกำลังดิ้นรนเพื่อให้มันใช้งานได้โดยไม่ต้องเป็นสมาชิกกลุ่ม
ฉันมักจะได้รับข้อผิดพลาด:
nslcd: [7b23c6] <authc="test"> DEBUG: ldap_sasl_bind("uid=test,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local") (ppolicy=ใช่)
nslcd: [7b23c6] <authc="test"> DEBUG: ldap_parse_result() ผลลัพธ์: ข้อมูลรับรองไม่ถูกต้อง
nslcd: [7b23c6] <authc="test"> DEBUG: ไม่สามารถผูกกับเซิร์ฟเวอร์ LDAP ldap://ldap.securitywho.local: ข้อมูลรับรองไม่ถูกต้อง
nslcd: [7b23c6] <authc="test"> DEBUG: ldap_unbind()
nslcd: [7b23c6] <authc="test"> uid=test,cn=users,dc=securitywho,dc=local: ข้อมูลรับรองไม่ถูกต้อง
nslcd: [7b23c6] <authc="test"> DEBUG: myldap_search(base="cn=users,dc=securitywho,dc=local", filter="(&(objectClass=*)(uid=test))")
nslcd: [7b23c6] <authc="test"> DEBUG: ldap_result(): uid=test,cn=users,dc=securitywho,dc=local
ผู้ใช้การผูกกำลังทำงานอยู่ ฉันตรวจสอบทุกอย่างด้วยคำสั่ง ldapsearch - ทุกอย่างทำงานได้ดีกับผู้ใช้การผูก และถ้าฉันใช้รหัสผ่านผิด การดีบักจะแสดงข้อผิดพลาดว่าฟังก์ชันการผูกไม่ทำงาน
ใช้ Ldapsearch - และใช้งานได้:
ldapsearch -x -H ldap://ldap.securitywho.local -D "uid=srv_linux,cn=users,dc=securitywho,dc=local" -b cn=users,dc=securitywho,dc=local -W
สนิปจากเอาต์พุต:
# ทดสอบ ผู้ใช้ securitywho.local
dn: uid=test,cn=users,dc=security who,dc=local
krb5MaxLife: 86400
krb5MaxRenew: 604800
uid: ทดสอบ
หมายเลขรหัส: 2008
SN: ทดสอบ
จีคอส: ทดสอบ
ชื่อที่แสดง: ทดสอบ
ไดเรกทอรีบ้าน: /home/test
ล็อกอินเชลล์: /bin/bash
mailForwardCopyToSelf: 0
ซีเอ็น: ทดสอบ
krb5PrincipalName: [email protected]
shadowLastChange: 18992
sambaBadPasswordCount: 0
sambaBadรหัสผ่านเวลา: 0
sambaAcctFlags: [U ]
objectClass: shadowAccount
objectClass: ด้านบน
objectClass: sambaSamAccount
objectClass: ติดตั้งอัตโนมัติ
objectClass: unventionPWHistory
objectClass: บุคคล
objectClass: krb5KDCEntry
objectClass: unventionObject
objectClass: inetOrgPerson
objectClass: krb5Principal
objectClass: organizationalPerson
objectClass: unventionMail
objectClass: posixบัญชี
sambaSID: S-1-5-21-258973841-725078507-1497259816-5016
gidNumber: 5001
sambaPrimaryGroupSID: S-1-5-21-258973841-725078507-1497259816-513
unventionObjectType: ผู้ใช้/ผู้ใช้
เพียงเพื่อยืนยันว่าผู้ทดสอบของฉันใช้งานได้ ฉันรันคำสั่ง ldapsearch กับผู้ใช้ผู้ทดสอบ - ทุกอย่างทำงานที่นี่เช่นกัน ฉันตรวจสอบว่ามีหลายบัญชีในไดเร็กทอรี OpenLDAP ทุกบัญชีทำงานที่นี่ แต่ไม่มีเลยเมื่อฉันลองใช้กับ SSH
ldapsearch -x -H ldap://ldap.securitywho.local -D "uid=test,cn=users,dc=securitywho,dc=local" -b cn=users,dc=securitywho,dc=local -W
กำหนดค่า /etc/nslcd.conf
# /etc/nslcd.conf
# ไฟล์กำหนดค่า nslcd ดู nslcd.conf(5)
#เพื่อดูรายละเอียด
# ผู้ใช้และกลุ่ม nslcd ควรทำงานเป็น
uid nslcd
gid nslcd
# ตำแหน่งที่ควรเข้าถึงเซิร์ฟเวอร์ LDAP
uri ldap://ldap.securitywho.local
# ฐานการค้นหาที่จะใช้สำหรับการค้นหาทั้งหมด
ฐาน cn=ผู้ใช้,dc=ความปลอดภัยใคร,dc=ท้องถิ่น
# เวอร์ชันโปรโตคอล LDAP ที่จะใช้
#ldap_version 3
# DN ที่จะผูกกับการค้นหาปกติ
binddn uid=srv_linux,cn=users,dc=security who,dc=local
bindpw <รหัสผ่านซุปเปอร์ซีเคียว>
# DN ใช้สำหรับแก้ไขรหัสผ่านโดยรูท
#rootpwmoddn cn=admin,dc=example,dc=com
# ตัวเลือก SSL
#ปิดssl
#tls_reqcert ไม่เคย
#tls_cacertfile /etc/ssl/certs/ca-certificates.crt
#ขอบเขตการค้นหา
#ขอบเขตย่อย
กรองรหัสผ่าน (objectClass=*)
รหัสผ่านแผนที่ uid uid
กรองเงา (objectClass=*)
แผนที่เงา uid uid
เสร็จสิ้นการดีบักเอาต์พุตของ nslcd:
root@ipam:~# nslcd -d
nslcd: DEBUG: NSS_LDAP nss-pam-ldapd 0.9.11
nslcd: DEBUG: CFG: เธรด 5
nslcd: DEBUG: CFG: uid nslcd
nslcd: DEBUG: CFG: gid 117
nslcd: DEBUG: CFG: uri ldap://ldap.securitywho.local
nslcd: DEBUG: CFG: ldap_version 3
nslcd: DEBUG: CFG: binddn uid=srv_linux,cn=users,dc=securitywho,dc=local
nslcd: DEBUG: CFG: bindpw ***
nslcd: DEBUG: CFG: ฐาน cn=users,dc=securitywho,dc=local
nslcd: DEBUG: CFG: ขอบเขตย่อย
nslcd: DEBUG: CFG: deref ไม่เคย
nslcd: DEBUG: CFG: การอ้างอิง ใช่
nslcd: DEBUG: CFG: กรองนามแฝง (objectClass=nisMailAlias)
nslcd: DEBUG: CFG: กรองอีเธอร์ (objectClass=ieee802Device)
nslcd: DEBUG: CFG: กลุ่มตัวกรอง (objectClass=posixGroup)
nslcd: DEBUG: CFG: กรองโฮสต์ (objectClass=ipHost)
nslcd: DEBUG: CFG: กรอง netgroup (objectClass=nisNetgroup)
nslcd: DEBUG: CFG: กรองเครือข่าย (objectClass=ipNetwork)
nslcd: DEBUG: CFG: กรองรหัสผ่าน (objectClass=*)
nslcd: DEBUG: CFG: กรองโปรโตคอล (objectClass=ipProtocol)
nslcd: DEBUG: CFG: กรอง rpc (objectClass=oncRpc)
nslcd: DEBUG: CFG: บริการตัวกรอง (objectClass=ipService)
nslcd: DEBUG: CFG: ตัวกรองเงา (objectClass=*)
nslcd: DEBUG: CFG: แมปกลุ่ม userPassword "*"
nslcd: DEBUG: CFG: แผนที่ passwd userPassword "*"
nslcd: DEBUG: CFG: แผนที่ passwd gecos "${gecos:-$cn}"
nslcd: DEBUG: CFG: map shadow userPassword "*"
nslcd: DEBUG: CFG: แผนที่เงา shadowLastChange "${shadowLastChange:--1}"
nslcd: DEBUG: CFG: แมป shadow shadowMin "${shadowMin:--1}"
nslcd: DEBUG: CFG: แผนที่ shadow shadowMax "${shadowMax:--1}"
nslcd: DEBUG: CFG: แผนที่เงา shadowWarning "${shadowWarning:--1}"
nslcd: DEBUG: CFG: map shadow shadowInactive "${shadowInactive:--1}"
nslcd: DEBUG: CFG: แผนที่ shadow shadowExpire "${shadowExpire:--1}"
nslcd: DEBUG: CFG: แผนที่เงา shadowFlag "${shadowFlag:-0}"
nslcd: DEBUG: CFG: pam_authc_ppolicy ใช่
nslcd: DEBUG: CFG: bind_timelimit 10
nslcd: DEBUG: CFG: เวลาจำกัด 0
nslcd: DEBUG: CFG: idle_timelimit 0
nslcd: DEBUG: CFG: reconnect_sleeptime 1
nslcd: DEBUG: CFG: reconnect_retrytime10
nslcd: DEBUG: CFG: ปิด ssl
nslcd: DEBUG: CFG: tls_reqcert ความต้องการ
nslcd: DEBUG: CFG: ขนาดหน้า 0
nslcd: ดีบัก: CFG: nss_min_uid 0
nslcd: DEBUG: CFG: nss_uid_offset 0
nslcd: DEBUG: CFG: nss_gid_offset 0
nslcd: DEBUG: CFG: nss_nested_groups ไม่
nslcd: DEBUG: CFG: nss_getgrent_skipmembers หมายเลข
nslcd: DEBUG: CFG: nss_disable_enumeration เลขที่
nslcd: DEBUG: CFG: ชื่อที่ถูกต้อง /^[a-z0-9._@$()]([a-z0-9._@$() \~-]*[a-z0-9._@$ ()~-])?$/i
nslcd: DEBUG: CFG: ละเว้นหมายเลขตัวพิมพ์
nslcd: DEBUG: CFG: pam_authc_search BASE
nslcd: DEBUG: CFG: แคช dn2uid 15m 15m
nslcd: เวอร์ชัน 0.9.11 เริ่มต้น
nslcd: DEBUG: initgroups("nslcd",117) เสร็จแล้ว
nslcd: DEBUG: setgid(117) เสร็จแล้ว
nslcd: DEBUG: setuid(110) เสร็จแล้ว
nslcd: DEBUG: unlink() ของ /var/run/nslcd/socket ล้มเหลว (ละเว้น): ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
nslcd: ยอมรับการเชื่อมต่อ
nslcd: [8b4567] DEBUG: การเชื่อมต่อจาก pid=896662 uid=0 gid=0
nslcd: [8b4567] <authc="test"> DEBUG: nslcd_pam_authc("ทดสอบ","sshd","***")
nslcd: [8b4567] <authc="test"> DEBUG: myldap_search(base="cn=users,dc=securitywho,dc=local", filter="(&(objectClass=*)(uid=test))")
nslcd: [8b4567] <authc="test"> DEBUG: ldap_initialize(ldap://ldap.securitywho.local)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_rebind_proc()
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_DEREF,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_TIMELIMIT,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_simple_bind_s("uid=srv_linux,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local")
nslcd: [8b4567] <authc="test"> DEBUG: ldap_result(): uid=test,cn=users,dc=securitywho,dc=local
nslcd: [8b4567] <authc="test"> DEBUG: myldap_search(base="uid=test,cn=users,dc=securitywho,dc=local", filter="(objectClass=*)")
nslcd: [8b4567] <authc="test"> DEBUG: ldap_initialize(ldap://ldap.securitywho.local)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_rebind_proc()
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_DEREF,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_TIMELIMIT,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_sasl_bind("uid=test,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local") (ppolicy=ใช่)
nslcd: [8b4567] <authc="test"> DEBUG: ldap_parse_result() ผลลัพธ์: ข้อมูลรับรองไม่ถูกต้อง
nslcd: [8b4567] <authc="test"> DEBUG: ไม่สามารถผูกกับเซิร์ฟเวอร์ LDAP ldap://ldap.securitywho.local: ข้อมูลรับรองไม่ถูกต้อง
nslcd: [8b4567] <authc="test"> DEBUG: ldap_unbind()
nslcd: [8b4567] <authc="test"> uid=test,cn=users,dc=securitywho,dc=local: ข้อมูลรับรองไม่ถูกต้อง
nslcd: [8b4567] <authc="test"> DEBUG: myldap_search(base="cn=users,dc=securitywho,dc=local", filter="(&(objectClass=*)(uid=test))")
nslcd: [8b4567] <authc="test"> DEBUG: ldap_result(): uid=test,cn=users,dc=securitywho,dc=local
สิ่งที่ฉันพยายามคือเล่นกับ "ขอบเขตการค้นหา" ใน /etc/nslcd.conf แต่ไม่มีชุดค่าผสมใดที่ทำให้มันใช้งานได้ สิ่งที่ฉันไม่พบปัญหาการกำหนดค่าใดๆ ในขณะนี้ มีใครพบปัญหาแบบเดียวกันหรือสามารถช่วยเหลือฉันได้บ้าง
ฉันติดตั้งทุกอย่างด้วย:
apt-get ติดตั้ง libpam-ldapd