远程访问防火墙后面的 Linux 机器

bau*_*ack 11 remote-access linux ssh

我将在远程位置部署一台 Linux 机器作为一种公共终端。我希望能够通过 SSH 远程访问它进行维护,但我不想在我需要访问这台机器的极少数情况下保持远程防火墙上的端口打开。我已经考虑过一个简单的脚本来创建一个到外部机器的反向 SSH 隧道,但是我不想让用户在需要访问它时必须做任何事情。有任何想法吗?

更新:我决定按照我最初的脚本计划来创建反向 ssh 隧道。虽然其他建议的解决方案(例如端口敲门)更符合我真正想做的事情,但在这种情况下,除了引导用户完成配置之外,我没有任何权限来配置路由器。不寒而栗

Dav*_*ney 6

我不会那么担心让互联网可以访问端口 22,但我会采取一些措施来保护它。

首先,禁用键盘交互式身份验证并移动到 ssh 键。

其次,在您的远程服务器上安装类似fail2ban 之类的东西,以阻止重复探测您的机器的IP 地址。因为您已经设置了 ssh 密钥,所以授权用户应该不会出现身份验证失败。

或者,如果可以,请接受 WerkkreWs 的建议并在机器前配置防火墙以终止 vpn 连接,然后只允许远程服务器上的 ssh 守护进程接受来自该 vpn 的连接。

或者,如果您的防火墙无法终止 vpn 连接,您可以将 GRE 或 IPSEC 数据包转发到您的 linux 机器,并在那里终止它。

  • 此解决方案的第一步是将 sshd 配置为在非标准端口上运行。有很多机器人在那里敲击端口 22。选择一个没有出现在 /etc/services 上的端口并且“nmap HOST”没有找到它。 (2认同)

Zor*_*che 5

它与关注端口是否开放无关,而与不想让用户通过开放端口的过程有关。不幸的是,我根本无法访问此路由器。

如果完全不可能更换路由器,您可能需要查看像Hamachi这样的 P2P 或 VPN 解决方案。如果您将系统设置为在启动时自动建立 VPN 连接,那么您应该能够在需要时进行连接。Hamachi 为您完成所有防火墙协商。一个缺点是当您需要连接时,您必须依赖于 Hamachi 服务器的启动和功能。

如果您的服务器始终处于运行状态,则可以设置autossh,以便远程系统始终保持隧道打开并连接到您的服务器。一个缺点是远程系统受到威胁,攻击者将获得用于建立 ssh 会话的密钥。保持接受 ssh 连接的系统真正锁定是非常重要的。


以下是我的原始答案,我认为更新路由器是一种选择。

如果您的防火墙支持它,您可能想要研究的一种解决方案是端口敲除。对于某些防火墙,应该可以发送防火墙注意到的一组特殊数据包,然后临时打开防火墙的漏洞。

有许多实现,有些比其他实现更好。有些人使用强密码术,让没有正确密钥的人几乎不可能发送正确的敲门声。