Am mai văzut aici câteva alte întrebări referitoare la o problemă similară - dar nu am găsit ceva care să funcționeze cu adevărat pentru mine.
Scopul meu este de a autentifica (în principal pentru SSH) toate mașinile Debian împotriva unui director UCS (OpenLDAP) - în viitor numai atunci când utilizatorul este membru al unui anumit grup ldap. Dar în prezent mă străduiesc să funcționeze chiar și fără a fi membru de grup.
Intotdeauna primesc eroarea:
nslcd: [7b23c6] <authc="test"> DEBUG: ldap_sasl_bind("uid=test,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local") (ppolicy=yes)
nslcd: [7b23c6] <authc="test"> DEBUG: rezultat ldap_parse_result(): acreditări nevalide
nslcd: [7b23c6] <authc="test"> DEBUG: nu s-a putut lega la serverul LDAP ldap://ldap.securitywho.local: Acreditări nevalide
nslcd: [7b23c6] <authc="test"> DEBUG: ldap_unbind()
nslcd: [7b23c6] <authc="test"> uid=test,cn=users,dc=securitywho,dc=local: acreditări nevalide
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
Utilizatorul bind funcționează, am verificat totul cu o comandă ldapsearch - acolo totul funcționează bine cu utilizatorul bind și dacă folosesc o parolă greșită, depanarea arată o eroare că funcția de legare nu funcționează.
Ldapsearch a folosit - și funcționează:
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
Snip de la ieșire:
# test, utilizatori, securitywho.local
dn: uid=test,cn=users,dc=securitywho,dc=local
krb5MaxLife: 86400
krb5MaxRenew: 604800
uid: test
Număr uid: 2008
sn: test
gecos: test
displayName: test
homeDirectory: /home/test
loginShell: /bin/bash
mailForwardCopyToSelf: 0
cn: test
krb5PrincipalName: [email protected]
shadowLastChange: 18992
sambaBadPasswordCount: 0
sambaBadPasswordTime: 0
sambaActFlags: [U ]
objectClass: shadowAccount
objectClass: top
objectClass: sambaSamAccount
objectClass: montare automată
objectClass: univentionPWHistory
objectClass: persoană
objectClass: krb5KDCEntry
objectClass: univentionObject
objectClass: inetOrgPerson
objectClass: krb5Principal
objectClass: organizationalPerson
objectClass: univentionMail
objectClass: posixAccount
sambaSID: S-1-5-21-258973841-725078507-1497259816-5016
gidNumăr: 5001
sambaPrimaryGroupSID: S-1-5-21-258973841-725078507-1497259816-513
univentionObjectType: utilizatori/utilizator
Doar pentru a verifica dacă testuser-ul meu funcționează, am rulat comanda ldapsearch cu testuser - totul a funcționat și aici. Am verificat că cu mai multe conturi în directorul OpenLDAP, toate au funcționat aici, dar niciunul când am încercat pentru 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
Configurați /etc/nslcd.conf
# /etc/nslcd.conf
# fișier de configurare nslcd. Vezi nslcd.conf(5)
# pentru detalii.
# Utilizatorul și grupul nslcd ar trebui să ruleze ca.
uid nslcd
gid nslcd
# Locația în care serverele LDAP ar trebui să fie accesibile.
uri ldap://ldap.securitywho.local
# Baza de căutare care va fi utilizată pentru toate interogările.
baza cn=utilizatori,dc=securitywho,dc=local
# Versiunea protocolului LDAP de utilizat.
#ldap_versiunea 3
# DN-ul cu care să se lege pentru căutări normale.
binddn uid=srv_linux,cn=users,dc=securitywho,dc=local
bindpw <CUVOLA SUPERSEGURETĂ>
# DN-ul folosit pentru modificările parolei de către root.
#rootpwmoddn cn=admin,dc=exemplu,dc=com
# opțiuni SSL
#ssl dezactivat
#tls_reqcert niciodată
#tls_cacertfile /etc/ssl/certs/ca-certificates.crt
# Domeniul de căutare.
#scop sub
filtru passwd (objectClass=*)
map passwd uid uid
filtru umbră (objectClass=*)
map shadow uid uid
Ieșire completă de depanare a nslcd:
root@ipam:~# nslcd -d
nslcd: DEBUG: NSS_LDAP nss-pam-ldapd 0.9.11
nslcd: DEBUG: CFG: fire 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: baza cn=users,dc=securitywho,dc=local
nslcd: DEBUG: CFG: scope sub
nslcd: DEBUG: CFG: deref niciodată
nslcd: DEBUG: CFG: trimiteri da
nslcd: DEBUG: CFG: filtru alias (objectClass=nisMailAlias)
nslcd: DEBUG: CFG: filtru eteri (objectClass=ieee802Device)
nslcd: DEBUG: CFG: grup de filtre (objectClass=posixGroup)
nslcd: DEBUG: CFG: filtru gazde (objectClass=ipHost)
nslcd: DEBUG: CFG: filtrare netgroup (objectClass=nisNetgroup)
nslcd: DEBUG: CFG: rețele de filtrare (objectClass=ipNetwork)
nslcd: DEBUG: CFG: filter passwd (objectClass=*)
nslcd: DEBUG: CFG: protocoale de filtrare (objectClass=ipProtocol)
nslcd: DEBUG: CFG: filtru rpc (objectClass=oncRpc)
nslcd: DEBUG: CFG: servicii de filtrare (objectClass=ipService)
nslcd: DEBUG: CFG: filtru umbră (objectClass=*)
nslcd: DEBUG: CFG: grup de hartă userPassword „*”
nslcd: DEBUG: CFG: map passwd userPassword "*"
nslcd: DEBUG: CFG: map passwd gecos "${gecos:-$cn}"
nslcd: DEBUG: CFG: umbră hartă parola utilizatorului „*”
nslcd: DEBUG: CFG: hartă shadow shadowLastChange „${shadowLastChange:--1}”
nslcd: DEBUG: CFG: map shadow shadowMin "${shadowMin:--1}"
nslcd: DEBUG: CFG: hartă shadow shadowMax „${shadowMax:--1}”
nslcd: DEBUG: CFG: map shadow shadowWarning „${shadowWarning:--1}”
nslcd: DEBUG: CFG: map shadow shadowInactive „${shadowInactive:--1}”
nslcd: DEBUG: CFG: map shadow shadowExpire „${shadowExpire:--1}”
nslcd: DEBUG: CFG: map shadow shadowFlag „${shadowFlag:-0}”
nslcd: DEBUG: CFG: pam_authc_ppolicy da
nslcd: DEBUG: CFG: bind_timelimit 10
nslcd: DEBUG: CFG: limită de timp 0
nslcd: DEBUG: CFG: idle_timelimit 0
nslcd: DEBUG: CFG: reconnect_sleeptime 1
nslcd: DEBUG: CFG: reconnect_retrytime 10
nslcd: DEBUG: CFG: ssl dezactivat
nslcd: DEBUG: CFG: cerere tls_reqcert
nslcd: DEBUG: CFG: dimensiunea paginii 0
nslcd: DEBUG: 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 nr
nslcd: DEBUG: CFG: nss_getgrent_skipmembers nr
nslcd: DEBUG: CFG: nss_disable_enumeration nr
nslcd: DEBUG: CFG: validnames /^[a-z0-9._@$()]([a-z0-9._@$() \~-]*[a-z0-9._@$ ()~-])?$/i
nslcd: DEBUG: CFG: ignorecase nr
nslcd: DEBUG: CFG: pam_authc_search BASE
nslcd: DEBUG: CFG: cache dn2uid 15m 15m
nslcd: pornește versiunea 0.9.11
nslcd: DEBUG: initgroups("nslcd",117) terminat
nslcd: DEBUG: setgid(117) terminat
nslcd: DEBUG: setuid(110) terminat
nslcd: DEBUG: unlink() of /var/run/nslcd/socket failed (ignorat): Nu există un astfel de fișier sau director
nslcd: acceptarea conexiunilor
nslcd: [8b4567] DEBUG: conexiune de la pid=896662 uid=0 gid=0
nslcd: [8b4567] <authc="test"> DEBUG: nslcd_pam_authc("test","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=yes)
nslcd: [8b4567] <authc="test"> DEBUG: rezultat ldap_parse_result(): acreditări nevalide
nslcd: [8b4567] <authc="test"> DEBUG: nu s-a putut lega la serverul LDAP ldap://ldap.securitywho.local: Acreditări nevalide
nslcd: [8b4567] <authc="test"> DEBUG: ldap_unbind()
nslcd: [8b4567] <authc="test"> uid=test,cn=users,dc=securitywho,dc=local: acreditări nevalide
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
Ceea ce am încercat a fost să mă joc cu „sfera de căutare” din /etc/nslcd.conf, dar nicio combinație nu a făcut-o să funcționeze. Ceea ce în prezent nu văd nicio problemă de configurare - a avut cineva aceeași problemă sau m-ar putea ajuta?
Am instalat totul cu:
apt-get install libpam-ldapd