stoneでproxyを騙してトンネル堀り

 2012-12-22
stoneという軽量でシンプルで使いやすいリピータソフトを用いて穴掘り。
 

用意するもの


環境

  • クライアントはWindows
  • 透過プロキシが暗躍していて自由に外出できないネットワーク
  • 外部サーバはLinux(今回はfedora)
  • 外部サーバはポート443に接続可能であること

イメージ

stone.png

参考文献



なんのことはない、参考文献で紹介されていることをそのままやっただけなのだ。

サーバ側の準備

ソースを落としてきてmakeするだけでok
今回はssl暗号化を使用する予定なので以下のように打つ。
 make linux-ssl 

すると、無事に実行バイナリが出来… ないので、多少修正する。Makefile内で linux: のブロックでコンパイルオプションを列挙している行に、 -D_GNU_SOURCE を追加しておくと良いらしい。
改めてmakeすると、無事にバイナリができるはずです。

バイナリが出来たら適当にマニュアル見ながら遊んでみてください。外と通信するものなのでよく理解できるまでじっくり遊びましょう。
だいたいわかってきたら実際に使ってみます。とりあえず下記の起動スクリプトを書いた。

上記を適当な名前(たとえばstart_stone.shなど)で保存して実行権限をつけてやれば、動く。はず。
linuxの流儀には沿ってはいない。とりあえず動けば良しのスクリプト。ポート443がlistenされてなければ、stoneを起動するという内容。ログの行数制限もしてる。お行儀の悪いスクリプト。でも動くからいいのだ。 のだ。
STONEstoneの実行バイナリのpath
CHDIRchroot先。できれば何もないところを指定するといい
LOG_ACCアクセスログのpath
LOG_ERRエラーログのpath
LOG_MAXLINEログファイルの最大行数


上記をrootのcronに登録して30分なり15分なりで定期実行させる。もしstoneが落ちても再度立ち上がるのだ。


クライアント側の準備

Windowsのstoneのバイナリが配布されているのでそれを持ってくる。
あとは同様にちょっと遊んでみて、分かったら実用してみる。

上記を適当な名前(たとえばstart_stone.bat)をつけて保存してダブルクリックすれば動く。はず。
STONEstoneの実行バイナリのpath
ENEMY_PROXY乗り越えたいプロキシサーバ名 or IP
ENEMY_PROXYPORT=8080乗り越えたいプロキシサーバのポート番号
PORT_LOCALLISTENローカルでlistenさせたいポート番号
PORT_LOCALECHOssl暗号化のためのワンクッション、通常は意識する必要はない
PORT_SERV外部サーバで待ち受けているポート番号。
443以外にしてしまうとプロキシで弾かれる危険が大きい
SERV_NAME外部サーバ名 or IP


動きましたか

stonewin.png
クライアントでstoneを起動して上記のように出ればok なんかエラーが出たり、一瞬でウィンドウが閉じてしまったりしたら失敗です。原因を探しましょう。

使いましょう

localhost:22と外部:22がトンネルされているので、localhsot:22にsshすると無事につながると思います。
あとはPort forwardingでもしてお出かけを楽しみましょう。

おやくそく

これを真似してなんかあっても私は知りませんよ。
文字通りセキュリティに穴を開けることになるので十分考えてから遊びましょう。


 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/94-89b13a37
≪ トップページへこのページの先頭へ  ≫