SSSD-Authentifizierung

SSSD-Authentifizierung

Ich habe gerade einen Testserver mit OpenSuSE 12.1 erstellt und versuche herauszufinden, wie man SSDD konfiguriert. Ich weiß aber nicht genau, wo ich anfangen soll, um herauszufinden, warum meine Konfiguration mir keine Authentifizierung ermöglicht.

server:/etc/sssd # cat sssd.conf 
[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss,pam

domains = test.local 

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

# Section created by YaST
[domain/test.local]
access_provider = ldap
ldap_uri = ldap://server.test.local
ldap_search_base = dc=test,dc=local
ldap_schema = rfc2307bis
id_provider = ldap
ldap_user_uuid = entryuuid
ldap_group_uuid = entryuuid
ldap_id_use_start_tls = True
enumerate = False
cache_credentials = True 
chpass_provider = krb5
auth_provider = krb5
krb5_realm = TEST.LOCAL

krb5_kdcip = server.test.local

server:/etc # cat ldap.conf 

base                            dc=test,dc=local
bind_policy                     soft
pam_lookup_policy               yes
pam_password                    exop
nss_initgroups_ignoreusers      root,ldap
nss_schema                      rfc2307bis
nss_map_attribute               uniqueMember member
ssl                             start_tls
uri                             ldap://server.test.local
ldap_version                    3
pam_filter                      objectClass=posixAccount

server:/etc # cat nsswitch.conf

passwd:         compat sss
group:          files sss

hosts:          files dns
networks:       files dns

services:       files
protocols:      files
rpc:            files
ethers:         files
netmasks:       files
netgroup:       files
publickey:      files

bootparams:     files
automount:      files ldap
aliases:        files
shadow:         compat


server:/etc # cat krb5.conf 

[libdefaults]
        default_realm = TEST.LOCAL
        clockskew = 300
[realms]
TEST.LOCAL = {
        kdc = server.test.local
        admin_server = server.test.local
        database_module = ldap
        default_domain = test.local
}
[logging]
        kdc = FILE:/var/log/krb5/krb5kdc.log
        admin_server = FILE:/var/log/krb5/kadmind.log
        default = SYSLOG:NOTICE:DAEMON
[dbmodules]
ldap = {
        db_library = kldap
        ldap_kerberos_container_dn = cn=krbContainer,dc=test,dc=local
        ldap_kdc_dn = cn=Administrator,dc=test,dc=local
        ldap_kadmind_dn = cn=Administrator,dc=test,dc=local
        ldap_service_password_file = /etc/openldap/ldap-pw
        ldap_servers = ldaps://server.test.local
}
[domain_realm]
        .test.local = TEST.LOCAL
[appdefaults]
pam = {
        ticket_lifetime = 1d
        renew_lifetime = 1d
        forwardable = true
        proxiable = false
        minimum_uid = 1
        clockskew = 300
        external = sshd
        use_shmem = sshd
}

Wenn ich mich beim Server als Root anmelde, kann ich mich per SU in einen LDAP-Benutzer einloggen. Wenn ich jedoch versuche, mich lokal über die Konsole oder per Remote-Zugriff per SSH anzumelden, kann ich mich nicht authentifizieren.

getent zeigt die LDAP-Einträge für Benutzer nicht an. Ich bin nicht sicher, ob ich mir LDAP, nsswitch oder was ansehen muss:

server:~ # ssh localhost -l test
Password: 
Password: 
Password: 
Permission denied (publickey,keyboard-interactive).

server:~ # su test
test@server:/etc> id
uid=1000(test) gid=100(users) groups=100(users)


server:~ # tail /var/log/messages 

Nov 24 09:36:44 server login[14508]: pam_sss(login:auth): system info: [Client not found in Kerberos database]
Nov 24 09:36:44 server login[14508]: pam_sss(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/ttyS1 ruser= rhost= user=test
Nov 24 09:36:44 server login[14508]: pam_sss(login:auth): received for user test: 4 (System error)
Nov 24 09:36:44 server login[14508]: FAILED LOGIN SESSION FROM /dev/ttyS1 FOR test, System error

server:~ # vi /etc/pam.d/common-auth

auth    required        pam_env.so
auth    sufficient      pam_unix2.so
auth    required        pam_sss.so      use_first_pass


server:~ # vi /etc/pam.d/sshd
auth     requisite      pam_nologin.so
auth     include        common-auth
account  requisite      pam_nologin.so
account  include        common-account
password include        common-password
session  required       pam_loginuid.so
session  include        common-session
session  optional       pam_lastlog.so   silent noupdate showfailed

Antwort1

Sie haben Ihren Zugangsanbieter nicht konfiguriert.
Sie haben access_provider = ldapihn zwar konfiguriert, aber ldap_access_filternirgendwo.

Aus der Manpage zur ldap_access_filterOption:

Wenn access_provider = ldap und diese Option nicht festgelegt ist, wird allen Benutzern der Zugriff verweigert.

Ich würde die access_providerOption einfach ganz entfernen, bis Sie eine funktionierende Konfiguration haben. Fangen Sie einfach an und bauen Sie von dort aus auf :-)

.

Hinweis: Es könnte auch ein Kerberos-Problem vorliegen. Aus dem von Ihnen geposteten Fehlerprotokoll geht hervor, dass es auf jeden Fall so klingt. Obwohl ich nicht weiß, ob Kerberos ein Problem verursacht, weiß ich, dass dies (was diese Antwort abdeckt) das Problem ist.

Antwort2

Sieht für mich nach einem PAM-Konfigurationsproblem aus.

Stellen Sie sicher, dass /etc/pam.d/sshddie Datei entweder (mit @der Direktive) mit dem SSDD-Modul referenziert wird oder direkt eingebunden wird.

verwandte Informationen