【ダークウェブ構築】EC2のUbuntuでtor Hidden Service (.onion) サイトを構築する

ダークウェブとして使われる Tor (The onion routing) ですが、一般庶民でもサイトの作成ができます。

今回は AWS EC2 の無料枠で構築してみました。

これは勉強のために実施しています。当たり前のことですが、違法なことはしないで下さい。

なお、ダークウェブ (.onionサイト) の仕組みについては以下をご参照下さい。

関連記事

Tor とは プライバシーを守るための、匿名性の高いネットワークのことです。 例えば Tor では、インターネットに公開されている Web サイトへアクセスする際に、自身の身元を高確率で隠すことができます。 プロキシサーバを経[…]

AWS EC2 環境

  • AMI : Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - 64 bit x86
  • インスタンスタイプ : t2.micro

設定手順

https://2019.www.torproject.org/docs/debian.html.en の通りに実施

tor のインストール

$ sudo su -
# echo 'deb https://deb.torproject.org/torproject.org bionic main' > /etc/apt/sources.list.d/tor.list
# echo 'deb-src https://deb.torproject.org/torproject.org bionic main' >> /etc/apt/sources.list.d/tor.list
# curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
# gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
# apt update
# apt install tor deb.torproject.org-keyring
Do you want to continue? [Y/n] Y

バージョンを確認

# tor --version
Tor version 0.4.2.5.

torrc (tor 設定ファイル) の設定

# cp -p /etc/tor/torrc /etc/tor/torrc.org
# vi /etc/tor/torrc

以下の箇所のコメントアウトを外す

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

↓↓↓↓↓↓↓

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

Tor を再起動

# systemctl restart tor

Tor で利用できるホスト名を確認

# cat /var/lib/tor/hidden_service/hostname
wookvynsh3slps3jl3opvkaluem7q2ilab6apc4fnryme7lyeptbpqyd.onion

Nginx をインストール

# apt install nginx
Do you want to continue? [Y/n] Y

テスト用のコンテンツを作成

# mkdir /var/www/onion/
# echo "onion test!" > /var/www/onion/index.html
# chown -R www-data:www-data /var/www/onion/

server_name の設定追加

server_name については先ほど確認した tor のホスト名に書き換えて下さい。

# vi /etc/nginx/conf.d/onion.conf

server {
    server_name wookvynsh3slps3jl3opvkaluem7q2ilab6apc4fnryme7lyeptbpqyd.onion;
    root /var/www/onion/;
}

Nginx を再起動

# systemctl restart nginx

サイト名が長すぎると以下のエラーが出ます。

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
root@ip-172-31-94-34:~# journalctl -xe
Jan 10 05:07:27 ip-172-31-94-34 nginx[3209]: nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64
Jan 10 05:07:27 ip-172-31-94-34 nginx[3209]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jan 10 05:07:27 ip-172-31-94-34 systemd[1]: nginx.service: Control process exited, code=exited status=1
Jan 10 05:07:27 ip-172-31-94-34 systemd[1]: nginx.service: Failed with result 'exit-code'.
Jan 10 05:07:27 ip-172-31-94-34 systemd[1]: Failed to start A high performance web server and a reverse proxy server.

server_names_hash_bucket_size を 64 から増やせ、と言われています。なので、nginx.conf を開き、

# vi /etc/nginx/nginx.conf

以下の箇所を修正(コメントインと数値変更)

	# server_names_hash_bucket_size 64;

↓↓↓↓↓↓↓

	server_names_hash_bucket_size 128;

それからもう一度再起動コマンドを実行

# systemctl restart nginx

これで完成です。

アクセスしてみる

Windows10 に Tor Browser をインストールし、Browser から .onion のドメインへアクセスすると、、、

無事表示されました!

ちなみに、直接 IP でアクセスを試みてもアクセスできません。これは AWS のセキュリティグループでインバウンドが許可されていないためです。

セキュリティグループで tcp: 80 を開放し、一般のブラウザから直 IP でアクセスすると、(tor のテストページではなく) nginx のデフォルトページが表示されます。

このことから、tor では Hidden_Service から Tor ノードへアクセスしていることが分かります。

EC2 上でパケットキャプチャを取得して見てみると、この Hidden_Service (172.31.92.182) から Tor ノードの 1 IP (46.20.35.116) のみへ https アクセスが発生しています。

torproject.org の公式ドキュメントでは Hidden_Service は常時 IP (Introduction Point) という Tor ノードと接続し、Tor Browser からのアクセス時は RP (Rendezvous Point) という Tor ノード経由になるとの記載がありましたが、もしかしたら実装では IP=RP になっているのかもしれません。

アクセス中の前後 1 分で観測しても、1 時間ほど連続して定常時を観測しても、1 つの Tor ノードにしか繋ぎに行っていませんでした。

※169.254.169.254 は AWS の IAM に関する定期的に発生する通信です。

以上です。

nesukeの推薦図書

NHK番組「クローズアップ現代」で仮想通貨の不正流出ルートを追跡したホワイトハッカーCheena氏のデビュー作。
【想定する読者層】・セキュリティの初学者・ハッカーにあこがれている人・CTFに興味がある人、または参加している人・WindowsとLinuxの混在環境を構築したい人・コンピュータ愛好家・Linux初心者
Windows(ウィンドウズ)、Linux(リナックス)に始まり、現在主流となっているCloud(クラウド)、Phishing(フィッシング)、そして禁断となっている(マルウェア)に至るまで、具体的な最新情報をそれぞれ選りすぐり解説しています。

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG