如何在 Linux 中创建一个暗网/Tor 网站?

Rui*_*iro 40 security debian tor

我最近听说了很多关于创建网站点的信息。我也经常使用Tor 浏览器

tor服务在我家中的 Debian 服务器上运行,并安装了:

sudo apt-get install tor 
Run Code Online (Sandbox Code Playgroud)

我有一个想法Tor网络是如何工作的,还可以使用的torify在一段时间一次,在Linux和MacOS,做一些测试与sshwget通过Tor网络。

我注意到了 /etc/tor/torrc

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80
Run Code Online (Sandbox Code Playgroud)

但是,如何从那里去?.onion网站/名称是如何创建的?
在 Linux 中设置此类服务的基础知识是什么?

Rui*_*iro 50

.onion在 Tor 网络中创建服务就像编辑/etc/tor/torrc和添加一样简单:

HiddenServiceDir /var/lib/tor/www_service/
HiddenServicePort 80 127.0.0.1:80
Run Code Online (Sandbox Code Playgroud)

重新启动tor服务后

sudo service tor restart 
Run Code Online (Sandbox Code Playgroud)

或者

sudo service tor reload
Run Code Online (Sandbox Code Playgroud)

该目录将自动创建,并在新目录中生成两个文件,hostname以及private_key.

hostname文件内部有一个有点随机的名称,即您在.onion网络中的地址。

$sudo cat /var/lib/tor/www_service/hostname
xyew6pdq6qv2i4sx.onion 
Run Code Online (Sandbox Code Playgroud)

这些名称是与实际 Tor 网络协商生成的,这也解释了为什么 Tor 网络中的站点/服务具有如此奇怪的名称。

似乎有脚本可以获取(使用蛮力?)一个稍微不那么随机的名字,我觉得增加的复杂性不值得付出额外的努力。

所以实际上,您现在配置的是,Tor 网络中的所有访问http://xyew6pdq6qv2i4sx.onion/都将转发到127.0.0.1:80您服务器上侦听(localhost:80)的守护进程。

现在我们可以设置一个 web 守护进程来回答那个 IP 地址:端口并且只绑定本地主机,例如它不回答本地网络中的请求,以及“常规”互联网中的任何公共 IP 地址。

例如,使用nginx,将默认服务器配置更改/etc/nginx/sites-enabled/default为:

server {
    listen 127.0.0.1:80 default_server;
    server_name xyew6pdq6qv2i4sx.onion;
    ...
}
Run Code Online (Sandbox Code Playgroud)

安装一些页面,瞧,你有一个暗网站点。

然而,安装服务本身的实际部分并不是最困难的部分。必须注意不要将真机信息泄露到:

  • 服务器的安全设置;
  • 提供服务的守护进程;
  • 防火墙/iptables 规则。

也必须特别注意 DNS 泄漏,无论是通过dnscrypt还是tor.

有关更多信息,请参阅通过 Tor 解析 DNS的答案。

这种设置可以用于设置一些anonymous站点,或者更有趣的是,由于作为反向代理配置到达的属性,可以设置临时服务/从没有防火墙规则或公共 IP 地址的网络下载文件/NAT 可用于在整个 Internet 中设置适当的 www 站点。

显然,关于安全问题还有很多要讨论的内容,但这超出了这个问题的范围。

同一台主机上的多个服务,请看相关问题:如何在同一台主机上设置多个Tor隐藏服务?

有关该主题的介绍,请查看:使用 NGinxOnionshop设置隐藏服务指南:如何设置隐藏服务?

如果在.onion使用 FireFox打开站点时遇到问题,请参阅:使用 Firefox访问暗网/Tor 站点