我想配置 sshd 以便接受同一专用网络内的任何用户,但拒绝其他所有人。
示例:我的 IP 地址是 192.168.1.159,所以应该允许网络 192.168.1.0 内的任何人。
背景:
目前我正在配置一个嵌入式设备映像,并考虑将其添加为一个小的附加安全措施。该映像将在不同位置的设备上运行。IP 地址将通过 DHCP 分配,每个系统可能连接到不同配置的专用网络(如 10.0.1.0、192.168.100.0、...)。
所以我想,理想情况下,我想要的是:
DenyUsers *
Match Address OWN_DEVICE_ADDRESS/24
AllowUsers *
然而,阅读手册页sshd_config
我找不到这种可能性。
所以我最终想到了接受所有具有专用网络 ip v4 地址的用户,并将以下内容附加到/etc/ssh/sshd_config
:
Match Address 192.168.0.0/16,172.16.0.0/12,10.0.0.0/8
AllowUsers *
DenyUsers *
然而,测试这个(通过输出systemctl status sshd
)表明,即使我在同一个网络中,该DenyUsers
规则仍然是最重要的:
Apr 25 23:37:43 host sshd[27733]: User test from 192.168.1.166 not allowed because listed in DenyUsers *
所以我想我没能理解DenyUsers
. 你们能帮帮我吗?
这是 OpenSSH 吗?如果你想从外面阻止所有人,那么我建议修改这些行:
以满足您的需求。特别是最后一个似乎与您的情况有关。
通过添加以下行
/etc/ssh/sshd_config
,仅接受具有专用网络 ip v4 地址的用户:@davidgo 的评论解决了这个问题(我把它作为更好的可见性的答案):