SSH(SecureShell)是一套安全de网络连接程序,它可以实现通过网络远程登录其他系统,它就是加密detelnet协议。但是OPENSSH除了具you远程登录功能以外,更可以建立加密IP隧道。
wo men 这里假设Alice.org服务器位于某个企业网de内网,其IP地址为192.168.2.200,它通过NAT方式可以访问互联网。wo men 现在需要通过位于互联网上de名字为bob.orgde机器里访问Alice,也就是远程登录Alice。这时候wo men 就需要在bob和alice之间建立IP隧道。wo men 首先登录Alice,执行命令:
#ssh-R11022:127.0.0.1:22 ideal@211.1.1.1
该命令表示登录服务器211.1.1.1,并将服务器de11022定向为本地de22号端口。执行完该命令以后,会提示输入ideal用户密码,输入以后就会登录到远程服务器bob。这时在bob上netstat-ln就会发现11022端口监听,保持从alice到bobdessh连接不断开。从互联网任何位置登录服务器bob以后,wo men 可以通过该隧道登录到alice服务器,执行以下命令:
#sshlocalhost-p11022
该命令表示连接本地de11022端口,因为wo men 已经创建了从alice到bobde隧道,因此连接本地de11022端口实际上就是通过隧道访问alicede22端口号。
这样通过这个隧道就可以实现登录位于内部网de服务器alice,但是因为ssh命令中指定了源端口,这种隧道一般只能支持一种协议,对于特定应用则具you加密带来de安全性de优点,但灵活性则不够,而且为了保证隧道畅通,从alice到bobdessh连接不能断开,也就意味着用户不能退出alice,否则隧道就会关闭。
方法二:使用vtun建立IP隧道
VTun(VirtualTUNnel,http://vtun.sourceforge.net)是一个功能很强de软件,可以利用它来建立IP虚拟隧道,而且隧道de数目可以不受限制,完全依照机器de能力而定,并且在此基础上应用上可以实现VPN、移动IP等功能。
Vtun所支持de通道并且具you多种功能特性:
* 加密:支持基于CHAPde认证、并采用BlowFish128bit密钥。
* 压缩:支持zlib、lzo等多种压缩算法。
* 通信整形:平台无关,允许分别限制进入和流出通道de速率。
Vtun支持以下类型通道:
* IPtunnel(tun):支持pppdeIP隧道。
* 以太网隧道(Ethernettunnel):支持可以实现以太网封装de各种协议,如:IPX、Appletalk、Bridge等。
* 串口通道(Serialtunnel,tty):支持串行电缆de传输方式,如:PPP、SLIP等。
* 管道通道(Pipetunnel,pipe):支持所you能使用Unix管道de程序。
Vtun支持多种平台,包括:Linux、BSD以及Solaris。
linux 支持的 tunnel 有 ipip gre sit 其他非内核隧道这几种。ipip 需要内核模块 ipip.ko 下面的描述说出了ipip的特点。简单之极!但是你不能通过IP-in-IP隧道转发广播或者IPv6数据包。你只是连接了两个一般情况下无法直接通讯的IPv4网络而已。至于兼容性,这部分代码已经有很长一段历史了,它的兼容性可以上溯到1.3版的内核。据我所知,Linux的IP-in-IP隧道不能与其他 *** 作系统或路由器互相通讯。它很简单,也很有效。需要它的时候尽管使用,否则就使用GRE。
GRE 需要内核模块 ip_gre.ko
GRE是最初由CISCO开发出来的隧道协议,能够做一些IP-in-IP隧道做不到的事情。比如,你可以使用GRE隧道传输多播数据包和IPv6数据包。
还有一个 sit 我也不知道这个该不该算在隧道里面,他的作用是连接 ipv4 与 ipv6 的网络,这里也我也把他当作隧道的一种吧。
以上所有隧道都需要内核模块 tunnel4.ko 的支持。
在内核之外,还有很多实现隧道的方法,最闻名的当然要数PPP和PPTP,但实际上还有很多(有些是专有的,有些是安全的,有些甚至根本不用IP。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)