Linux + Active Directory身份验证+仅允许某些组登录


14

我有一些使用Windows Active Directory身份验证的Linux机器,可以正常工作(Samba + Winbind)。

我现在想做的只是只允许某些人或某些组使用Active Directory凭据登录。当前,具有有效AD帐户的任何人都可以登录。我想将其限制为仅几个组。这可行吗?

Answers:


6

假设这些组可用于Linux系统,我建议编辑/etc/security/access.confUbuntu,RedHat发行版(及其分支)以及可能的其他版本。这不需要编辑PAM文件,这是一个很好的标准位置。文件中通常有示例,已注释掉。


谢谢,这就是我最终用来做我想做的事情的方法,上面所有的答案都很棒,但这对我来说是最合适的。我使用Samba文件来锁定Samba,现在我正在使用此access.conf文件来锁定SSH登录。
Luma 2010年

4

(我在这里谈论的是Samba 3,现在还没有Samba 4的经验。)

无需编辑那些/etc/pam.d/xxx文件。pam_winbind.conf是您想要的文件,它通常位于/etc/security/pam_winbind.conf中

它是pam_winbind模块的配置文件,适用于CentOS / Redhat和Debian / Ubuntu。您可以阅读pam_winbind.conf手册页以供参考。

这是一个示例文件。

#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#

[global]

# turn on debugging
;debug = no

# turn on extended PAM state debugging
;debug_state = no

# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes

# authenticate using kerberos
;krb5_auth = no

# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
;krb5_ccache_type =

# make successful authentication dependend on membership of one SID
# (can also take a name)
# require_membership_of = SID,SID,SID
require_membership_of = S-1-5-21-4255311587-2195296704-2687208041-1794

# password expiry warning period in days
;warn_pwd_expire = 14

# omit pam conversations
;silent = no

# create homedirectory on the fly
mkhomedir = yes

3

目前,我使用AllowGroupsin指令/etc/ssh/sshd_config来限制谁可以登录。在该行上指定一个或多个AD组,这些人将是唯一可以登录的人。

请记住,这仅在您的用户通过ssh远程访问服务器时才有效。如果他们在本地唱歌,则需要找到其他解决方案。


3

是的,有几种方法可以完成此操作,具体取决于您要完成的工作。

第一种方法可以通过samba配置完成。这将仅允许这些用户连接到Samba,其他用户仍可以通过其他服务(ssh,本地术语等)登录。这样,您将需要在smb.conf的[global]部分添加一行:

valid users = @groupA @groupB

另一种方法是通过修改PAM规则。不同的发行版在这里会有细微的差异,但是通常来说,每个服务都有PAM规则以及通用规则,您可以决定最好的。您将要使用pam_require模块添加帐户限制。我的笔记本电脑(Fedora 13)上的一个示例是将/etc/pam.d/system-auth中的account部分修改为:

account     required      pam_unix.so
account     required      pam_require.so @groupA @groupB
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

为了简化管理,您可能需要在AD中创建一个新组,以跟踪可以登录到该服务器的用户。


1

在RHEL 7中,我很难使以上任何一项都能为我工作。以下是我能够开始进行的工作。

/etc/sssd/sssd.conf

更改 access_provider = adaccess_provider = simple +simple_allow_groups = @group1-admins@xxx.xxx.com, @group2@xxx.xxx.com

维苏多

  • %group1-admins@xxx.xxx.com ALL=(ALL) ALL

重新启动sssd服务。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.