SSH第3部分:配置SSH反向隧道以减少暴露的端口

电子说

1.2w人已加入

描述

命令行工具安全外壳 (SSH) 在客户端和服务器之间提供安全的通信通道。工程师和操作员经常使用 SSH 远程管理他们的设备和主机。例如,通常使用 SSH 登录 Linux 服务器以应用更新、安装新软件包或执行其他管理操作。SSH 的一个鲜为人知的功能是能够通过同一通信通道转发其他但不同的网络流量。例如,您可以使用 SSH 隧道加密 Web 请求并将其转发到远程主机,而无需在网络上公开该主机的 Web 服务。您还可以使用 SSH 隧道创建跳转框和网关,允许远程连接到您的网络,而无需暴露额外的网络端点或端口。  

使用 SSH 端口转发安全地连接到远程系统

SSH 本地端口转发功能允许您在客户端和服务器之间创建隧道,加密该客户端和服务器之间指定端口上的所有通信。防火墙和其他网络工具通常无法看到这些隧道内部——它们只能看到客户端和服务器(或网关)之间加密的 SSH(TCP 端口 22)流量。作为安全操作员,您将希望以符合您的安全策略的方式检测和管理 SSH 的使用。例如,如果某些用户的规则阻止或过滤 HTTP 和 HTTPS 但不阻止 SSH,则某些用户可能会使用 SSH 端口转发来绕过防火墙。

配置 SSH 端口转发

通过 SSH 的隧道协议非常快速且易于设置和使用。可以集中管理像 OpenSSH 这样的 SSH 实现,以提供身份验证和加密功能。例如,您的组织可能会在 Internet 上安装强化的 SSH 服务器,该服务器仅侦听运行 SSH 的单个端口。用户连接到此端口,使用证书、密码或其他批准的身份验证方法进行身份验证。然后他们可以使用 SSH 隧道连接到该服务器上的资源,或者被定向到他们在专用网络上的目的地。但是,尽管 SSH 隧道很有用,但它确实有局限性,而且它几乎无法提供专用虚拟专用网络 (VPN) 设备的功能数量。SSH 隧道在特定情况下很有用,例如专用 VPN 解决方案可能有些矫枉过正的情况。例如,

您可以为本地或远程端口转发配置 SSH 隧道。本地端口转发允许您与远程服务器建立连接,然后将指定的网络流量从您的客户端转发到该服务器或其他服务器。

配置本地端口转发

图 1显示了本地端口转发的一个简单示例。在此示例中,客户端连接到防火墙,防火墙将 SSH 连接转发到 SSH 网关,SSH 网关通过 SSH 隧道代理与其他内部服务器和设备的通信。您必须将防火墙配置为将 SSH 网络流量转发到运行 SSH 服务器软件(也称为 SSH 守护程序)的设备。在许多情况下,不需要其他防火墙规则,也不需要额外的端口转发。通常,OpenSSH 服务器软件也不需要任何特殊配置。

服务器

图 1:SSH 本地端口转发的简单配置。

要连接到远程服务器,命令如下所示:

ssh -L 8080:remoteserver:80 username@FirewallExternalInterfaceIP

当您在连接互联网的客户端上运行此命令时,它将在 SSH(默认 TCP 端口 22)上连接到防火墙的外部 IP 地址(在上面的选项中记为 FirewallExternalInterfaceIP),它将 SSH 流量转发到 SSH网关。SSH 网关对用户(在我们的示例中为用户名)进行身份验证,并在客户端和 SSH 网关之间建立安全的加密通道。

在幕后。SSH 客户端现在静静地监听端口 8080 上的新连接。要连接到远程服务器,客户端打开他们的 Web 浏览器并连接到 https://localhost:8080。这指示浏览器连接到端口 8080 上的客户端计算机,这是 SSH 客户端应用程序侦听新连接的端点。SSH 客户端软件拦截此调用并将其沿着加密隧道发送到 SSH 网关。SSH 网关解密通信并将其转发到 TCP 端口 80 上的远程服务器(根据选项 remoteserver:80)。远程服务器认为它正在接收来自 SSH 网关的请求并响应它。网关加密此响应并将其发送回封装在 SSH 协议 (TCP 22) 中的客户端。

本地端口转发不仅限于网络请求和浏览器。作为另一个示例,这里是通过远程桌面协议(RDP、TCP 3389)远程连接到 Windows 服务器的命令。

ssh -L 1234:remoteserver:3389 username@FirewallExternalInterfaceIP

要建立连接,请启动您的 RDP 客户端并建立一个到 localhost:1234 的新 RDP 连接。ssh 本地端口转发将激活,并将导致与指定为 remoteserver 的服务器建立新的 RDP 连接。

请注意,在第二个示例中,客户端只需运行单独的 ssh 命令即可连接到不同应用程序上的不同服务器,并且不需要额外的防火墙或 SSH 网关服务器配置。

配置远程端口转发

远程端口转发类似但相反。使用远程端口转发,您的 ssh 客户端连接到远程服务器,然后其他人到该远程服务器的连接将通过 SSH 隧道转发回您的客户端。您可以使用远程端口转发使您笔记本电脑上的网站对互联网上的其他人可见,而无需重新配置网络。

了解有关配置复杂或专用 SSH 隧道的更多信息

这些非常简单的示例描述了使用 SSH 隧道是多么容易,但对于更复杂或特定的实现也有细微差别和注意事项,您需要了解您的具体实现。查看 https://ssh.com 等资源站点以获取更多信息。

结论

SSH 端口转发功能强大、灵活、易于设置,非常适合您需要安全、远程访问服务器或网络的某些情况。

关键点:

  • SSH 标准和工具支持本地和远程端口转发,以启用客户端和网关或服务器之间的协议安全隧道。
  • 将 SSH 用于协议的安全隧道让您可以利用其加密和身份验证功能。
  • SSH 隧道提供了一种远程连接到设备或网关的快速方法。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分