stoneによるSSLトンネル

先日、知人より「出先から自宅のPCを遠隔操作したい」という相談を持ち掛けられる
出先の回線はhttpのパケットは通るけど、UltraVNCとかTrueRemoteのパケットは通らなかった
そこで、過去の記事を流用で遠隔操作用のSSLトンネルを作ってみた


○パケットリピータstone を使った、暗号化トンネルと簡易Proxy
http://d.hatena.ne.jp/k-na_s/20110417/1303032653


遠隔操作にはThinVNCを使い、httpsでアクセスすることにより出先でstoneの起動を省く
クライアントはHTML5に対応している GoogleChrome を使うとする
ThinVNC
http://sourceforge.net/projects/thinvnc/



1.鍵・証明書の作成
鍵作成
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
鍵作成同様、項目には何も入力せずエンターキーで進める

私的通信の暗号化をするだけなので、入力項目は空欄の証明書でもよい
出来上がった server.key と server.crt は、stoneのフォルダに入れる
2.自宅のPC側 stoneの起動コマンド
stone.exe -z key=server.key -z cert=server.crt localhost:8080 443/ssl
この1行を 実行コマンド.cmd に保存する

外部からhttpsでアクセスされると、ローカルのTCP/8080に転送する
3.自宅のPC側 ThinVNCの設定
General で認証の ユーザID/PASS を設定し、他は初期状態
Start Server ボタンを押せばサーバが開始され、Stop Serverボタンを押せばサーバが停止する

解凍先の web フォルダ内の index.html を編集する
下の方の footer の項目あたりで、
copyright 以外の pnlfacebook と pnltwitter のspanタグ項目を削除する
こうすることで、FacebookTwitter への余計なアクセスをなくすことができる
(編集で分からなければスルー推奨)
4.いざ実行
自宅のPC側にて stone の 実行コマンド.cmd を実行し、ThinVNCでStart Serverする
ルータのポート解放で 443 を自宅PCに転送するように設定し、外部から
https://自宅のグローバルIPアドレス/
でアクセスする

認証画面が出てくるので3で設定したID/PASSを入力すると、遠隔操作が開始される


ここまで遠隔操作の設定をしたものの、最新バージョンを使えばhttpsが標準で対応していたことを知るorz
ThinVNC
http://www.forest.impress.co.jp/lib/inet/servernt/remote/thinvnc.html


こっちは30日の使用期限があるけど、個人での使用に限り無償ライセンス登録すれば引き続き利用できるとのこと
とりあえず、出先からでも遠隔操作をすることができたようなので良しとしよう


ZZZzzz