如何在 SSH/SFTP 上拒绝 Root、允许内部子网上的特定用户以及允许来自外部的组

如何在 SSH/SFTP 上拒绝 Root、允许内部子网上的特定用户以及允许来自外部的组

在 Centos 7 中,我们的 sshd_config 应该是什么样子:拒绝 Root 并允许内部子网上的特定用户(不在组中),并允许来自外部的组? 问题很具体!

我们想要的结果:外部 ssh/sftp 连接,供我们的客户登录到他们自己的特定于他们的主目录/根目录。但不希望员工从外部访问,只能从内部子网访问。因为员工可以更好地访问文件夹结构。

这些是我们一直在使用的配置,但它们不起作用,也没有意义,因为文档不够详细。

1.此配置应内部允许 bob 和 trev,并允许 sftpgroup。相反,它允许 sftpgroup 但不允许其他用户:(bob trev 不在该组中)

Match Address 192.168.1.0/24
        AllowUsers bob trev
Match All
AllowGroups sftpgroup
PermitRootLogin no

文档称这些命令按以下顺序处理:DenyUsers、AllowUsers、DenyGroups、AllowGroups。

2.因此,如果按此顺序处理它们,那么下面的命令应该可以工作,但事实并非如此(bob 和 trev 无权访问),那么如果后面的命令不会覆盖前面的命令,那么有序处理的意义何在。它不应该拒绝所有然后允许特定用户吗?但事实并非如此。我觉得这要么有问题,要么文档不完整:

DenyUsers *
Match Address 192.168.1.0/24
        AllowUsers bob trev
Match All
PermitRootLogin no

匹配地址命令有效 我已经测试过它。

答案1

这是对 sshd_config 的配置编辑,可在问题中提供所需的结果。内部允许特定用户,外部允许特定组,但拒绝内部组和外部特定用户:

Match Address 192.168.1.0/24
        AllowUsers bob trev
Match Address *,!192.168.1.0/24
        AllowGroups sftpgroup
Match All
PermitRootLogin no

相关内容