前書きは省いて解説に入ります。この記事を読んでいるあなたはLinuxの基本操作を理解しているはずです。
本サイトではUbuntu Linux 24.04 + Nginxを使いダークウェブでサイトを公開する手順を解説します。手順通りに進めると5分ほどでサイトを公開できます。
VPSを用意する
お遊びレベルならば気にしなくて結構ですが、深くネットの闇に潜りたいならば匿名VPSの利用をおすすめします。本記事では【匿名VPS】BitLaunchの使い方を解説で触れているBitLaunchを使います。
VPSサービスによって作業内容が変わることはないので、好きなVPSサービスを利用して頂いて結構です。OSはUbuntuを使っているので、その点だけ注意してください。
基本的なインストール
WordPressなどのインストールはこの時点では考慮しません。NginxとTorを起動してTorブラウザ経由でアクセスできるところまで確認します。
Torをインストールする
TorのインストールはTorプロジェクトで解説されている方法がおすすめです。
https://support.torproject.org/ja/apt/tor-deb-repo/
以下をターミナルに貼り付ければOKです。コマンドはすべてrootユーザーで実行しています。一般的ユーザーで作業する方はsudoコマンドを使ってください。
apt update
apt upgrade -y
apt install apt-transport-https
cat > /etc/apt/sources.list.d/tor.list<<EOF
deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -c | awk '{ print $2}') main
deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -c | awk '{ print $2}') main
EOF
apt install gnupg -y
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
apt update
apt install tor deb.torproject.org-keyring -y
次にTorの設定を修正します。/etc/tor/torrcの以下の箇所のコメントを外します。
#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80
エディタで編集してもよいですし、以下のコマンドを流してもOKです。
cp -v /etc/tor/torrc{,_ORG}
sed -i 's/#HiddenServiceDir \/var\/lib\/tor\/hidden_service\//HiddenServiceDir \/var\/lib\/tor\/hidden_service\//' /etc/tor/torrc
sed -i 's/#HiddenServicePort 80 127.0.0.1:80/HiddenServicePort 80 127.0.0.1:80/' /etc/tor/torrc
設定を修正したらTorを再起動し、有効化しておきます。これでOS起動時にTorが起動します。
systemctl restart tor
systemctl enable tor
Nginxをインストールする
以下のコマンドを実行してNginxをインストールします。
apt update
apt upgrade -y
apt install nginx -y
インストールしたら設定ファイルを作成します。以下をターミナルに貼り付ければ設定ファイルが作成されます。
cat >/etc/nginx/conf.d/darkweb.conf<<EOF
server {
server_name $(cat /var/lib/tor/hidden_service/hostname);
listen 127.0.0.1:80;
root /var/www/darkweb/;
}
EOF
このままNginxを起動するとエラーになるのでNginxの設定ファイルを修正します。具体的に言うと、ダークウェブで使うホスト名が初期設定で定義している長さを超えているため、設定を変えて長いホスト名を受け付けるようにします。
sed -i 's/# server_names_hash_bucket_size 64;/server_names_hash_bucket_size 128;/' /etc/nginx/nginx.conf
さらに、Nginxの待ち受けIPアドレスをlocalhost限定にします。以下のコマンドを流すとインターネット経由でのアクセスはすべて遮断されます。これはダークウェブで公開しているコンテンツを誤ってサーフウェブで公開してしまうことを防ぐための対策です。
sed -i 's/listen 80 default_server;/listen 127.0.0.1:80 default_server;/' /etc/nginx/sites-available/default
sed -i 's/listen \[::\]:80 default_server;/listen \[::1\]:80 default_server;/' /etc/nginx/sites-available/default
設定を変更したらNginxを有効化しておきます。これでOS起動時にNginxが起動します。
systemctl restart nginx
systemctl enable nginx
テスト用にトップページを作成しておきましょう。
mkdir /var/www/darkweb/
echo 'Hello!DarkWEB' > /var/www/darkweb/index.html
Torブラウザでアクセスしてみる
ホスト名はサーバーで確認します。次のコマンドを実行すると、ホスト名を確認できます。
cat /var/lib/tor/hidden_service/hostname
上記のコマンドを実行したときに表示されるホスト名をTorブラウザに入力してみましょう。次のように表示されるはずです。

併せて、グローバルIPアドレスを指定してもアクセスできないことを確認してください。127.0.0.1(IPv6は::1)でNginxが待ち受けるように設定しているため、グローバルIPアドレスを指定してもアクセスに失敗するはずです。
セキュリティ上の注意点
インターネットでは常にスキャンがおこなわれているため、インターネット側からIP直指定でWEBページへアクセスできないようにしています。本記事ではリッスンIPを127.0.0.1に変更しているため、特にフィルタリング設定などをする必要はありません。この点の考慮を忘れる方が多いので注意が必要です。
また、サーバーのパッケージは常に最新の状態を保つように心がけましょう。SSH経由でのログインは常に狙われるので、自動化されたSSHアクセスの試みを防ぐにはSSHのポート番号を変更するだけでも効果があります。
他には、IPアドレスベースでのアクセス許可をおこうとよいでしょう。
コメント