web-dev-qa-db-ja.com

SSSDを使用したSudoの設定

Windows ADアカウントを使用してLinuxシステムにログインしようとしています。 SSSDを使用して正常に設定されました。

IDおよびアクセスプロバイダーとしてLDAPを使用し、認証プロバイダーとしてKerberosを使用しました。

Linuxシステムをドメインに参加させることなく、すべてこれを実行しました。

現在、LDAPをSudoプロバイダーとして構成しようとしています。しかし、それは成功していません。 Sudo権限を広告ユーザーに昇格できません。私もsudoersファイルを使用してみましたが、特定のユーザーに権限を昇格できますが、広告グループには昇格できません。

SSSD設定w.r.t Sudo設定は次のとおりです

**Sudo_provider = ldap

ldap_Sudo_search_base = ou=groups,dc=ad,dc=example,dc=com
ldap_sudorule_object_class = sudoRole
ldap_sudorule_object_class = top
ldap_sudorule_command = ALL
ldap_sudorule_Host = ALL
ldap_sudorule_user = %domain_group
ldap_sudorule_runasuser = ALL
ldap_sudorule_runas = ALL
ldap_sudorule_runasgroup = ALL
ldap_sudorule_option = !authenticate**

デバッグレベル7でログを有効にしてみましたが、ローカルルールを読み込めないという記述があります。

よろしく、Uday。

4
Uday

構成ファイルスイッチの目的を誤解していると思います。これらは、照会されたオブジェクトのLDAP値をマップするのに役立ちます。ディレクティブのデフォルトは、補助オブジェクトクラスで指定された値です(スキーマはCentOSの/usr/share/doc/Sudo-*/schema.ActiveDirectoryにあります)。

このスキーマをADにインポートし、このオブジェクトクラスを使用してSudoロールを表すオブジェクトを作成し、SSSDにそれらをクエリさせることになっています。

以下の完全な例を見つけてください:

LDAPからユーザー、グループ、およびSudoロールをクエリするサンプルSSSD設定は次のとおりです。 <>で囲まれた部分を、環境に適した値に置き換えます。

[domain/default]
id_provider = ldap
auth_provider = ldap
access_provider = ldap
chpass_provider = ldap
Sudo_provider = ldap
ldap_uri = ldaps://<ldap-server-address>:636
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt
ldap_tls_reqcert = demand
ldap_default_bind_dn = <proxy-user-dn>
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = <obfuscated password>                                                                                      
ldap_search_base = <search base for users>
ldap_schema = rfc2307bis
ldap_group_search_base = <search base for groups>
ldap_Sudo_search_base = <search base for Sudo rules>
cache_credentials = false
enumerate = false

[sssd]
services = nss, pam, ssh, Sudo
config_file_version = 2
domains = default

[nss]

[pam]

[Sudo]

[autofs]

[ssh]

LDAPディレクトリで、ldap_Sudo_search_baseの下に次のようなオブジェクトを作成します。

objectClass: Top
objectClass: sudoRole
sudoRunAsUser: ALL
sudoHost: yourhost.example.com
sudoUser: %wheel
sudoCommand: ALL
description: Allows members of wheel to become root
cn: wheel_group_Sudo_role

これにより、グループホイールのすべてのメンバーがホストyourhost.example.comのルートになることができます。

ターゲットホストでrootとしてSudo -U testuser -llを実行すると、次のようになります。

LDAP Role: wheel_group_Sudo_role
    RunAsUsers: ALL
    RunAsGroups: ALL
    Commands:
        ALL

編集

おわかりのように、SSSDはユーザーにLinuxボックスを提供するため、それらを通常のLinuxユーザーとして扱い、ローカルSudoルールを作成できます。

/etc/sudoers.d/00-local-admin-rule

%ad-admin-group ALL: (ALL) ALL

これにより、ad-admin-groupのメンバーがSudoを呼び出してrootになることができます。

*_search_baseについて話すとき、LDAPコンテナオブジェクトの何らかの形式のDNが意味されます。 ou = users、o = corg、dc = example、dc = orgのような組織単位、またはディレクトリが機能する任意の階層。指定したコンテナの下に目的のタイプのオブジェクトを作成します。

2
fuero