所以我在本地网络上有一台运行 OpenSSH 服务器的服务器。服务器配置为允许来自外部网络的 SSH,这是预期的。但是,我想创建一个特定用户 (localUser),该用户不得从我的 LAN 外部登录。
目前我有一个名为 sshusers 的组,它是唯一允许通过 SSH 登录的组。
根据手册页,应该可以使用“允许/拒绝”用户,但我不知道如何去做。这是我尝试过的:
第一次尝试:
AllowGroups sshusers
AllowUsers localUser@192.168.2.* # 2 is not a typo
# localUser not in group sshusers. Intention: AllowUsers should override
# previous configuration, allowing access for localUser, even if he is
# not member of sshusers
Run Code Online (Sandbox Code Playgroud)
第二次尝试:
AllowGroups sshusers
DenyUsers localUser@!192.168.2.*
# localUser is member of sshusers. Intention: Access is granted, but with
# the negotiation of the match-expression for the LAN, access should be
# denied for external login.
# Also tried "!localUser@192.168.2.*"
Run Code Online (Sandbox Code Playgroud)
我应该提到,拒绝用户从 LAN 访问,但允许从外部工作访问:
# localUser member of sshusers
AllowGroups sshusers
DenyUsers localUser@192.168.2.*
Run Code Online (Sandbox Code Playgroud)
但是,我想反转这个配置。
感谢您提供任何帮助,但我不希望为此使用 PAM 或 iptables。
tal*_*zin 11
您可以尝试以下操作:
AllowGroups sshusers
DenyUsers localuser@!192.168.2.*,
Run Code Online (Sandbox Code Playgroud)
注意星号后面的逗号。因此,!用于否定主机名匹配意义的语法应该是:
DenyUsers localuser@!192.168.2.*,!10.8.0.*,
Run Code Online (Sandbox Code Playgroud)
这意味着如果主机与列表中的主机不同,则 localuser 应该无法连接。
正如评论中所指出的,这不适用于版本等于或更高OpenSSH_7.4p1。所以我尝试了以下(用 测试openssh-7.5p1),它完美地工作:
DenyUsers localuser@*,!10.8.0.*
Run Code Online (Sandbox Code Playgroud)
除了 10.8.0.* 之外的任何地方都拒绝这种方式 localuser
| 归档时间: |
|
| 查看次数: |
5417 次 |
| 最近记录: |