Tor 是一个开源实现,第二代洋葱路由匿名代理网络,提供免费访问。其首要目标是通过对流量分析攻击保护,使网上的匿名性。
介绍
使用Tor网络在他们的机器上运行洋葱代理。这个软件向外连接到Tor,定期的通过Tor网络连接一个虚拟的电子回路。Tor在一个分层方式采用加密(因此有了‘洋葱’的比喻),确保路由器之间的完全保密。 同时, 洋葱代理服务器软件,向客户端提出了SOCKS接口。SOCKS监听程序是Tor的特点,通过Tor的虚拟电路的流量,然后复。
通过这个过程洋葱代理将会管理终端用户的匿名网络流量。它通过加密流量来保持用户的匿名, 通过Tor的其他节点来发送信息,在发送信息到你指定的服务器之前解密。虽然Tor相对的来说比一般的使用DNS目录连接安全(例如:没有使用代理), 由于大量的数据加密所以它相对来说比较慢。 此外,尽Tor阻止了流量分析但是Tor不能阻Tor网络边界流量的确认。(例如:例如流量进入或者退出网络)。
Wikipedia:Tor (anonymity network)
安装
此外,还可以安装 Qt 前端 vidaliaAUR。除了控制 Tor 进程外,Vidalia 可以查看 Tor 的配置和状态、监控带宽使用并查看、过滤和搜索日志信息。如果喜欢使用命令行,并能获得和 Vidalia 一样的效果,可以使用 nyx包
配置
为了更好的理解Tor/etc/tor/torrc
配置文件. 配置选项在 man tortor(1)和Tor website有介绍.
默认配置应该能够很好的为大多数Tor用户服务除了哪些是用Vidalia的用户, Vidalia是一Tor的图形界面。 在AUR有可用包vidaliaAUR。除了控制过程中的Vidalia允许您查看Tor状态监视带宽使用情况,查看,过滤,搜索日志消息;和配置Tor的某些方面。
使用TOR_MAX_FD
变量,您可以设置自定义文件为Tor的描述ulimits/etc/conf.d/tor
。
默认情况下的Tor记录在日志级别的通知“STDOUT”。如果你能够记录在自己的文件torrc
, 他们默认为 /usr/local/var/log/tor/
.
中继配置
中继 (relay) 是 Tor 网络中重要一环,负责数据传输和隐藏真实 ip 地址。如果没有配置 Tor 配置文件中的 AccountingMax
且没有布置 Web 服务器,应该考虑修改你的洋葱路由端口 (ORPort) 为 443
,因为防火墙会阻止 tor
,只能用于访问网页。修改后可以绕过防火墙,也可以考虑 22
, 110
, 143
和 9001
端口。由于低于1024端口属于特级端口,需要在 tor.service
中设置 User=root
和 /etc/tor/torrc
中设置 User tor
以 root 权限运行。realy setup
启用 Tor ControlPort
大多数用户是不需要这个功能的,但一些应用程序需要这个功能来实现对 Tor 节点的低级访问。 通过 ControlPort ,其他应用程序可以更改和查看 Tor Node ,在 Tor 运行时修改配置文件和查看 Tor 网络。
添加到文件
ControlPort 9051
即可启用
cookie
文件或控制密钥来使用,且只对受信任的程序或用户提供!关于配置 Tor ControlPort ,请参考设置 cookie 文件
用法
可以通过命令行或 vidalia 等图形程序启动 Tor.
要永久连接,可以启动 tor daemon 并将其加入 DAEMONS
数组。
程序配置成实验 127.0.0.1 或 localhost 作为 SOCKS5 代理就可以使用 Tor,端口要设置成 9050 (Tor 标准设置) 或 9051 (用 vidalia标准配置).
访问 Tor、Harvard[失效链接 2021-05-17 ⓘ] 或 Xenobite.eu 可以检查 Tor 是否正确运行。
网页浏览
Tor主要支持Firefox,但是也支持Chromium。
Firefox
如果你使用Firefox, 你可以安装这个插件: TorButton。这将允许你很容易地在Tor的网络和正常网络切换。
如果你正在使用多代理(例如:如果你想使用 TOR 和 "ssh -D") 也有一个插件叫作 "FoxyProxy" 他允许你对于不同网址或者全部网址指定多个代理。只需将它指向localhost上的端口8118(polipo运行中)。
为了测试他, 在你的浏览器打开或者关闭Tor浏览这个网址Tor check。 更多信息请查看这个网址the official doc。
Chromium
当你使用Tor和Chromium时不需要polipo。只需要简单的运行Tor daemon,
然后运行:
$ chromium --proxy-server="socks://localhost:9050"
即时通信
要让即时通信程序使用 Tor,并不需要 polipo/privoxy 等 http 代理。直接使用 tor 守护进程监听的端口 9050 即可。
Pidgin
通过 preferences -> proxy 进入编辑,设置为:
Proxy type SOCKS5 Host 127.0.0.1 Port 9150
之后 pidgin 会使用 Tor 进行通信。有时根据不同账号的 IM 服务配置,需要修改代理设置。在 Accounts -> Manage Accounts 中选择要修改的账号,在 Proxy 标签页中选择:
Proxy type Use Global Proxy Settings
Irssi
Freenode 不推荐使用 Irssi 和 Privoxy。他们推荐 mapaddress
方式,通过运行 torify irssi
启动。将下行加入 /etc/tor/torrc
:
mapaddress 10.40.40.40 p4fsi4ockecnea7l.onion
Freenode 需要 charybdis 和 ircd-seven 的 SASL 机制在连接时进行 nickserv 确认。从 Freenode 网站(即 https://web.archive.org/web/20150423190608/http://www.freenode.net/sasl/cap_sasl.pl) 下载启用 SASL 的 cap_sasl.pl
,保存到 ~/.irssi/scripts/cap_sasl.pl
用 pacman 安装需要的 perl 模块和 AUR 中的 perl-crypt-dhAUR[损坏的链接:package not found].
$ pacman -S perl-crypt-openssl-bignum perl-crypt-blowfish
也可以通过 perl 直接安装:
$ perl -MCPAN -e 'install Crypt::OpenSSL::Bignum Crypt::DH Crypt::Blowfish'
启动 irssi
$ torify irssi
加载使用 SASL 机制的脚本:
/script load cap_sasl.pl
将身份设置到 nickserv,连接时会读取这个值,支持的机制是 PLAIN 和 DH-BLOWFISH。
/sasl set <network> <username> <password> <mechanism>
连接到 Freenode:
/connect -network <network> 10.40.40.40
如果遇到问题,请访问 Arch 论坛上的 Cannot Connect to Freenode IRC using Irssi & Tor。
外部链接
使用 HTTP 代理
如果你需要一个 HTTP 代理。
Privoxy
Privoxy 是一个 HTTP 代理,它使用 SOCKS4a 代理进行 html/cookie 过滤。可以安装 Privoxy 文章安装。
在Firefox使用Tor 和 Privoxy
最简单的方法就是使用Torbutton 扩展。
或者, 你可以使用Foxyproxy。然后重启Firefox你就会发现一个新的工具条。 点Add, 选Standard proxy type. 选 你要的Proxy Label , 例如Tor。进入“HTTP Proxy”和“SSL Proxy”区域:
Hostname: 127.0.0.1 Port: 8118
然后Firefox将会用代理连接。你也可以在No Proxy for 添加例外。
现在,返回 https://whatsmyip.net/ 检查你的ip地址是否和以前不同了。
在其他程序使用Tor 和Privoxy
你可以在像即时通信, Jabber, IRC,等软件使用这个方法。
你可以指定代理(127.0.0.1 port 8118)在那些支持HTTP代理的软件里面。
如果使用SOCKS 代理,你可以指定你的程序到Tor (127.0.0.1 port 9050)。用这种方法的一个问题是,虽然自己做DNS解析的应用程序可能会泄漏信息。
你可以考虑使用Socks4A (e.g. via privoxy)来取代他。
运行Tor 服务
配置
你的带宽必须至少20kb/s:
Nickname <tornickname> ORPort 9001 BandwidthRate 20 KB # Throttle traffic to 20KB/s BandwidthBurst 50 KB # But allow bursts up to 50KB/s ExitRelay 0 # Disallow exits from your relay
允许 Irc 在 6660-6667 端口输出:
ExitPolicy accept *:6660-6667,reject *:* # Allow irc ports but no more
Tor 作为输出节点:
ExitPolicy accept *:119 # Accept nntp as well as default exit policy
Tor 作为中间人:
ExitPolicy reject *:*
运行 Tor 网桥
Tor 网桥是旨在 ISP 运营商或政府阻止访问中继 (relay) 时提供的连接方案,通过访问bridges来了解网桥的工作原理。
需要使用网桥时需在 /etc/tor/torrc
添加一下4行:
/etc/tor/torrc
SOCKSPort 0 ORPort 443 BridgeRelay 1 ExitRelay 0
TorDNS
Tor 0.2.x系列提供了一个内置的DNS转发器。在Tor配置文件添加如下文件来启动它。
/etc/tor/torrc
DNSPort 9053 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion
然后重新启动 Tor 来加载更新过的配置文件:
/etc/rc.d/tor restart
这将让Tor接受DNS请求(在这个例子里面监听着9053端口)。并通过Tor网络域名。一个缺点是,它是仅能够解决一个记录的DNS查询; MX 和NS 请求没有回应。
更多信息请查看 Debian-based introduction。
DNS查询,也可以通过命令行tor-resolve
来查询。例如:
$ tor-resolve archlinux.org 66.211.214.131
Torsocks
torsocks包 will allow you use an application via the Tor network without the need to make configuration changes to the application involved. From the man page:
torsocks is a wrapper between the torsocks library and the application in order to make every Internet communication go through the Tor network.
Usage example:
$ torsocks elinks checkip.dyndns.org $ torsocks wget -qO- https://check.torproject.org/ | grep -i congratulations
Torify
torify
允许你的程序不需要更改配置来通过访问Tor网络。
man page:
torify is a simple wrapper that calls tsocks with a tor specific configuration file. tsocks itself is a wrapper between the tsocks library and the application that you would like to run socksified
使用例子:
$ torify elinks checkip.dyndns.org $ torify wget -qO- https://check.torproject.org/ | grep -i congratulations
Torify 不会通过Tor网络来查询DNS。其中一种解决方法就是和tor-resolve
来解决(前文所述)。在这种情况下, 上面的例子程序将像这样
$ tor-resolve checkip.dyndns.org 208.78.69.70 $ torify elinks 208.78.69.70
问题解决
User value的问题
如果tor daemon启动失败,你可以在root环境下运行一下命令(或者使用sudo)
# tor
如果你收到以下 error
May 23 00:27:24.624 [warn] Error setting groups to gid 43: "Operation not permitted". May 23 00:27:24.624 [warn] If you set the "User" option, you must start Tor as root. May 23 00:27:24.624 [warn] Failed to parse/validate config: Problem with User value. See logs for details. May 23 00:27:24.624 [err] Reading config failed--see warnings above.
它意味着你的User value有问题。通过以下的步骤解决:
运行以下命令检查/var/lib/tor
目录的权限
# ls -l /var/lib/
如果/var/lib/tor
权限显示如下
drwx------ 2 tor tor 4096 May 12 21:03 tor
这意味着它被tor用户和 tor组所拥有
通过以下命令把拥有者和组改为root, root
# chown -R root:root /var/lib/tor
如果你重新检查权限,他现在应该显示为
drwx------ 2 root root 4096 May 12 21:03 tor
现在打开 /etc/tor/torrc
找到以下文字
## Uncomment this to start the process in the background... or use ## --runasdaemon 1 on the command line. RunAsDaemon 1 User tor Group tor
注释掉User tor 和Group tor, 所以他应该显示为
## Uncomment this to start the process in the background... or use ## --runasdaemon 1 on the command line. RunAsDaemon 1 #User tor #Group tor
保存更改然后重启tor daemon, 他应该能够工作了
# /etc/rc.d/tor restart