Linux部署Tor网站

无意中接触到了Tor,它的域名后缀是.onion,与我们平常接触的域名还是有区别的,onion后缀的域名不受ICANN管,因为这个后缀的域名不能注册。

它的原理是通过公私钥计算得出的,所以你得到或者看到的onion域名都是一串看似没有任何规律可寻的字符串,比如fsa45687w8a9f456s4a56d4564as65f7489awse7f98qfdqdaf456add.onion 同时这个域名也是不依赖DNS来解析的,在一定程度上可以达到匿名的作用。

在日常生活中我们所看到的域名,比如www.baidu.comwww.jd.comwww.daishenghui.club 这种域名,可以通过ping的方式得到对应的服务器IP地址,而在Tor中就不一样,你无法得到它的IP,哪怕你用ping也没用,因为它本身就不依赖DNS,所以何来IP一说?

你必须使用特定的浏览器才能访问onion域名,当然也可以不使用Tor浏览器直接访问,但是你的安全性和匿名性是没有任何保障的,同时操作也比较麻烦,这里就不赘述如何不使用tor直接访问onion域名了,下个文章再单独介绍。

Tor项目地址 https://www.torproject.org/

一、安装步骤

1、Nginx安装

1
2
3
4
5
6
如果你是CentOS的话,可以使用yum或dnf的方式来安装
yum -y install nginx

dnf -y install nginx
如果你是Ubuntu、Debian之类的,就是用apt来安装
apt install nginx

2、安装Tor服务端

2.1、CentOS安装方法

1
2
3
4
5
6
7
8
9
10
11
12
vi /etc/yum.repos.d/tor.repo

[tor]
name=Tor for Centos $releasever - $basearch
baseurl=https://rpm.torproject.org/centos/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/centos/public_gpg.key
cost=100

yum makecache
yum -y install tor

1
2
dnf makecache
dnf -y install tor

如果你是Fedora系统的话,那你的repo就是这样

1
2
3
4
5
6
7
[tor]
name=Tor for Fedora $releasever - $basearch
baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/fedora/public_gpg.key
cost=100

Ubuntu和debian就比较复杂了,官方不推荐用社区源来安装,因为社区源的版本没办法做到实时更新,所以你有可能安装到一个过期版本的tor服务端,从而导致你的安全性大打折扣
具体各个版本的安装方式可以参考这个

https://community.torproject.org/onion-services/setup/install/

3、修改Tor服务端的文件

安装好Tor服务端后,我们需要对它进行配置,配置文件在/etc/tor/下的torrc文件,你只需要找到

1
2
HiddenServiceDir /var/lib/tor/my_website/
HiddenServicePort 80 127.0.0.1:80

这两行,然后给它取消注释就行,但是这里要说一下,按照官方的说法是,HiddenServiceDir最好是指定到一个新的路径而不是使用默认路径,但具体根据你的实际情况来决定是否修改。这里我选择放在/www/tor下,如果你没有这个目录,那就手动创建个

1
2
3
mkdir -p /www/tor/ceshi
mkdir -p /www/ceshi/
chown -R debian-tor:debian-tor /www/tor

为了避免将Tor服务泄漏到本地网络,最好是通过UNIX sockets而不是TCP socket运行TOr服务。所以我们需要将HiddenServicePort改成unix的方式,而不是使用127.0.0.1。

4、配置Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mkdir -p /etc/nginx/logs
vi /etc/nginx/conf.d/tor.conf

server {
listen unix:/www/tor/ceshi/ceshi.sock;
server_name _;
access_log /etc/nginx/logs/ceshionionaccess.log;
error_log /etc/nginx/logs/ceshionionerror.log;

location / {
root /www/ceshi;
index index.html index.htm;
}
}

如果你是CentOS安装的Nginx,那你还需要到 /etc/nginx/nginx.conf 中最底部加一句 include /etc/nginx/conf.d/ceshi.conf; 如果是Ubuntu的话就不用,因为默认就有了

然后重启Nginx

1
systemctl restart nginx

接着进入到 /www/tor/ceshi/ 目录下对 ceshi.sock 变更下权限组, chown debian-tor:debian-tor ceshi.sock ,这一步最他妈坑,搜了一堆文献,基本都只说怎么部署配置,但是你真正做出来的时候就会发现访问不了,我就遇见了,刚开始还以为是我nginx或者tor配置有问题,看了半天没看出个所以然来,最后还是通过看Nginx的日志才发现是nginx创建的sock权限组的问题,因为tor的权限组是debian-tor,它没有权限对root组进行操作,所以日志里面会报权限拒绝,只需要对sock重新赋个用户组就行了,用户组一定要是debian-tor,否则会访问不到。

5、修改tor@default.service服务

1
2
3
4
vi /usr/lib/systemd/system/tor@default.service
在其他ReadWriteDirectories下加一条

ReadWriteDirectories=-/www/tor

6、修改AppArmor

1
vi /etc/apparmor.d/system_tor

然后新增

1
2
3
owner /www/tor/** rwk,
owner /www/tor/ r,
/www/tor/** r,

最终是这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# vim:syntax=apparmor
#include <tunables/global>

profile system_tor flags=(attach_disconnected) {
#include <abstractions/tor>

owner /var/lib/tor/** rwk,
owner /www/tor/** rwk,
owner /www/tor/ r,
owner /var/lib/tor/ r,
owner /var/log/tor/* w,

# During startup, tor (as root) tries to open various things such as
# directories via check_private_dir(). Let it.
/var/lib/tor/** r,
/www/tor/** r,
/{,var/}run/tor/ r,
/{,var/}run/tor/control w,
/{,var/}run/tor/socks w,
/{,var/}run/tor/tor.pid w,
/{,var/}run/tor/control.authcookie w,
/{,var/}run/tor/control.authcookie.tmp rw,
/{,var/}run/systemd/notify w,

# Site-specific additions and overrides. See local/README for details.
#include <local/system_tor>
}

接着

1
apparmor_parser -r /etc/apparmor.d/system_tor

最后重启下 Tor 服务就可以了

1
2
systemctl daemon-reload
systemctl restart tor

1

总结

先安装Nginx和Tor,也不一定要Nginx,Caddy或者Apache都行,然后配置下Nginx,将原来liste的端口改成sock,然后对这个sock修改权限组,Tor的话指定下目录和刚才nginx生成的sock,然后重启就行了,比较简单

微信扫一扫关注我吧

戴戴的Linux 戴戴的Linux

文章目录
  1. 1. 一、安装步骤
    1. 1.1. 1、Nginx安装
    2. 1.2. 2、安装Tor服务端
      1. 1.2.1. 2.1、CentOS安装方法
    3. 1.3. 3、修改Tor服务端的文件
    4. 1.4. 4、配置Nginx
    5. 1.5. 5、修改tor@default.service服务
    6. 1.6. 6、修改AppArmor
  2. 2. 总结
  3. 3. 微信扫一扫关注我吧


本站总访问量 本文总阅读量