公開日: 2009年10月26日 14:47:01
最終更新: 2012年9月22日 13:33:56

Stone でファイアウォール越えの実験

ポート転送(Stone によるトンネリング)

Stone over HTTPS を使ったファイアウォール越えを検証してみました。

Stone のコンパイル

OSを指定して make します。出来上がったバイナリを適当なディレクトリに配置するだけで使用できます。

sslで起動しようとすると"SSL_CTX_use_PrivateKey_file(/usr/share/ssl/certs/stone.pem) error" と怒られる場合は、秘密鍵を作成します。

Stone の基本的な使用方法

8080(proxy、webcache)へのアクセスをサーバ自身の80ポート(HTTP)へ転送したい場合は、以下のように Stone を実行します。

-d はデバグフラグ、最後に & をつけバックグラウンドで実行します。また、stone は root で実行する必要があります。
「-dd」とか「-ddd」というように「d」の数を増やすことでデバグレベルが変わるようです。

Stone を終了する

pgrep でプロセスを確認、pkill コマンドで殺します。

HTTPSを通ってファイアウォールを越える実験

プロクシ経由で遠隔地にあるサーバ機へ ssh 接続するための設定。

サーバ側の設定

443ポート(SSL)へのパケットを22ポート(ssh)へ転送する。また、すでに httpd などが443ポートを使用していると失敗する。

クライアント側の設定

ローカルポート10443からプロクシサーバを経由して ghouls.itbdns.com のポート443に接続する。

クライアントから接続する際は、ssh で TCPポートを10443に設定する。

リクエストの暗号化

クライアント側では、もうひとつstoneを起動し

とし、10444ポートに接続します。サーバ側では、

とします(443の後に、/sslをスペースなしでいれる)。