老兔新传IT版

穷困潦倒的IT公司职员的故事

  博客园 :: :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
不想听我废话的直接GOTO 后面;
在这里并不想大累原理类的文字,反正我累了也没有人给我稿费。谨以此文献给我们公司强大而又负责的IT团队,我想说不论如何就靠这么几个人打造并维持这等规模的一个IT环境是非常不容易的,(考虑到IT的兄弟也有可能看到本文,一定要多说好话)

HTTP隧道技术是一种隧道技术(要丢鸡蛋的且慢),就和在TCP/IP协议上构建PPTP隧道建立安全的VPN链接类似,HTTP隧道技术是在HTTP协议上构建一个隧道,使得原本只能用于HTTP通讯的HTTP端口能够承载其他各类通讯内容。
我并非说80端口只能承载HTTP通讯,话说我们公司的IT部门几乎将除80和443之外的所有端口全都封闭了。并对443端口启用了白名单功能,对80端口启用了协议过滤,HTTP协议之外的通讯内容一律不得通过。所以我觉得不能管那个端口叫做80端口,而应该叫做HTTP端口。
出于各种原因吧,我总是希望能够到大墙外面看一看,于是在机缘巧合之下找到了这种HTTP隧道技术的实现。

:后面
我要申明,这并不是一篇入门级的傻瓜说明,虽然我一直都致力于写傻瓜说明,但这次我真的觉得没有必要,所以……

首先我在家里有一台Ubuntu服务器24小时运行着,不得不说Intel的ATOM真是好东西,一台服务器的耗电量和一个灯泡差不多,在服务器的22端口上运行着SSH服务。这台服务器将同时作为我的隧道服务器。而后呢,在公司的防火墙内自然就是我自己的工作站了,工作站使用市面上最流行的Win XP。我认为这也是非常常见的一种组合了。
我选用的软件(其实不是选用,这是我唯一发现的软件……)就叫做HTTP Tunnel(为了大家在软件名称和技术名称上的混乱,我一律用英文名称呼软件,用中文名称呼技术)。如果你也运行Ubuntu的话恭喜你,你可以直接apt安装。一个很可爱的哥们儿告诉我FreeBSD的Ports上也有这个产品。当然,这个软件的主页在:http://www.nocrew.org/software/httptunnel.html (你可能无法轻易访问到),同时提供了多种安装形式。
安装完成后键入以下命令即可完成服务器端配置:
# 将本地的22端口通讯转换为HTTP通讯并将HTTP通讯运行在端口8888上
hts --forward-port localhost:22 8888
到家里的路由上,将服务器的8888端口映射到外网IP的80端口上之后服务器这边就全搞定了。至于让这个命令每次开机都自动执行的问题我就不废话了。

下面隆重推出Win32版本用于配置我的客户端。我要强调,Win32版绝非只有客户端,他是一个基于cygwin1.dll编译的完整版本,这意味着如果你家跑着的Windows也可以作为服务器。Win32版本的下载地址是:http://www.neophob.com/files/httptunnel-3.3w32.zip (这个地址暂时还能够正常访问)。
下载,解压,一切都非常简单,更令人兴奋的是客户端的配置和服务器端一样,也只需要一条命令。
# 将自家公网IP上的80端口的HTTP通讯转换为原本的通讯内容并映射到本地900端口上
htc --forward-port 900 自家公网IP:80
这样的话,公司内的Workstation的900端口就等同于家中路由背后的服务器的22端口,后面不用我说了,打开Putty,在HTTP隧道内再建立一个安全的SSH隧道后就可以为所欲为了。

:最后面
1、我不想说穿墙打孔是一件很光彩的事情,但有的时候公司的某些非人设置确实影响了我的工作或者说我的工作状态,作为一名技术人员占有欲和控制欲本就是很强的,所以我支持所有人利用这种技术来提高自己的工作效率,但我和IT部门的同事一样鄙视那些利用后门漏洞搞一些龌龊勾当的人。
2、由于通讯经过了HTTP的转换,速度、效率自然大打折扣。我尝试下来的结论是:比想象中好一些。
3、必须强调HTTP隧道是不安全的,没有经过任何加密。所以强烈建议大家通过SSH在HTTP隧道内再构建一条安全通道。
posted on 2009-08-26 10:32  老兔  阅读(5748)  评论(4编辑  收藏  举报