onionドメインでNext.jsサイトをデプロイ

更新日時: 2025-02-24 18:45

サーバー環境

  • CPU: N100
  • OS: Ubuntu22.04(jammy)
  • メモリ: 6GB

Torをインストール

こいつを参考にまずレポジトリを登録します。今回なら

bash

#/etc/apt/sources.list.d/tor.list deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org jammy main deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org jammy main

で、対応するを代入する。そしたらaptインストールで一通り完了。

Torrcを編集

テキストファイル/ect/tor/torrcを探す。ここで、公開ポート、公開鍵ディレクトリを指定する。

次に鍵の作成に移る。この鍵の生成はホスト名(xxx.onionのxxxの部分)の生成も含んでいる。あと、生成ファイルの所有者権限に気を付ける。とりあえずrootユーザー以外の読み書きを無効化したらいいでしょう。ミスるとあとでtorログで怒られるので怒られてからでもいいと思うけど。

生成はこれを参考に。

詳しいことはわかりませんが、CPUをフルに使って暗号鍵に対応したハッシュ値のホスト名を算出している。それゆえに、生成にはデスクトップなどの良いCPUを持ったやつでやるといい。できたフォルダは <HostName>/ になるので、ディレクトリを移動して/ect/tor/torrcにおいて、

HiddenServiceDir /var/lib/tor/<HostName>/

にする。

Torサービスを起動

起動したら<HostName>.onionで実際にアクセス。なんもなかったら行けるでしょう。

アクセスできなかった場合に

まず tor --verify-config でtorrcの整合性を確認する。

bash

[warn] Directory /var/lib/tor/hidden_service/<HostName>/ cannot be read: Permission denied

と出た場合、鍵ディレクトリの所有者問題が発生しているので、まず、torを起動しているユーザーを確認する。

bash

ps -eo user:20,pid,cmd | grep tor debian-tor 2895222 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0 #一応全ユーザーを確認 cat /etc/passwd #権限付与 sudo chown -R debian-tor:debian-tor /var/lib/tor/ sudo chmod -R 700 /var/lib/tor/

俺の場合はdebian-tor君が管理してくれているそうなので、こいつの所有者権限をchmodで付与。あとは再起動して、指定のドメインにアクセスして確認。

今回は鍵を別のクライアントで作成したので権限設定がめんどくなってんのかも。デフォルトで生成される鍵なら初めから問題なかったのかもしれません。

乾燥

torrcファイル一つで公開サーバーを管理できるのでまあ便利。あとはセキュリティー方面の情報を一切読んでいないので奥は深い。