Mastodon
  • Mastodonの使い方
    • Signing up for an account
    • Setting up your profile
    • Posting toots
    • Using the network features
    • Dealing with unwanted content
    • Promoting yourself and others
    • Set your preferences
    • その他の設定
    • Using Mastodon externally
    • Moving or leaving accounts
  • Mastodonの構築
    • マシンの準備
    • ソースからインストール
    • 環境設定
    • オプションのインストール
      • 全文検索
      • 秘匿サービス
      • シングルサインオン
    • セットアップを完了する
    • 開発者向けコマンドラインを利用する
    • 新しいバージョンへアップグレード
    • サーバのバックアップ
    • 新しいマシンへの移行
    • サーバーのスケールアップ
    • モデレーション
    • トラブルシューティング
  • アプリケーションの開発
    • Getting started with the API
    • Playing with public data
    • Obtaining client app access
    • ログイン
    • ガイドラインとベストプラクティス
    • ライブラリ等
  • コントリビューション
    • 技術的情報
    • 開発環境のセットアップ
    • ソースコードの構造
    • ルーティング
  • スペック
    • ActivityPub
    • WebFinger
    • Security
    • Microformats
    • OAuth
  • REST API
    • OAuthスコープ
  • API一覧
    • apps
      • oauth
    • accounts
      • bookmarks
      • favourites
      • mutes
      • blocks
      • domain_blocks
      • filters
      • reports
      • follow_requests
      • endorsements
      • featured_tags
      • preferences
      • suggestions
    • statuses
      • media
      • polls
      • scheduled_statuses
      • streaming
    • timelines
      • conversations
      • lists
      • markers
    • notifications
      • push
    • search
    • instance
      • trends
      • directory
      • custom_emojis
    • admin
    • proofs
    • oembed
  • APIエンティティ
    • Account
    • Activity
    • Admin::Account
    • Admin::Report
    • Application
    • Attachment
    • Card
    • Context
    • Conversation
    • Emoji
    • Error
    • FeaturedTag
    • Field
    • Filter
    • History
    • IdentityProof
    • Instance
    • List
    • Marker
    • Mention
    • Notification
    • Poll
    • Preferences
    • PushSubscription
    • Relationship
    • Report
    • Results
    • ScheduledStatus
    • Source
    • Status
    • Tag
    • Token

秘匿サービス

TORを使用してMastodonを提供する。

Mastodonはonion等のTorを経由して提供できます。これにより、Torネットワークに接続している間場合のみ使用できる* .onionアドレスが得られます。

Torのインストール

最初にTorのDebianアーカイブをaptに追加する必要があります。

deb https://deb.torproject.org/torproject.org stretch main
deb-src https://deb.torproject.org/torproject.org stretch main

gpgキーを追加します。

curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import

依存パッケージをインストールします。

apt install tor deb.torproject.org-keyring

Torのセットアップ

/etc/tor/torrcを編集し以下のように設定します。

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:80

torを再起動します。

sudo service tor restart

Torのホスト名は /var/lib/tor/hidden_service/hostnameで確認できます。

Mastodon設定の移行

NginxにMastodonの設定を2回書く必要があります。DRYな状態に保つには、Mastodon設定を参照可能な独自のファイルに移動する必要があります。

/etc/nginx/snippets/mastodon.confにファイルを作成します。listen, server_name, includeとSSLオプションを除いた設定パラメータのすべてを入れます。新しいファイルは次のようになります。

add_header Referrer-Policy "same-origin";

keepalive_timeout    70;
sendfile             on;
client_max_body_size 80m;

root /home/mastodon/live/public;
…
error_page 500 501 502 503 504 /500.html;

access_log /var/log/nginx/mastodon_access.log;
error_log /var/log/nginx/mastodon_error.log warn;

古いMastodon設定の代わりに、この新しい設定ファイルにincludeディレクティブを追加します。

あなたのNginx設定はこのようになるはずです。

server {
  listen 80;
  server_name mastodon.myhosting.com;
  return 301 https://$server_name$request_uri;
}

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
  listen 443 ssl http2;
  list [::]:443 ssl http2;
  server_name mastodon.myhosting.com;
  include /etc/nginx/snippets/mastodon.conf;

  ssl_certificate /etc/letsencrypt/live/mastodon.myhosting.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/mastodon.myhosting.com/privkey.pem;
}

httpでTorを提供する

Tor版のMastodonをhttps経由で提供するのは魅力的かもしれませんが、ほとんどの人にとっては良い考えではありません。https証明書が付加価値を持たない理由については、Torプロジェクトのこのブログ投稿を参照してください。*.onionドメインのSSL証明書を取得できないため、Mastodonインスタンスを使用しようとすると、証明書エラーに悩まされます。Tor開発者は最近、httpsを介してTorサービスを提供することがほとんどの場合に有益でない理由を説明しました(参照)。 解決策は、Torの場合httpを介してMastodonインスタンスを提供することです。これは、追加の構成を既存のNginx構成の前に追記することで可能です。

server {
  listen 80;
  server_name mastodon.qKnFwnNH2oH4QhQ7CoRf7HYj8wCwpDwsa8ohJmcPG9JodMZvVA6psKq7qKnFwnNH2oH4QhQ7CoRf7HYj8wCwpDwsa8ohJmcPG9JodMZvVA6psKq7.onion;
  include /etc/nginx/snippets/mastodon.conf;
}

server {
  listen 80;
  server_name mastodon.myhosting.com;
  return 301 https://$server_name$request_uri;
}
 
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
  listen 443 ssl http2;
  list [::]:443 ssl http2;
  server_name mastodon.myhosting.com;
  include /etc/nginx/snippets/mastodon.conf;

  ssl_certificate /etc/letsencrypt/live/mastodon.myhosting.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/mastodon.myhosting.com/privkey.pem;
}

ここで提供される長いハッシュ値を、/var/lib/tor/hidden_service/hostname内のファイルにあるTorドメインに置き換えます

onionのホスト名には"mastodon"というプレフィックスが付いていることに注意してください。Torアドレスはワイルドカードドメインとして機能します。すべてのサブドメインはルーティングされ、アクセスされたサブドメインに応答するようにNginxを設定できます。このTorアドレスで他のサービスをホストしたくない場合は、サブドメインを省略するか、別のサブドメインを選択できます。

ここでMastodonの設定を別のファイルに移動させることの意義を見出せます。これがないと、すべての設定を両方の場所にコピーする必要があり、設定の変更は、両方の場所で行う必要があります。

Nginxを再起動します。

service nginx restart

知っておくべきこと

リダイレクトにより、ユーザーはhttpsにリダイレクトされます。続行するには、URLを手動でhttpに置き換える必要があります。

画像などのさまざまなリソースは、通常の非Torドメインを通じて引き続き提供されます。これがどの程度の問題であるかは、ユーザーに依存します。

最終更新 March 4, 2020 · このページを改善する
他の言語: English

Merch

Tシャツとステッカー(英語)

Mastodonに参加しよう · ブログ · ·

ソースコード · CC BY-SA 4.0 · インプリント