SSH端口转发的简要介绍-A short guide to SSH prot forwarding(1)

来源:互联网 发布:知字书法 编辑:程序博客网 时间:2024/06/03 15:22

        SSH端口转发,或者TCP/IP隧道连接,是一个处理过程,在该过程中,一个并不安全的TCP/IP连接将通过一个安全的SSH链接的构建的隧道,因此可以保护隧道中的连接遭受网络攻击。端口转发可以用来作为一个VPN(虚拟私有网络)的一种形式。

       为了解释端口转发时如何工作的,让我们来举一个例子。假设你是一家拥有两栋大楼的公司的网络管理员。在#1栋大楼,有若干工作站位于子网10.1.1.*地址中。在#2栋大楼,有多个服务器位于子网10.2.2.*地址中。两栋大楼被一条两边是公园地带的繁忙的街道分割开了,同时两栋大楼的子网通过各自大楼屋顶的天线进行无线连接起来。#1大楼的工作站正运行一个合法的客户端程序使用一个未加密的TCP/IP会话来与#2大楼的服务器进行敏感数据通信。

       一天,你的公司里有人发现一个未标记的黑色货车已经停留在两栋大楼之间的街上好几天了。当你的CEO意识到敏感数据正在两栋大楼间不加密的发射时,他开始担心停在外面的货车可能正在收集公司的敏感信息。他命令你尽快解决这个问题。

你要做的就是如下图:

#1楼里的每一个客户端工作站(在上述例子中,工作站即所示的10.1.1.7),你安装一个SSH客户端。在#2楼中运行着服务端程序的机器上,你需要安装一个SSH服务端。采用如下的C/S端口转发规则来配置SSH客户端:对于每一个接口127.0.0.1和端口999的连接,转发这个连接到SSH的服务端,同时请求SSH服务端转发这个连接到主机127.0.0.1(相关的服务端),端口为123.

       现在,你的应用客户端不需要再直接连接服务端了。而是连接到SSH客户端,它会在传输前加密所有数据。SSH客户端转发加密的数据到SSH服务端,服务端会解密数据然后转发给你的应用服务端。服务端应用发送的数据也类似的被SSH服务端加密然后转发回给客户端。

       之前,两栋大楼间无线电通信的数据会按照明文发送,也容易被下面街道上任何停留的人截获到。现在,数据使用SSH协议进行加密,且实际上不可能被解密。在安装了SSH的第二天,你发现黑色无标记的小货车不见了。

      现在,让我们来总结下上面的例子。它符合如下的SSH 客户端中的C2S(client to server)端口转发规则:

1.监听接口:127.0.0.1(这可以保证只有本地客户端机器的连接,或者回环连接,才能被接受用于转发)

2.监听端口:999

3.目的主机:127.0.0.1(重要:目标地址是相对于服务端的,而不是客户端,所以如果目标应用服务端正在监听所有接口-0.0.0.0时127.0.0.1会工作的很好)

4.目的端口:123

注意配置在SSH客户端上的监听接口是127.0.0.1。通过配置监听接口,你告诉SSH客户端它可以接受什么样的连接。如果你配置的监听接口是127.0.0.1,SSH客户端将只能接受来源于相同机器的连接。如果你配置的监听接口等于机器上的众多网卡中其中之一的ip地址时,SSH客户端将只能接受到达通过这个网卡的连接。如果你配置的监听的地址是0.0.0.0时,SSH客户端将接受任何连接,无论他们来源何处。

接下来,你会注意到监听端口已经被配置成了999.监听端口可以被设成成1到65535之间的任何数字,只要没有被相同机器上的另一个应用监听的连接所占用。这种情况下,SSH客户端监听端口已经被设置成999了,但是它也可以被设置成123,应用服务端上的相同端口正在监听。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击