(Markoの引用投稿)
こんにちは、
RPCインターフェースを介してgetinfoを呼び出すクライアントがある。host=localhostの場合はすべて正常に動作する。 しかし、別のホストにあるBitcoinにアクセスしようとするとできない。 Wikiを読んだところ、インターフェースは127.0.0.1からのリクエストのみを受け付けるとのことだ。これは今も変わらないのか? オーバーライドする設定はあるか?
なければ、各マシンにデプロイする「プロキシ」アプリを書かなければならないだろう。できれば避けたいのだが。
よろしく、 Marko
Quote from: Marko on September 27, 2010, 04:50:25 PM
Wikiを読んだところ、インターフェースは127.0.0.1からのリクエストのみを受け付けるとのことだ。これは今も変わらないのか? オーバーライドする設定はあるか?
まだ変わっておらず、オーバーライド設定はないと思う。ソースにハードコーディングされている。「プロキシ」アプリを書く代わりに、SSHトンネルが使える。例えばBitcoinインスタンスが「example.com」で動いておりSSHサーバーがあるなら、別のマシンからこうトンネルできる:
ssh -N example.com -L 9481:localhost:9481
これでローカルマシンのポート9481のRPCインターフェースが、暗号化されたSSHセッション経由でBitcoin RPCサーバーにトンネルされる。
JSON-RPCパスワードはクリアテキストで送信されるため(base64エンコードだが実質クリアテキスト同等)、接続の暗号化が必要だ。
Quote from: doublec on September 28, 2010, 12:51:22 AM Quote from: Marko on September 27, 2010, 04:50:25 PM
Wikiを読んだが、インターフェースは127.0.0.1からのリクエストしか受け付けないと書いてある。まだそうなのか? これをオーバーライドする設定はあるのか?
まだそうであり、オーバーライドする設定はないと思う。ソースにハードコードされている。「プロキシ」アプリを書く代わりにSSHトンネルを使える。例えば、Bitcoinインスタンスが「example.com」で実行されていて、そのマシンでSSHサーバーが動いている場合、別のマシンから以下でトンネルを張れる:
ssh -N example.com -L 9481:localhost:9481
これでローカルマシンのポート9481でRPCインターフェースを使え、暗号化されたSSHセッション経由でBitcoin RPCサーバーが動いているマシンにトンネルされる。
JSON-RPCパスワードはクリアテキストで送信されるため(実際にはBase64エンコードされているが、基本的にはクリアテキストと同等)、接続を暗号化した方がいい。
自分でBitcoinをコンパイルできるか? 最新のSVNにはlocalhostだけでなく他のインターフェースにバインドするオプションがある。できなければ、次のバージョン(0.3.13)にそれが含まれるはずだ。
SVNに”-rpcallowip=“スイッチがあり、指定したIPアドレスからRPCにアクセスできる。ただし、MITM攻撃に対しては安全ではない。
みなさん……フィードバックありがとう
SSHの方法は素晴らしい。ただし、マシンはすべてWindowsなので、すべてにインストールする必要がある。プロキシアプリを書くよりはましだけど……
数週間前の-rpcallowipスイッチに関するエントリを見た。必要なら自分でコンパイルする。とはいえ、公式リリースの方がいい。次のバージョンがいつリリースされるか知っている人はいるだろうか?
MITM攻撃の可能性については、公開するネットワークが信頼されていない場合にのみ問題になる。それとも見落としている他の影響があるだろうか?
自分のLAN上で使用する場合、例えばある場所に複数のサーバーがあって互いに通信する場合は安全だ。
0.3.13 RC1がWindows版で利用可能だ: http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe