自分のWEBサイトをダークウェブで公開できないだろうか?そう思っている方もいらっしゃるでしょう。
ダークウェブと聞くだけで難しそうに聞こえますが、そんなことはありません。基本的なLinuxコマンドを知っていれば誰でもダークウェブで自分のWEBサイトを公開することができます。
ダークウェブには日本語のWEBサイトはとんど存在しないので今がチャンスかも知れません。是非チャレンジしてみてください。
タップできる目次 [hide]
サーバーを用意する
当然ですがダークウェブでWEBサイトを公開するにはサーバーが必要です。
とはいえ、一般的なレンタルサーバーは使えません。一般的なレンタルサーバーというのは「共有サーバー」と呼ばれるものです。共有サーバーとは1台のサーバーを複数の利用者が共有して利用するサービスです。
共有サーバーのメリットは高性能なサーバーを使える点、サーバーの管理をすべてレンタルサーバー会社に任せることができる点です。
OSやミドルウェア(ApacheやNginx、PHPなど)に脆弱性などが発見されてアップデートが必要な場合でもレンタルサーバー会社に対応をすべてお任せできます。そのため利用者はWEBサイトのコンテンツ管理に集中できます。
共有サーバーは管理が楽な反面、自分の好きなように利用できないという制限があります。OSをカスタマイズしたりアプリケーションを好きなようにインストールしたり設定できません。ですからTorをインストールしてTorネットワークに接続することは共有サーバーではできません。
ダークウェブでWEBサイトを公開するならばVPSがおすすめ
ダークウェブでWEBサイトを公開するのであれば自宅サーバーかVPSの2択になります。自宅サーバーは完全に自分の思うとおりに扱うことができますが、固定IPアドレスの費用や電気代、手間などを考えると現実的ではありません。
今はVPSを低価格で利用できる時代なので、これを利用しない手はありません。
VPSはVirtual Private Serverの略です。VPSはvSphere HypervisorやKVMのような仮想基盤で管理されており、利用者は仮想サーバーを丸ごと1台借りることができます。
仮想サーバーのメリットはメモリー量やCPUのコア数を自由に変更できる点、価格が安い点、1台丸ごと自分の好きなように利用できる点です。
ただし、VPSはサーバーの管理をすべて自分でおこなう必要がありますからセキュリティの確保などは利用者の責任で対応しなくてはいけません。ですから最低限のLinuxの知識がない方はまずはLinuxの操作方法から覚えましょう。
おすすめのVPSサービス
匿名でVPSをレンタルしたい場合は『匿名でドメインを取得/匿名でサーバーを契約しWEBサイトを運営する方法』でご紹介した『Njalla』や『AbleHost』がおすすめです。
『AbleHost』はBitcoinでの支払いが可能で、C2サーバー(C&Cサーバー)に利用されていることが多いことからもアンダーグラウンドな方々に利用されていることが分かります。
匿名でレンタルできるVPSのデメリットは性能の割に価格が高い点です。
高性能で価格が手頃なVPSを利用するならば日本のVPSサービスがおすすめです。わたしの経験上『ConoHa VPS』と『さくらのVPS』がおすすめですが、どちらかといえば『ConoHa VPS』の方がおすすめです。
というのもConoHa VPSの方がディスク書き込み性能やCPU性能が高いため、同じCPUコア数でもConoHa VPSの方が有利なためです。
価格もConoHa VPSの方がお安いですし、ConoHa VPSは1時間単位でのレンタルもできますから試しに使ってみたいという方は『ConoHa VPS』がおすすめです。『さくらのVPS』は2週間の無料お試し期間があるものの、無料お試し期間中は通信速度に制限(10Mbps)があります。そして本契約をすると2ヶ月間は解約できないので注意が必要です。
ConohaVPSとさくらのVPSについては「【2022年最新版】さくらのVPSとConoHa VPS | プランやサーバースペックを徹底比較 | NETWIZ.JP」あたりが参考になりそうです。
Linuxサーバーを使ってダークウェブにWEBサイトを公開する手順
VPSはあらかじめ契約しておいてください。
OSはLinuxを使います。おすすめのディストリビューションはUbuntuなのでUbuntu Serverを使いますがCentOSなど他にお気に入りのディストリビューションがあればご自身のお好みに合わせてください。
インストールやセットアップはUbuntuを前提にしています。WEBサーバーには高速で大量の処理が得意なNginxを使います。
UbuntuにTorをインストールする
Debian/Ubuntuの公式パッケージに含まれるTorはLTSバージョンを提供しており最新版とは異なる場合があるため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
の内容が以下のようになっていることを確認します。
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行目あたりにあるはずです。
#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を再起動します。
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
です。
torrc はご自身の好みのエディタで編集してください。
以下のように 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を再起動します。
ubuntu@vps:~$ sudo systemctl restart nginx.service
Torブラウザーで接続確認する
それではTorブラウザーを使ってアクセスできるか確認します。
アクセスするURLは http://wccr74yivzhvygiyxijepajr7i25by3uo76zq453wnkqxtuifcevbwyd.onion です。
※テスト用に立ち上げたWEBサイトのため皆さんはアクセスできません
注意点として、この状態ですと通常のWEBブラウザーからもアクセスできます。そのためパケットフィルターで80/tcpを塞いでおく必要があります。VPSサービスを利用していればVPSのサービスとしてパケットフィルター機能が提供されているはずなので、サーバー側でFW設定をする必要はないでしょう。
ダークウェブでのみWEBサイトを公開する場合、内向け(着信)ポートは22/tcpだけ許可しておけば良いでしょう。Torは外部のサーバーの9001/tcpと通信するので外向け通信を許可しておけばTor接続できます。