2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Torネットワーク上にonionドメインのWebサーバーを建てる

Posted at

環境

前回の記事で構築したWhonix Gatewayを使う。

  • Whonix Version: 17.0.4.5
  • Apache: 2.4.57

Apacheをインストール

公式サイトにはApacheNginxの解説があるので今回はApacheを使用する。

sudo apt install apache2

Webページの準備

ブラウザで表示するコンテンツを作成する。

sudo vi /var/www/html/index.html 

コンテンツが準備できたらApacheの動作確認をする。

curlで動作確認.png

Torrcの設定

torrcファイルに必要な設定を追加する。
Whonixの場合、torrcファイルはシンボリックリンクになっており、リンク先は/etc/tor/torrc.anondistファイルになっている。

torrcのシンボリックリンク確認.png

/etc/tor/torrc.anondistファイルの中身を確認すると、このファイルを編集せず、代わりに /usr/local/etc/torrc.d/50_user.conf を編集してと書かれているので/usr/local/etc/torrc.d/50_user.confファイルを編集する。

torrcのリンク先ファイル中身確認.png

sudo vi /usr/local/etc/torrc.d/50_user.conf

HiddenServiceDir /var/lib/tor/hidden_service/HiddenServicePort 80 127.0.0.1:80の2項目を追加

/usr/local/etc/torrc.d/50_user.conf
# Tor user specific configuration file
#
# Add user modifications below this line:
############################################

ExcludeNodes {jp},{us},{gb},{ca},{au},{nz},{dk},{fr},{nl},{no},{cn},{ru},{de},{be},{it},{es},{il},{sg},{kr},{se},127.0.0.1,{??}
ExcludeExitNodes {jp},{us},{gb},{ca},{au},{nz},{dk},{fr},{nl},{no},{de},{be},{it},{es},{il},{sg},{kr},{se},{bg},{cz},{fi},{hu},{ie},{lv},{??}},{cn},{ru}
NumEntryGuards 5
StrictNodes 1

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

ExcludeNodesExcludeExitNodes項目は前回の記事で使用した項目なので無くてもOK。

HiddenServiceDirはOnion サービスの情報と暗号キーを含むディレクトリを指定します。Torを実行するユーザーが読み取り/書き込み可能なディレクトリを指定します。

HiddenServicePortはリダイレクトするポートとアドレスの設定を記述する。今回の例では80番ポートにアクセスしたトラフィックは127.0.0.1:80にリダイレクトされる。

設定が完了したら、反映させるためにtorサービスを再起動する。

sudo systemctl restart tor

Onionサービスの動作確認

設定が正常にできていれば、HiddenServiceDirで指定したディレクトリ配下に必要なファイルが生成されている。

% sudo ls -l /var/lib/tor/hidden_service      
total 16
drwx--S--- 2 debian-tor debian-tor 4096 Nov 25 08:11 authorized_clients
-rw------- 1 debian-tor debian-tor   63 Nov 25 08:11 hostname
-rw------- 1 debian-tor debian-tor   64 Nov 25 08:11 hs_ed25519_public_key
-rw------- 1 debian-tor debian-tor   96 Nov 25 08:11 hs_ed25519_secret_key

hostnameファイルにonionドメインのアドレスが記載されているので確認する。

% sudo cat /var/lib/tor/hidden_service/hostname
ypb7sakgr6sxmtiaj6537evb255k6jaccf6mufuewl6k2ppmmgswg7ad.onion

キーファイルは外部に漏らさないように気を付けよう。

他のファイルは Onion サービス キーであるため、これらを秘密にしておくことが不可欠です。 キーが漏洩すると、他の人が Onion サービスになりすまし、そのサービスが侵害され、役に立たず、アクセスするのは危険であるとみなしてしまう可能性があります。

オニオンサービスのセットアップ

最後に、hostnameに記載されているアドレスにtorブラウザからアクセスする。

Webサイト実行確認.png

おまけ

複数サイトを構築する場合

複数サイトを構築する時や、転送するポートを追加する場合は、HiddenServiceDirHiddenServicePortの項目を追加する。

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

HiddenServiceDir /var/lib/tor/other_onion_service/
HiddenServicePort 6667 127.0.0.1:6667
HiddenServicePort 22 127.0.0.1:22

Apacheの設定

ApacheVirtualHostを使用する場合は、下記のように記述する。

<VirtualHost *:80>
   ServerName <your-onion-address.onion>
   DocumentRoot /path/to/htdocs
   ErrorLog ${APACHE_LOG_DIR}/my-website.log
 </VirtualHost>

Nginxの設定

Nginxを使用する場合は、下記のように記述する。

server {
    listen unix:/var/run/tor-my-website.sock;
    server_name <your-onion-address>.onion;
    access_log /var/log/nginx/my-website.log;
    index index.html;
    root /path/to/htdocs;
}

セキュリティに関する設定

クライアント認証の利用が可能。

オニオンサービス運用のベストプラクティスについてはこちらを確認してください。

サーバー IP アドレスなどの匿名性を損なう可能性のある情報がオニオンサイトから漏洩していないかどうかを確認するツールもあります。

参考サイト

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?