在 Linux 中使用 SSH 端口转发作为安全工具
了解如何在 Linux 系统上配置 SSH 端口转发。还解释了远程转发。
普通 Linux 用户了解 SSH,因为它基本上允许他们远程连接到任何服务器,以便能够通过命令行对其进行管理。然而,这并不是 SSH 可以为您提供的唯一功能,它还可以充当一个强大的安全工具来加密您的连接,即使默认情况下没有加密。
例如,假设您有一个远程 Linux 桌面,希望通过 SMTP 或电子邮件进行连接,但该网络上的防火墙当前阻止了 SMTP 端口 (25),这种情况很常见。通过 SSH 隧道,您只需使用 SSH 连接到使用另一个端口的特定 SMTP 服务,而无需将 SMTP 配置重新配置到不同的端口,并且最重要的是获得 SSH 的加密功能。
配置 OpenSSH 进行端口转发
为了让 OpenSSH Server 允许转发,您必须确保它在配置中处于活动状态。为此,您必须编辑 /etc/ssh/ssh_config 文件。
对于 Ubuntu 18.04,此文件发生了一点变化,因此您必须取消其中一行的注释:
取消注释后,您需要重新启动 SSH 服务才能应用更改:
现在我们已经将目标配置为允许 SSH 转发,我们只需通过我们知道未被阻止的开放端口重新路由即可。让我们使用一个非常不常见的阻塞端口,例如 3300:
现在我们已经做到了这一点,所有到达端口 25 的流量都将自动发送到端口 3300。从另一台计算机或客户端,我们只需连接到该服务器的端口 3300,然后我们就可以与它进行交互SMTP 服务器对其 25 端口没有任何防火墙限制,基本上我们只需将其端口 25 流量重新路由到另一个(未阻止的)端口即可访问它。
反之亦然:远程转发
我们讨论了将本地端口转发到另一个端口,但假设您想要完全相反的操作:您想要将远程端口或当前可以从服务器访问的内容路由到本地端口。
为了方便解释,让我们使用与上一个类似的示例:从该服务器,您通过端口 25 (SMTP) 访问特定服务器,并且您希望通过本地端口 3302“共享”该服务器,以便其他人可以连接到您的服务器到 3302 端口并查看服务器在端口 25 上看到的内容:
SSH端口转发的总结和一些技巧
正如您所看到的,此 SSH 转发就像一个非常小的 VPN,因为它将事物路由到给定的端口。每当您执行这些命令时,它们都会打开 SSH shell,因为它知道您需要通过 SSH 与服务器交互。如果您不需要这个,只需在其中添加“-N”选项就足够了,这样它们就不会打开任何shell。