现在的一些服务例如telnet,FTP需要通过tcp/ip协议来进行数据传输,由于受到协议本身的限制,这些服务的的传输往往都是明文的,造成了很大的安全隐患,而我们的OpwnSSH传输的数据却是经过加密的。现在我们学着使用openSSH的端口转发功能来实现这些服务的TCP/IP数据的加密和解密,让我们的数据传输更加的安全可靠。
下面以telnet为例
现在假设我们的主机为192.168.200.110,运行了telnet服务,
客户机为192.168.200.111,也运行了telnet服务,
现在两机的防火墙已经处于关闭的状态,且可以用tenet从客户机连接到主机。
开始我们的转发之旅
打开一个终端,执行:
#ssh -L 2010:192.168.200.110:23 root@192.168.200.110
#以上的命令为通过root用户登录到192.168.200.110主机上去,
#-L表示转发,’2010:192.168.200.110:23‘表示将本地到2010端口的数据都通过SSH隧道转发到服务器主机192.168.200.110的23端口,因为23端口是telnet的默认端口号,在我们退出SSH之前,我们建立的这个管道一直有效,所以在我们用该隧道的期间千万不要关闭该隧道。
打开另外的一个终端,执行:
tennet 127.0.0.1 2010
不要有所怀疑,就是这个命令,表示和本机的2010端口进行连接,应为我们已经设置了SSH转发,所以,发送到本机2010端口的数据都会转发到192.168.200.110主机上去,而且是经过加密了的 ,不错吧??呵呵
上述的ssh -L 2010:192.168.200.110:23 命令可以在SSH的配置文件ssh_config 中加入LocalForward 2010:192.168.200.110:23 来实现
SSH端口转发功能中还有一个-g选项,表示“允许除了本机以外的计算机使用转发功能”
-g选项也可以通过在ssh_config 中加入 GatewayPorts yes(no) 来实现
除此以外 我们还可以在服务器端进行远程转发功能,在服务器端上执行
ssh -R 2010:192.168.200.110:23 root@192.168.200.111
#表示将连接到远程主机(192.168.200.111)的2010端口的连接转发到本机的23端口。
好了 ,本次转发之旅到此结束。
阅读(3500) | 评论(0) | 转发(1) |