pam_sss Zugriff mit Kerberos-Authentifizierung verweigert

664
Charles

Ich versuche, sssd mit Kerberos-Authentifizierung und ldap auf Ubuntu 18.04 (Server- und Client-Computer) zu verwenden. Auf dem Ubuntu-Client habe ich sssd sssd-toolsPakete installiert . Wenn ich mich jedoch bei alice anmelden möchte, einem Benutzer meiner LDAP, kann ich das nicht. Ich kann sehen, dass der Server das Ticket liefert (in den Protokollen von Server Kerberos) und der Client das Ticket im Cache erhält. Mkhomedir ist in /etc/pam.d/commom-session gut vertreten.

Ich fand, dass mkhomedir aktiviert sein sollte, also lief ich, pam-auth-update --package mkhomediraber nichts änderte sich.

Das auth.log sagt folgendes:

Jul 19 14:30:12 virtualBox gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=alice Jul 19 14:30:13 virtualBox gdm-password]: pam_sss(gdm-password:auth): authentication success; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=alice Jul 19 14:30:13 virtualBox gdm-password]: pam_sss(gdm-password:account): Access denied for user alice: 6 (Autorisation refusée) Jul 19 14:30:32 virtualBox gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=alice Jul 19 14:30:32 virtualBox gdm-password]: pam_sss(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=alice Jul 19 14:30:32 virtualBox gdm-password]: pam_sss(gdm-password:auth): received for user alice: 17 (Échec lors de la définition des informations d'identification de l'utilisateur) Jul 19 14:30:39 virtualBox gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=alice Jul 19 14:30:39 virtualBox gdm-password]: pam_sss(gdm-password:auth): authentication success; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=alice Jul 19 14:30:39 virtualBox gdm-password]: pam_sss(gdm-password:account): Access denied for user alice: 6 (Autorisation refusée)` 

Die getent passwd <ldap user>Werke Ich habe auch das zu krb5.keytab des Clients hinzugefügt.

Hier meine Konfigurationsdateien.

Datei sssd.conf:

[sssd] debug_level = 0xFFF0 config_file_version = 2 services = nss,pam domains = STAGENFS.FR  [nss] debug_level = 0xFFF0 filter_users = root filter_groups = root  [pam] debug_level = 0xFFF0 offline_credentials_expiration = 1  [domain/STAGENFS.FR] debug_level = 0xFFF0 ldap_schema = rfc2307 ldap_search_base = ou=tl  id_provider = ldap auth_provider = krb5 chpass_provider = krb5 access_provider = ldap  ldap_uri = ldaps://ldap02.stagenfs.fr ldap_referrals = False ldap_id_use_start_tls = False cache_credentials = True account_cache_expiration = 1 enumerate = True ldap_default_bind_dn = cn=proxyuser,ou=private,ou=tl ldap_default_authtok_type = password ldap_default_authtok = ProxyUser123# ldap_tls_cacert = /etc/ssl/certs/cacert.pem  krb5_realm = STAGENFS.FR krb5_canonicalize = False krb5_server = kdc.stagenfs.fr krb5_kpasswd = kdc.stagenfs.fr krb5_ccachedir = /cache 

nsswitch Datei:

# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file.  passwd: compat systemd sss group: compat systemd sss shadow: compat sss gshadow: files  hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname networks: files  protocols: db files services: db files sss ethers: db files rpc: db files  netgroup: nis sss sudoers: files sss 

Ich habe pam_sss.so in pam.d-Dateien:

# /etc/pam.d/common-account account [default=bad success=ok user_unknown=ignore] pam_sss.so  # /etc/pam.d/common-auth auth [success=1 default=ignore] pam_sss.so use_first_pass  # /etc/pam.d/common-password password sufficient pam_sss.so use_authtok  # /etc/pam.d/common-session session required pam_mkhomedir.so skel=/etc/skel/ session optional pam_sss.so 

Wissen Sie, ob sssd libpam_krb5.so benötigt? Wenn Sie eine Idee haben oder weitere Informationen benötigen, zögern Sie nicht! Vielen Dank.

0

1 Antwort auf die Frage

0
grawity

Ich denke, Sie mischen Authentifizierung und Autorisierung. Wie Sie den Protokollen entnehmen können, ist die Authentifizierungsphase erfolgreich (dh die Anmeldeinformationen wurden erfolgreich verifiziert).

19. Juli 14:30:39 virtualBox gdm-password]: pam_sss (gdm-password: auth): Authentifizierung erfolgreich; logname = uid = 0 euid = 0 tty = / dev / tty1 ruser = rhost = user = alice

... aber die Autorisierungsphase schlägt fehl (was bedeutet, dass der Benutzer den Dienst unabhängig von den Berechtigungsnachweisen nicht verwenden darf ):

19. Juli 14:30:39 virtualBox gdm-password]: pam_sss (gdm-password: account): Zugang verweigert für Benutzer alice: 6 (Autorisierung refusée)

Da diese Nachricht von pam_sss selbst angezeigt wurde, bezieht sie sich auf die SSSD-Einstellungen. Sie haben ldapals Zugangsanbieter (Autorisierung) konfiguriert :

[domain/STAGENFS.FR] access_provider = ldap 

Das bedeutet, dass die Zugriffsrechte von der ldap_access_orderEinstellung gesteuert werden . Sie haben es nicht, aber der Standardwert ist filter(gemäß dem Handbuch zu sssd-ldap (5)).

"Filtern" bedeutet, dass Zugriffsprüfungen mit der ldap_access_filterEinstellung zum Abfragen des LDAP-Servers durchgeführt werden. Sie haben diese Einstellung auch nicht und sie hat keinen Standardwert. Sie ist obligatorisch, wenn Sie den "Filter" -Modus verwenden möchten.

Sie müssen die korrekten Berechtigungsregeln angeben - entweder entscheiden Sie sich für einen Filter, den Sie anwenden möchten, oder ändern Sie die ldap_access_orderEinstellung (oder sogar die Einstellung access_provider) in einen anderen.

Danke, es hat funktioniert. Ich fügte `ldap_access_order = filter 'und einen Filter hinzu:` ldap_access_filter = & (objectClass = posixAccount) (uidNumber = *) `in der Datei sssd.conf und ich konnte mich beim ldap-Benutzerkonto anmelden Charles vor 5 Jahren 0