Nginxを使ってダークウェブで自分のWEBサイトを公開する方法

自分のWEBサイトをダークウェブで公開できないだろうか?そう思っている方もいらっしゃるでしょう。

ダークウェブと聞くだけで難しそうに聞こえますが、そんなことはありません。基本的なLinuxコマンドを知っていれば誰でもダークウェブで自分のWEBサイトを公開することができます。

ダークウェブには日本語のWEBサイトがほとんど存在しないので今がチャンスかも知れません。是非チャレンジしてみてください。

サーバーを用意する

当然ですがダークウェブでWEBサイトを公開するにはサーバーが必要です。

とはいえ、一般的なレンタルサーバーは使えません。一般的なレンタルサーバーというのは「共有サーバー」と呼ばれるものです。共有サーバーとは1台のサーバーを複数の利用者が共有して利用するサービスです。

共有サーバーは運用管理をすべてレンタルサーバー会社に任せることができるというメリットがある反面、自分の好きなようにカスタマイズできないという制限があります。

ダークウェブでWEBサイトを公開するにはTorに接続する必要がありますが、共有サーバーにTorをインストールして動作させるのは難しいでしょう。

ダークウェブでWEBサイトを公開するならばVPSがおすすめ

ダークウェブでWEBサイトを公開するのであれば自宅サーバーかVPSの2択になります。自宅サーバーは完全に自分の思うとおりに扱うことができますが、固定IPアドレスの費用や電気代、手間などを考えると現実的ではありません。

今はVPSを低価格で利用できる時代なので、これを利用しない手はありません。

VPSというのはVirtual Private Serverの略です。VPSはvSphere HypervisorやKVMのような仮想基盤で管理されており、利用者は仮想サーバーを丸ごと1台借りることができます。

仮想サーバーは手軽にサーバーを作成したり削除したりできる上にスペックの変更も容易なので使い勝手が良いというメリットがあります。

VPSはとても自由度が高いのですがサーバーの管理は利用者自ら実施する必要があるため、セキュリティ対策などは必須です。

おすすめのVPSサービス

匿名でVPSをレンタルしたい場合はこちらのサイトで紹介されているNjallaAbleHostがおすすめです。

AbleHostはBitcoinでの支払いが可能で、C2サーバー(C&Cサーバー)に利用されていることが多いことから分かるとおり、アンダーグラウンドな方々にも利用されています。

匿名でレンタルできるVPSのデメリットは性能の割に価格が高い点です。

匿名性が不要であれば、高性能で価格が手頃な日本のVPSサービスがおすすめです。動けば何でも良いのですが、価格が安くて2週間無料のお試し期間が必要ならばさくらのVPS、サーバースペックが必要ならばConoHa VPSがおすすめです。

Linuxサーバーを使ってダークウェブにWEBサイトを公開する手順

VPSはあらかじめ契約しておいてください。

今回はUbuntu Serverを使いますがCentOSなど他にお気に入りのディストリビューションがあればご自身のお好みに合わせてください。

インストールやセットアップはUbuntuを前提にしています。WEBサーバーには高速で大量の処理が得意なNginxを使います。

UbuntuにTorをインストールする

Debian/Ubuntuの公式パッケージに含まれるTorは最新版とは異なる場合があるため、Tor公式サイトのドキュメントに従ってインストールを進めます。

参考: Why and how I can enable Tor Package Repository in Debian? | Tor Project | Support

パッケージを最新化しておく

ubuntu@vps:~$ sudo apt update && sudo apt upgrade -y

apt-transport-https をインストールする

ubuntu@vps:~$ sudo apt install apt-transport-https

/etc/apt/sources.list.d/ に tor.list を作成する

ubuntu@vps:~$sudo echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -s -c) main" > /tmp/tor.list
ubuntu@vps:~$sudo echo "deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -s -c) main" > /tmp/tor.list

cat /tmp/tor.list コマンドで/tmp/tor.listの内容が以下のようになっていることを確認します。

/tmp/tor.list
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main
deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main

/etc/apt/sources.list.d/tor.list にコピーします。

ubuntu@vps:~$ sudo cp /tmp/tor.list /etc/apt/sources.list.d/tor.list

PGPキーを取り込む

ubuntu@vps:~$ wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

Torをインストールする

Torをインストールする前にアップデートします。

ubuntu@vps:~$ sudo apt update

Torをインストールします。

ubuntu@vps:~$ sudo apt install tor deb.torproject.org-keyring -y

Torの設定と起動

設定ファイルは/etc/tor/torrcです。まずは設定ファイルをバックアップしておきます。

ubuntu@vps:~$ sudo cp -v /etc/tor/torrc{,_backup}
'/etc/tor/torrc' -> '/etc/tor/torrc_backup'
ubuntu@vps:~$

torrc はご自身の好みのエディタで編集してください。

以下の2行を探してコメントアウトを外します(先頭の # を削除する)。71行目と72行目あたりにあるはずです。

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

編集して保存した後、以下のような状態になっていることを確認してください。

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

Torを起動します。わたしの環境では既に起動していました。まずは systemctl status tor.service コマンドでステータスを確認します。

ubuntu@vps:~$ systemctl status tor.service
● tor.service - Anonymizing overlay network for TCP (multi-instance-master) Loaded: loaded (/lib/systemd/system/tor.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2022-03-07 10:36:42 JST; 20min ago Main PID: 62829 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 468) Memory: 0B CGroup: /system.slice/tor.service
Mar 07 10:36:42 vps systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Mar 07 10:36:42 vps systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).
ubuntu@vps:~$

起動していますね。それではTorを再起動します。

ubuntu@vps:~$ sudo systemctl restart tor.service
ubuntu@vps:~$

設定を変更した後にTorを起動したり再起動したりするとTorネットワークからアクセスできるホスト名が設定されます。ホスト名は /var/lib/tor/hidden_service/hostname に記載されています。

わたしの環境ではホスト名が wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion であることが分かります。

ubuntu@vps:~$ sudo cat /var/lib/tor/hidden_service/hostname
wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion
ubuntu@vps:~$

Torの設定と起動はここまでです。最後にOS起動時にTorが起動するよう設定しておきます。

ubuntu@vps:~$ sudo systemctl enable tor.service
Synchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable tor
ubuntu@vps:~$

UbuntuにNginxをインストールする

ubuntu@vps:~$ sudo apt install nginx -y

インストールが完了したらOS起動時にNginxが起動するよう設定しておきます。

ubuntu@vps:~$ sudo systemctl enable nginx.service
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx
ubuntu@vps:~$

Nginxのインストールはここまでです。

Nginxの設定

ダークウェブではホスト名が長くなるためNginxの設定変更が必要です。設定ファイルは /etc/nginx/nginx.conf です。

nginx.conf はご自身の好みのエディタで編集してください。

以下のように server_names_hash_bucket_size という項目がコメントアウトされているので、この箇所を変更します。

/etc/nginx/nginx.conf
# server_names_hash_bucket_size 64;

上記の箇所を次のように書き換えてください。先頭の「#」を削除して「64」を「128」に書き換えています。

/etc/nginx/nginx.conf
server_names_hash_bucket_size 128;

次にサーバーホスト名とドキュメントルート(公開するディレクトリ)を設定します。

設定ファイルは /etc/nginx/conf.d/ 配下に配置します。設定ファイル名は何でも構いません。今回は「tor.conf」としておきます。

「server_name」は/var/lib/tor/hidden_service/hostname に記載されているものを指定します。「root」は公開したいディレクトリを指定してください。Nginxのデフォルト設定は「/var/www/html」なので、デフォルトのディレクトリを指定しています。

/etc/nginx/conf.d/tor.conf
server { server_name wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion; root /var/www/html/;
}

設定が完了したらNginxを再起動します。

ubuntu@vps:~$ sudo systemctl restart nginx.service

Torブラウザーで接続確認する

それではTorブラウザーを使ってアクセスできるか確認します。

アクセスするURLは http://wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion です。
※テスト用に一時的に立ち上げたWEBサイトのため現在は閲覧できません

注意点として、この状態ですとIPアドレスを指定すれば通常のWEBブラウザーからもアクセスできます。そのためパケットフィルターで80/tcpを塞いでおく必要があります。VPSサービスを利用していればVPSのサービスとしてパケットフィルター機能が提供されているはずなので、サーバー側でFW設定をする必要はないでしょう。

ダークウェブでのみWEBサイトを公開する場合、内向け(着信)ポートはリモート接続用のポートだけ許可しておけば良いでしょう。Torは外部のサーバーの9001/tcpと通信するので外向け通信を許可しておけばTor接続できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)