我需要将到 openssh 服务器的连接限制为仅三个或四个 IP 地址。我知道我可以在 CentOS 7 和 Oracle Linux 机器上使用防火墙或 TCP 包装器。但是,网络上的某些服务器不支持防火墙,或者其 openssh 版本不包含 libwrap.so。这些需要 ssh 解决方案。
我尝试过类似的不同变化,但到目前为止,我要么被完全锁定,要么任何人都可以进入。
Match Address !10.222.79.74,!10.222.79.75,!172.23.10.22,!10.217.184.58
DenyUsers *@*
DenyUsers *@*
Match Address 10.222.79.74,10.222.79.75,172.23.10.22,10.217.184.58
AllowUsers *@*
有没有办法做到这一点?
好的,我正式成为一名 DA。
我将日志级别设置为调试,通过查看最近的登录,我意识到我正在从允许列表中的某个 IP 进行测试。我从另一个客户端尝试了该操作,以下操作按预期工作。
Match Host *,!10.222.79.74,!10.222.79.75,!172.23.10.22,!10.217.184.58
DenyUsers *
很抱歉浪费了您的时间。
答案1
根据 sshd_config 手册页(OpenSSH_8.0p1):
对于每个关键字,将使用第一个获得的值。
所以我猜第一个例子看起来是正确的。
请注意:我强烈感觉到这个最近发生了变化(从要使用的最后一个值开始),因此请检查您的手册页。而且(正如我刚刚检查的那样)它看起来不像按描述的那样工作,所以您可能需要进行实验。