在 Redhat 上安全使用 Tor
MSN contact: wantm009@hotmail.com
Keyword: Tor,Proxy,GFW
- Tor 0.1.1.22 (Source tarballs),下载地址 http://tor.eff.org/dist/tor-0.1.1.22.tar.gz
- Libevent 1.1 (这是 Tor 所需要软件之一),下载地址 http://www.monkey.org/~provos/libevent-1.1a.tar.gz
- OpenSSL 0.9.8,这也是 Tor 运行所需的软件的之一,相信很多Linux默认就已经安装了 OpenSSL
- Privoxy 3.0.3-2,这是把 HTTP 的代理服务器软件,可以把 HTTP 请求转换为 Tor 所支持的 socks 请求,下载地址 http://prdownloads.sourceforge.net/ijbswa/privoxy-3.0.3-2-stable.src.tar.gz?download
# tar -zxvf libevent-1.1a.tar.gz //* 解压下载来得的tar包# cd libevent-1.1a //* 进入源码目录# ./configure --prefix=/usr/local/libevent //* 执行配置脚本,我们把 libevent 指定安装到 /usr/local/libevent# make && make install //* 编译安装
# useradd -d /dev/null -s /sbin/nologin nobody
# tar -zxvf tor-0.1.1.22.tar.gz //* 解压下载来得的tar包# cd tor-0.1.1.22 //* 进入源码目录# ./configure --prefix=/usr/local/tor --with-libevent-dir=/usr/local/libevent //* 执行配置脚本,我们把 tor 指定安装到 /usr/local/tor,并且告知刚才libevent 的安装位置# make && make install //* 编译安装
# mkdir /var/tor //* 为 Tor 新建数据存储目录# chown nobody:nobody /var/tor //* 修改所属用户和组# chmod 700 /var/tor //* 修改用户权限# cp /usr/local/tor/etc/tor/torrc.sample /usr/local/tor/etc/tor/torrc //* 从例本中复制一个 Tor 的配置文件 torrc# vi /usr/local/tor/etc/tor/torrc //* 编辑 torrc修改内容如下:RunAsDaemon 1 //* 以守护方式运行 TorUser nobody //* 运行 Tor 的用户帐号Group nobody //* 用户组DataDirectory /var/tor //* 重定向 Tor 的数据文件到刚才新建的目录Log notice file /var/tor/notices.log //* 重定向 Tor 的 log 文件
# /usr/local/tor/bin/tor //* 手动开启 Tor 的命令# /usr/local/tor/bin/tor-resolve google.com 127.0.0.1:9050 //* 这是校验 Tor 时候成功运行的命令
# echo "/usr/local/tor/bin/tor" >> /etc/rc.d/rc.local //* 追加到 rc.local 即可实现。
# tar -zxvf privoxy-3.0.3-2-stable.src.tar.gz //* 解压下载来得的tar包# cd privoxy-3.0.3-stable //* 进入源码目录# autoheader && autoconf && ./configure --prefix=/usr/local/privoxy --with-user=nobody --with-group=nobody //* 执行配置脚本,我们把 privoxy 指定安装到 /usr/local/privoxy,并指定运行 Privoxy 服务的用户帐号。# make && make install //* 编译安装
# vi /usr/local/privoxy/etc/config //* 编辑 Privoxy config追加如下一条内容:forward-socks4a / 127.0.0.1:9050 . //* 指定 Privoxy 得到的 HTTP 请求转发给 Tor
# cp privoxy.init /etc/rc.d/init.d/privoxy //* 把源码目录中的 privoxy.init 复制到 init.d/privoxy# chmod 755 /etc/rc.d/init.d/privoxy //* 修改 privoxy 的文件权限# vi /etc/rc.d/init.d/privoxy //* 编辑 privoxy做如下修改:PRIVOXY_BIN="/usr/local/privoxy/sbin/$PRIVOXY_PRG" //* 191行,指定可执行文件位置PRIVOXY_CONF="/usr/local/privoxy/etc/config" //* 192行,指定配置文件位置PRIVOXY_USER="nobody" //* 193行,指定用户# chkconfig --add privoxy //* 使用 chkconfig 命令,把 privoxy 加为服务# chkconfig --list privoxy //* 如果服务添加成功,可以列出 privoxy 服务在各运行层的开关状态
# service privoxy start //* privoxy 服务默认在 Level3 Level5 都能自运行,手动启动可以使用这条命令
- 浏览器得到HTTP请求,转发到代理服务器,即 Privoxy 开启的127.0.0.1:8118 ,
- Privoxy 把请求再转发给 Tor 的 127.0.0.1:9050 SOCKS端口。
- Tor 得到请求后,继而通过已知的匿名节点加密后转发出去。