在 Linux 中使用 SSH 端口转发作为安全工具

普通 Linux 用户都知道 SSH,因为它基本上允许他们远程连接到任何服务器,以便能够通过命令行对其进行管理。 然而,这并不是 SSH 可以为您提供的唯一功能,它也可以作为一个很好的安全工具来加密您的连接,即使默认情况下没有加密。

为了 example,假设您有一个远程 Linux 桌面,您希望通过它进行连接 邮件发送 或电子邮件,但该网络上的防火墙当前阻止了非常常见的 SMTP 端口 (25)。 通过 SSH 隧道,您只需使用 SSH 即可使用另一个端口连接到该特定 SMTP 服务,而无需将 SMTP 配置重新配置到不同的端口,此外,您还可以获得 SSH 的加密功能。

配置 OpenSSH 进行端口转发

为了 开放式SSH 服务器允许转发,您必须确保它在配置中处于活动状态。 为此,您必须编辑 /etc/ssh/ssh_config 文件。

对于 Ubuntu 18.04,此文件已略有更改,因此您必须取消注释其中的一行:

默认情况下,此行带有注释,您需要取消注释以允许转发

取消注释后,您需要重新启动 SSH 服务以应用更改:

重新启动 SSH 守护进程以应用最近在其配置中所做的更改

现在我们已经将目标配置为允许 SSH 转发,我们只需要通过我们知道未被阻止的端口重新路由事物。 让我们使用一个非常罕见的阻塞端口,如 3300:

截图 6使用 SSH 将端口 25 重新路由到端口 3300

所以现在我们已经完成了,所有到达端口 25 的流量将自动发送到端口 3300。从另一台计算机或客户端,我们只需连接到该服务器的端口 3300,然后我们就可以与它进行交互是 SMTP 服务器,对其 25 端口没有任何防火墙限制,基本上我们只是将其端口 25 流量重新路由到另一个(未阻止)的流量,以便能够访问它。

另一种方式:远程转发

我们讨论了将本地端口转发到另一个端口,但假设您想完全相反:您想将远程端口或您当前可以从服务器访问的内容路由到本地端口。

为了便于解释,让我们使用 example 与前一个类似:从该服务器通过端口 25 (SMTP) 访问特定服务器,并且您想通过本地端口 3302 “共享”它,以便其他任何人都可以连接到您的服务器到 3302 端口并查看该服务器的任何内容在端口 25 上看到:

截图 7将远程端口重新路由到本地端口

SSH 端口转发的总结和一些技巧

如您所见,此 SSH 转发就像一个非常小的 VPN,因为它将事物路由到给定端口。 每当您执行这些命令时,它们都会打开 SSH shell,因为它知道您需要通过 SSH 与服务器交互。 如果您不需要这个,只需在其中添加“-N”选项就足够了,这样它们就不会打开任何外壳。

相关阅读:

Posted in: LinuxTags: