如何优雅地用Tor_下篇
为了庆祝三胖去见马克思,特写下tor教程第二篇,上一篇博文已经详细说过Windows和Linux下怎么快捷地用tor,这一篇主要讲tor网桥直连,怎么寻找普通网桥和obfs4网桥?怎么灵活配置torrc文件?以及怎么设置浏览器插件和安全加固?
获取tor网桥
tor网桥洋文叫“Tor Bridge”,用于桥接洋葱网络,而俺们要找的网桥是入口节点,用于直接连接tor,下面讲讲怎么找这个入口节点并测试节点可用性以及速度快慢。
1:首先可以去官方页面获取,此页面点击上面“直接给我网桥”获取的是普通网桥,点击下面“获取网桥”获取的是obfs4网桥,也就是你每次可以获取6个网桥,如果是用tor连接此页面的话,因为tor的IP总是在变的,于是你隔过几分钟就可以再次获取一次,这样的话,你可以短时间内获取大量网桥。下面是获取页面:
https://bridges.torproject.org/options
2:然后是邮件获取,gmail发送邮件至bridges@torproject.org,稍后就会收到torproject给你发来的网桥,如果没收到,那肯定是在垃圾邮件内。
邮件主题: get bridges
邮件内容: get transport obfs4
3:最后是Telegram订阅,订阅地址:
上面各种渠道获取后,相信你已找到大量的网桥了。当然,这些网桥在天朝不是个个都能用的,下面就来测试节点的可用性。
测试入口节点可用性
Bridge obfs4 212.83.188.151:9822 0F2A94473B79300F9AF0D52C756F64B9D93D5C7B cert=U09xY9yyqQbtHBiW7fTJgnty7L3s9S5GztGJcMTciVYQK0cRiPUYdaIbEfpZUptbYx2CeQ iat-mode=0
上面是一个完整的obfs4网桥地址,Windows打开CMD窗口,ping一下前面的数字IP
ping 212.83.188.151
留下能ping通的,建议延时500ms以内,丢包不超过25%,不通的直接就可以扔掉了。ping通的网桥,俺们可以到下面页面测试一下速率。
https://metrics.torproject.org/rs.html
输入IP后面的40位ID进行测试,以上面网桥例,也就是:
0F2A94473B79300F9AF0D52C756F64B9D93D5C7B
建议留下带宽512 KiB/s及以上的网桥,当然带宽是越大越好,取决于你手上有多少网桥了。好了,下面讲讲这些网桥怎么用。
torrc文件详解
torrc文件也就是tor的配置文件,上面找好的网桥,添加到torrc里就可以使用了。下面详细讲讲torrc怎么配置,当然具体用法你得结合上一篇博文使用:
1 | #下面是跨机共享代理,去掉前面#号即可开启 |
torrc配置文件尽量简洁,可用网桥不要填太多,建议10个左右,太多的话不利于排错,而且会拖慢整体速度。
指定出口节点
上面影响tor速度的是入口节点,也就是俺们找的网桥,另一个是出口节点,中间节点不可控所以不做考虑。简单点讲也就是控制好入口和出口的带宽,也就相应能提升速度。
入口刚才已经讲过了,那么讲讲出口节点,出口节点可以在YouTube上观察各个地区的速率,然后根据快慢设置出口国家,俺这边测试欧洲国家节点比较友好。具体设置出口国家方法看上面torrc文件注释。附上:国家地区代码
另外还有一种方法,会影响tor的匿名性,可相应稳定tor的速度。就是指定出口IP,怎么指定出口IP呢?下面给出方法:
首先,打开Tor官方所有实时出口节点列表:
https://check.torproject.org/exit-addresses
然后,复制出口IP的40位identity key到测速页面测试,选择带宽大于20MiB/s并且支持80和443端口的节点。
最后,在torrc文件里配置如下,即可指定出口节点。注:这样配置虽然能稳定tor的速度,但会影响tor的匿名性,本人是不建议采用的,大家酌情配置!
1 | #建议填3,5个大带宽、支持80和443端口的IP,然后IP不要填错了,填写测速页面Exit Addresses下面的IP |
另,本人建议:注重安全的用户尽量不要折腾出口节点,包括指定出口国家,保持默认就好。因为更改节点会导致指纹增加,详情见下文。
浏览器加固
首先是打上Privacy Badger和HTTPS Everywhere插件,来自大名鼎鼎的 EFF 也就是电子前哨基金会。
1:Privacy Badger中文名隐私獾,主要是限制各类商业trackers,此插件还能关闭WebRTC,插件安装后,点击设置标志然后勾选“阻止 WebRTC 泄露本地 IP 地址”即可。插件下载页面:
2:使用HTTPS Everywhere插件强制https连接,tor上可以防止蜜罐窥探到访问内容:
https://www.eff.org/https-everywhere
3:Neat URL此插件能清除URL内的parameters,防止类似Google Analytics的分析流量,项目地址:
https://github.com/Smile4ever/Neat-URL
4:还有一个很野蛮的加固浏览器方法,此方法会严重影响浏览器易用性,严重警告,大家酌情添加,下面是项目地址:
https://github.com/pyllyukko/user.js
简单点讲就是下载user.js文件放入火狐 [firefox directory]\Data\profile\
文件夹里,重启即可。
浏览器加固就先讲这么多,其它还有阻止部分Javascript APIs生成指纹乃至直接禁用JS脚本,删除不安全的根证书,启用DNS Over HTTPS等老生常谈的话题就不展开了。
5:最后,推荐一下SwitchyOmega插件,tor的端口是:Socks5 127.0.0.1:9050
下面是SwitchyOmega插件用法:
https://yuan.ga/switchyomega-tutorial/
回答几个问题
下面是回答上一篇博文的几个问题。
1:到底是用前置更安全还是使用网桥安全?
回答这个问题之前,先普及一个安全概念:“使用服务越多,中间环节越长,越会增大攻击面。”前置也不例外,比如前置VPS商,如果是TLS前置的话,那中间环节就更多了比如域名商,DNS解析商等等。一次意外的拖库将导致你的整个互联网身份全部暴露。洋文比较好的可以看看下面这篇文章的详细论述:
https://matt.traudt.xyz/p/mRikAa4h.html
所以对于前置,大家也不要过度解读,以为前置会比裸tor安全,别忘了tor还有个obfs4proxy混淆,这个下一个问题会详细解答。
2:Tor流量特征是不是很明显?
既然讲到流量特征,那么就得先讲讲tor内置的obfs4proxy,下面是obfs4网桥工作路径:
1 | tor client ----> obfs4proxy client ----> censor ----> obfs4proxy server ----> tor bridge |
可以看到,tor客户端发送数据到obfs4proxy,obfs4proxy会对数据包进行拆分或填充模糊其网络指纹,再转发给tor网桥。obfs4proxy主要进行以下工作:
1:obfs4通过填充数据(包括在握手数据包中添加填充数据)来加密tor流量并混淆数据包大小特征。
2:通过IAT模式拆分较大的obfs4数据包,以模糊其网络指纹。
以上,可以知道obfs4proxy就是用来模糊tor的流量特征的。再加上tor的用户基数是不小的,即使有特征,在现有用户基数下也够不上威胁。下面是全球Tor用户使用人数的统计:
https://metrics.torproject.org/userstats-bridge-country.html
3:邪恶国家节点需不需要排除?
关于tor节点排除和出口更改,官方是明确不建议这么做的:
https://2019.www.torproject.org/docs/faq#ChooseEntryExit
更改节点会导致指纹增加:
https://2019.www.torproject.org/docs/faq#ChoosePathCountries
网桥这一块并不能成为tor安全环境的重点环节,因现在的网站基本都是SSL加密,网桥是无日志的,即使是蜜罐也不能拿你怎么办;靠蜜罐抓人相当于守株待兔,收益与成本明显不成正比;再说,人家设置蜜罐节点干嘛不去自由国家,就非得傻愣愣地在你们知道的几个专制国家设置蜜罐?
最后,下面页面有俺用最新源码编译的Linux_amd64,Tor和obfs4proxy,当然Windows版本也有,内置几十个可用网桥。运行后,浏览器设置端口 Socks5 127.0.0.1:9050
即可过墙,下载页面:
https://hostalk.net/cloud/docs/
具体用法见上一篇博文: