TorのOnion Services(Hidden Services)でダークウェブ上にウェブサイトを作成する

TorのOnion Services(Hidden Services)でダークウェブ上にウェブサイトを作成する

November 29, 2020

自分用作業メモです。

前回の記事「ConoHa VPS の CentOS8 に LAMP 環境を構築する」が終わった状態を本作業の開始時点としています。ただし、前回の記事と直接の繋がりはほとんどなく、関係があるとすれば、OS は今回も CentOS を利用しているといった程度です。

Tor 周辺の用語について整理 #

Tor は、いわゆるダークウェブ関連で利用されている規格およびソフトウェアのことを指します。本来は悪用を意図したものではないのですが、刃物でもなんでも、使い方次第ってことです。

Tor(トーア、英語: The Onion Router)とは、TCP/IP における接続経路の匿名化を実現するための規格、及びそのリファレンス実装であるソフトウェアの名称である。通常、ユーザはローカルに SOCKS プロキシ(オニオンプロキシ)を立て、そのプロキシ経由で通信を行うことになる。Tor という名称はオリジナルのソフトウェア開発プロジェクトの名称である「The Onion Router」の頭文字を取ったものである。

Tor - Wikipedia

で、Tor へアクセスするための標準ブラウザが Tor Browser です。

Tor Browser(トーアブラウザ)は、匿名化ネットワーク Tor を経由してインターネットへアクセスする為のオープンソースのウェブブラウザである。利用者に高度な匿名性を提供し、プライバシー保護などの目的で使われる。Tor Browser は、Tor へアクセスする最も簡単な方法である。

Tor Browser - Wikipedia

ポイントとしては、Tor Browser がなければ Tor にアクセスできないわけではないという点です。Tor の引用の中に記載がありますが、「SOCKS プロキシ(オニオンプロキシ)を立て、そのプロキシ経由で通信を行」えば、Tor にアクセスできるので、そこを行えばブラウザは必ずしも Tor Browser である必要はありませんが、Tor Browser ならプロキシ周りも含めて勝手にやってくれるので楽なため、普通は Tor Browser が利用されるというだけです。(それに加えて、プライバシー情報を出来る限り晒さないように Tor Browser はいろいろやってくれているのだと思います。)

ついでに SOCKS について。

SOCKS は、インターネット・プロトコル・スイートにおいて、Transmission Control Protocol(TCP)および User Datagram Protocol(UDP)による通信を代理するプロキシのプロトコルである。主に TCP のために設計されている。

SOCKS - Wikipedia

なお、SOCKS にはいくつかのバージョンがありますが、今は SOCKS 5 プロトコルが使われています。

最後に Onion Services(Hidden Services)について。

Tor の特徴として、身元を明かさずに各種 TCP のサービス(Web サーバ、メールサーバ、IRC サーバなど)を運用することが可能である。 これは、.onion の識別子を持つ、特殊な疑似アドレスを持たせることにより、特定の IP アドレスと結びつけることなく、Tor を実行させているノード同士が接続することができる。一般の Web サイト等に Tor 経由で接続するのとは異なり、Hidden Service は深層 Web の一角を成すダークネットに含まれ出口ノードは存在しないし、中継ノードが通信の内容を見ることは不可能である。

Tor - Wikipedia

なお、以前は Hidden Services と呼んでいたようですが、今は Onion Services が正式名のようです。

Tor: Onion Service Protocol

Tor makes it possible for users to hide their locations while offering various kinds of services, such as web publishing or an instant messaging server. Using Tor “rendezvous points,” other Tor users can connect to these onion services, formerly known as hidden services, each without knowing the other’s network identity.

Tor: Onion Service Protocol

なお、紹介が最後になってしまいましたが、Tor Project の公式ページは以下です。

Tor Project | Anonymity Online

Tor を利用して.Onion のウェブサイトを公開する #

Tor Project 公式の手順は以下です。

Tor Project | Set up Your Onion Service

まずは Tor をインストールします。今回、OS は CentOS 8 を想定しています。Tor Project 公式ページの CentOS/RHEL におけるセットアップ手順を参考にしましょう。

https://community.torproject.org/relay/setup/guard/centosrhel/

まず、EPEL repository を有効にします。公式は yum と書いていますが、CentOS 8 なので dnf と書きます(別に yum でも構いませんが)。

dnf install -y epel-release

Tor をインストールする。

dnf install tor

Tor の設定ファイル(torrc)開く。

cd /etc/tor
vim torrc

torrc の 69 行目あたりからの下記記載を編集します。

# 編集前
############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

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

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

# 編集後
############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

HiddenServiceDir /var/lib/tor/hidden_service/ # コメントアウトを外す
HiddenServicePort 80 127.0.0.1:8000 # コメントアウトを外し、自分の環境に合わせてポート番号を変更

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

Tor の(OS 起動時)自動起動設定および、起動、そして状態確認します。

systemctl enable tor
systemctl start tor
systemctl status tor

running になっており、かつ Bootstrapped 100% (done): Done が表示されていれば OK です。

ここまでくると、 /var/lib/tor/ の配下に hidden_service ディレクトリが作成されており、その中にある hostname というファイルに自分に割り当てられた.onion ドメインが記載されているので、内容を確認しましょう。

cd /var/lib/tor/hidden_service
cat hostname

上記を実行すると、 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion のようなものが表示されるはず。これがオニオンドメインです。

Tor Browser で上記のオニオンドメインにアクセスし自分のサイトが表示されることを確認する(ポート番号は指定する必要がない(80 番である)ことに留意)。これでダークウェブ上にサイトが公開されました。

手順はこれで以上です。想像よりも簡単に作成できた、というのが正直な感想です。