tor, onion, server, nginx,

Nginx为Tor浏览器配置Onion服务器

DolorHunter DolorHunter Follow Jun 27, 2021 · 1 min read

Nginx为Tor浏览器配置Onion服务器
Share this

配置适用于 Tor 浏览器的 Onion 服务器,去年其实就已经有了解过,但是因为自觉个人博客适配 Tor 浏览器的意义不大,因此一直没有弄。

Tor是实现匿名通信的自由软件。其名源于“The Onion Router”(洋葱路由器)的英语缩写。用户可透过Tor接达由全球志愿者免费提供,包含6000+个中继的覆盖网络,从而达至隐藏用户真实地址、避免网络监控及流量分析的目的。Tor用户的互联网活动(包括浏览在线网站、帖子以及即时消息等通信形式)相对较难追踪。Tor的设计原意在于保障用户的个人隐私,以及不受监控地进行秘密通信的自由和能力。

-维基百科 - Tor

我理想中 Tor 的使用场景是在不用登录,网页内容公开,机密性高的场景下,才有可能保护隐私泄漏,这个技术才有存在的必要,比如维基解密,搜索引擎,公告板之类。之前听说 Facebook 存在 Tor 网站都只是会心一笑,向用户索要一堆个人资料,并且使用服务到哪都要登录的的牢牢掌控用户数据的软件,率先使用了 Tor 旨在保护用户 IP 简直是最意外的讽刺。

但是前些天看到了 Protonmail 的 Tor 网站,让我对先前的判断有了重新的思考。邮件系统的匿名性是否存在?是否又有存在的必要?

邮件系统的具名程度其实很高,且不谈什么备用邮箱,SMS验证、密保验证,光是收集邮箱内的邮件数据,就能知道你使用了哪些网站/服务,跟同事/朋友/网友的交流,甚至能够获取一些隐私/机密程度很高的邮件,收集邮箱内的邮件数据远比收集浏览记录破坏性大得多。因此我一直觉得,一旦使用邮件系统做高危操作,即使有 Tor 保护了登录地点的真实 IP,其实看起来意义也不太大,因为对 IP 的隐藏与邮件内容的破解比起来无疑是小巫见大巫。

但是我反过来想,这个技术似乎也不是一无是处。Snowden 在联系记者时使用的也是匿名邮箱。因此不妨设想:为了特定安全目的,专门开设一个完全使用 Tor 操作的邮箱,并且持续保留自己的身份信息。这样即使知道邮件的内容,也无法确定用户的身份,这个场景下 Tor 才有意义。其中的任何一环出现失误,都不能打到匿名性的要求。

在确认了邮件系统(或是登录系统)的可行性后,我觉得给个人博客适配 Tor 浏览器似乎也并无非常不合理,并且如果有更多人(除了Facebook)创建了网站,也能壮大 Tor Project。

配置 Onion 洋葱服务器的过程也比较简单,只需要在 VPS 上安装 Tor 配置后启动,再配置一下 Tor 的虚拟服务器(Nginx/Apache/其他) 就大功告成了。如果你之前有配置过网站,那么配置Onion Server 绝对不用 10 分钟。

我的 VPS 上已经有 本网站 的明网网站了,因此配置过程会省去不少关于做网页、配置虚拟服务器等的过程。如果你想建立明网网页,可以参考过程比较详细的 Jekyll搭建网页并架设到服务器;如果你没有建立过明网网站,也不想用Nginx/Apache这些服务,只想建立暗网网站,可参考视频 YouTube - Host Your Own Tor Hidden Service with an Onion Address [Tutorial]

安装配置Tor

安装 Tor 的过程没什么说的,安装后出现配置文件 /etc/tor/torrc

提示:如果没有此文件可以用 whereis torrc 命令找一下配置和模板的位置,再用 cp 复制到此位置即可。

之后需要把两行代码的注释取消:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080

提示:不需要修改内容,包括目录位置与端口信息。

保存之后设置开机启动并启动 Tor。

$ systemctl enable tor
$ tor

此时如果一切正常,则可以新开一个窗口,在 /var/lib/tor/hidden_service/ 下查看下生成的网址与公钥私钥等信息。

查看 onion 网址

$ cat /var/lib/tor/hidden_service/hostname

配置Nginx

我们需要给Tor创建一个新的 Server,这边使用Nginx示范,端口建议使用8080。网页使用 proxy_pass 也行,符合Ngnix规则即可。

server {
  listen 8080;
  root /var/www/html/site;
  index index.html;
}

此时使用 Tor browser 访问 onion 网址已经能访问到网站。本网站暗网地址

Tor与Server的关系

  • 当进行 Tor 服务时,Tor 处于 Server 上层。网页先请求 HiddenServicePort 的 80 端口,再映射到服务器的 127.0.0.1:8080。此时在由 Server 进行服务处理。

  • 当进行非 Tor 服务时,直接访问 Server。因此,虽然访问明网暗网的默认端口都是80,但是却不会发生冲突。

这部分内容是我反复调试 Tor 配置后猜测的,并没有查资料验证。如果不是这样欢迎指正。

参考资料:

Join Newsletter
Get the latest news right in your inbox. We never spam!
DolorHunter
Written by DolorHunter
Developer & Independenet Blogger