Ubuntu 18.04(サーバーとクライアントマシン)でKerberos認証とLDAPでsssdを使用しようとしています。 Ubuntuクライアント側でsssd sssd-tools
パッケージをインストールしました。しかし、LDAPのユーザーであるアリスにログインしたいのですが、ログインできません。サーバーがチケットを(サーバーの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が必要かどうか知っていますか?何かアイデアがある場合、またはより多くの情報が必要な場合は、遠慮なく!ありがとうございました。
認証と承認を混同していると思います。ログからわかるように、認証フェーズ成功(資格情報が正常に検証されたことを意味します)...
7月19日14:30:39virtualBox gdm-password]:pam_sss(gdm-password:auth):認証成功; logname = uid = 0 euid = 0 tty =/dev/tty1 ruser = rhost = user = alice
...しかし、承認フェーズは失敗します(つまり、ユーザーは許可されていません資格情報に関係なくサービスを使用できます):
7月19日14:30:39virtualBox 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
)を別のものに変更します。