この記事では、誰でも簡単にダークウェブでWEBサイトを公開する方法を解説します。基本的なLinuxの使い方などの知識がある事を前提としています。
インストールスクリプトも用意しているので、Ubuntu Linuxであれば1~3分で自動的にインストールが完了します。細かい手順は要らないから手早く構築したいという方はご活用ください。
タップできる目次
サーバーを用意する
ダークウェブでWEBサイトを公開するにあたりサーバーを用意しなければなりません。サーバーにはTorやNginxなどをインストールするので管理者権限の使える環境が必要です。
ダークウェブでWEBサイトを公開するならばVPSがおすすめ
ダークウェブでWEBサイトを公開するのであれば自宅サーバーかVPSの2択になります。自宅サーバーは完全に自分の思うとおりに扱うことができますが、固定IPアドレスの費用や電気代、騒音、排熱、運用の手間などを考えると現実的ではありません。
しかし今はVPSを低価格で利用できる時代なので、これを利用しない手はありません。
VPSというのはVirtual Private Serverの略です。VPSはvSphere HypervisorやKVMのような仮想基盤で管理されており、利用者は仮想サーバーを丸ごと1台借りることができます。
仮想サーバーは手軽にサーバーを作成したり削除したりできる上にスペックの変更も容易なので使い勝手が良いというメリットがあります。
VPSはとても自由度が高いのですがサーバーの管理は利用者自ら実施する必要があるため、セキュリティ対策などは必須です。
おすすめのVPSサービス
サーバーはWindowsでもLinuxでも構わないのですが、Linuxの方が安価に構築できるので今回はLinuxを使います。また、LinuxにはRedHat系とDebian系がありますが、この記事ではDebian系のUbuntu Linuxを使います。
VPSは価格重視ならばConoHa VPSかWebAREN Indigoが低価格で利用できるのでおすすめです。価格などでVPSを比較した記事も公開しているので、おすすめのVPSを知りたい方は参考にしてみてください。
わたしはメモリー1GBのVPSを1時間あたり1.7円で利用できるConoHa VPSのプランを選択しました。
Linuxサーバーを使ってダークウェブにWEBサイトを公開する手順
VPSはあらかじめ契約しておいてください。
今回はUbuntu Serverを使いますがDebian LinuxやCentOS、Alma Linuxなど他にお気に入りのディストリビューションがあればご自身のお好みに合わせてください。
インストールやセットアップはDebian系のUbuntuを前提にしています。WEBサーバーには高速で大量の処理が得意なNginxを使います。
インストールするにあたり、スクリプトを用意したので手動でインストールするのが面倒な方は次の「自動構築」のタブを開いて手順をご覧ください。サーバーの性能によりますがスクリプトを実行してから1~3分で構築が完了します。スクリプトを使わない場合は「手動構築」タブを開いて手順をご覧ください。
スクリプトを使って自動インストールする
自動インストールは本サイトからスクリプトをダウンロードして実行する形式です。動作はConoHa VPSのUbuntu Server 22.04(amd64)でテストしています。
スクリプトは以下のURLに配置しています。※このスクリプトはダウンロードする必要ありません
https://infrapod.net/scripts/ubuntu-tor-nginx-install.sh
Ubuntu Linuxにログインしたらsudo su -
コマンドでrootになっておきます。
$ sudo su –
#
rootになったら次のコマンドを実行します。
/bin/bash -c “$(curl -fsSL https://infrapod.net/scripts/ubuntu-tor-nginx-install.sh)”
これで自動的にインストールされるはずです。無事にインストールが完了すると、最後にあなたのダークウェブサイトのURLが表示されます。
…
URL: http://wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion
root@ubuntu:~#
スクリプトがうまく動かない、インストールに失敗する場合はコメント欄でコメントを頂けると助かります。
UbuntuにTorをインストールする
Debian/Ubuntuの公式パッケージに含まれるTorは最新版とは異なる場合があるため、Tor公式サイトのドキュメントに従ってインストールを進めます。
パッケージを最新化しておく
sudo apt update && sudo apt -y upgrade
apt-transport-https をインストールする
sudo apt -y install apt-transport-https
wgetをインストールする
sudo apt -y install wget
/etc/apt/sources.list.d/ に tor.list を作成する
sudo echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org $(lsb_release -s -c) main" >> /etc/apt/tor.list
sudo echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org tor-nightly-main-$(lsb_release -s -c) main" >> /etc/apt/tor.list
cat /etc/apt/tor.list
コマンドで/etc/apt/tor.list
の内容が以下のようになっていることを確認します。
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org DISTRIBUTION main
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org tor-nightly-main-DISTRIBUTION main
DISTRIBUTIONの箇所はご自身の環境によって変わります。この箇所は自動的に置き換えているので、念のため確認してみてください。
PGPキーを取り込む
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
Torをインストールする
Torをインストールする前にアップデートします。
sudo apt update
Torをインストールします。
sudo apt install tor deb.torproject.org-keyring
Torの設定と起動
設定ファイルは/etc/tor/torrc
です。まずは設定ファイルをバックアップしておきます。
sudo cp -v /etc/tor/torrc{,_backup}
torrc はご自身の好みのエディタで編集してください。
以下の2行を探してコメントアウトを外します(先頭の # を削除する)。71行目と72行目あたりにあるはずです。
#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 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を再起動します。
sudo systemctl restart tor.service
設定を変更した後に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が起動するよう設定しておきます。
sudo systemctl enable tor.service
UbuntuにNginxをインストールする
sudo apt -y install nginx
インストールが完了したらOS起動時にNginxが起動するよう設定しておきます。
sudo systemctl enable nginx.service
Nginxのインストールはここまでです。
Nginxの設定
ダークウェブではホスト名が長くなるためNginxの設定変更が必要です。設定ファイルは /etc/nginx/nginx.conf
です。
nginx.conf はご自身の好みのエディタで編集してください。
以下のように server_names_hash_bucket_size
という項目がコメントアウトされているので、この箇所を変更します。
# server_names_hash_bucket_size 64;
上記の箇所を次のように書き換えてください。先頭の「#」を削除して「64」を「128」に書き換えています。
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
」なので、デフォルトのディレクトリを指定しています。
server {
server_name wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion
;
root /var/www/html/;
}
設定が完了したらNginxを再起動します。
sudo systemctl restart nginx.service
Torブラウザーで接続確認する
それではTorブラウザーを使ってアクセスできるか確認します。
アクセスするURLは http://wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion です。
Torブラウザでアクセスできたら、IPでもアクセスしてみて(http://10.1.2.3/ のように)同じページが表示されない事を確認してください。もしも表示される場合は、Linuxのファイアウォール機能やVPSのパケットフィルタ機能を使って外部からサーバー向けの80/tcpをフィルタする必要があります。
うまく表示できない場合はLinuxのファイアウォールやVPSのパケットフィルタ機能でTor通信を遮断していないか確認してください。
まとめ
手順通り進めれば誰でも簡単に構築ができるので興味のある方は一度試してみてください。
なお、AWS(Amazon Web Service)で構築するとサーバー(EC2)の料金に加えて外向けの通信量に応じて課金されてしまうので注意してください。VPSであれば手頃な値段で気軽に始められますから、わたしのように1時間1.7円から使えるConoHa VPSを使う事をおすすめします。