備忘録

○パケットリピータstone を使った、暗号化トンネルと簡易Proxy
・接続形態
クライアントPCからインターネット経由でWindowsサーバに暗号化トンネルを作成し、
Windowsサーバで稼働中のProxy経由で外部Webサイトにアクセスする

1.Opensslで鍵・証明書を作成(サーバ側で操作)
Windowsサーバにインストールしている Apache2.0 が Openssl同梱版だったため、
コマンドプロンプトで C:\Apache2\bin に移動する

鍵・証明書の作成をしようとすると「openssl.cnfが見つからない」というエラーが出るため、
ファイルパスを手動入力するため文末に”-config ../conf/openssl.cnf”を付け加える

また、証明書作成では有効期限が1年となっているため、
”-days 3650”を付け加えて有効期限を10年に変更する

鍵作成
openssl.exe req -new -nodes -keyout server.key -config ../conf/openssl.cnf
を実行し、必要事項を入力する

証明書作成
openssl.exe req -new -x509 -key server.key -out server.crt -days 3650 -config ../conf/openssl.cnf
鍵作成同様、必要事項を入力する
2.stoneの準備
stone 公式サイト
http://www.gcd.org/sengoku/stone/Welcome.ja.html
ここより 正式版stone をダウンロードし、適当なフォルダに解凍する
(サーバ側では C:\stone とする)

作成された server.key と server.crt を stoneを解凍したフォルダ(C:\stone)に移動する


・クライアント側のコマンドライン
stone.exe server:8082/ssl localhost:8081
pause
この2行をメモ帳で クライアント側起動用.cmd として保存する

・サーバ側のコマンドライン
stone -z key=C:\stone\server.key -z cert=C:\stone\server.crt localhost:8082 8081/ssl -- proxy 8082
pause
この2行をメモ帳で サーバ側起動用.cmd として保存する

server.key と server.crt を別の場所に置いたなら、パスを修正しておく
”-- proxy 8082”は、暗号化トンネルを復号化と同時に実行されるコマンドで、簡易型 http proxyを TCP/8082 にて起動するよう指定している

3.実行する
クライアント側起動用.cmd サーバ側起動用.cmd を実行し、
クライアント側のWebブラウザでProxyの設定で localhost:8081 を設定する

正しく設定出来ているなら、サーバのProxy経由で外部Webサーバにアクセスできる

診断くん
http://taruo.net/e/?
ここにアクセスし、判定 のIPアドレスで判断するのがいいかも
○参考情報

トンネル掘削機 - stoneで穴掘り
http://tdtds.jp/tunnel/digbystone.html

AN HTTPD+stone  OpenSSLを利用した秘密鍵と証明書の作成 
http://www.zeratinman.net/ssl/NT.html

Apache+OpenSSLのインストーラにopenssl.cnfがない
http://d.hatena.ne.jp/guangda/20100211/1265857245
・補足1
外部webサーバにアクセスする度にクライアント側で
connect to ”ほにゃほにゃ1”, but CN=”ほにゃほにゃ2”
というエラーが出る場合

サーバ証明書を作成時の
Common Name (eg, your name or your server's hostname) []:
のところに入力したドメイン(ほにゃほにゃ2)と、クライアント側のコマンドラインのサーバのドメイン
(stone.exe server:8082/ssl localhost:8081 のところの server(ほにゃほにゃ1))
が違っているために出るエラー

サーバ側にDynamicDNSを導入するとかで、
証明書とクライアントのアクセス先を同じドメインにするといいかもしれない
・補足2
ここで設定したTCPポートは、分かりやすく説明するために割り振ったものです
自分の環境に応じて変更し、サーバ側にルータ・ファイアウォールがある場合は設定したTCPポートを通すように設定してください
なおセキュリティ関連の設定をしてないため、分かりやすいTCPポートにしてると不正アクセスの温床になる可能性があることを留意してください
・補足3
自分で立てているProxyサーバを使いたい場合には、サーバ側のコマンドラインで
stone -z key=C:\stone\server.key -z cert=C:\stone\server.crt ”proxyサーバ”:”Proxyポート” 8081/ssl
とすればよい

あれこれと試行錯誤して SSL暗号化トンネルと簡易Proxy を作ったものの、
UT-VPN を使うのが無難で楽だと思った
ZZZzzz