是否有人使用 access.conf 和 netgroup 身份验证与 sssd 一起使用?

是否有人使用 access.conf 和 netgroup 身份验证与 sssd 一起使用?

我希望能够根据用户的 LDAP 网络组成员身份,通过 ssh 将用户验证到特定主机组。LDAP 服务器是 dsee7。发行版是 OEL 6.5,以 openldap 为客户端。

我们不想使用 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

我已成功使用 Netgroups 使 Red Hat 6 能够通过 AD 进行身份验证。我尝试让它通过旧的 Sun LDAP 服务器进行身份验证,但运气不佳。我可以看到网络组,可以使用“getent netgroup {netgroup 的名称}”看到用户,并且可以通过 su 访问该用户。但是,当我尝试登录时,它不起作用。

从我的 AD 身份验证中我可以告诉你的是,你的网络组声明与你想要的正好相反。当你以 - 开头时,这意味着不允许他们登录。尝试将其切换为 +,这意味着允许此网络组中的用户登录。

还可以使用 getent 命令检查是否可以正确查看用户和网络组。getent passwd {用户名} getent netgroup {网络组名称}

请记住,getent 还会查看您的本地文件(如 nsswitch.conf 中所定义)以获取此信息,因此请确保该信息仅可通过 LDAP 获得。

希望这可以帮助,

答案2

不是 pam 专家,但如果您使用 access.conf,则需要引用 pam_access.so。也许:帐户需要 pam_access.so

测试时只需保持 root shell 处于打开状态。我已设法通过错误的 pam 编辑锁定 root 用户。

答案3

如果你使用上述的 SSSD,那么 nsswitch.conf 条目应该如下,以使 netrgoups“兼容 glibc 模式”正常工作

/etc/nsswitch.conf

passwd: compat
passwd_compat: sss

你的 /etc/password 应该有以下内容

-@eeederp

不是

-@eeederp:x:::::

禁止该网络组@eeederp 中的任何用户访问服务器。不确定为什么 access.conf 不起作用。但是这会起作用。

相关内容