Am servere bazate pe RHEL 7 și 8.
Serverele RHEL 7 folosesc nslcd pentru a lucra cu un server LDAP, RHEL 8 utilizează SSSD.
Pentru RHEL 7 pot oferi acces utilizatorilor numai la gazdele permise.
Aceste funcții sunt acoperite de opțiunea din nslcd.conf:
pam_authz_search (&(objectClass=posixAccount)(uid=$uid)(|(gazdă=$nume gazdă.\*)(gazdă=\*)))
Folosesc optiunea "gazdă=$nume gazdă.\* " pentru utilizatorii obișnuiți care au o listă de servere permise, "gazdă=\*" este folosit pentru administratorii care au * pentru atributul host ldap.
SSSD are opțiunea ldap_access_filter și cu următoarele stări:
ldap_access_filter = (objectClass=posixAccount)
Toți utilizatorii se pot conecta la toate mașinile RHEL 8, ceea ce vreau să evit.
Este posibil să adăugați opțiuni de gazdă la ldap_access_filter așa cum am în nslcd.conf pe serverele vechi?
Multumesc anticipat.
UPD:
ldap_access_filter = (&(objectClass=posixAccount)(gazdă=\*))
funcționează pentru administratorii cu * în atributele gazdei ldapsearch:
~$ ldapsearch -LLL -Q -Z uid=admin-user gazdă
dn: uid=admin-user,ou=People,dc=my,dc=domain,dc=net
gazda: *
De asemenea, pot specifica numele serverului direct:
ldap_access_filter = (&(objectClass=posixAccount)(gazdă=servername.example.lan))
și funcționează și pentru utilizatorii care au acest server în listă:
~$ ldapsearch -LLL -Q -Z uid=a-testuser gazdă
dn: uid=a-testuser,ou=People,dc=my,dc=domain,dc=net
gazdă: servername.example.lan
Dar cum pot folosi variabile sau caractere speciale, cum ar fi * sau \*?