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

审核编辑:汤梓红

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

    关注

    13

    文章

    10094

    浏览量

    90872
  • 端口
    +关注

    关注

    4

    文章

    1098

    浏览量

    33828
  • SSH
    SSH
    +关注

    关注

    0

    文章

    198

    浏览量

    17568
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SSH与Xshell的本质区别及功能对比

    、功能对比 功能维度 SSH协议 Xshell 核心定位 底层安全通信协议 SSH协议的图形化客户端工具 连接方式 命令行操作(如ssh user@host) 可视化界面配置会话参数
    发表于 11-07 06:40

    【EASY EAI Nano-TB(RV1126B)开发板试用】通过wifi连接,使用ssh登录EASY EAI Nano-TB(RV1126B)开发板

    推荐使用 tab,因为在不同系统 tab 长度可能不一样。 l字母大小写敏感。 接上WI-FI天线用ls /etc/netplan/命令 查看开发板网络配置存放路径,会发现有3配置文件。其中
    发表于 11-02 17:18

    飞凌嵌入式ElfBoard-常用的网络服务的搭建之SSH服务搭建

    ;2)SSH默认端口是22号端口,安全协议版本SSHv2,出了SSHv2版本之外还有SSHv1版本(有漏洞,不安全);3SSH服务端主要包
    发表于 10-24 08:48

    SSH 远程连接内网 Linux 服务器

    利用 ZeroNews,您可对用内网的 Linux 服务器进行统一的 SSH 远程连接管理,当用户外出时,可通过 ZeroNews 分配的公网域名地址,快速访问企业内部、家庭的 Linux
    的头像 发表于 09-17 19:52 277次阅读
    <b class='flag-5'>SSH</b> 远程连接内网 Linux 服务器

    【上海晶珩睿莓1开发板试用体验】2、系统信息+连接WIFI+SSH调试

    raspi-config 在第三个接口配置,找到 SSH,选择 yes 使能 SSH 功能。 3 Interface Options -> 2
    发表于 08-17 09:55

    Aurix TC36x MTU SSH4 和 SSH9寄存器值错误的原因?

    即检查 MTU SSH 值(ECCD/FAULTS/ERRINFO),作为安全级别 3 测试的一部分 在测试过程中,我发现SSH4(CPU0Dlmu)和
    发表于 07-14 07:52

    精通远程控制:借助树莓派释放 SSH 的强大功能!

    什么是SSH?我们如何利用SSH连接到树莓派、对其进行监控并执行其他任务?注意:文章链接可能需要科学上网。通过SSH连接到树莓派是远程管理设备的最有效方法之一。但SSH究竟是什么呢?如
    的头像 发表于 06-27 15:26 775次阅读
    精通远程控制:借助树莓派释放 <b class='flag-5'>SSH</b> 的强大功能!

    SSH常用命令详解

    SSH常用命令详解
    的头像 发表于 06-04 11:30 1706次阅读

    SSH远程登录与控制教程

    SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全
    的头像 发表于 04-09 13:43 3949次阅读
    <b class='flag-5'>SSH</b>远程登录与控制教程

    [迅为]Linux开发小技巧:Remote - SSH插件

    [迅为]Linux开发小技巧:Remote - SSH插件
    的头像 发表于 04-01 15:46 933次阅读
    [迅为]Linux开发小技巧:Remote - <b class='flag-5'>SSH</b>插件

    stm32mp远程复制文件ssh不能连接怎么解决?

    1、看ubuntu环境中ssh是正在运行的,但是从ubuntu复制文件到开发板或者直接ssh连接无法连接,串口连接正常。 ![af63571d6348f3
    发表于 03-07 13:02

    信息安全管理必备!Linux系统使用SSH登录root账号的方法

    Linux远程管理信息安全必备!本文介绍各类Linux开发板/主板使用SSH登录root账号的方法,使用触觉智能RK3562开发板演示,关注触觉智能,持续为大家带来更多使用技巧!
    的头像 发表于 02-12 15:46 1114次阅读
    信息安全管理必备!Linux系统使用<b class='flag-5'>SSH</b>登录root账号的方法

    禁止使用root用户通过ssh远程登录Linux

    1、背景描述 出于安全考虑,需要禁止使用root用户通过ssh远程登录Linux 禁用root用户远程登录后,需要提供一个权限用户用于ssh远程登录 2、创建拥有sudo权限的用户 2.1、创建一个
    的头像 发表于 12-21 16:25 2514次阅读
    禁止使用root用户通过<b class='flag-5'>ssh</b>远程登录Linux

    深入解析SSH协议,轻松实现安全高效的服务器管理

    过程中被窃听或篡改。SSH支持多种身份验证方法,包括密码、公钥和证书等,确保只有授权用户能够访问系统。除了远程登录,SSH还支持文件传输和端口转发等功能,使得
    的头像 发表于 12-19 13:40 1616次阅读

    Sermius SSH 使用,如何使用SermiusSSH进行工作?

    随着企业规模的扩大和服务的增加,服务器数量也随之增长,手动管理每台服务器不仅效率低下,而且容易出错,批量服务器一键管理工具能够集中管理所有服务器,实现自动化配置、更新和监控,显著提升管理效率和准确性
    的头像 发表于 12-18 15:23 806次阅读
    Sermius <b class='flag-5'>SSH</b> 使用,如何使用SermiusSSH进行工作?