yuu_nkjm blog
2011-11-25(Fri) [長年日記] 編集
[ssh][Stone] StoneによるSSH over HTTP(HTTPS)
HTTP Proxyを介してしか,インターネットに出られない.しかし,インターネット上にあるサーバの管理をする必要があるんだよ!ってときに頑張ってトンネルする方法.
ダウンロード
[nkjm@info ~/src]$ wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz [nkjm@info ~/src]$ tar zxf stone-2.3e.tar.gz [nkjm@info ~/src]$ cd stone-2.3d-2.3.2.7/
コンパイル
[nkjm@info ~/src/stone-2.3d-2.3.2.7]$ vi Makefile # 以下のように編集. linux: $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE $(FLAGS)" LIBS="-lpthread $(LIBS)" stone [nkjm@info ~/src/stone-2.3d-2.3.2.7]$ make linux-ssl
stoneをLinuxでコンパイルする ≪ 突然消失するかもしれないブログによると,Makefileで-D_GNU_SOURCEというオプションを指定すれば,64bit OS上でコンパイルできるようになるらしい.makefileからlinuxの項を見つけ出し,オプションを追加してからmake.
また,コンパイル時に,openssl/crypto.hがないよというエラーが出た場合は,yastでlibopenssl-develを入れる.
SSLの設定
[nkjm@info ~/src/stone-2.3d-2.3.2.7]$ openssl req -new -outform pem -out stone.cert -newkey rsa:1024 -keyout stone.key -nodes -rand ./rand.pat -x509 -batch -days 35600 cat stone.cert stone.key > stone.pem cp -a stone.pem /etc/ssl/certs/
サーバ側の実行
stone -p localhost:22 443/ssl
クライアント側の実行
クライアントがWindowsであれば,Windows用のバイナリを拾って来て使う.
stone -p localhost:10443/ssl 10022 -- proxy:8080/http 10443 "CONNECT server:443 HTTP/1.0" とか stone -p localhost:10443/ssl 10022 -- server:443 10443
[ツッコミを入れる]