[转载]功过难评 SoftEther
原始连接:[url]http://bbs.chinaunix.net/viewthread.php?tid=274684&extra=page%3D1&page=1[/url]2003年12月底,日本一名19岁的大学生在自己的主页上公布了一款免费网络软件——SoftEther。该软件是由两部分所组成:一为虚拟HUB,一为虚拟网卡。你可以在天极的mydown下载到这个软件。
采访实录
SoftEther软件作者是日本筑波大学一年级新生登大遊。虽说他是独立构思、设计、开发、维护此软件,可另一方面也受到了日本经济产业部下辖部门——情报处理振兴事业协会(以下简称IPA)的赞助。该软件巧妙利用了“EtherNet over TCP的隧道+HTTPS实现物理传输”技术,算是开创了VPN软件应用的先河。最近,本报记者通过E-mail联系到了该款软件的作者,并就中国用户所关心的一些问题对他进行了采访。
本报记者问:SoftEther是一款VPN软件,你在主页上说你开发这款软件的目的是为了“让普通用户更自由地使用网络,而不受过多的限制”。现在我们看到,完成后的SoftEther和传统的VPN软件相比而言,其特点是“EtherNet over TCP的隧道技术 + HTTPS实现物理传输”。这样巧妙的想法,你是如何构思出来的?
登大遊答:传统的隧道技术(PPTP� L2TP/IPsec)之类的协议,是使用GRE/IPsec这样特殊的IP数据包来实现通讯。但这样的数据包,很难通过NAT、防火墙或路由器。而当前的现实是,从公司内部访问Internet时,在大多场合下必须通过代理服务器。这样一来,传统的VPN系统就完全无法发挥其效力了。由此,我觉得有必要设计一种在这种受限制的网络环境中,也能构筑虚拟网络的软件。
本报记者问:SoftEther这类思路的软件,今后应该会有很大的应用前途。登先生能否为我们描述一下你所期待的前景?
登大遊答:SoftEther是一个谁都可以轻松上手的软件,用途用法也很广泛,比如个人用户可以用它在家庭之间构筑VPN,这样就可以彼此安全地共享文件;也可以玩那些从前只有在局域网上才能跑的网络游戏……
而且,因为SoftEther可以支持SSL,所有通讯内容都被很好地加密。从而企业用户也可以安心地用它在各地分支机构之间构筑VPN,甚至完全取代公司现有的内部局域网。据我了解,日本已经有一些公司开始在实践了!
本报记者问:SoftEther的源代码,以及虚拟HUB和虚拟网卡之间所使用的通讯协议,是否有公开的打算?现在除了公开的Windows版之外,是否有Linux版的开发计划?
登大遊答:由于现在在与IPA间的合同上有些限制,所以暂时还不能公开源代码。但我还是考虑在未来适当时候把代码放出来的;至于虚拟网卡和虚拟HUB之间使用的通讯协议,我打算最晚今年3月就完全公开出来!至于Linux/FreeBSD版的问题,现在我可以告诉大家,筑波大学的一些朋友正在开发。
本报记者问:这个软件大大增加了网络用户的自由度,但同时也给网络管理带来了新的难度。请问,网络管理员如何才能防止局域网内未经许可地乱用SoftEther呢?
登大遊答:防火墙可以从连接的目标主机那里检测到标示SoftEther的“SoftEther Protocol”字符串,用它就可以发现谁正在使用SoftEther。
我也是一名网管,今后我还会开发一个可以检测局域网中是否有人使用SoftEther的软件。
本报记者问:我们了解到,SoftEther的开发,得到了IPA的赞助。请问具体是怎样形式的赞助呢?现在回顾起来,这样的官方援助对于个人开发软件是否有益处?
登大遊答:IPA会对其“创造前人未曾尝试软件”项目进行赞助(译注:SoftEther也是2003年度受赞助对象),每个项目一年可以得到最多300万日元(约合人民币23万元)的预算。
但就算在日本,“创造前人未曾尝试软件”这类官方赞助也不过独此一家,真希望今后这类的赞助项目能够多起来。
技术原理
为何说它特别?先让我们来看看它的工作方式和原理:用户下载安装软件后,可以根据自己的需要,选择安装虚拟网卡或虚拟HUB,当然,也可以两者一起安装。
虚拟网卡是这个软件的客户端,负责把要传输的通讯内容,转换成只有本软件才能识别的格式,然后发送给虚拟HUB;而虚拟HUB则是这个软件的服务器端,负责接收虚拟网卡传来的特别格式的数据,然后还原为原始的通讯内容,并送回到物理的网络世界中。
如果再说具体一些,其技术实现就是用软件模拟OSI网络模型第二层(数据链路层)以上的工作机制,把物理通讯内容封包到TCP数据包中发送。
优势所在
由于该软件使用了隧道(Tunnel)技术,可以把本地的网络操作封包,通过TCP协议(HTTPS)传输到远方,并在那里复原成原来的网络操作。这样,就可以把在物理上相隔遥远的局域网通过软件虚拟地连接在一起。
其次,由于虚拟网卡和虚拟HUB之间的物理通讯使用了HTTPS协议,因此在网络传输过程中,可以有效地避开防火墙、NAT、路由器的拦截;同时,SSL加密也在很大程度上为通讯本身提供了安全保障。
软件的作者在谈及他开发SoftEther的过程时,也介绍了为何要使用Ethernet over TCP这种特别的隧道�Tunnel 技术。开发之初,他最先尝试的是TCP over TCP技术,但实践结果表明,由于TCP over TCP协议的缺陷,使得传输效率很低。在百兆网络里,用虚拟网络测试速度,居然只有500Kbps。
最后作者下决心改用Ethernet over TCP,并利用运行在Windows内核模式的虚拟网卡程序把数据链路层的通讯内容封包到TCP,传给远方的虚拟HUB,这种方式使得通讯效率大为提高。
据软件作者测试,通过现在的SoftEther所构筑的虚拟网络进行传输测试,其效率大概能相当于物理网络传输速度的80%~90%。
下面让我们用几个实例来了解其威力!
实际案例
通过Internet的连接构筑虚拟的LAN环境
很多类似CS这样的游戏对LAN环境的要求远远低于Internet环境。这时候,如果我们利用这个软件,在Internet玩家之间虚拟出一个LAN来,岂不是可以随心所欲了么?
具体操作很简单,只要各个玩家都装上SoftEther,并配置成为虚拟网卡;然后在一台大家都访问得到的机器上,安装SoftEther并配置成虚拟HUB,就大功告成了。接通后大家仿佛都在一个LAN之内,而实际上,也许其中有人是拨号上网,有人是宽带连接,甚至有人还可能是从公司防火墙后面连接过来的……
在图1中,PC2/PC3/PC4就可以通过虚拟出来的网卡连接PC1上虚拟出来的HUB,并分别设定相应的IP地址,从而能实现在虚拟LAN下互相沟通的目的。
[attach]3140[/attach]
这样一来,PC1上运行CS服务器,PC2/PC3/PC4无论原来的物理连接类型如何,都可以仿佛在一个LAN中一样,通过虚拟网卡直接连接到PC1了!
打破防火墙(对内)的限制自由地访问外面的世界
有时候,我们想要在公司的LAN中使用ICQ类的程序联络客户,却发现由于公司的网络没有开放相应的端口,使得ICQ无法正常工作。
没关系,此时不用劳网管大驾,只要你们那里可以用HTTPS访问外面,就可以让SoftEther来满足你的需要。
此时,大家仅仅需要安装SoftEther,并配置成一块虚拟网卡,然后连接Internet上有访问ICQ自由的任何一台虚拟HUB;连接通了,你那台在防火墙限制下的机器,也就可以立即使用从前受限制的各种功能了!
[attach]3141[/attach]
如图2所示,公司LAN内受到各种限制。但只要能够使用HTTP/HTTPS协议访问Internet,就可以连接到一台能够进行ICQ操作的虚拟HUB上去。一旦你的虚拟网卡与远方的虚拟HUB建立起连接(此时自己的PC上就有了两张网卡�一块物理网卡、一块虚拟网卡,都处于连通状态),无论是ICQ/QQ/MSN,还是FTP/Telnet/IRC……由于模拟出来的是虚拟LAN环境,因此就算是要求再苛刻的局域网游戏软件,通过这种方法就可以畅通无阻访问外面。
打破防火墙(对外)的限制从家中访问办公室里受防火墙保护的机器
如今,SOHO一族越来越多,对于IT界的朋友来说,“办公室”和“家”仅凭字面意思,已经越来越难以区分其功能界限了。如果说在办公室想要访问自家的计算机资源,还算是有点办法的话;在家里访问被各类防火墙防护得森严之至的办公室的计算机资源,恐怕就是接近于痴心妄想了。可是有了SoftEther,不仅从家里访问办公室自己电脑成为了可能,就连访问办公室的整个LAN,也不再是什么难事了!
你只要在办公室的机器和家中的机器上分别安装SoftEther,并配置成为虚拟网卡;然后在一台从办公室和从家里都能访问到的机器上,安装SoftEther并配置成虚拟HUB,就大功告成了。接下来,从办公室和家中分别用自己装好的虚拟网卡,去连接那台配置好的公共虚拟HUB;接通后两台机器上都可以看到虚拟网卡“活了”,和普通的物理网卡一般无二的运作。
如图3所示,你试图从家里访问办公室整个LAN的话,只要在办公室那台机器上,待与虚拟HUB接通后,把虚拟出来的网卡与物理网卡桥接,即可!
[attach]3142[/attach]
图3
网卡的桥接,在WinXP上简直就是举手之劳。但如此一来,原本被防火墙设备严密保护起来的公司局域网,就会被神不知鬼不觉地打开了一个缺口。经由SoftEther的虚拟网络进入公司局域网的通讯内容,由于得到SSL加密的强力保护,根本无法由防火墙检测到通讯内容是否有害。就算是病毒由此侵入,木马软件从此渠道流入,防火墙都无法发现!因此,不当的使用这一功能,会对现有公司网络安全构成重大隐患。
一把双刃剑
作者在公开该软件7天后,就受到了IPA的强烈“呼吁”,要求暂停此软件的下载。理由很有趣:IPA本身正是负责日本网络安全的政府机构,而某些公司/地方政府向IPA抱怨说:“SoftEther的公布,会使现有的网络安全产生严重的漏洞。”面临压力,IPA也只得向软件作者要求暂停……
但作者认为当初参加IPA举办的活动评选时,早就把创作思路说得清清楚楚。那时候IPA不表示反对,并签了赞助合同,现在眼看合约要履行完毕了,IPA却来反悔,岂不太过分?公说公有理,婆说婆有理,于是双方找来了若干懂行的专家分析,也得出结论:SoftEther原理上和VPN软件没有本质的区别,没有理由禁止其开发和公开下载,只是在使用上需要加以引导……
实际上也的确如此,它就像一把刀一样,你可以用刀做坏事,也可以用刀做好事;做坏事的时候,受谴责的不应该是刀,而是背后使刀的人。SoftEther软件不也正和这个例子里的刀一样么?
于是,该软件下载中止了3天后,又重新对外开放了!经历这么一波三折的变故,SoftEther及其作者反而变得更加有名。日本IT界知名媒体几乎都曾大篇幅地报道了这个软件掀起的风波。
编后
通过对SoftEther这款软件作者登大遊先生的采访,我们深刻感受到这款另类软件对现有网络的冲击是何等的强烈。SoftEther里所使用的技术,并不是什么独创;甚至软件的实现,也许同样不是领先。但它的公布,对现有VPN软件市场将形成很大的冲击,一些实现类似功能却向客户收取高额服务费用的厂商,将无可避免地面临沉重的打击。
与此同时,生产防火墙软硬件的厂商,也会遇上一个老大难的问题。SoftEther这样堂而皇之把通讯内容隐藏到HTTPS协议里面,为现有防火墙产品所无法识别。虽然作者本人好意地在通讯时故意留下了“SoftEther Protocol”这样的破绽,可以让防火墙厂商暂时利用一下,但随着SoftEther的进一步公开源代码,这样的破绽将很容易被取消,届时又将如何?
SoftEther带来的另一个巨大影响,自然就是对网络管理员们而言了。有了SoftEther,网络用户可以说是如鱼得水;而管理员们如何制定相应的管理策略,如何有效地执行管理,这也是今后网管们需要仔细思考的课题。 轻松实现突破网管限制(SoftEther实际应用)
2005-04-22 15:05 鬼蝶[DFCG]
因为公司限制办公室里的机器上网,只能使用一台内网的HTTP代理服务器浏览网站,而且还只能浏览端口为80的网站,想在天空软件站下个软件还只能通过四川的一个服务器下载。实在很郁闷。找了几天的代理工具。先后用过了“通通通”和“SocksOnline”两种工具。感觉效果都不是太好。因为有些网络软件无法通过代理来用,比如UDP协议的一些工具。具体不能用的原因还不清楚,用了SocksCap v2也是无济于事。应朋友介绍SoftEther可以突破网络的限制,只要拥有一个可以使用HTTPS的代理就可以(看清楚HTTPS代理)。恰好公司的HTTP代理服务器支持访问HTTPS网站。下面就谈谈SoftEther的具体使用吧。
首先要下载一个SoftEther(谁仍的鸡蛋,小心我不继续说了)。我使用的是1.0的汉化版。到
[url]www.baidu.com[/url]
上可以搜到。这里就不提供下载地址了。以免招来不必要的麻烦。
先从安装开始说起。运行SoftEther的安装程序...
图片质量有点差,为了节约空间,没办法呀。
如果你认为你的英语还可以的话你可以把勾打上。我是没有打拉。
安装完以后回来到一个设置的截面的
当然。这个和上面说的意思大致一样。自己看着选。
接着会选择需要安装哪些服务。
这里就要注意一下拉。如果只是建立服务器的话必须选择“安装 SoftEther 虚拟HUB组建”如果又要建立服务器,又要提供Internet连接共享就要两个都装,被限制的机器只要选择“安装 SoftEther 虚拟网卡核心组建”即可。
安装过程中会出现一个安全的认证,选择“仍然继续”选错了装不上别找我哦。
安装虚拟网卡的需要把前两个点开始。如果要提供虚拟HUB服务的要把最下面的开始启动。根据实际情况来选择启动。如果不明白就全点开始。只安装虚拟网卡服务的朋友下面的虚拟HUB服务的开始按钮是不能点的。必须先点安装再点开始才能启动虚拟HUB的服务。
OK。至此安装已经完成了,下面进入设置程序。
首先进行服务器端的设置,打开 SoftEther 虚拟HUB管理器,选择本地计算机,进入控制台操作界面。开始会要求输入一个管理HUB的密码,需要确认一次。
下面选择数字1进入用户管理。然后选择2创建一个新用户。
需要选择HUB ID的时候一般选1。后面的选项可以不填。直接回车略过。
这样一个用户就创建好了。这个用户可以提供给N个人使用。
服务器端就算设置完了。如果想进行更深入的设置请大家自己研究吧。
下面开始客户端的设置。
打开SOFTETHER 连接管理器。
选择菜单——新帐户,会弹出创建新连接的窗口。
因为我这里的情况上面说过了。只能使用一个80端口的内网代理上网浏览网页。所以我这里选择“代理连接”点配置。可以进入“代理连接”的设置界面。
上面的IP地址处写你的内网的代理服务器IP,后面是代理服务器的端口。如果需要用户验证请加上用户验证的资料。下面是你虚拟HUB的IP地址(一般是公网IP)。因为使用的是HTTPS连接,所以使用的是443端口。如果服务器端(虚拟HUB)修改了这个端口那就要做相应的修改了。这个部分写完以后就可以设置连接虚拟HUB的帐户了。
连接虚拟HUB需要身份验证上打勾,就可以填写虚拟HUB的身份验证资料。就是上面在虚拟HUB设置里创建的那个帐户。所有的一切都设置好了。这时候就可以用新建的这个客户端连接到虚拟HUB上了。如果连不上请找其他相关教程学习。说明我教的不好。嘿嘿。想继续看的朋友继续看下面的如何通过虚拟HUB无限制的连上Internet。今天有点累了。本来想一口气写完的。可是都是在利用上班时间写。实在有点过分了。哈哈。还是下次再写吧。
图没贴上!
:)
页:
[1]
