Kerberos認証でpam_sssアクセスが拒否されました


2

Ubuntu 18.04(サーバーおよびクライアントマシン)でKerberos認証とldapを使用してsssdを使用しようとしています。Ubuntuクライアント側にsssd sssd-toolsパッケージをインストールしました。しかし、LDAPのユーザーであるaliceにログインしたいときは、できません。サーバーがチケットを(サーバーKerberosのログで)配信し、クライアントがキャッシュでチケットを受信して​​いることがわかります。Mkhomedirは/etc/pam.d/commom-sessionにあります。

mkhomedirを有効にする必要があることがわかったので、実行しましたpam-auth-update --package mkhomedirが、何も変わりませんでした。

auth.logには次のように書かれています:

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)`

getent passwd <ldap user>作品。クライアントのkrb5.keytabにも追加しました。

ここに私の設定ファイル。

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ファイル:

# /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

pam.dファイルにpam_sss.soがあります:

# /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

sssdにlibpam_krb5.soが必要かどうか知っていますか?何かアイデアがある場合、またはより多くの情報が必要な場合は、donしないでください!ありがとうございました。

回答:


2

認証と承認を混同していると思います。ログからわかるように、認証フェーズは成功します(資格情報が正常に検証されたことを意味します)...

7月19日14:30:39 virtualBox gdm-password]:pam_sss(gdm-password:auth):認証成功; logname = uid = 0 euid = 0 tty = / dev / tty1 ruser = rhost = user = alice

...しかし、承認フェーズは失敗します(資格情報に関係なく、ユーザーはサービスの使用を許可さないことを意味します):

7月19日14:30:39 virtualBox gdm-password]:pam_sss(gdm-password:account):ユーザーaliceのアクセス拒否:6(自動拒否拒否)

このメッセージはpam_sss自体によって表示されたため、SSSD設定に関連しています。ldapアクセス(認証)プロバイダーとして設定しました:

[domain/STAGENFS.FR]
access_provider = ldap

つまり、アクセス権はldap_access_order設定によって制御されます。持っていませんが、デフォルト値はfilter(sssd-ldap(5)マニュアルによる)です。

「フィルター」はldap_access_filter、LDAPサーバーを照会する設定を使用してアクセスチェックが行われることを意味します。この設定も存在せず、デフォルト値もありません。「フィルター」モードを使用する場合は必須です。

正しい承認規則を指定する必要があります。適用するフィルターを決定するか、ldap_access_order設定(またはaccess_provider)を別のものに変更します。


1
ありがとう、うまくいった。私が追加ldap_access_order = filterとフィルタ:ldap_access_filter = &(objectClass=posixAccount) (uidNumber=*)sssd.confファイルで、私は、LDAPユーザアカウントにログインするために管理
チャールズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.