web-dev-qa-db-ja.com

sssdでaccess.confとnetgroup認証を使用している人はいますか?

ユーザーのLDAPネットグループメンバーシップに基づいて、特定のホストグループに対して(sshを介して)ユーザーを認証できるようにしたい。 LDAPサーバーはdsee7です。ディストリビューションは、クライアントとしてopenldapを使用するOEL6.5です。

LDAPを使用して認証したくない唯一のアカウントはrootです。

sssd.confは次のようになります。

[sssd]
config_file_version = 2
services = nss,pam,autofs

domains = default
[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75

[pam]


[domain/default]
auth_provider = ldap
ldap_id_use_start_tls = True
chpass_provider = ldap
cache_credentials = True
ldap_search_base = dc=e-durp,dc=com
id_provider = ldap
ldap_uri = ldaps://lvl1.lvs01.edurp.com/ ldaps://lvl1.lvs01.edurp.com/
ldap_tls_cacertdir = /etc/openldap/cacerts

/etc/openldap/ldap.confは次のようになります。

URI ldaps://ldap.edurp.com/ ldaps://ldap1.edurp.com ldaps://ldap2.edurp.com
BASE dc=edurp,dc=com
TLS_CACERTDIR /etc/openldap/cacerts
TLS_CACERT /etc/openldap/cacerts/ldap_ca.cert
TLS_REQCERT never

nsswitch.confは次のようになります。

passwd:     files compat
shadow:     files compat
passwd_compat: sss
shadow_compat: sss
group:      files sss
hosts:      files dns
bootparams: nisplus [NOTFOUND=return] files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss
netgroup:   sss files
publickey:  nisplus
automount:  files ldap
aliases:    files nisplus

そして/etc/pam.d/system-authは次のように読みます。

auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_sss.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so

そこで、次のようにネットグループを/etc/security/access.confに追加してみました。

#- : ALL : ALL
-:@eeederp: ALL

念のためsssdを再起動しました。 。 。

私のユーザーはネットグループeeederpに属しており、LDAPパスワードを使用して引き続きアクセスできます。

手がかりをいただければ幸いです。

1
mr.zog

Netgroupsを使用してADに対してRedHat6を正常に認証しています。古いSunLDAPサーバーに対して認証を取得しようとしていますが、うまくいきません。ネットグループが表示され、「getent netgroup {netgroupの名前}」のユーザーが表示され、ユーザーに訴えることができます。ただし、ログインしようとしても機能しません。

私のAD認証からあなたに言えることは、あなたのネットグループステートメントがあなたが望むものの反対であるということです。 -で始まる場合は、ログインを許可しないことを意味します。これを+に切り替えてみてください。これは、このネットグループのユーザーがログインできるようにすることを意味します。

また、getentコマンドを使用して、ユーザーとネットグループが正しく表示されるかどうかを確認します。 getent passwd {ユーザー名} getent netgroup {ネットグループの名前}

Getentは、この情報についてローカルファイル(nsswitch.confで定義されている)も調べるため、情報がLDAP経由でのみ利用可能であることを確認してください。

お役に立てれば、

ダン

0
DanTMan63

Pamの専門家ではありませんが、access.confを使用している場合は、pam_access.soへの参照が必要です。おそらく:アカウントが必要ですpam_access.so

テスト中はルートシェルを開いたままにしてください。悪いpam編集でrootユーザーをロックアウトすることができました。

1
Andy

上記のようにSSSDを使用している場合、netrgoupsの「compatglibcモード」が機能するには、nsswitch.confエントリは次のようになります。

/ etc/nsswitch.conf

passwd: compat
passwd_compat: sss

/ etc/passwordには次のものが必要です

-@eeederp

ない

-@eeederp:x:::::

そのネットグループ@eeederp内のすべてのユーザーがサーバーにアクセスできないようにします。 access.confが機能しなかった理由がわかりません。ただし、これは機能します。

0
Walid