我正在运行带有 virtualbox 的 VM linux-mint,并且还使用 winscp。我设置了一个名为 SSH 的防火墙规则,该规则允许 22/tcp 在任何地方使用,允许 22/tcp(v6) 在任何地方使用。这有效,但我有点困惑。有没有办法限制访问,以便只有 winscp 可以访问?
答案1
您的请求可以通过深度数据包检查来实现,但不建议这样做:如果您已经正确配置了 SSH(参见这个答案) 攻击者无论如何都无法建立 SSH 会话。
另一方面,攻击者很容易冒充不同的客户端,因此限制对特定 SSH 客户端的访问并不能阻止攻击者发现您正在运行的 SSH 服务器。相反,攻击者会了解您正在使用哪个客户端 (winscp) 和操作系统 (Windows),然后利用这些知识来完善他的攻击。
如果你想隐藏 SSH 服务器 - 不是为了安全(通过隐藏实现安全是徒劳的)而是为了方便(日志文件更小,警报更少) - 我建议你设置端口敲击。
但再说一遍 - 这不是一项安全措施!能够侵入正确配置的 SSH 服务器的攻击者不会被配置成只允许特定 SSH 客户端的防火墙或端口敲击所阻止。