「Tor」の版間の差分
Libnumafly (トーク | 投稿記録) (→Tor 出口ノードの実行: ガイドへのリンクを修正) |
|||
(5人の利用者による、間の14版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[Category:匿名ネットワーク]] |
+ | [[de:Tor]] |
||
− | [[Category:プロキシサーバー]] |
||
[[en:Tor]] |
[[en:Tor]] |
||
− | [[es:Tor]] |
||
− | [[fr:Tor]] |
||
[[ru:Tor]] |
[[ru:Tor]] |
||
[[zh-hans:Tor]] |
[[zh-hans:Tor]] |
||
11行目: | 9行目: | ||
{{Related|Freenet}} |
{{Related|Freenet}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | [https://www.torproject.org Tor] は |
+ | [https://www.torproject.org Tor] (''T''he''o''nion''r''outing) は [[Wikipedia:ja:オニオンルーティング|オニオンルーティング]] のオープンソース実装で、匿名プロキシネットワークへのアクセスを提供します。Tor の目標は[[Wikipedia:Traffic analysis|トラフィック解析]]攻撃を防いで[[Wikipedia:ja:匿名#ネットワークにおける匿名|ネットワークの匿名性]]を守ることです。 |
+ | Tor ネットワークのユーザーは、自分のマシン上でオニオン プロキシ ソフトウェアを実行し、SOCKS インターフェイスをクライアントに提供します。 このソフトウェアは Tor に接続し、Tor ネットワークを通じて仮想回線を定期的にネゴシエートします。Tor は階層化された方法で暗号化を採用し (そのため、'オニオン' に例えられます)、ルーター間の前方秘匿性を確保します。 |
||
− | == イントロダクション == |
||
+ | このプロセスを通じて、オニオンプロキシはエンドユーザーの匿名性を確保するためにネットワークトラフィックを管理します。トラフィックを暗号化し、Tor ネットワークの他のノードを介して送信し、指定したサーバーに転送する前にトラフィックを受信する最後のノードで復号化することで、ユーザーの匿名性を保ちます。トレードオフの 1 つは、Tor を使用すると、大量のトラフィックが再ルーティングされるため、通常の直接接続よりもかなり遅くなる可能性があることです。さらに、Tor はトラフィック分析に対する保護を提供しますが、Tor ネットワークの境界でのトラフィック確認 (つまり、ネットワークに出入りするトラフィック) を防ぐことはできません。詳細については、[[Wikipedia:ja:Tor|Tor (匿名ネットワーク)]] を参照してください。 |
||
− | Tor ネットワークのユーザーはマシン上でオニオンプロキシを実行します。このソフトウェアは Tor に接続し、定期的に Tor ネットワークの仮想回線を構築します。Tor は層状の (つまり 'タマネギ' のような) 暗号化をすることで、ルーター間の完全な匿名性を保証しています。同時に、オニオンプロキシソフトウェアにはクライアントのために SOCKS インターフェースがあります。つまり SOCKS を利用できるアプリケーションは Tor に接続可能で、多様な通信が Tor 仮想回線を利用することができます。 |
||
− | {{ |
+ | {{Note|Tor だけでは、匿名性を維持するために必要なすべてが ''ある'' わけではありません。注意すべき大きな落とし穴がいくつかあります ([https://support.torproject.org/#faq_staying-anonymous Am I totally anonymous if I use Tor?] を参照)}} |
− | |||
− | 上記のプロセスを通すことで、オニオンプロキシはネットワークトラフィックを管理してエンドユーザーの匿名性を守ります。通信を暗号化して、Tor ネットワークの他のノードを通して送信し、通信を受信した末端のノードで復号化してから指定されたサーバーに転送することで、ユーザーが匿名化されます。Tor によって匿名性が得られる代わりに、トラフィックのルート変更が何度も行われるため、通常の直接接続よりも通信速度が著しく遅くなります。さらに、Tor はトラフィックの解析に対する防護をしますが、Tor ネットワークの境界 (ネットワークに出入りするトラフィック) でトラフィックを確認することは防げません。 |
||
− | |||
− | {{Wikipedia/ja|Tor}} |
||
== インストール == |
== インストール == |
||
− | + | {{Pkg|tor}} パッケージを[[pacman|インストール]]してください。 |
|
+ | Tor には Tor Browser でアクセスできます。{{AUR|tor-browser}} パッケージまたは [https://www.torproject.org/projects/torbrowser.html ポータブルな実行ファイル] でインストールできます。 |
||
− | {{Pkg|arm}} (Anonymizing Relay Monitor) パッケージには帯域使用量や接続の詳細などをターミナルに表示するモニタが含まれています。 |
||
+ | {{AUR|arm}} (Anonymizing Relay Monitor) パッケージには帯域使用量や接続の詳細などをターミナルに表示するモニタが含まれています。 |
||
− | さらに、Tor の [[Qt]] フロントエンドである {{AUR|vidalia}} が利用できます。Tor プロセスの操作に加えて、Vidalia では Tor の状態の回覧・設定、利用帯域の監視、ログメッセージの回覧・フィルター・検索が可能です。 |
||
− | |||
− | {{Warning|Vidalia にはアクティブなメンテナが存在しないため、大量のバグが修正されず放置されています。''vidalia'' を使うことは [https://www.whonix.org/wiki/Tor_Controller#Vidalia_recommended_against 推奨されません] 。}} |
||
== 設定 == |
== 設定 == |
||
− | Tor をより深く理解するために、設定ファイルの {{ic|/etc/tor/torrc}} をよく見て下さい。設定オプションの説明は {{ |
+ | Tor をより深く理解するために、設定ファイルの {{ic|/etc/tor/torrc}} をよく見て下さい。設定オプションの説明は {{man|1|tor}} や [https://torproject.org/docs/tor-manual.html.en Tor のウェブサイト] で見られます。ほとんどの場合はデフォルト設定で問題なく Tor は動作します。 |
{{ic|torrc}} の設定と {{ic|tor.service}} の設定で衝突が発生する可能性があります: |
{{ic|torrc}} の設定と {{ic|tor.service}} の設定で衝突が発生する可能性があります: |
||
45行目: | 37行目: | ||
Tor から開くことができるファイル記述子の最大数は {{ic|tor.service}} の {{ic|LimitNOFILE}} で設定できます。リレーを高速化したいときはこの数値を上げて下さい。 |
Tor から開くことができるファイル記述子の最大数は {{ic|tor.service}} の {{ic|LimitNOFILE}} で設定できます。リレーを高速化したいときはこの数値を上げて下さい。 |
||
− | あなたのコンピュータでウェブサーバーを実行していない場合、{{ic|AccountingMax}} を設定する必要はありません。{{ic|ORPort}} を {{ic|443}} にしたり {{ic|DirPort}} を {{ic|80}} にすると良いでしょう。多くの Tor ユーザーはファイアウォールによって足止めされており、ウェブブラウズしかできないようになっていますが、この変更によってあなたの Tor リレーに到達できるようになります。既にポート 80 と 443 を使っている場合、他のポートとしては 22, 110, 143 などが候補に挙げられています [https://www.torproject.org/docs/tor-relay-debian]。ただしこれらは特権が与えられたポートなので、{{ic|tor.service}} の {{ic|User<nowiki>=</nowiki>root}} と {{ic|torrc}} の {{ic|User tor}} を設定して、Tor を root で起動する必要があります。 |
+ | あなたのコンピュータでウェブサーバーを実行していない場合、{{ic|AccountingMax}} を設定する必要はありません。{{ic|ORPort}} を {{ic|443}} にしたり {{ic|DirPort}} を {{ic|80}} にすると良いでしょう。多くの Tor ユーザーはファイアウォールによって足止めされており、ウェブブラウズしかできないようになっていますが、この変更によってあなたの Tor リレーに到達できるようになります。既にポート {{ic|80}} と {{ic|443}} を使っている場合、他のポートとしては {{ic|22}}, {{ic|110}}, {{ic|143}} などが候補に挙げられています [https://www.torproject.org/docs/tor-relay-debian]。ただしこれらは特権が与えられたポートなので、{{ic|tor.service}} の {{ic|User<nowiki>=</nowiki>root}} と {{ic|torrc}} の {{ic|User tor}} を設定して、Tor を root で起動する必要があります。 |
詳しくは Tor ドキュメントの [https://blog.torproject.org/blog/lifecycle-of-a-new-relay Lifecycle of a New Relay] を読むことを推奨します。 |
詳しくは Tor ドキュメントの [https://blog.torproject.org/blog/lifecycle-of-a-new-relay Lifecycle of a New Relay] を読むことを推奨します。 |
||
+ | |||
+ | === Tor ControlPort を開く === |
||
+ | |||
+ | ほとんどのユーザーはこれを必要としません。ただし、一部のプログラムは、Tor ノードへの低レベルのアクセスを取得するために、''あなたの Tor ControlPort'' を要求します。 |
||
+ | |||
+ | ControlPort を介して、他のアプリケーションは Tor ノードを変更および監視して、Tor の実行中に Tor 設定を変更したり、Tor ネットワークのステータスや Tor 回線に関する詳細を取得したりできます。 |
||
+ | |||
+ | {{ic|torrc}} ファイルに追加します |
||
+ | |||
+ | ControlPort 9051 |
||
+ | |||
+ | Tor の [https://gitweb.torproject.org/torspec.git/tree/control-spec.txt control-spec.txt] より: |
||
+ | : For security, the [Tor control] stream should not be accessible by untrusted parties. |
||
+ | |||
+ | したがって、セキュリティを強化するために、ControlPort へのアクセスを制限します。 |
||
+ | ''Cookie ファイル''、や ''制御パスワード''、あるいはその両方を使用します。 |
||
+ | |||
+ | ==== Tor Control Cookie ファイルを設定する ==== |
||
+ | |||
+ | {{ic|torrc}} に追加します |
||
+ | |||
+ | {{bc| |
||
+ | CookieAuthentication 1 |
||
+ | CookieAuthFile /var/lib/tor/control_auth_cookie |
||
+ | CookieAuthFileGroupReadable 1 |
||
+ | DataDirectoryGroupReadable 1 |
||
+ | }} |
||
+ | |||
+ | ''Cookie 認証'' を使用すると、ControlPort へのアクセスはファイル権限によって制限されます |
||
+ | Tor Cookie ファイルと Tor データディレクトリにコピーします。 |
||
+ | |||
+ | 上記の設定により、 |
||
+ | {{ic|tor}} グループ内のすべてのユーザーが Tor Cookie ファイルにアクセスできます。 |
||
+ | |||
+ | これらを {{ic|tor}} [[ユーザーグループ]] に追加します。 |
||
+ | |||
+ | {{ic|tor.service}} を [[再起動]] して下さい。 |
||
+ | |||
+ | これで、''ユーザー'' が Tor Cookie ファイルにアクセスできるようになります。 |
||
+ | |||
+ | $ stat -c%a /var/lib/tor /var/lib/tor/control_auth_cookie |
||
+ | |||
+ | {{ic|750}} と {{ic|640}} を出力する必要があります。 |
||
+ | |||
+ | ==== Tor Control のパスワードを設定する ==== |
||
+ | |||
+ | パスワードをプレーンテキストからハッシュに変換します |
||
+ | |||
+ | {{bc| |
||
+ | # set +o history # unset bash history |
||
+ | # tor --hash-password ''your_password'' |
||
+ | # set -o history # set bash history |
||
+ | }} |
||
+ | |||
+ | そしてそのハッシュを {{ic|torrc}} に追加します |
||
+ | |||
+ | HashedControlPassword ''your_hash'' |
||
+ | |||
+ | bash 履歴コマンドによりクリアテキストのパスワードが妨げられる場合 |
||
+ | bash {{ic|$HISTFILE}} に書き込まれないようにします |
||
+ | |||
+ | ==== Tor ControlSocket を開く ==== |
||
+ | |||
+ | 何らかのプログラムが Tor ControlSocket にアクセスする必要がある場合、 |
||
+ | Unix ドメインソケットと同様、 |
||
+ | 以下を {{ic|torrc}} に追加します: |
||
+ | |||
+ | {{bc| |
||
+ | ControlSocket /var/lib/tor/control_socket |
||
+ | ControlSocketsGroupWritable 1 |
||
+ | DataDirectoryGroupReadable 1 |
||
+ | CacheDirectoryGroupReadable 1 # workaround for tor bug #26913 |
||
+ | }} |
||
+ | |||
+ | プログラムを実行するユーザーを {{ic|tor}} [[ユーザーグループ]] に追加します |
||
+ | |||
+ | {{ic|tor.service}} を実行し、プログラムを [[再起動]] します。 |
||
+ | |||
+ | ControlSocket のステータスを確認するには: |
||
+ | |||
+ | # stat -c%a /var/lib/tor /var/lib/tor/control_socket |
||
+ | |||
+ | {{ic|750}} と {{ic|660}} を出力する必要があります。 |
||
+ | |||
+ | ==== Tor Control をテストする ==== |
||
+ | |||
+ | ControlPort をテストするには、次のコマンドを使用して {{Pkg|gnu-netcat}} を実行します。 |
||
+ | |||
+ | $ echo -e 'PROTOCOLINFO\r\n' | nc 127.0.0.1 9051 |
||
+ | |||
+ | ControlSocket をテストするには、次のコマンドを使用して {{Pkg|socat}} を実行します。 |
||
+ | |||
+ | $ echo -e 'PROTOCOLINFO\r\n' | socat - UNIX-CLIENT:/var/lib/tor/control_socket |
||
+ | |||
+ | どちらのコマンドでも出力されるはずです |
||
+ | |||
+ | {{bc|1= |
||
+ | 250-PROTOCOLINFO 1 |
||
+ | 250-AUTH METHODS=COOKIE,SAFECOOKIE,HASHEDPASSWORD COOKIEFILE="/var/lib/tor/control_auth_cookie" |
||
+ | 250-VERSION Tor="0.3.4.8" |
||
+ | 250 OK |
||
+ | 514 Authentication required. |
||
+ | }} |
||
+ | |||
+ | その他のコマンドについては、Tor の [https://gitweb.torproject.org/torspec.git/tree/control-spec.txt control-spec.txt] を参照してください。 |
||
== Tor を Chroot で実行する == |
== Tor を Chroot で実行する == |
||
98行目: | 195行目: | ||
[[systemd#ユニットを使う|systemd]] を使って {{ic|tor.service}} を起動・有効にしてください。 |
[[systemd#ユニットを使う|systemd]] を使って {{ic|tor.service}} を起動・有効にしてください。 |
||
− | もしくは、vidalia インターフェースからも tor を起動 |
+ | もしくは、vidalia インターフェースからも tor を起動できます。 |
プログラムに Tor を通すには、SOCKS5 プロキシとして 127.0.0.1 か localhost をポート 9050 (tor の標準設定) 又は 9051 ('''vidalia''' の標準設定) で使うようにプログラムを設定してください。 |
プログラムに Tor を通すには、SOCKS5 プロキシとして 127.0.0.1 か localhost をポート 9050 (tor の標準設定) 又は 9051 ('''vidalia''' の標準設定) で使うようにプログラムを設定してください。 |
||
105行目: | 202行目: | ||
== ウェブブラウズ == |
== ウェブブラウズ == |
||
+ | 匿名でブラウズする唯一の方法は、サポートされている ''Tor Browser Bundle'' を使用することで、パッチが適用されたバージョンの [[Firefox]] を使用します。{{Pkg|torbrowser-launcher}} パッケージや {{AUR|tor-browser}} パッケージでインストールすることができます。 |
||
− | Tor プロジェクトは現在 tor を使ったウェブブラウズは Tor Browser Bundle だけサポートしています。このブラウザは AUR からダウンロード可能です ([https://aur.archlinux.org/packages/?K=tor-browser- Tor Browser Bundle])。Firefox にパッチをあてたバージョンにサポートを拡張して作られています。普通の [[Firefox]] や [[Chromium]] など他のブラウザで Tor を使うこともできますが、Tor プロジェクトからは[https://www.torproject.org/docs/faq.html.en#TBBOtherBrowser 推奨されていません]。 |
||
+ | Tor は通常のブラウザでも使用できます: [[#Firefox]] や [[#Chromium]] を参照して、Tor ネットワークを通してこれらのブラウザを実行してください。これは「プライベートブラウジング」モードであっても匿名でブラウジングする方法ではないことに注意してください: フィンガープリント、プラグイン、DNS リークやその他の欠点により、あなたの IP アドレスや身元が判明する可能性があります。[https://www.torproject.org/docs/faq.html.en#TBBOtherBrowser] |
||
− | {{Tip|AUR の TBB のソース tarball の署名を makepkg で確認するには、次のコマンドで [https://www.torproject.org/docs/signing-keys.html.en Tor Project の署名鍵] (現在は 2E1AC68ED40814E0) をキーサーバーからダウンロードして gpg キーリングに追加する必要があります: {{ic|$ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 2E1AC68ED40814E0}}。}} |
||
+ | |||
+ | {{Tip|makepkg が Tor ブラウザの AUR ソース tarball ダウンロードで署名を検証するには、[[GnuPG#鍵サーバーを使用する]] で説明されているように、[https://www.torproject.org/docs/signing-keys.html.en Tor プロジェクトから署名キー]をインポートします。}} |
||
=== Firefox === |
=== Firefox === |
||
− | ''設定 > |
+ | ''設定 > 一般 > ネットワークプロキシ > 接続設定'' から SOCKS の {{ic|localhost}} ポート {{ic|9050}} を使うように手動で Firefox を設定してください (SOCKS v5)。さらに、全ての DNS リクエストが TOR の socks プロキシを通過するようにするため、"Proxy DNS when using SOCKS v5" を選択してください。 |
=== Chromium === |
=== Chromium === |
||
次のコマンドで chromium を起動してください: |
次のコマンドで chromium を起動してください: |
||
− | $ chromium --proxy-server=" |
+ | $ chromium --proxy-server="socks5://myproxy:8080" --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE myproxy" |
+ | |||
+ | {{ic|<nowiki>--proxy-server="socks5://myproxy:8080"</nowiki>}} フラグによって Chrome は http:// と https:// の URL リクエストで SOCKS プロキシサーバー "myproxy:8080" を経由するようになります (バージョン 5 の SOCKS プロトコルを使用)。URL のホストネームはプロキシサーバーによって解決されるようになります。 |
||
+ | |||
+ | {{Note|{{ic|ftp://}} から始める URL はまだ SOCKS プロキシでは使用できません [https://www.chromium.org/developers/design-documents/network-stack/socks-proxy]。}} |
||
+ | |||
+ | {{ic|--proxy-server}} フラグは URL のロードだけに適用されます。Chrome の他のコンポーネントが DNS を直接使うこともあり、その場合はプロキシサーバーが迂回されてしまいます。そのようなコンポーネントとして例えば "DNS prefetcher" が存在します。Chrome で DNS プリフェッチが無効になっていない場合、SOCKS v5 プロキシサーバーを設定していても Chrome によって DNS リクエストが送信されてしまいます。DNS プリフェッチを無効化することで解決するとしても、Chrome の DNS リクエスト全てに気を配らなくてはいけません。{{ic|<nowiki>--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE myproxy"</nowiki>}} フラグを使うことで Chrome から送信される全ての DNS リクエストを阻止できます。DNS リクエストは全て {{ic|~NOTFOUND}} ({{ic|0.0.0.0}} と同じ) アドレスにマッピングされます。"EXCLUDE" で "myproxy" だけ例外にすることで、SOCKS プロキシサーバーのアドレスだけは解決できるようにします。 |
||
+ | |||
+ | [https://ipleak.net/#webrtcleak WebRTC のリーク] を防ぐには [https://chrome.google.com/webstore/detail/webrtc-network-limiter/npeicpdbkakmehahjeeohfdhnlpdklia WebRTC Network Limiter] 拡張をインストールします。 |
||
+ | |||
+ | ==== デバッグ ==== |
||
+ | |||
+ | デバッグする際はまず about:net-internals の Proxy タブを確認してください: {{ic|chrome://net-internals/#proxy}}。 |
||
+ | |||
+ | 次に、{{ic|about:net-internals}} で Chrome がローカル DNS リクエストを送信していないことを確認してください: {{ic|chrome://net-internals/#dns}}。 |
||
+ | |||
+ | ==== 拡張 ==== |
||
Firefox と同じように [https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm Proxy SwitchySharp] を使うことで高速な切り替えをすることができます。 |
Firefox と同じように [https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm Proxy SwitchySharp] を使うことで高速な切り替えをすることができます。 |
||
123行目: | 238行目: | ||
任意で ''General'' タブからクイック切り替えを有効化することができ、Proxy SwitchySharp のアイコンを左クリックするだけで通常のブラウズと Tor ネットワークを切り替えることができるようになります。 |
任意で ''General'' タブからクイック切り替えを有効化することができ、Proxy SwitchySharp のアイコンを左クリックするだけで通常のブラウズと Tor ネットワークを切り替えることができるようになります。 |
||
+ | |||
+ | ==== Electron ==== |
||
+ | |||
+ | [[#Chromium]] を参照してください。 |
||
=== Luakit === |
=== Luakit === |
||
次を実行: |
次を実行: |
||
− | $ |
+ | $ torsocks luakit |
== HTTP プロキシ == |
== HTTP プロキシ == |
||
153行目: | 272行目: | ||
=== Pidgin === |
=== Pidgin === |
||
+ | Pidgin を設定することで全てのアカウントで、あるいはアカウントごとに Tor を使うようにすることができます。全てのアカウントで Tor を使うには Tools -> Preferences -> Proxy で設定してください。アカウントごとに Tor を使用するには ''Accounts > Manage Accounts'' からアカウントを選択して Modify をクリックし、Proxy タブを開いてください。以下のようにプロキシを設定します: |
||
− | You can set up Pidgin to use Tor globally, or per account. To use Tor globally, go to Tools -> Preferences -> Proxy. To use Tor for specific accounts, go to ''Accounts > Manage Accounts'', select the desired account, click Modify, then go to the Proxy tab. The proxy settings are as follows: |
||
Proxy type SOCKS5 |
Proxy type SOCKS5 |
||
159行目: | 278行目: | ||
Port 9150 |
Port 9150 |
||
− | + | Tor Browser を使用している場合 [https://trac.torproject.org/projects/tor/ticket/8135 2013年] にポートは 9050 から 9150 に変更されたので注意してください。"Connection refused" メッセージが表示される場合は値を変えてみてください。 |
|
== Irssi == |
== Irssi == |
||
167行目: | 286行目: | ||
$ torsocks irssi |
$ torsocks irssi |
||
− | + | nickserv に認証情報を設定してください。接続時に読み込まれます。対応している認証方式は ECDSA-NIST256P-CHALLENGE ([https://github.com/atheme/ecdsatool/blob/master/cap_sasl.pl ecdsatool] を参照) と PLAIN です。DH-BLOWFISH は [https://freenode.net/sasl/sasl-irssi.shtml サポートが打ち切られています]。 |
|
/sasl set ''network'' ''username'' ''password'' ''mechanism'' |
/sasl set ''network'' ''username'' ''password'' ''mechanism'' |
||
− | + | 情報漏洩を防ぐために CTCP と DCC を無効化してホストネームを別の名前に設定してください [https://encrypteverything.ca/IRC_Anonymity_Guide]: |
|
/ignore * CTCPS |
/ignore * CTCPS |
||
204行目: | 323行目: | ||
==== 設定 ==== |
==== 設定 ==== |
||
− | https://www.torproject.org/docs/bridges によれば、torrc に以下の4行を設定してください: |
+ | https://www.torproject.org/docs/bridges によれば、torrc ({{ic|/etc/tor/torrc}} または {{ic|$HOME/.torrc}}) に以下の4行を設定してください: |
− | + | SocksPort 0 |
|
− | + | ORPort 443 |
|
− | + | BridgeRelay 1 |
|
− | + | Exitpolicy reject *:* |
|
==== トラブルシューティング ==== |
==== トラブルシューティング ==== |
||
− | + | 起動時に "Could not bind to 0.0.0.0:443: Permission denied" エラーが表示される場合、ORPort を高く設定するか (例: 8080)、ルーターで [http://www.portforward.com/ ポート転送] してください。 |
|
=== Tor リレーの実行 === |
=== Tor リレーの実行 === |
||
232行目: | 351行目: | ||
=== Tor 出口ノードの実行 === |
=== Tor 出口ノードの実行 === |
||
+ | Tor ユーザーから通常のインターネットへのリクエストがあった場合、ネットワークへの出口 (出口ノード) が必要となります。出口ノードからアクセスされたホストから見ると、あなたのマシンからリクエストが飛んできたように認識されます。したがって、Tor リレーを運営するのとは異なり、出口ノードを立ち上げることは法的な責任を負うことを意味します。出口リレーを実行する前に [https://blog.torproject.org/tips-running-exit-node/ Tips for Running an Exit Node] を読むと良いでしょう。 |
||
− | Any requests from a Tor user to the regular internet obviously need to exit the network somewhere, and exit nodes provide this vital service. To the accessed host, the request will appear as having originated from your machine. This means that running an exit node is generally considered more legally onerous than running other forms of Tor relays. Before becoming an exit relay, you may want to read [https://blog.torproject.org/running-exit-node Tips for Running an Exit Node With Minimal Harrasment]. |
||
==== 設定 ==== |
==== 設定 ==== |
||
256行目: | 375行目: | ||
}} |
}} |
||
+ | 上記の設定で通常の DNS サーバーと同じように DNS リクエストを受け取って (上記の例ではポート 9053 を使用)、Tor ネットワーク経由でドメインを解決できるようになります。解決できる DNS クエリは A レコードなので注意してください。MX と NS クエリには返答しません。詳しくは [https://techstdout.boum.org/TorDns/ Debian によるイントロダクション] を参照。 |
||
− | This will allow Tor to accept DNS requests (listening on port 9053 in this example) like a regular DNS server, and resolve the domain via the Tor network. A downside is that it's only able to resolve DNS queries for A-records; MX and NS queries are never answered. For more information see this [https://techstdout.boum.org/TorDns/ Debian-based introduction]. |
||
+ | {{Ic|<nowiki>tor-resolve</nowiki>}} を使ってコマンドラインインターフェイスから DNS クエリを実行することもできます。例: |
||
− | DNS queries can also be performed through a command line interface by using {{Ic|<nowiki>tor-resolve</nowiki>}}. For example: |
||
{{bc| |
{{bc| |
||
$ tor-resolve archlinux.org |
$ tor-resolve archlinux.org |
||
266行目: | 385行目: | ||
=== 全ての DNS クエリで TorDNS を使う === |
=== 全ての DNS クエリで TorDNS を使う === |
||
+ | 必要であれば、宛先に Tor を使って接続するのかどうかにかかわらず、システムからのクエリは全て TorDNS を使うように設定することができます。DNS サーバーとして 127.0.0.1 を使うように設定してから {{ic|/etc/tor/torrc}} の 'DNSPort' 行を以下のように編集してください: |
||
− | It is possible to configure your system, if so desired, to use TorDNS for ''all'' queries your system makes, regardless of whether or not you eventually use Tor to connect to your final destination. To do this, configure your system to use 127.0.0.1 as its DNS server and edit the 'DNSPort' line in {{ic|/etc/tor/torrc}} to show: |
||
DNSPort 53 |
DNSPort 53 |
||
+ | また、[[dnsmasq]] や [[pdnsd]] などのローカルキャッシュ DNS サーバーを使うこともできます。TorDNS は伝統的な DNS サーバーと比べて少し遅いのでそれを補うことができます。以下では ''dnsmasq'' をセットアップする方法を説明します。 |
||
− | Alternatively, you can use a local caching DNS server, such as [[dnsmasq]] or [[pdnsd]], which will also compensate for TorDNS being a little slower than traditional DNS servers. The following instructions will show how to set up ''dnsmasq'' for this purpose. |
||
− | + | DNS リクエストを listen する設定をポート 9053 に変更して {{Pkg|dnsmasq}} をインストールしてください。 |
|
+ | dnsmasq の設定ファイルを以下のように編集: |
||
− | Modify its configuration file so that it contains: |
||
{{hc|/etc/dnsmasq.conf| |
{{hc|/etc/dnsmasq.conf| |
||
no-resolv |
no-resolv |
||
+ | port=9053 |
||
server=127.0.0.1#9053 |
server=127.0.0.1#9053 |
||
listen-address=127.0.0.1 |
listen-address=127.0.0.1 |
||
}} |
}} |
||
+ | |||
− | These configurations set dnsmasq to listen only for requests from the local computer, and to use TorDNS at its sole upstream provider. It is now neccessary to edit {{ic|/etc/resolv.conf}} so that your system will query only the dnsmasq server. |
||
+ | 上記の設定によって dnsmasq はローカルコンピュータからのリクエストのみ受け取り、TorDNS を上流の DNS サーバーとして使用します。それから {{ic|/etc/resolv.conf}} を編集して dnsmasq サーバーに問い合わせを行うようにしてください: |
||
+ | |||
{{hc|/etc/resolv.conf| |
{{hc|/etc/resolv.conf| |
||
nameserver 127.0.0.1 |
nameserver 127.0.0.1 |
||
}} |
}} |
||
− | + | 設定したら '''dnsmasq''' デーモンを起動してください。 |
|
+ | ''dhcpd'' を使用している場合、resolv 設定ファイルが変更されないように設定を変更する必要があります。設定ファイルに以下を追加してください: |
||
− | Finally if you use ''dhcpd'' you would need to change its settings to that it does not alter the resolv configuration file. Just add this line in the configuration file: |
||
{{hc|/etc/dhcpcd.conf| |
{{hc|/etc/dhcpcd.conf| |
||
nohook resolv.conf |
nohook resolv.conf |
||
}} |
}} |
||
− | + | ''nohook'' 行が既に存在する場合、カンマで区切って '''resolv.conf''' を追加してください。 |
|
− | == |
+ | == Torsocks == |
− | ''' |
+ | '''Torsocks''' を利用すると、アプリケーションの設定を変更することなく、Tor ネットワークを介してアプリケーションを使うことができるようになります。man ページより: |
+ | :''torsocks は全てのインターネット接続を Tor ネットワーク経由にするために torsocks ライブラリとアプリケーションの間に挟まるラッパーです。'' |
||
− | ''torify is a simple wrapper that attempts to find the best underlying Tor wrapper available on a system. It calls torsocks with a tor specific configuration file.'' |
||
使用例: |
使用例: |
||
− | $ |
+ | $ torsocks elinks checkip.dyndns.org |
− | <nowiki>$ |
+ | <nowiki>$ torsocks wget -qO- https://check.torproject.org/ | grep -i congratulations</nowiki> |
− | |||
− | Torify ''will not'', however, perform DNS lookups through the Tor network. A workaround is to use it in conjunction with {{ic|<nowiki>tor-resolve</nowiki>}} (described above). In this case, the procedure for the first of the above examples would look like this: |
||
− | |||
− | {{hc|$ tor-resolve checkip.dyndns.org| |
||
− | 208.78.69.70 |
||
− | }} |
||
− | |||
− | $ torify elinks 208.78.69.70 |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
324行目: | 438行目: | ||
May 23 00:27:24.624 [err] Reading config failed--see warnings above. |
May 23 00:27:24.624 [err] Reading config failed--see warnings above. |
||
+ | User の値に問題があるとは {{ic|/var/lib/tor}} ディレクトリにあるファイルやディレクトリの所有者が tor になっていないことを意味します。以下の find コマンドで確認できます: |
||
− | Then it means that the problem is with the User value, which likely means that one or more files or directories in your {{ic|/var/lib/tor}} directory is not owned by tor. This can be determined by using the following find command: |
||
find /var/lib/tor/ ! -user tor |
find /var/lib/tor/ ! -user tor |
||
+ | 上記のコマンドで出力されたファイルあるいはディレクトリの所有者を変更する必要があります。ファイルごとに所有者を変更するには: |
||
− | Any files or directories listed in the output from this command needs to have its ownership changed. This can be done individually for each file like so: |
||
chown tor:tor /var/lib/tor/filename |
chown tor:tor /var/lib/tor/filename |
||
+ | もしくは上の find コマンドで出力されたファイルの所有権を全て変更するには: |
||
− | Or to change everything listed by the above find example, modify the command to this: |
||
find /var/lib/tor/ ! -user tor -exec chown tor:tor {} \; |
find /var/lib/tor/ ! -user tor -exec chown tor:tor {} \; |
||
+ | これで Tor が正しく起動するようになるはずです。 |
||
− | Tor should now start up correctly. |
||
+ | 修正しても tor サービスを起動できない場合、root でサービスを起動してみてください (tor ユーザーに切り替わります)。{{ic|/etc/tor/torrc}} ファイルの user の名前を変更します: |
||
− | Still if you cannot start the tor service, run the service using root (this will switch back to the tor user). To do this, change the user name in the {{ic|/etc/tor/torrc}} file: |
||
User tor |
User tor |
||
− | + | systemd の tor サービスファイル {{ic|/usr/lib/systemd/system/tor.service}} を以下のように修正: |
|
[Service] |
[Service] |
||
349行目: | 463行目: | ||
Type=simple |
Type=simple |
||
+ | プロセスは tor ユーザーで実行されます。ユーザーとグループ ID を tor に変更して書き込み可能にしてください: |
||
− | The process will be run as tor user. For this purpose change user and group ID to tor and also make it writable: |
||
# chown -R tor:tor /var/lib/tor/ |
# chown -R tor:tor /var/lib/tor/ |
||
# chmod -R 755 /var/lib/tor |
# chmod -R 755 /var/lib/tor |
||
+ | 変更を保存したらデーモンを起動: |
||
− | Now save changes and run the daemon: |
||
# systemctl --system daemon-reload |
# systemctl --system daemon-reload |
||
# systemctl start tor.service |
# systemctl start tor.service |
||
+ | |||
+ | === Tor-ブラウザのプロキシ問題 === |
||
+ | |||
+ | 通常、{{AUR|tor-browser-bin}} は大幅なカスタマイズなしで動作します。以前にインストール/構成されバンドルされたプロキシが、いずれかの Web サイトで {{ic|proxy server is refusing connections}} というエラーで失敗した場合は、{{ic|~/.tor-browser}} ディレクトリを移動または削除して設定をリセットすることを検討してください。 |
||
+ | |||
+ | === Tor-ブラウザの空白の黒い画面 === |
||
+ | |||
+ | [[AppArmor]] を使用している場合は、必要なリソースへのアクセスを許可するように torbrowser プロファイルを更新して下さい。[https://unix.stackexchange.com/questions/550074/debian-tor-browser-showing-a-black-screen/550246#550246 ]、[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942901]: |
||
+ | |||
+ | {{hc|head= /etc/apparmor.d/local/torbrowser.Browser.firefox|output= |
||
+ | owner /{dev,run}/shm/org.mozilla.*.* rw, |
||
+ | }} |
||
== 参照 == |
== 参照 == |
2024年7月25日 (木) 08:58時点における最新版
Tor (Theonionrouting) は オニオンルーティング のオープンソース実装で、匿名プロキシネットワークへのアクセスを提供します。Tor の目標はトラフィック解析攻撃を防いでネットワークの匿名性を守ることです。
Tor ネットワークのユーザーは、自分のマシン上でオニオン プロキシ ソフトウェアを実行し、SOCKS インターフェイスをクライアントに提供します。 このソフトウェアは Tor に接続し、Tor ネットワークを通じて仮想回線を定期的にネゴシエートします。Tor は階層化された方法で暗号化を採用し (そのため、'オニオン' に例えられます)、ルーター間の前方秘匿性を確保します。
このプロセスを通じて、オニオンプロキシはエンドユーザーの匿名性を確保するためにネットワークトラフィックを管理します。トラフィックを暗号化し、Tor ネットワークの他のノードを介して送信し、指定したサーバーに転送する前にトラフィックを受信する最後のノードで復号化することで、ユーザーの匿名性を保ちます。トレードオフの 1 つは、Tor を使用すると、大量のトラフィックが再ルーティングされるため、通常の直接接続よりもかなり遅くなる可能性があることです。さらに、Tor はトラフィック分析に対する保護を提供しますが、Tor ネットワークの境界でのトラフィック確認 (つまり、ネットワークに出入りするトラフィック) を防ぐことはできません。詳細については、Tor (匿名ネットワーク) を参照してください。
目次
インストール
Tor には Tor Browser でアクセスできます。tor-browserAUR パッケージまたは ポータブルな実行ファイル でインストールできます。
armAUR (Anonymizing Relay Monitor) パッケージには帯域使用量や接続の詳細などをターミナルに表示するモニタが含まれています。
設定
Tor をより深く理解するために、設定ファイルの /etc/tor/torrc
をよく見て下さい。設定オプションの説明は tor(1) や Tor のウェブサイト で見られます。ほとんどの場合はデフォルト設定で問題なく Tor は動作します。
torrc
の設定と tor.service
の設定で衝突が発生する可能性があります:
torrc
では、RunAsDaemon
はデフォルトどおりに0
に設定してください。tor.service
の[Service]
セクションでType=simple
が設定されているためです。torrc
では、User
は設定しないでください。tor.service
の[Service]
セクションでUser=
がroot
に設定されているためです。
リレー設定
Tor から開くことができるファイル記述子の最大数は tor.service
の LimitNOFILE
で設定できます。リレーを高速化したいときはこの数値を上げて下さい。
あなたのコンピュータでウェブサーバーを実行していない場合、AccountingMax
を設定する必要はありません。ORPort
を 443
にしたり DirPort
を 80
にすると良いでしょう。多くの Tor ユーザーはファイアウォールによって足止めされており、ウェブブラウズしかできないようになっていますが、この変更によってあなたの Tor リレーに到達できるようになります。既にポート 80
と 443
を使っている場合、他のポートとしては 22
, 110
, 143
などが候補に挙げられています [1]。ただしこれらは特権が与えられたポートなので、tor.service
の User=root
と torrc
の User tor
を設定して、Tor を root で起動する必要があります。
詳しくは Tor ドキュメントの Lifecycle of a New Relay を読むことを推奨します。
Tor ControlPort を開く
ほとんどのユーザーはこれを必要としません。ただし、一部のプログラムは、Tor ノードへの低レベルのアクセスを取得するために、あなたの Tor ControlPort を要求します。
ControlPort を介して、他のアプリケーションは Tor ノードを変更および監視して、Tor の実行中に Tor 設定を変更したり、Tor ネットワークのステータスや Tor 回線に関する詳細を取得したりできます。
torrc
ファイルに追加します
ControlPort 9051
Tor の control-spec.txt より:
- For security, the [Tor control] stream should not be accessible by untrusted parties.
したがって、セキュリティを強化するために、ControlPort へのアクセスを制限します。 Cookie ファイル、や 制御パスワード、あるいはその両方を使用します。
Tor Control Cookie ファイルを設定する
torrc
に追加します
CookieAuthentication 1 CookieAuthFile /var/lib/tor/control_auth_cookie CookieAuthFileGroupReadable 1 DataDirectoryGroupReadable 1
Cookie 認証 を使用すると、ControlPort へのアクセスはファイル権限によって制限されます Tor Cookie ファイルと Tor データディレクトリにコピーします。
上記の設定により、
tor
グループ内のすべてのユーザーが Tor Cookie ファイルにアクセスできます。
これらを tor
ユーザーグループ に追加します。
tor.service
を 再起動 して下さい。
これで、ユーザー が Tor Cookie ファイルにアクセスできるようになります。
$ stat -c%a /var/lib/tor /var/lib/tor/control_auth_cookie
750
と 640
を出力する必要があります。
Tor Control のパスワードを設定する
パスワードをプレーンテキストからハッシュに変換します
# set +o history # unset bash history # tor --hash-password your_password # set -o history # set bash history
そしてそのハッシュを torrc
に追加します
HashedControlPassword your_hash
bash 履歴コマンドによりクリアテキストのパスワードが妨げられる場合
bash $HISTFILE
に書き込まれないようにします
Tor ControlSocket を開く
何らかのプログラムが Tor ControlSocket にアクセスする必要がある場合、
Unix ドメインソケットと同様、
以下を torrc
に追加します:
ControlSocket /var/lib/tor/control_socket ControlSocketsGroupWritable 1 DataDirectoryGroupReadable 1 CacheDirectoryGroupReadable 1 # workaround for tor bug #26913
プログラムを実行するユーザーを tor
ユーザーグループ に追加します
tor.service
を実行し、プログラムを 再起動 します。
ControlSocket のステータスを確認するには:
# stat -c%a /var/lib/tor /var/lib/tor/control_socket
750
と 660
を出力する必要があります。
Tor Control をテストする
ControlPort をテストするには、次のコマンドを使用して gnu-netcat を実行します。
$ echo -e 'PROTOCOLINFO\r\n' | nc 127.0.0.1 9051
ControlSocket をテストするには、次のコマンドを使用して socat を実行します。
$ echo -e 'PROTOCOLINFO\r\n' | socat - UNIX-CLIENT:/var/lib/tor/control_socket
どちらのコマンドでも出力されるはずです
250-PROTOCOLINFO 1 250-AUTH METHODS=COOKIE,SAFECOOKIE,HASHEDPASSWORD COOKIEFILE="/var/lib/tor/control_auth_cookie" 250-VERSION Tor="0.3.4.8" 250 OK 514 Authentication required.
その他のコマンドについては、Tor の control-spec.txt を参照してください。
Tor を Chroot で実行する
セキュリティを高めるために、chroot で Tor を実行するのが望ましい場合があります。以下のスクリプトは /opt/torchroot
に適切な chroot を作成します:
~/torchroot-setup.sh
#!/bin/bash export TORCHROOT=/opt/torchroot mkdir -p $TORCHROOT mkdir -p $TORCHROOT/etc/tor mkdir -p $TORCHROOT/dev mkdir -p $TORCHROOT/usr/bin mkdir -p $TORCHROOT/usr/lib mkdir -p $TORCHROOT/usr/share/tor mkdir -p $TORCHROOT/var/lib ln -s /usr/lib $TORCHROOT/lib cp /etc/hosts $TORCHROOT/etc/ cp /etc/host.conf $TORCHROOT/etc/ cp /etc/localtime $TORCHROOT/etc/ cp /etc/nsswitch.conf $TORCHROOT/etc/ cp /etc/resolv.conf $TORCHROOT/etc/ cp /etc/tor/torrc $TORCHROOT/etc/tor/ cp /usr/bin/tor $TORCHROOT/usr/bin/ cp /usr/share/tor/geoip* $TORCHROOT/usr/share/tor/ cp /lib/libnss* /lib/libnsl* /lib/ld-linux-*.so* /lib/libresolv* /lib/libgcc_s.so* $TORCHROOT/usr/lib/ cp $(ldd /usr/bin/tor | awk '{print $3}'|grep --color=never "^/") $TORCHROOT/usr/lib/ cp -r /var/lib/tor $TORCHROOT/var/lib/ chown -R tor:tor $TORCHROOT/var/lib/tor sh -c "grep --color=never ^tor /etc/passwd > $TORCHROOT/etc/passwd" sh -c "grep --color=never ^tor /etc/group > $TORCHROOT/etc/group" mknod -m 644 $TORCHROOT/dev/random c 1 8 mknod -m 644 $TORCHROOT/dev/urandom c 1 9 mknod -m 666 $TORCHROOT/dev/null c 1 3 if [[ "$(uname -m)" == "x86_64" ]]; then cp /usr/lib/ld-linux-x86-64.so* $TORCHROOT/usr/lib/. ln -sr /usr/lib64 $TORCHROOT/lib64 ln -s $TORCHROOT/usr/lib ${TORCHROOT}/usr/lib64 fi
このスクリプトを root で実行した後、次のコマンドで chroot に Tor を起動できます: # chroot --userspec=tor:tor /opt/torchroot /usr/bin/tor
使用方法
systemd を使って tor.service
を起動・有効にしてください。
もしくは、vidalia インターフェースからも tor を起動できます。
プログラムに Tor を通すには、SOCKS5 プロキシとして 127.0.0.1 か localhost をポート 9050 (tor の標準設定) 又は 9051 (vidalia の標準設定) で使うようにプログラムを設定してください。 Tor が正しく機能しているか確認するために Tor , Harvard , Xenobite.eu などのウェブサイトを開いてみましょう。
ウェブブラウズ
匿名でブラウズする唯一の方法は、サポートされている Tor Browser Bundle を使用することで、パッチが適用されたバージョンの Firefox を使用します。torbrowser-launcher パッケージや tor-browserAUR パッケージでインストールすることができます。
Tor は通常のブラウザでも使用できます: #Firefox や #Chromium を参照して、Tor ネットワークを通してこれらのブラウザを実行してください。これは「プライベートブラウジング」モードであっても匿名でブラウジングする方法ではないことに注意してください: フィンガープリント、プラグイン、DNS リークやその他の欠点により、あなたの IP アドレスや身元が判明する可能性があります。[2]
Firefox
設定 > 一般 > ネットワークプロキシ > 接続設定 から SOCKS の localhost
ポート 9050
を使うように手動で Firefox を設定してください (SOCKS v5)。さらに、全ての DNS リクエストが TOR の socks プロキシを通過するようにするため、"Proxy DNS when using SOCKS v5" を選択してください。
Chromium
次のコマンドで chromium を起動してください:
$ chromium --proxy-server="socks5://myproxy:8080" --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE myproxy"
--proxy-server="socks5://myproxy:8080"
フラグによって Chrome は http:// と https:// の URL リクエストで SOCKS プロキシサーバー "myproxy:8080" を経由するようになります (バージョン 5 の SOCKS プロトコルを使用)。URL のホストネームはプロキシサーバーによって解決されるようになります。
--proxy-server
フラグは URL のロードだけに適用されます。Chrome の他のコンポーネントが DNS を直接使うこともあり、その場合はプロキシサーバーが迂回されてしまいます。そのようなコンポーネントとして例えば "DNS prefetcher" が存在します。Chrome で DNS プリフェッチが無効になっていない場合、SOCKS v5 プロキシサーバーを設定していても Chrome によって DNS リクエストが送信されてしまいます。DNS プリフェッチを無効化することで解決するとしても、Chrome の DNS リクエスト全てに気を配らなくてはいけません。--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE myproxy"
フラグを使うことで Chrome から送信される全ての DNS リクエストを阻止できます。DNS リクエストは全て ~NOTFOUND
(0.0.0.0
と同じ) アドレスにマッピングされます。"EXCLUDE" で "myproxy" だけ例外にすることで、SOCKS プロキシサーバーのアドレスだけは解決できるようにします。
WebRTC のリーク を防ぐには WebRTC Network Limiter 拡張をインストールします。
デバッグ
デバッグする際はまず about:net-internals の Proxy タブを確認してください: chrome://net-internals/#proxy
。
次に、about:net-internals
で Chrome がローカル DNS リクエストを送信していないことを確認してください: chrome://net-internals/#dns
。
拡張
Firefox と同じように Proxy SwitchySharp を使うことで高速な切り替えをすることができます。
インストールしたら設定ページを開いて下さい。Proxy Profiles タブから新しいプロファイル Tor を追加します。Use the same proxy server for all protocols オプションのチェックが入っている場合はチェックを外してください。それから SOCKS ホストに localhost、ポートに 9050 を追加して SOCKS v5 を選択します。
任意で General タブからクイック切り替えを有効化することができ、Proxy SwitchySharp のアイコンを左クリックするだけで通常のブラウズと Tor ネットワークを切り替えることができるようになります。
Electron
#Chromium を参照してください。
Luakit
次を実行:
$ torsocks luakit
HTTP プロキシ
Tor は Polipo や Privoxy などの HTTP プロキシと一緒に使うことができますが、Tor の開発チームはブラウザが直接サポートしている SOCKS5 ライブラリを使うことを推奨しています。
Firefox
FoxyProxy アドオンを使うことで URL に合わせて複数のプロキシを指定したりすることができます。Firefox を再起動したら手動で Firefox を Polipo や Privoxy が動作しているポート 8118
の localhost
に設定してください。これらの設定は Add > Standard proxy type から設定できます。プロキシのラベル (例: Tor) を選択してポートとホストを HTTP Proxy と SSL Proxy フィールドに入力してください。Tor が正しく機能しているかどうかは Tor Check ウェブサイトを開くことで確認できます。
Polipo
Tor Project は Polipo の問題を回避して匿名性を上げるためにカスタマイズされた Polipo 設定ファイル を作成しています。
SOCKS 5 プロキシが使える場合、Tor は自動的にポート 9050 で起動するので、Polipo は必須ではないことを覚えておいて下さい。Tor で Chromium を使いたい場合、Polipo パッケージは必要ありません (参照: #Chromium)。
Privoxy
メッセンジャーなど (例: Jabber, IRC) 他のアプリケーションでセットアップを使うこともできます。アプリケーションが HTTP プロキシをサポートしていれば Privoxy に接続することができます (127.0.0.1:8118
)。直接 SOCKS プロキシを使うには、アプリケーションから Tor を指定します (127.0.0.1:9050
)。この方法の問題はアプリケーションが DNS 解決を独自に行うような場合、情報が漏洩する可能性があるということです。代わりに (Privoxy なおで) Socks4A を使用してください。
インスタントメッセージ
IM クライアントで tor を使う場合、polipo/privoxy などの http プロキシは必要ありません。デフォルトでポート 9050 を listen する tor のデーモンを直接使用します。
Pidgin
Pidgin を設定することで全てのアカウントで、あるいはアカウントごとに Tor を使うようにすることができます。全てのアカウントで Tor を使うには Tools -> Preferences -> Proxy で設定してください。アカウントごとに Tor を使用するには Accounts > Manage Accounts からアカウントを選択して Modify をクリックし、Proxy タブを開いてください。以下のようにプロキシを設定します:
Proxy type SOCKS5 Host 127.0.0.1 Port 9150
Tor Browser を使用している場合 2013年 にポートは 9050 から 9150 に変更されたので注意してください。"Connection refused" メッセージが表示される場合は値を変えてみてください。
Irssi
Freenode は .onion
に直接接続することを推奨しています。接続時に nickserv で認証するには charybdis と ircd-seven の SASL が必要です。Irssi#SASL で認証 を参照してください。irssi を起動:
$ torsocks irssi
nickserv に認証情報を設定してください。接続時に読み込まれます。対応している認証方式は ECDSA-NIST256P-CHALLENGE (ecdsatool を参照) と PLAIN です。DH-BLOWFISH は サポートが打ち切られています。
/sasl set network username password mechanism
情報漏洩を防ぐために CTCP と DCC を無効化してホストネームを別の名前に設定してください [4]:
/ignore * CTCPS /ignore * DCC /set hostname fake_host
Freenode に接続:
/connect -network network frxleqtzgvwkv7oz.onion
詳しくは Accessing freenode Via Tor, SASL README, IRC/SILC Wiki article を見て下さい。
Pacman
Pacman のダウンロード操作 (リポジトリ DB, パッケージ, パブリックキー) を Tor ネットワークを通して行うことが可能です。やや大げさですが、もしあなたに (LAN やミラーなどに) 敵がいる場合、インストールしたパッケージが何なのか知られることがなくなります。ただし遅延がひどくなり、スループットが遅くなり、気づかれる可能性があり、(現在の接続で Tor がフィルタリングされている場合) インストールができない可能性があります。
/etc/pacman.conf
... XferCommand = /usr/bin/curl --socks5-hostname localhost:9050 -C - -f %u > %o ...
Tor サーバーを実行する
Tor ネットワークは人々が提供する帯域に頼っています。ネットワークに貢献する方法は複数あります。
Tor ブリッジの実行
Tor ブリッジは Tor のパブリックディレクトリに記載されない Tor リレーです。政府や ISP によって Tor のパブリックリレーが全てブロックされたときでも Tor ネットワークに接続することを可能にします。
設定
https://www.torproject.org/docs/bridges によれば、torrc (/etc/tor/torrc
または $HOME/.torrc
) に以下の4行を設定してください:
SocksPort 0 ORPort 443 BridgeRelay 1 Exitpolicy reject *:*
トラブルシューティング
起動時に "Could not bind to 0.0.0.0:443: Permission denied" エラーが表示される場合、ORPort を高く設定するか (例: 8080)、ルーターで ポート転送 してください。
Tor リレーの実行
あなたのマシンを (リレーのオンライン時間によって) エントリーノードや転送リレーとして動作させます。ブリッジリレーとは違って、Tor のパブリックディレクトリに記載されます。誰でも Tor のディレクトリからあなたの IP アドレスを見ることができるようになりますが、このリレーは他のリレーや Tor 出口ノードに転送するだけで、インターネットに直接転送することはありません。
設定
最低でも 20KiB/s は共有してください:
Nickname tornickname ORPort 9001 BandwidthRate 20 KB # Throttle traffic to 20KB/s BandwidthBurst 50 KB # But allow bursts up to 50KB/s
リレーからの退出を拒否する:
ExitPolicy reject *:*
Tor 出口ノードの実行
Tor ユーザーから通常のインターネットへのリクエストがあった場合、ネットワークへの出口 (出口ノード) が必要となります。出口ノードからアクセスされたホストから見ると、あなたのマシンからリクエストが飛んできたように認識されます。したがって、Tor リレーを運営するのとは異なり、出口ノードを立ち上げることは法的な責任を負うことを意味します。出口リレーを実行する前に Tips for Running an Exit Node を読むと良いでしょう。
設定
torrc を使うことで、出口ノードを通過できるサービスを設定することができます。
全てのトラフィックを許可:
ExitPolicy accept *:*
irc ポート 6660-6667 だけがノードから退出することを許可する:
ExitPolicy accept *:6660-6667,reject *:* # Allow irc ports but no more
デフォルトでは、Tor は特定のポートをブロックします。torrc を使うことで上書きすることが可能です:
ExitPolicy accept *:119 # Accept nntp as well as default exit policy
TorDNS
Tor 0.2.x シリーズには DNS フォワーダが組み込まれています。有効化するには、以下の行を Tor の設定ファイルに追加してデーモンを再起動してください:
/etc/tor/torrc
DNSPort 9053 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion
上記の設定で通常の DNS サーバーと同じように DNS リクエストを受け取って (上記の例ではポート 9053 を使用)、Tor ネットワーク経由でドメインを解決できるようになります。解決できる DNS クエリは A レコードなので注意してください。MX と NS クエリには返答しません。詳しくは Debian によるイントロダクション を参照。
tor-resolve
を使ってコマンドラインインターフェイスから DNS クエリを実行することもできます。例:
$ tor-resolve archlinux.org 66.211.214.131
全ての DNS クエリで TorDNS を使う
必要であれば、宛先に Tor を使って接続するのかどうかにかかわらず、システムからのクエリは全て TorDNS を使うように設定することができます。DNS サーバーとして 127.0.0.1 を使うように設定してから /etc/tor/torrc
の 'DNSPort' 行を以下のように編集してください:
DNSPort 53
また、dnsmasq や pdnsd などのローカルキャッシュ DNS サーバーを使うこともできます。TorDNS は伝統的な DNS サーバーと比べて少し遅いのでそれを補うことができます。以下では dnsmasq をセットアップする方法を説明します。
DNS リクエストを listen する設定をポート 9053 に変更して dnsmasq をインストールしてください。
dnsmasq の設定ファイルを以下のように編集:
/etc/dnsmasq.conf
no-resolv port=9053 server=127.0.0.1#9053 listen-address=127.0.0.1
上記の設定によって dnsmasq はローカルコンピュータからのリクエストのみ受け取り、TorDNS を上流の DNS サーバーとして使用します。それから /etc/resolv.conf
を編集して dnsmasq サーバーに問い合わせを行うようにしてください:
/etc/resolv.conf
nameserver 127.0.0.1
設定したら dnsmasq デーモンを起動してください。
dhcpd を使用している場合、resolv 設定ファイルが変更されないように設定を変更する必要があります。設定ファイルに以下を追加してください:
/etc/dhcpcd.conf
nohook resolv.conf
nohook 行が既に存在する場合、カンマで区切って resolv.conf を追加してください。
Torsocks
Torsocks を利用すると、アプリケーションの設定を変更することなく、Tor ネットワークを介してアプリケーションを使うことができるようになります。man ページより:
- torsocks は全てのインターネット接続を Tor ネットワーク経由にするために torsocks ライブラリとアプリケーションの間に挟まるラッパーです。
使用例:
$ torsocks elinks checkip.dyndns.org $ torsocks wget -qO- https://check.torproject.org/ | grep -i congratulations
トラブルシューティング
Problem with user value
tor デーモンが起動しない場合、root で次のコマンドを実行してください (もしくは sudo を使用):
# tor
以下のエラーが表示される場合:
May 23 00:27:24.624 [warn] Error setting groups to gid 43: "Operation not permitted". May 23 00:27:24.624 [warn] If you set the "User" option, you must start Tor as root. May 23 00:27:24.624 [warn] Failed to parse/validate config: Problem with User value. See logs for details. May 23 00:27:24.624 [err] Reading config failed--see warnings above.
User の値に問題があるとは /var/lib/tor
ディレクトリにあるファイルやディレクトリの所有者が tor になっていないことを意味します。以下の find コマンドで確認できます:
find /var/lib/tor/ ! -user tor
上記のコマンドで出力されたファイルあるいはディレクトリの所有者を変更する必要があります。ファイルごとに所有者を変更するには:
chown tor:tor /var/lib/tor/filename
もしくは上の find コマンドで出力されたファイルの所有権を全て変更するには:
find /var/lib/tor/ ! -user tor -exec chown tor:tor {} \;
これで Tor が正しく起動するようになるはずです。
修正しても tor サービスを起動できない場合、root でサービスを起動してみてください (tor ユーザーに切り替わります)。/etc/tor/torrc
ファイルの user の名前を変更します:
User tor
systemd の tor サービスファイル /usr/lib/systemd/system/tor.service
を以下のように修正:
[Service] User=root Group=root Type=simple
プロセスは tor ユーザーで実行されます。ユーザーとグループ ID を tor に変更して書き込み可能にしてください:
# chown -R tor:tor /var/lib/tor/ # chmod -R 755 /var/lib/tor
変更を保存したらデーモンを起動:
# systemctl --system daemon-reload # systemctl start tor.service
Tor-ブラウザのプロキシ問題
通常、tor-browser-binAUR は大幅なカスタマイズなしで動作します。以前にインストール/構成されバンドルされたプロキシが、いずれかの Web サイトで proxy server is refusing connections
というエラーで失敗した場合は、~/.tor-browser
ディレクトリを移動または削除して設定をリセットすることを検討してください。
Tor-ブラウザの空白の黒い画面
AppArmor を使用している場合は、必要なリソースへのアクセスを許可するように torbrowser プロファイルを更新して下さい。[5]、[6]:
/etc/apparmor.d/local/torbrowser.Browser.firefox
owner /{dev,run}/shm/org.mozilla.*.* rw,