0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

李俊 来源:ZQW发烧友 作者:ZQW发烧友 2023-01-03 09:45 次阅读
命令行工具安全外壳 (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 服务器软件也不需要任何特殊配置。

poYBAGOuOtSAOcB0AABQ3uV8EPc997.png

图 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 隧道提供了一种远程连接到设备或网关的快速方法。

审核编辑:汤梓红

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

    关注

    12

    文章

    9016

    浏览量

    85171
  • 端口
    +关注

    关注

    4

    文章

    954

    浏览量

    32008
  • SSH
    SSH
    +关注

    关注

    0

    文章

    185

    浏览量

    16298
收藏 人收藏

    评论

    相关推荐

    SSH远程操作的基本方式

    SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结。
    的头像 发表于 11-11 11:15 208次阅读
    <b class='flag-5'>SSH</b>远程操作的基本方式

    详解SSH的工作原理

    SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。
    的头像 发表于 11-04 15:51 181次阅读
    详解<b class='flag-5'>SSH</b>的工作原理

    交换机如何配置SSH远程登录

    从事网络运维工作的小伙伴们都知道,在交换机正式上线时,必须完成配置SSH远程登录,这样做目的是为了日后,维护方便,不需要每次登录设备都要跑到机房,这样既不现实,又费事。
    的头像 发表于 10-10 14:33 870次阅读
    交换机如何<b class='flag-5'>配置</b><b class='flag-5'>SSH</b>远程登录

    如何进行电源设计–3部分

    电子发烧友网站提供《如何进行电源设计–3部分.pdf》资料免费下载
    发表于 09-07 11:08 0次下载
    如何进行电源设计–<b class='flag-5'>第</b><b class='flag-5'>3</b><b class='flag-5'>部分</b>

    电源设计方法-3部分

    电子发烧友网站提供《电源设计方法-3部分.pdf》资料免费下载
    发表于 09-06 14:56 0次下载
    电源设计方法-<b class='flag-5'>第</b><b class='flag-5'>3</b><b class='flag-5'>部分</b>

    电源设计方法-1部分

    电子发烧友网站提供《电源设计方法-1部分.pdf》资料免费下载
    发表于 09-06 11:40 0次下载
    电源设计方法-<b class='flag-5'>第</b>1<b class='flag-5'>部分</b>

    如何进行电源供应设计-3部分

    电子发烧友网站提供《如何进行电源供应设计-3部分.pdf》资料免费下载
    发表于 08-30 09:16 0次下载
    如何进行电源供应设计-<b class='flag-5'>第</b><b class='flag-5'>3</b><b class='flag-5'>部分</b>

    什么是反向SSH?如何创建反向SSH隧道

    反向 SSH 是一种可用于从外部世界访问系统(位于防火墙后面)的技术。
    的头像 发表于 08-05 15:16 622次阅读

    NAS教程:铁威马如何登录 SSH终端?

    的位置切换到根目录,以免造成对卷的占用.请不要遗漏它.) Windows 电脑 1.请下载 ssh终端工具 2.打开 putty,输入 TNAS的 IP地址和 ssh端口端口默认为
    的头像 发表于 06-26 14:30 364次阅读
    NAS教程:铁威马如何登录 <b class='flag-5'>SSH</b>终端?

    ssh连接

    /sshdrestart (2)自动启动SSH服务 如果需要让SSH服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“sshd”服务,然后在其前面 加上“*”星号,确定即可。
    发表于 03-28 16:38

    工业级POE交换机的SSH配置步骤

    工业级POE交换机的SSH(Secure Shell)配置可以通过以下步骤进行:
    的头像 发表于 03-26 15:18 611次阅读
    工业级POE交换机的<b class='flag-5'>SSH</b><b class='flag-5'>配置</b>步骤

    怎么用SSH密钥登陆vps?

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 3、系统会提示你选择密钥保存的位置,默认是~/.ssh/id_rsa,直接按Enter选择默认即可
    的头像 发表于 02-20 16:29 1056次阅读

    如何通过SSH连接到Linux计算机?

    如何通过SSH连接到Linux计算机? SSH是一种加密的网络协议,用于在不可信的网络中安全地远程访问和操作计算机。在Linux环境中,SSH经常被用于远程登录和管理服务器。 第一部分
    的头像 发表于 01-12 16:06 1288次阅读

    Ubuntu修改SSH默认端口指南

    : 使用SSH登录到您的Ubuntu服务器。如果您使用的是默认端口22,命令可能如下(请替换 和 分别为您的服务器IP地址和用户名): ssh @ 2、切换到超级用户:sudo su 或者使用以下命令
    的头像 发表于 12-21 17:27 1467次阅读

    边缘智能3部分:边缘节点通信

    电子发烧友网站提供《边缘智能3部分:边缘节点通信.pdf》资料免费下载
    发表于 11-24 09:17 0次下载
    边缘智能<b class='flag-5'>第</b><b class='flag-5'>3</b><b class='flag-5'>部分</b>:边缘节点通信