【问题标题】:SSH access to specific LDAP group对特定 LDAP 组的 SSH 访问
【发布时间】:2018-09-04 15:30:11
【问题描述】:

我已经创建了一个 openLDAP 服务器和一个客户端。现在的要求是只允许某些特定 LDAP 组的成员在此客户端上进行 SSH。

客户端机器

我可以使用“getent group”查看 LDAP 组

这是我的 /etc/pam.d/sshd 文件

%PAM-1.0
account    required     pam_access.so
auth       required     pam_listfile.so onerr=fail item=group sense=allow 
file=/etc/openldap/sshgroups
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in 
the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

文件/etc/openldap/sshgroups的内容:

root
centos
ldap-test-group

但所有 LDAP 用户都可以登录到客户端计算机。

这里有什么问题?

【问题讨论】:

  • 如果我想限制用户,我可以使用“auth required pam_listfile.so onerr=fail item=user sense=allow file=/etc/openldap/sshusers”这一行来限制用户。这意味着,使用这种方式限制的不是组,而是用户。

标签: ssh ldap


【解决方案1】:

由于接受的答案没有提供任何具体信息,我将提供一个我能够提出的示例。这假设您将用户分配到一个 unix 组“mygroup”,该组控制他们是否应该登录。

/etc/pam.d/sshd 的早期帐户行中(在我的示例中,第二个 -- 在 pam_nologin.so 之后),包括以下行:

account  required     pam_access.so

然后在/etc/security/access.conf 中,您可以输入如下几行:

+:root:ALL
+:localuser:ALL
+:mygroup:ALL
-:ALL:ALL

这允许用户 root 和“localuser”以及组“mygroup”中的任何人通过 ssh 登录,但没有其他人。确保没有名为“mygroup”的用户,否则您的里程可能会有所不同(有解决问题的方法)。专业提示:确保您始终留下不依赖 LDAP 的登录方式并成为 root,并在添加 -:ALL:ALL 规则之前测试所有这些,并且在您证明一切正常之前不要离开您的 root shell正在按照您想要的方式工作。您无需重新启动或以其他方式重新加载任何配置文件即可激活新配置。任何新的 ssh 尝试都将使用新的访问策略。

另请注意,/etc/security/access.conf 可能会限制 ssh 以外的登录 - 有时它用于限制(控制台)login 和/或可能引用 pam_access.so 的其他地方 - 所以仔细检查所有访问机制在宣布胜利之前。每行中的最后一个参数控制所引用的用户的来源。

【讨论】:

    【解决方案2】:

    经过大量的点击和试用方法,我能够使用 pam_access.so 和 access.conf 获得它。

    【讨论】:

    • 如果你记录下什么是有效的,这将是一个非常有用的答案,而不是简单地说“我做了一些涉及这些词的事情”,这确实回答了这个问题。我会将我的反对票改为赞成票。
    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 2018-07-24
    • 2021-05-24
    • 2011-08-09
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多