ユーザーの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パスワードを使用して引き続きアクセスできます。
手がかりをいただければ幸いです。
Netgroupsを使用してADに対してRedHat6を正常に認証しています。古いSunLDAPサーバーに対して認証を取得しようとしていますが、うまくいきません。ネットグループが表示され、「getent netgroup {netgroupの名前}」のユーザーが表示され、ユーザーに訴えることができます。ただし、ログインしようとしても機能しません。
私のAD認証からあなたに言えることは、あなたのネットグループステートメントがあなたが望むものの反対であるということです。 -で始まる場合は、ログインを許可しないことを意味します。これを+に切り替えてみてください。これは、このネットグループのユーザーがログインできるようにすることを意味します。
また、getentコマンドを使用して、ユーザーとネットグループが正しく表示されるかどうかを確認します。 getent passwd {ユーザー名} getent netgroup {ネットグループの名前}
Getentは、この情報についてローカルファイル(nsswitch.confで定義されている)も調べるため、情報がLDAP経由でのみ利用可能であることを確認してください。
お役に立てれば、
ダン
Pamの専門家ではありませんが、access.confを使用している場合は、pam_access.soへの参照が必要です。おそらく:アカウントが必要ですpam_access.so
テスト中はルートシェルを開いたままにしてください。悪いpam編集でrootユーザーをロックアウトすることができました。
上記のようにSSSDを使用している場合、netrgoupsの「compatglibcモード」が機能するには、nsswitch.confエントリは次のようになります。
/ etc/nsswitch.conf
passwd: compat
passwd_compat: sss
/ etc/passwordには次のものが必要です
-@eeederp
ない
-@eeederp:x:::::
そのネットグループ@eeederp内のすべてのユーザーがサーバーにアクセスできないようにします。 access.confが機能しなかった理由がわかりません。ただし、これは機能します。