我已成功将我的 Linux 加入到 Windows 域,现在域中的每个人都可以使用 ssh 登录到服务器。
但我们只想允许某个组中的某些用户登录。
当前两个组的示例:
#it_admin
Domain Admin
答案1
有两种方法可以实现这一点。一种是让 SSH 配置过滤,另一种是使用pam_access
。
使用 SSH 配置
要/etc/ssh/sshd_config
添加一行AllowGroups
:
AllowGroups Domain Admin
来自手册页:
AllowGroups
This keyword can be followed by a list of group name patterns,
separated by spaces. If specified, login is allowed only for
users whose primary group or supplementary group list matches one
of the patterns.
Domain Admin
此处不匹配Domain Admin
组名,而是两个单独的组Domain
和Admin
。您必须使用类似Domain*Admin
和之类的字符*it_admin
,因为(空格) 和 (
#
) 通常都不是 Linux 组中的有效字符。为了更安全,请使用:和?
代替,这样通配符只允许一个字符。您还可以添加基于模式的 DenyGroups 部分。请参阅*
Domain?Admin
?it_admin
PATTERNS
man ssh_config
。
使用pam_access
添加以下/etc/security/access.conf
格式的行:
- : ALL EXCEPT (Domain) (Admin) : ALL
该文件中有大量注释,记录了如何使用它。man pam_access
非常简单,所以大部分信息都来自这些注释。pam_access
更强大的是它还可以控制非 SSH 登录(TTY、GUI 等)。例如,这一行应该完全拒绝任何没有Domain
或Admin
作为组的用户登录(除非其他行允许他们登录)。
这两种方法都非常灵活,我不知道其优缺点,所以没有建议。