|
如今采用局域网方式接入internet已经是各个公司、高校和政府机关的主要上网方式,这种方式既节省ip地址,又方便管理和控制。通常网管会在局域网的出口处设置各种防火墙,这样一方面保证了局域网内部的安全xx,另一方面又可以控制局域网内部人员的访问权限。可这样也限制了使用者的使用权限,与外界的联系也很不方便。比方说对于在公司里上班的上班一族和局域网里的穷学生来说,最痛恨的事情莫过于可恨的boss为了防止大家偷懒而关闭了大多数端口,只允许使用有限的服务,如www、pop3、smtp等。这样就用不成很多工具,如qq、cterm、ftp等,你和外界的联系会很不方便,有mm而不能聊、有bbs而不能灌、有精彩的歌曲而不能down,人世间最大的痛苦莫过于此……怎么办?别急别急,本文教你几招,轻轻松松穿透防火墙,尽情使用各种工具!好,下面我们一起来看这几招的原理解说和实战说明。
名次解释:
协议
协议(protocol)就是一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序和错误,通俗说就是不同网络程序的交流语言。我们常见的qq使用udp协议、icq使用tcp协议、e-mail程序使用pop3和smtp协议,而在常见的协议中socks是一种比较复杂的协议。
端口
端口(port)可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:usb端口、串行端口等;软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和i/o(基本输入输出)缓冲区。端口号实际上有点和文件描述符相似,也是系统的一种资源,只不过其分配方式有固定的模式。有几种基本分配方式:第一种是全局分配,这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,而且按照协议不同分配不同的端口号,这样导致很多服务被固定在某个协议的端口上,如tcp的21端口就被ftp服务占用;第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地xx作系统提出申请,xx作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来。
端口按端口号可分为三大类:
1.公认端口(wellsknownsports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如80端口实际上就是http通讯。
2.注册端口(registeredaports):从1024到49151,它们松散绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的,例如许多系统处理动态端口从1024左右开始。
3.动态和“/”或私有端口(dynamic3and/or3private3ports):从49152到65535。理论上不应为服务分配这些端口,实际上机器通常从1024起分配动态端口,但也有例外:sun的rpc端口从32768开始。
代理服务器
代理服务器(proxy)是网络信息的中转站,比方说http代理服务器。我们使用网络浏览器直接链接其他internet站点并取得网络信息时,需送出request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到web服务器去取回网页而是向代理服务器发出请求,request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有socks代理服务器,其原理大同小异。
防火墙
防火墙(firewall)是一个系统(或一组系统),它能增强机构内部网络的安全xx。防火墙系统决定了哪些内部服务可以被外界访问、外界的哪些人可以访问内部的特定服务,以及哪些外部资源可以被内部人员访问。要使一个防火墙有效,所有进入和外出的信息都必须经过防火墙,接受其检查。防火墙必须做到只允许经过授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。
防火墙的实现方式包括“包过滤路由器”和“应用层网关”。包过滤路由器可以过滤协议(icmp、udp、tcp等),只允许特定的协议通过;应用层网关就是我们常说的代理服务器,它可以提供比路由器更严格的安全策略,我们平时的各种限制就是在应用层实现的。
第一招:socks代理
一般来讲,boss为防止内部员工偷懒,常常会关闭常见娱乐工具的协议端口,如qq使用的udp4000端口,但常常不会关闭socks的1080端口。这样如果你想用的东西本身支持socks代理,那么就好办了,直接使用代理就ok。
socks是个电路级网关,是davidkoblas在1990年开发的,此后它就一直作为internet9rfc中的开放标准。socks在协议栈的tcp层上运行,它的常用端口是1080。与winsock不同的是,socks不要求应用程序遵循特定的xx作系统平台,比如像winsock那样遵循windows。socks代理与应用层代理、http层代理不同,socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如ftp、http和nntp请求),所以socks代理服务器比应用层代理服务器要快得多,正因为socks代理服务器有这样的功能我们才可以通过它来连接internet。常用到有socks代理有socks4和socks5两种版本,其中socks4代理只支持tcp协议,socks5代理支持tcp和udp协议,还支持各种身份验证机制、服务器端域名解析等。简单点说,socks4能干的socks5都可以干,反过来就不行了,如qq只能用socks5代理,而ftp可以用socks4和socks5,因为qq的数据传输机制是udp,而ftp用的数据传输机制是tcp。
socks协议就是一种几乎万能的代理协议,它虽然不能理解自己转发的数据内部结构,但它能够忠实地转发数据包,完成协议本来要完成的功能。它与你常见的http代理的不同点在于,http代理通过http协议进行,http代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种修改和转换。来看看我是怎么用socks代理来穿透防火墙的吧。
先来看看qq中我们怎么用socks代理吧。首先在qq的任务栏通知区的图标处点右键,然后选择系统参数,然后选择网络设置,选中使用“socks5代理服务器”,填入你所用的socks代理地址和端口号(如图1),还可以点测试看看这个socks5代理可用否。确定后,你的qq就是通过61.136.132.138:1080这个socks5代理上线的,你所有的数据包现在都是发给这个代理服务器,然后再转发出去,这样就可以绕过udp4000的端口,穿过了防火墙的牢笼。我们还可以用另外一个可以看ip的qq看看现在你qq所在的ip(如图2),显示的ip是61.136.132.138。这样还有一个附加功能,就是隐藏了你的真实ip,与陌生人聊天时不用隐身了,他看到的ip也是socks代理服务器的ip地址。
再来看看如何穿透防火墙来使用ftp工具absoluteftp(图3)来从网上下载东西。absoluteftp是一款强大的ftp下载工具,支持socks4和socks5代理,而且全中文界面,如果你所在的局域网被封了21端口导致无法使用ftp下载时,可以用这款软件加socks代理来绕过防火墙实现ftp功能。ftp既可以用socks4,也可以用socks5代理,而不像qq只能使用socks5代理。
在absoluteftp的选项设置中选中全局配置中的防火墙(图4),然后就可以选择是采用socks4还是socks5代理、是否需要身份认证等,然后填入socks代理服务器和端口以及身份认证所需要的用户名和口令,这样就能穿过防火墙使用ftp了。
第二招:socks2http配合sockscap32
第一招中,如果网管只开放80端口,把socks常用的端口关闭,或者你想用的软件本身并不支持socks代理,如foxmail,或者你就找不到可用的socks代理(网上可用的socks代理数量远远小于可用的http代理数量),这时第一招就不灵了,怎么办?请看第二招:socks2http配合sockscap32,二者加起来使用的结果就是只要你有一个可用的http代理,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持socks代理,我们分两种情况来看。
1.防火墙关闭了socks端口,但你要用的软件支持socks代理
这种情形下可以直接用socks2http来搞定。socks2http(http://www.totalrc.net/)是一个代理...我们用“netstatj–aj–n”命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是http2socks模拟出来的在本机上运行的socks代理服务器侦听端口,现在你就拥有一个本地的socks5代理服务器了。
接下来我们看看在qq等支持socks接口的软件中该如何设置代理服务器。看下面图8,直接将socks5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。
2.防火墙关闭了socks端口,并且你想用的软件不支持socks代理
这就稍微麻烦一些,需要另外一个软件sockscap32的配合支持来穿透防火墙。sockscap32是nec公司(http://www.socks.nec.com)开发的,?..p就解决了。httpfproxy网上有的是,只要有了http代理就有了socks代理。因为socks2http就是把http代理模拟成socks代理,如果再配合刚才提到的socks2http,就可以穿透防火墙来使用那些本身没有socks接口的软件了,下面我们来解释这个过程!
现在网上已经有了sockscap的汉化版本(http://www.ttdown.com/softview.asp?...kscap的控制台。
为了更好理解,我把这个过程分成几步:
第一步:首先按照第一部分那样配置好你的socks2http,填入可用的http代理,启动,然后你就拥有一个本地的socks代理服务器127.0.0.1,端口是1080,现在就可以用这个socks代理来配置你的sockscap。
第二步:运行sockscap,如果是第一次运行,系统会自动提示你是否进入设置界面,如果不是第一次运行,可以选择sockscap中的文件→设置进入设置界面,如图10。
第三步:在sockscap的设置界面中填入socks2http模拟出来的本地socks代理127.0.0.1,端口是1080,“协议”处选择“socks版本5(5)”→“由远程决定所有名字”,其余部分,例如直接连接的设置是为了有些内部房梢灾苯恿佣挥肧ocks代理,日志部分可设置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。
第四步:建立“应用程序标识项”。应用程序标识项是在sockscap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在sockscap中启动这个工具就相当于“赋予”了这个工具的socks接口能力。有两种方式来建立这种快捷方式:
1.用鼠标拖动桌面上的cterm快捷键到sockscap的空白处,松开鼠标即会弹出菜单,选择“应用程序标识项”系统会自动建立好标识项(见图11),点确定即可。
2.也可以点击“新建”,在弹出的对话框里填入相应内容,点击确定。
第五步:运行程序。在sockscap控制台中双击刚才新建的cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图12),以前因为我在教育网里无法访问国外网站,而且网管封了telnet的23端口,我无法连上这个bbs,现在通过socks2http和sockscap,不仅可以出国,而且可以使用telnet服务连上mit的bbs,穿透了防火墙!其他工具,比方说ftp、outlook等,也一样使用。尤其值得一提的是可以用outlook收hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用http代理上hotmail的网站,用www方式收信。现在有这个就好了,相当于给outlook配备了socks接口,直接就可以在outlook里面收信了。
第二招:socks2http配合sockscap32
第一招中,如果网管只开放80端口,把socks常用的端口关闭,或者你想用的软件本身并不支持socks代理,如foxmail,或者你就找不到可用的socks代理(网上可用的socks代理数量远远小于可用的http代理数量),这时第一招就不灵了,怎么办?请看第二招:socks2http配合sockscap32,二者加起来使用的结果就是只要你有一个可用的http代理,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持socks代理,我们分两种情况来看。
1.防火墙关闭了socks端口,但你要用的软件支持socks代理
这种情形下可以直接用socks2http来搞定。socks2http(http://www.totalrc.net/)是一个代理...我们用“netstatj–aj–n”命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是http2socks模拟出来的在本机上运行的socks代理服务器侦听端口,现在你就拥有一个本地的socks5代理服务器了。
接下来我们看看在qq等支持socks接口的软件中该如何设置代理服务器。看下面图8,直接将socks5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。
2.防火墙关闭了socks端口,并且你想用的软件不支持socks代理
这就稍微麻烦一些,需要另外一个软件sockscap32的配合支持来穿透防火墙。sockscap32是nec公司(http://www.socks.nec.com)开发的,?..p就解决了。httpfproxy网上有的是,只要有了http代理就有了socks代理。因为socks2http就是把http代理模拟成socks代理,如果再配合刚才提到的socks2http,就可以穿透防火墙来使用那些本身没有socks接口的软件了,下面我们来解释这个过程!
现在网上已经有了sockscap的汉化版本(http://www.ttdown.com/softview.asp?...kscap的控制台。
为了更好理解,我把这个过程分成几步:
第一步:首先按照第一部分那样配置好你的socks2http,填入可用的http代理,启动,然后你就拥有一个本地的socks代理服务器127.0.0.1,端口是1080,现在就可以用这个socks代理来配置你的sockscap。
第二步:运行sockscap,如果是第一次运行,系统会自动提示你是否进入设置界面,如果不是第一次运行,可以选择sockscap中的文件→设置进入设置界面,如图10。
第三步:在sockscap的设置界面中填入socks2http模拟出来的本地socks代理127.0.0.1,端口是1080,“协议”处选择“socks版本5(5)”→“由远程决定所有名字”,其余部分,例如直接连接的设置是为了有些内部房梢灾苯恿佣挥肧ocks代理,日志部分可设置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。
第四步:建立“应用程序标识项”。应用程序标识项是在sockscap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在sockscap中启动这个工具就相当于“赋予”了这个工具的socks接口能力。有两种方式来建立这种快捷方式:
1.用鼠标拖动桌面上的cterm快捷键到sockscap的空白处,松开鼠标即会弹出菜单,选择“应用程序标识项”系统会自动建立好标识项(见图11),点确定即可。
2.也可以点击“新建”,在弹出的对话框里填入相应内容,点击确定。
第五步:运行程序。在sockscap控制台中双击刚才新建的cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图12),以前因为我在教育网里无法访问国外网站,而且网管封了telnet的23端口,我无法连上这个bbs,现在通过socks2http和sockscap,不仅可以出国,而且可以使用telnet服务连上mit的bbs,穿透了防火墙!其他工具,比方说ftp、outlook等,也一样使用。尤其值得一提的是可以用outlook收hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用http代理上hotmail的网站,用www方式收信。现在有这个就好了,相当于给outlook配备了socks接口,直接就可以在outlook里面收信了。
|