「Hidden Service」の版間の差分
1行目: | 1行目: | ||
− | + | 本項では[[Tor]]におけるHidden Serviceの詳細や設定方法などを解説。 | |
+ | |||
+ | ==Hidden Serviceとは== | ||
+ | '''Hidden Service(秘匿サービス)'''とは[[Tor]]ネットワーク内においてサービス提供者、及びユーザーがお互いの招待を明かさない形で各種サービスを提供できる機能。アクセス側、サーバ側がそれぞれ3ホップのホストを経由し、Rendezvous Point(ランデブーポイント)<ref>サービス提供側によりランダムに選択され、ネットワーク内に放送される[[Relay]]ノード</ref>と呼ばれるホスト経由でアクセスすることにより実現される。通常のTor経由による一般サイトへのアクセスがExitノードを介したものになるのに対し、Hidden Serviceでは、Torネットワーク内で完結する点から点への接続が提供される。 | ||
+ | |||
+ | ==設定方法== | ||
+ | |||
+ | ===前提=== | ||
+ | * Torの導入が完了していること。 | ||
+ | |||
+ | ===設定手順=== | ||
+ | * <code>/etc/tor/torrc</code> <ref>ディストリビューションなどにより場所に差があり。Windowsではユーザーディレクトリ「Application Data\Tor」内に存在</ref>に以下のような記述を追加。 | ||
+ | <pre> | ||
+ | HiddenServiceDir /var/lib/tor/hidden_service/ | ||
+ | HiddenServicePort 80 127.0.0.1:80 | ||
+ | </pre> | ||
+ | |||
+ | 上記の例では、設定後、Torを再起動すると<code>/var/lib/tor/hidden_service</code>内に二つのファイルが生成される。<ref>Windowsの場合は任意のディレクトリを設定すること。</ref> | ||
+ | * hostname | ||
+ | * private_key | ||
+ | |||
+ | <code>hostname</code>にはonionアドレスが、<code>private_key</code>には<code>hostname</code>に対応するonionホスト名が含まれる。<code>private_key</code>の内容が漏れてしまうとhidden serviceが乗っ取られてしまう可能性があるため、厳重に管理。 | ||
+ | |||
+ | 尚、[https://github.com/ReclaimYourPrivacy/eschalot eschalot]などのツールを使用してアドレスを作成した場合はonionアドレスを<code>hostname</code>、private key blockを<code>private_key</code>に入れる。 | ||
+ | |||
+ | ===注意点=== | ||
+ | Linuxなどの場合、当該ディレクトリがTor実行ユーザー(Debianのパッケージマネージャーが使用されている場合、恐らくdebian-tor)がオーナーであり、読み取りユーザーが制限されていないと警告が出てTorの起動に失敗する。(<code>/var/lib/tor</code>以下再帰的に<code>go-rwx</code>かけてやるとOK) | ||
+ | |||
+ | 尚、指定するディレクトリが存在しない場合、やはり起動に失敗するので、空のディレクトリを作成すること。 | ||
+ | |||
+ | ==Hidden Serviceの特徴など== | ||
+ | * Hidden Serviceの設定はネットにアクセスでき、Torに接続できている限り、グローバルIPのないNAT内からでも可能。厳しいフィルタリングなどがかかりそもそもTorの接続が成功しない場合は[[Bridgeを使用したTorアクセス|Bridge経由による接続]]が必要になるかも。<ref>通常のプロバイダであれば問題ないはず。</ref> | ||
+ | * アクセスは任意のTCP/IPポートが設定できるため、IRCサーバや、SSHサーバなども可能。 | ||
+ | * <code>torrc</code>には複数の<code>HiddenServiceDir</code>、<code>HiddenServicePort</code>を設定することも可能なので、一つのサーバから複数のサービスを提供することも可能。 | ||
+ | * <code>HiddenServicePort</code>の入り口と出口は違っても構わないので例えば、80、8080など異なったポートで提供されるサービスを各onionアドレスのポート80で提供することも可能。 | ||
+ | * 間違ってグローバルIPアドレスなどを漏らさないようにウェブサーバなどの設定は注意。(127.0.0.1以外へのバインドはしないようにするべき。) | ||
+ | * HiddenServiceのアドレスは必ずしも127.0.0.1でも良い。ここにアドレスを指定するとパケットは転送されることになる。 | ||
+ | |||
+ | ==参考資料== | ||
+ | * [https://www.torproject.org/docs/tor-hidden-service.html 公式サイトによる解説] | ||
+ | |||
+ | ==脚注== | ||
+ | <references/> | ||
[[Category:Tor]] | [[Category:Tor]] | ||
8行目: | 50行目: | ||
[[Category:匿名ネットワーク]] | [[Category:匿名ネットワーク]] | ||
[[Category:オープンソース]] | [[Category:オープンソース]] | ||
+ | {{DEFAULTSORT:Hidden Service}} |
2015年7月8日 (水) 15:45時点における版
本項ではTorにおけるHidden Serviceの詳細や設定方法などを解説。
Hidden Serviceとは
Hidden Service(秘匿サービス)とはTorネットワーク内においてサービス提供者、及びユーザーがお互いの招待を明かさない形で各種サービスを提供できる機能。アクセス側、サーバ側がそれぞれ3ホップのホストを経由し、Rendezvous Point(ランデブーポイント)[1]と呼ばれるホスト経由でアクセスすることにより実現される。通常のTor経由による一般サイトへのアクセスがExitノードを介したものになるのに対し、Hidden Serviceでは、Torネットワーク内で完結する点から点への接続が提供される。
設定方法
前提
- Torの導入が完了していること。
設定手順
/etc/tor/torrc
[2]に以下のような記述を追加。
HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:80
上記の例では、設定後、Torを再起動すると/var/lib/tor/hidden_service
内に二つのファイルが生成される。[3]
- hostname
- private_key
hostname
にはonionアドレスが、private_key
にはhostname
に対応するonionホスト名が含まれる。private_key
の内容が漏れてしまうとhidden serviceが乗っ取られてしまう可能性があるため、厳重に管理。
尚、eschalotなどのツールを使用してアドレスを作成した場合はonionアドレスをhostname
、private key blockをprivate_key
に入れる。
注意点
Linuxなどの場合、当該ディレクトリがTor実行ユーザー(Debianのパッケージマネージャーが使用されている場合、恐らくdebian-tor)がオーナーであり、読み取りユーザーが制限されていないと警告が出てTorの起動に失敗する。(/var/lib/tor
以下再帰的にgo-rwx
かけてやるとOK)
尚、指定するディレクトリが存在しない場合、やはり起動に失敗するので、空のディレクトリを作成すること。
Hidden Serviceの特徴など
- Hidden Serviceの設定はネットにアクセスでき、Torに接続できている限り、グローバルIPのないNAT内からでも可能。厳しいフィルタリングなどがかかりそもそもTorの接続が成功しない場合はBridge経由による接続が必要になるかも。[4]
- アクセスは任意のTCP/IPポートが設定できるため、IRCサーバや、SSHサーバなども可能。
torrc
には複数のHiddenServiceDir
、HiddenServicePort
を設定することも可能なので、一つのサーバから複数のサービスを提供することも可能。HiddenServicePort
の入り口と出口は違っても構わないので例えば、80、8080など異なったポートで提供されるサービスを各onionアドレスのポート80で提供することも可能。- 間違ってグローバルIPアドレスなどを漏らさないようにウェブサーバなどの設定は注意。(127.0.0.1以外へのバインドはしないようにするべき。)
- HiddenServiceのアドレスは必ずしも127.0.0.1でも良い。ここにアドレスを指定するとパケットは転送されることになる。