2008-02-21

Tor代理全套解决方案

关键字: tor
http://tcno.net/doc/tor/

这两天常去几个受GFW限制的网站逛逛,比如BBC等新闻类网站,结果被同事发现了,纷纷向我求救怎么访问。有很简单的办法,那就是让大家通通装一个Tor,那大家就都解决了,不过我正好想试试在Linux下,用tor实现局域网内的代理访问。所以就研究了一下,现在实现了效果,记录一下。

关于Tor的配置可以查看这篇日志:冲出束缚你的屏障,ubuntu下访问受限网站解决方案。

经过上篇日志安装好Tor后,它只是支持本机进行代理访问。我们现在要修改一下设置,让Tor让我们的要求来工作,实现我们需要的效果。

1.局域网内的机器可以通过我安装的Tor访问受限网站。
2.包括Tor支持的Socks方式,Privoxy支持的http_proxy方式。
3.需要对局域网内的机器做限制,不能每个机器都能访问,这个东西还是不能搞大的好。

首先我们来配置Tor。
1.打开Tor的配置文件/etc/tor/torrc。

sudo gedit /etc/tor/torrc

2.找到如下一行,

引用
SocksListenAddress 127.0.0.1 # accept connections only from localhost

在后面添加一行

引用
SocksListenAddress XX.XX.XX.XX:PORT # accept connections from local network

这里的XX.XX.XX.XX是Tor本机IP地址,端口可以任意,但不能是9050和其他已使用的端口。
3.重启Tor之后,就能添加一个监听地址,提供给局域网访问,现在基于Socks方式的代理访问已经就添加好了。

下面我们来配置Privoxy。
1.打开Privoxy的配置文件/etc/privoxy/

sudo gedit /etc/privoxy/config

2.在冲出束缚你的屏障,ubuntu下访问受限网站解决方案里面添加的那一行不需要修改,因为Tor和Privoxy是装在一台机器上,所有不需要修改,假如Tor和Privoxy分别装在两台机器上,就需要修改了,当然这属于安装范畴的东西。

3.找到如下一行。

引用
listen-address 127.0.0.1:8118

把它修改为

引用
listen-address XX.XX.XX.XX:8118

XX.XX.XX.XX为Privoxy所在服务器的IP地址。
4.重新启动Privoxy之后,新的http_proxy地址就生效了。

由此,局域网内任何机器就可以通过下面两个代理进行无限制的访问了。
socks:XX.XX.XX.XX:Port (局域网的机器访问的代理地址) 127.0.0.1:9050(本机代理地址)
http_proxy: XX.XX.XX.XX:8118 (局域网所有机器http代理访问地址,包括本机,因为测试发现Privoxy只能添加一个监听地址。)

当然了,这种无限制访问也是很危险的,作为始作俑者,不能让它太泛滥了,要做一些访问控制,只让受信任的client来访问。
配置Tor的访问控制。
1.打开Tor的配置文件/etc/tor/torrc。

sudo gedit /etc/tor/torrc

2.找到如下两行,

引用
#SocksPolicy accept 192.168.0.0/16
#SocksPolicy reject *

可以很明显看出来,这是对Tor服务器做访问控制的地方,默认没有任何记录,即代表此Tor无任何限制。我们需要添加如下几行,做一些访问控制。示例如下:

引用
SocksPolicy accept 192.168.1.100 #允许192.168.1.100访问Tor
SocksPolicy accept 127.0.0.1 #允许127.0.0.1访问Tor,这是给Privoxy开辟的通道,如果不添加这一行,Privoxy就不能访问Tor了。
SocksPolicy reject * #限制所有IP访问Tor。

我们可以从配置里面看出来,Tor的访问控制是白名单优先于黑名单,即只要出现在白名单中的地址无论是否出现在黑名单中,它都能访问Tor。
所以上面的配置可以理解为,限制除了192.168.1.100和127.0.0.1可以访问Tor外,其他一律排除。

配置Privoxy的访问控制
1.打开Privoxy的配置文件/etc/privoxy/

sudo gedit /etc/privoxy/config

2.找到如下的两行

引用
# permit-access 192.168.45.64/26
# deny-access 192.168.45.73 www.dirty-stuff.example.com

很明显,这是对访问Privoxy的IP做限制的地方,默认是没有任何的记录,即代表无任何限制。但是当你添加任何一条Permit-access记录后,系统即认为你只允许此条记录中对应的IP或域名才能访问Privoxy,其他任何地址都不能访问。在Privoxy的规则中,和Tor的规则正好相反,是黑名单的优先级高于白名单的优先级,即出现在黑名单中的地址无论是否出现在白名单中,它都不能访问Privoxy。
我们就可以按照自己的要求添加记录了,可添加多条记录。如:

引用
permit-access 192.168.1.100
permit-access 192.168.1.101


即代表只有192.168.1.100、192.168.1.101这两个IP地址可以访问本机的Privoxy,其他任何地址都不能访问。

现在,一个受自己控制的、局域网内可以使用的、无限制访问互联网的Tor服务器就配置好了。

PS:这是在Tor管网上查看资料研究后写出的日志,不敢确保无错,如有错,请指正,谢谢。转载请注明出处。

wj浏览器:
评论
发表评论

您还没有登录,请登录后发表评论