SSH隧道及其使用
1个回答
展开全部
SSH隧道是一种通过加密的SSH连接传输任意网络数据的方法。它可以用来为任何应用程序添加加密通道;也可以用它来实现VPN和跨防火墙访问局域网的服务。
SSH是一个通过不受信任的网络进行安全远程登录和文件传输的标准。通过SSH隧道传输TCP/IP数据,它还提供了一种使用端口转发保护任何给定应用程序数据流量的方法。采用了这种方法后,应用程序的数据流量都会走SSH的加密连接,从而不会被窃听或拦截。对于本身不支持加密的应用程序来说,使用SSH隧道可以很方便地添加网络安全性。
上图简要介绍了SSH隧道。不可信网络的安全连接建立在SSH客户端和SSH服务器之间。这个连接是加密的,可用于保护机密性和完整性,并且可以对通信方进行身份验证。
客户端应用使用SSH来连接到服务端应用。隧道启用后
通过上面的转发,无需修改应用程序,就能保证应用程序客户端和服务端通信的安全。
这个方式的缺点是,任何能登陆服务器的用户都可以启用端口转发。内部IT人员经常在他们的家里的机器或云上的服务器上启用转发,从而能在企业内网中,从工作机器上访问家里的机器或云上的服务器。黑客或恶意软件会利用类似的方式在局域网中留一个后门。还可以在多个设备上开启隧道,攻击者通过在这些隧道中跳来跳去来隐藏踪迹。
本地代理用于将端口从客户端计算机转发到服务端计算机。SSH客户端监听来自某个端口的连接,当它收到连接时,将请求通过隧道转发到SSH服务器;然后SSH服务器将请求转到目标端口。
本地转发比较常见的场景有:
在OpenSSH中,使用 -L 参数开启本地转发
这个命令工作的过程如下图
默认情况下,其他的机器都能够连接到本地的SSH客户端指定的端口;为了安全起见,一般绑定地址,将连接来源限制在同一主机的程序
也可以在 OpenSSH客户端的配置中 配置本地转发,这样就不用单独输入命令行了
比如在~/.ssh/config中这样写
这样在开启转发的时候只需要输入 ssh serverfw 而不用再输入完整的命令了
如果希望通过本地计算机,让远程服务器 remote 可以连接到 server 上的服务,可以使用SSH远程转发。
使用SSH远程转发一个典型的用途是,在企业内部开一个后门,让公网的计算机可以访问到企业的某个内部服务,这个是有一定风险的,使用的时候需要特别小心。
在OpenSSH中,远程转发通过 -R 参数开启,在本地计算机上输入命令
上面命令的工作过程如下
默认情况下,OpenSSH仅允许从服务器主机(上图的 remote )连接到远程转发端口 server:p2 ,如果想要其他的主机也能连上 server:p2 ,需要在 sshd_config 文件中设置
如果需要指定来源IP,可以将配置改为
比如
将只允许52.192.1.73到端口8080的连接
OpenSSH的远程转发支持多个规则,比如
同样的,可以在 ~/.ssh/config 配置host,比如
SSH是一个通过不受信任的网络进行安全远程登录和文件传输的标准。通过SSH隧道传输TCP/IP数据,它还提供了一种使用端口转发保护任何给定应用程序数据流量的方法。采用了这种方法后,应用程序的数据流量都会走SSH的加密连接,从而不会被窃听或拦截。对于本身不支持加密的应用程序来说,使用SSH隧道可以很方便地添加网络安全性。
上图简要介绍了SSH隧道。不可信网络的安全连接建立在SSH客户端和SSH服务器之间。这个连接是加密的,可用于保护机密性和完整性,并且可以对通信方进行身份验证。
客户端应用使用SSH来连接到服务端应用。隧道启用后
通过上面的转发,无需修改应用程序,就能保证应用程序客户端和服务端通信的安全。
这个方式的缺点是,任何能登陆服务器的用户都可以启用端口转发。内部IT人员经常在他们的家里的机器或云上的服务器上启用转发,从而能在企业内网中,从工作机器上访问家里的机器或云上的服务器。黑客或恶意软件会利用类似的方式在局域网中留一个后门。还可以在多个设备上开启隧道,攻击者通过在这些隧道中跳来跳去来隐藏踪迹。
本地代理用于将端口从客户端计算机转发到服务端计算机。SSH客户端监听来自某个端口的连接,当它收到连接时,将请求通过隧道转发到SSH服务器;然后SSH服务器将请求转到目标端口。
本地转发比较常见的场景有:
在OpenSSH中,使用 -L 参数开启本地转发
这个命令工作的过程如下图
默认情况下,其他的机器都能够连接到本地的SSH客户端指定的端口;为了安全起见,一般绑定地址,将连接来源限制在同一主机的程序
也可以在 OpenSSH客户端的配置中 配置本地转发,这样就不用单独输入命令行了
比如在~/.ssh/config中这样写
这样在开启转发的时候只需要输入 ssh serverfw 而不用再输入完整的命令了
如果希望通过本地计算机,让远程服务器 remote 可以连接到 server 上的服务,可以使用SSH远程转发。
使用SSH远程转发一个典型的用途是,在企业内部开一个后门,让公网的计算机可以访问到企业的某个内部服务,这个是有一定风险的,使用的时候需要特别小心。
在OpenSSH中,远程转发通过 -R 参数开启,在本地计算机上输入命令
上面命令的工作过程如下
默认情况下,OpenSSH仅允许从服务器主机(上图的 remote )连接到远程转发端口 server:p2 ,如果想要其他的主机也能连上 server:p2 ,需要在 sshd_config 文件中设置
如果需要指定来源IP,可以将配置改为
比如
将只允许52.192.1.73到端口8080的连接
OpenSSH的远程转发支持多个规则,比如
同样的,可以在 ~/.ssh/config 配置host,比如
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询