Thursday, January 13, 2011

Sesawe翻墙指南连载:过滤技术

来源:Sesawe(国际反封锁联盟)

过滤技术

网络过滤是一套审查者用于阻止网络用户访问特定内容和服务的技术。网络运营商可以在网络中的任何节点,通过多种方法,依照不同的准确级别和定制级 别,实施内容过滤。一般情况下,过滤技术通过软件查看用户行为,并有选择地干涉被运营商视为非法 的活动。国家政府,全国或当地网络服务提供商都可以建立并实施过滤。

有四种常见的过滤技术你需要注意:

网址过滤

禁止访问网址(整个网址或部分网址)是国家和其它机构屏蔽网络信息的方法之一。网络审查者通常会完全屏蔽某些网站域名,因为他们反对这些域名所包含 的内容。他们可以通过 名称或IP地址实施域名屏蔽。有时,当局会更有选择性地屏蔽某个域名 的子域名,其它子域名仍可访问。比如,审查者可能过滤掉子域名news.bbc.co.uk,而不会过滤bbc.co.ukwww.bbc.co.uk。同样,他们还会过滤掉某些内容,而该域名的其它网页内容仍可以访问。方法之一就是查找目录名,比如通过 “worldservice”来屏蔽bbc.co.uk/worldservice下的外语新闻,英语网站内容则不受影响。他们甚至可以根据网页名称屏蔽 某些网页,以及屏蔽搜索问题中涉嫌攻击或非法内容的关键词。

过滤

人们在通过网络交流 时,通常使用“somewebsite.com”这样的域名,而不是IP地址,在浏览网页时更是如此。但是,当计算机和互联网之间沟通时,它们需要数字地 址做向导。当你在浏览器中输入一个域名后,浏览器首先会向一台 DNS服务器发出请求(对应于一个已知的数字地址),查找域名,并提供相应的IP地址。

dns.png 

如果DNS服务器被设定为屏蔽访问,它将询问非法域名黑名单。如果浏览器向黑名单中的域名对应的IP地址发出请求 ,DNS服务器就会给出错误应答,或者根本没有反应。

dns2.png

没有IP地址,发出请求的计算机就无法继续,进而显示错误信息。既然浏览器无法得到网站IP地址,它也无法向网站发出页面请求,结果该域名下的所有网页都会被屏蔽。

绕过DNS过滤的备选方法有:

  • 从另一个不同域名的网站上访问所需信息 。
  • 向另一台DNS服务器发出地址请求。你可以为单一域名申请 , 也可以通过免费DNS服务器、或自己的DNS服务器为所有域名发送请求。
  • 从别的地方寻找发布的IP地址。
  • 通过其它未屏蔽网站发送请求。比如网络代理,或者搜索引擎的网页缓存。

IP过滤

当数据通过互联网发送时,会被划分为数据组 (packets)。一个数据组包括发送数据以及和发送方式相关的信息,比如发送数据计算机的IP地址,以及目标IP地址。路由器是数据组从发送者到接受 者之间所经过的计算机,其作用是确定信息走向。如果审查者希望阻止用户访问路由器,他们可以设置路由器,令其“放弃 ”(而不是传输)发往黑名单IP地址的数据,或者返回错误信息。单纯基于IP地址的过滤 会屏蔽某个服务器提供的所有服务,比如网站服务器和电子邮件服务器。既然只依靠IP地址屏蔽内容,只要有一个域名被封,与其共享同一IP地址的多个域名也 会同时被封。

为了绕过IP过滤,你可以从其它网站访问所需信息,或者通过未屏蔽网站发送请求信息。

端口屏蔽

端口(Ports)就好比是大楼里标有门牌号的门,每扇门都对应着不同的房间或套房。在计算机上,端口也有编 号:常见的标准端口号介于0-1024之间,但是其它编号可以达到65535。服务器或计算机上的每个端口通常提供一种特定的服务(比如网络访问或电子邮 件等)。当一台计算机请求访问另一台计算机上的某个服务时,它会给该请求指定一个端口编号。提供服务的计算机会“倾听” 使用该编号 的请求。 

把单个端口编号列入黑名单会限制访问服务器上的某个服务,比如网络或电子邮件。网络上的普通服务都有典型的端口编号。服务和端口编号之间的关系由网 络分配号码机构(IANA) 分配。 这些分配指令允许路由器对受访服务进行推测。因而,为了屏蔽访问某个网站的网络流量,审查者可以只屏蔽80端口,因为该端口通常提供网络接入服务。

绕开端口屏蔽的最直接办法就是通过非标准端口提供标准服务。用户需要一些系统知识才能利用这一点,以便让浏览器或电子邮件客户端使用非标准端口。其它访问方法还包括通过其它协同服务器访问相同或类似服务,或者在未屏蔽区域访问被屏蔽服务器。

这为什么重要

这些审查技术需要上文提到的网络结构中的不同部分 提供支持。  如果你想在实施屏蔽的区域之外建立非屏蔽服务器,你需要了解更详细的信息。


Sesawe翻墙指南连载:谁在控制互联网?

来源:Sesawe(国际反封锁联盟)

谁在控制互联网?

网络管理的细节内容比较复杂,涉及政治,并且仍然饱受争议。以下文字 的目的在于提供充分的细节内容,帮助你了解网络治理的某些方面是如何影响 特定网络限制手段的。问题的关键是,在一些国家,所有的网络基础设施都是由政府以及受政府控制的大型电话公司所有和运营的。政府如果打算封锁信息,可以对 信息的源头,以及信息出入国境的节点进行直接和间接控制。在监视国民方面,政府拥有广泛的法定权力,并且很多政府置法律于不顾,通过非法手段监视和限制网 络 使用。

政府参与

渗透到学术、商业、以及公共领域。现在,人们已形成这样一个全球共同观点 :致力于维护互联网标准和协议,力争在全球范围内实现开放的连通性和互用性。

但是,没有人迫使政府按照上述目标及网络结构相关建议部署网络基础框架。政府可以(有些政府已经实施)把国家 通信系统设计为单向的“控制点(choke points) ”, 政府可以控制全国范围内 人们对某些网站的访问,并且在某些情况下,还可以禁止国外用户访问国内网络。其它政府已经通过法律或采用非正式控制手段,对 网络服务提供商实施管制,有时迫使他们一起监控、封锁、或移除某些特定内容 。

有些国家的网络设备及其功能都是由政府或政府许可的公司管理的。不存在完全独立于政府之外的全球性网络管理。政府认为控制网络和通信基础设施是 国家的主权 ,并且很多政府已经声称有权禁止或封锁某些被视为具有攻击性 或危险性的内容和服务。

这为什么重要 

为了理清网络审查来源和潜在威胁之间的关系,了解网络管理非常重要。政府不仅有可能封锁内容访问,还有可能监视国民访问的信息,以及对那些从事政府 禁止的活动的用户给予惩罚。政府可以规定封锁什么内容,并且可以实施封锁, 通过法律、法规、及非法手段,迫使名义上独立的公司员工实施封锁和监控。因此,根据用户情况不同,试图绕过网络审查可能会带来严重的现实后果。考虑到用户 安全,了解网络是如何受 (不受)控制的至关重要。

PAC自动代理文件格式,教你如何写PAC文件

来源:http://www.truevue.org/javascript/pac-format

PAC文件格式

PAC文件是纯文本格式的,实际上就是JavaScript文件。Chrome/Chromium的扩展Switchy!的"Auto Switch Mode"功能实际上也是创建和维护一个简单的PAC文件,但功能比较弱。

对于一般的应用,即使你几乎不懂JavaScript和编程,也可以通过本文的介绍实现基本的功能。

PAC文件FindProxyForURL函数

PAC文件中必须包含一个函数:FindProxyForURL(url, host)。

参数url是用户输入的url,参数host是url中的主机名。

比如url为http://www.truevue.org/javascript/pac-proxy-setting,那么host就是www.truevue.org

一个最简单的PAC文件内容如下:

function FindProxyForURL(url, host) {
return "DIRECT";
}

这个PAC文件实际上什么也没做,对任何URL,都将"DIRECT"(直接连网)。

PAC文件返回值类型

除了可以return "DIRECT"以外,还有两种常用方式:

PROXY proxysample.com:8080

http代理的主机和端口,主机也可以用IP表示

SOCKS5 socks5sample.com:1080

socks5代理的主机和端口,主机也可以用IP表示

那么,我们可以猜测到,用pac指定一个http代理应该这样写

function FindProxyForURL(url, host) {
return "PROXY 192.168.1.1:3128";
}

甚至可以指定多个代理  

function FindProxyForURL(url, host) {
return "DIRECT; PROXY 192.168.1.1:3128; SOCKS5 lilinux.net:1080";
}

这句语句的意思是:

  1. 对所有URL,都直接连接;
  2. 如果不能直接连接,那么就使用192.168.1.1:3128这个http代理连接;
  3. 如果还是不能连接,则使用lilinux.net:1080这个socks5代理连接。

使用不同连接的顺序和语句中的顺序一致,你可以根据自己的实际情况更改。

也许你明确知道哪些网站不能直连,必须用PROXY或者SOCKS5连接,那么可以对站点分别指定代理配置

function FindProxyForURL(url, host) {
if (shExpMatch(url,"*.google.com/*")) {
return "PROXY 192.168.1.1:3128";
}
if (shExpMatch(url, "*.wikipedia.com:*/*")) {
return "SOCKS5 lilinux.net:1080";
}
if (isInNet(host, "10.0.0.0", "255.0.0.0")){
return "DIRECT";
}
return "DIRECT; PROXY 192.168.1.1:3128; SOCKS5 lilinux.net:1080";
}

这个PAC文件中引入了两个新的函数,但从字面意思上,我们也可以猜出代码的大概意思:

  1. 当url是*.google.com/* 时,自动使用PROXY代理;
  2. 当url是*.wikipedia.cm/*时,自动使用SOCKS5代理;
  3. 当host是10.0.0.0 /255.0.0.0的子网内时,自动直连;
  4. 如果都不匹配,则依次按DIRECT、PROXY、SOCKS5的次序尝试。

shExpMatch函数用来匹配url或者host,匹配的方式和DOS的通配符相似。例如前面用到的"*.google.com/*"可以匹配任意包含".google.com/"的字符串。

Chrome/Chromium 的扩展Switchy!创建的pac文件还自定义了一个函数,可以用来匹配正则表达式,不过个人认为在url匹配上通常不需要使用强大的正则表达式。

isInNet函数用来返回请求的host是否在指定的域内。值得注意的是,isInNet的第二个参数必须是 IP,不能是主机名。因此需要把主机名转换成IP。比如"isInNet(host, dnsResolve(www.google.com), "255.255.255.0")"讲到这里,应该可以解决你的问题了吧。

PAC文件可以使用的JavaScript函数

当然PAC也不止这么简单,它还提供了不少其它函数,在本文就不详细讲述了。http://www.truevue.org/javascript/pac-functions 中列出了PAC代理文件中可以使用的JavaScript函数。

你也许想把pac文件发布到Internet上,这样其它用户就只需要在浏览器中指定pac文件的url即可。你得配置你的服务器映射 .pac 文件后缀到MIME类型: application/x-ns-proxy-autoconfig 如果使用的是Netscape服务器,编辑 config 目录下的 mime.types 文 件。如果是Apache, CERN or NCSA服务器,使用 AddType 指令。


Google官方帮你检查自己gmail是否安全

来源:http://allinfa.com/gmail-safe.html

google悄悄的提供了一个官方的检查自己使用的gmail是否安全的功能。在Gmail的帮助页面里通过检查安全清单,检查五个方面即可知道自己的Gmail是否有安全隐患,实际上主要是简单检查下面几步。对于敏感人士的重要信箱这个是必做功课呀。

Google官方提供的页面:Gmail 安全清单

1. 在这里查看授权获取Google帐户数据的网站。如果检查出有第三方的自己不知道的外来者有授权访问自己的信箱,那就赶紧ban掉它;
2. 检查你浏览器的插件、扩展和第三方应用是否需要访问你的Google帐户。比如你安装了一个可检查Gmail新邮件的扩展,那么Google是无法控制这个扩展的安全性的,如果你安装了并不知名的扩展,需要小心了;
3. 查看邮件设置,以确保你的Gmail邮件没有被转发出去。常规登录gmail后,有四个地方的设置会有安全隐患;
* 常规:检查签名、外出回复,
* 帐户:检查“用这个地址发送邮件”,
* 过滤器:检查是否有过滤器将你的邮件转发到垃圾箱、垃圾邮件,或是转发到其它邮箱里,
* 转发和POP/IMAP:查看这里是否有位置的帐户或邮件客户端,
4. 检查帐户最近的可疑活动。点击Gmail最下面的“上次帐户活动时间”后的“详细信息”链接,看看是否有可疑的IP访问了你的Gmail;
5. 进入设置的“常规”里,将“浏览器连接”设置为“始终使用 https”,以确保当你使用咖啡厅或酒店的公众网络访问邮箱时不会泄露信息。

除敏感人士需要注意经常检查自己gmail邮箱的安全性之外,对于普通的使用者,主要是为了提防钓鱼等信息泄露,所以每隔一段时间检查一下重要的gmail账户是有备无患吧。

………………………………………………

本文标题:美博园 http://allinfa.com » Google官方帮你检查自己gmail是否安全
本文链接:http://allinfa.com/gmail-safe.html