トップ 最新 追記
RSS feed

ただのにっき


2002-10-16(水) [長年日記]

Zebedee(3)

昨日の続きをする。といっても、サーバへの仕込みは夕べのうちにやっておいたので、そのメモ。

ようするにhttpd(443)で待ち受けて、ssh(22)へトンネルするように設定フィルを書けばいい。Windows版のZebedeeで.zbdという拡張子が割り当てられていたのにヒントを得て、こんな感じのファイル、zebedeedを書く。実行属性を付ければそのまま実行できる。

#!/usr/local/bin/zebedee -f 
server true
serverport https
redirect ssh
logfile '/var/log/zebedee.log'
target localhost

HTTPS proxyを通さない場合は、クライアントから以下のように直接443につなげられればOKである。

client% zebedee -d -e 'ssh -p %d localhost' -T 443 server:ssh
zebedee(2875/1024):  waiting for client connection
zebedee(2875/1024):  accepted connection from 127.0.0.1
zebedee(2875/1024):  tunnel established to server port 22
 
server% _

stunnel

トンネリング実験第3弾はstunnelなんだけど……やっとautoconf対応のが出てきたよ(笑)。stoneもZebedeeも、Makefileしか入ってなかったからなー。

というわけで簡単にインストールまでできたのだが、こんどは日本語のいい教科書がWeb上で発見できなかった。今日はここまで(笑)。もっとも、SSLだとまずいかも、という昨日の考察を踏まえれば、stoneもstunnelも使わないのが得策か。

それにしても、こないだのstoneによるトンネリング成功でやめときゃぁいいのに、すっかりトンネル掘りが楽しくなって、いわゆる「手段の目的化」状態である。Htunの存在も教えてもらったし(そう言えば名前だけは聞いたことがある)、しばらく楽しめそうな気配である。

Zebedee(4)

さて、防火壁の内側で接続する。こっちも設定ファイルを書くことにしよう。HTTP/HTTPS proxyへのトンネルを掘っているstoneはそのままにして、SSL化を担当している末端のstoneをkill。そして以下のzebedee-clientを実行する。

#!/usr/local/bin/zebedee -f
include '/home/sho/.zebedee' # private key
server false
localsource true
logfile '/home/sho/var/log/zebedee.log'
serverhost localhost
serverport 10443
tunnel 10022:localhost:ssh

なんか、zebedeeの-dオプションの意味が逆転しているような気がするなぁ。まぁいいや、これでsshできるようになる。

% ssh -p 10022 localhost

Zebedee(5)

特定の一ヶ所へのトンネルは掘れたけど、日常的に使っている外部ホストは五本の指では足らない。特にSourceForgeのCVSは、使えると嬉しい。こいつらへのトンネルも欲しいところだが、あいにくおれは、これらのホストのrootではない。

しかし、Zebedeeは(というかたいていのトンネリングソフトは?)そこからさらに別のホストをターゲットにすることができるので、これを設定しよう。「server」のzebedeedはこんな感じに変更。

#!/usr/local/bin/zebedee -f 
server true
serverport https
redirect ssh
logfile '/var/log/zebedee.log'
target localhost:ssh
target server2:ssh

「server2」への接続要求は、「server」のZebedeeからさらにコネクションを延ばされる。「client」のzebedee-clientはこうする。

#!/usr/local/bin/zebedee -f
include '/home/sho/.zebedee' # private key
server false
localsource true
logfile '/home/sho/var/log/zebedee.log'
serverhost localhost
serverport 10443
tunnel 10022:localhost:ssh
tunnel 10122:server2:ssh

10022に接続するとlocalhost(server)のsshに、10122に接続するとserver2のsshにつながる。図にするとこんな感じか。ちなみにフォントには、いま話題のみかちゃんフォントを使用(意味なし)。

Zebedeeマルチターゲットの図

めでたしめでたし……と言いたいところなんだけど、残念ながら上の設定はまだ動いていない。serverへの接続はうまくいくんだが、server2へsshしようとすると、server2の名前が解決できない(社内LAN上なので外のDNSが引けない)。まぁ、~/.ssh/known_hostsに毎回異なる「localhost」を追加しようとするのも困るので、ここは/etc/hostsでserver、server2ともに127.0.0.1というIPアドレスを持つことにしてしまう。

これでいいだろ、と思ってリトライしてみたら、今度はこんな風になった。

% ssh server2
Permission denied (publickey,keyboard-interactive).

メッセージをGoogleしてみるとssh2での接続に失敗した時に出るそうなのでssh1にしてみるも、「Permission denied.」となって同様。他の解決策には「/dev/ttyに書き込み権限がないのでは」なんてのがあったけど、いったいどこのttyの話やら(笑)。

うーん。わからん。頭を冷やして考え直そう。

本日のツッコミ(全7件) [ツッコミを入れる]

Before...

ただただし [そこは見たんだけど、凝った使い方してないから、今回のような複雑なトンネリングをする方法がわからなくって(汗]

(ふ) [わたしのは over HTTPじゃないので参考にならないかと。]

ほそのひでとも [stunnel-4.0はstunnel-3.22以前とはほとんど別ものです。> たむらさん]

ほそのひでとも [たださんに於いてはぜひsslwrapも試して頂いてSSL中継プログラム全制覇をお願いしたい(笑)。]

はんばあぐ [みかちゃんフォントのリンクがおかしいような気がするのですが。]

ただただし [ありゃ、ホントだ。直しました。]


2002-10-15(火) [長年日記]

Zebedee

トンネリング実験第二弾はZebedee

stoneはSSLに化けてhttpsの上に乗っかることができたので、職場のproxyを乗り越えるのに使ったが、ZebedeeはSSLを使っているわけではない(?)ので、この手のごまかし用途には向かない気がする(のだけれど、実のところはどうだろう?)。

そこで、職場内のLinuxホストにWindowsクライアントからtelnetで乗り込むところをトンネル化することにした。

このLinuxホストは、telnet接続をlocalhostからしか認めていない。つまりトンネリング前提の設定なのだが、今まではsshを使ったトンネリングを設定していた。このsshを使った方式の難点は、(たとえssh-agentを使うにしても)必ず一度はパスフレーズを入力しなければならない点である。Zebedeeでここを簡略化しよう。

インストール方法は省略。このへんを参考にした。利用するライブラリが決め打ちなので、素直に従った。Windows版はバイナリ持ってきて終わり。

単にトンネリングするだけなら簡単すぎなので、ちゃんと特定クライアントからのアクセスだけを許可するようにしないとね。まずはクライアントで秘密鍵(client.key)とそのfinger printを生成。Cygwin上でzshを使っているので区別がつかないが、Windowsである。

client% zebedee -p > client.key
client% zebedee -P -f client.key
ce49ea463b5a438ce260c07197cb0434e738a008 client

表示されたfinger printは、server上の/etc/zebedee/server.idにでも入れておこう。続いてサーバの設定と起動。

server% cat /etc/zebedee/server.conf
server true
redirect telnet
checkidfile '/etc/zebedee/server.id'
 
server% zebedee -f /etc/zebedee/server.conf

あとは、クライアント側を起動して、telnetでつないでみる。

client% zebedee -f client.key 23:server:23
client% telnet localhost 23
 
Kondara MNU/Linux 2000 (Sushi)
Kernel 2.2.16-5k on an i686
login:

「-f client.key」を指定しないと接続できないことも確認したから、これでOKだろう。サーバ側のlisten portは1024より大きな数字なので一般ユーザでも実行できるけど、いちおうzebedeeというユーザを作ってその権限で動くようにしておいた。

うーん、確かに簡単だ。外部とのトンネルにも使ってみたいが……。

tDiary: 本日のハンティング

Masaki's irresiponsible daysを捕獲。

Rava

わははは、すげー。pure RubyのJavaVMだって〜。

こういうの見ると、感動しちゃうなー。この上でJRuby動かすとか、夢は広がるよねっ(広がりません)。

Zebedee(2)

「ごまかし用途には向かないかも」と書いたけど、よく考えてみるとSSLを使っている場合、proxy管理者がふと疑問に思ってそのサイトにHTTPSでアクセスしたら、その先がSSHにトンネルされてるなんてことはモロわかりなのだ。

% w3m -dump_head https://server/
SSH-1.99-OpenSSH_3.4p1
Protocol mismatch.

てね。

ということは、下手な文字列を返してこない、しかも公開暗号鍵を使って見知らぬホストとの通信はいっさい行わない、Zebedeeを使った方が安心なんじゃねーの?

だとすると、こないだの図にある両端のstoneはZebedeeに置き換えた方がいいということになる。うーん、奥が深い。

本日のツッコミ(全2件) [ツッコミを入れる]

arton [なるほど。参考になります。]

Kenji [ssh の鍵にパスフレーズなしなら?]


2002-10-14(月) 300m [長年日記]

昨日の日記を補完。

カーコンビニ倶楽部

こないだ擦ったところを直しに、駅の向こうのカーコンビニ倶楽部へ。

見積もってもらったら、わりと複雑なへこみ方をしているので予想外の金額になってしまい、がっくり。しかも預かりになるし。仕方がないので歩いて帰る。

どんなキズでもその場で直してくれるわけじゃないんだな。

tDiary: 本日のハンティング

タレコミにより、アフロロボ雑記4世えせにき〜を捕獲。

それからとらねこ放浪記経由でとのす日記いやはや日記すばらしきMMHPを捕獲。「tDiary.NET に次ぐtDiaryのホスティングサービス」って書いてあるけど、そうなの?

tDiary: YYYYMMDD.html形式

html_anchor.rbなんて……そんなの知らない……。アンカーの形式は個人の好みがあるから入れるのはやめておこうって話があったじゃないか。誰が入れたんだ、誰が。

% cvs log html_anchor.rb
(中略)
revision 1.1
date: 2002/04/03 05:01:50;  author: tadatadashi;  state: Exp;
        add html_anchor plugin.

……って、おれじゃん!!

いやいや。たまにこうやって凡ミスをしておくと、「たださんも失敗するんだ〜」てな感じで好感を持たれたりするかも知れないじゃないか。計算ですよ、計算。……なわけねーだろ。バカかおれは。くー(泣)。

それはそうと、ErrorDocumentを使う方式をサポートするコードをindex.rbに入れたので実験的にローカルで使って見ているのだが、どうもうまく動かないときがある。トップページから特定の日に飛んで、そこから「最新」を押してトップに戻る。すると、しばーらく待たされたあとに空っぽのページが表示されてしまう。Apacheのログをみると、403を返していることになっている。

実験できるサイトとしてはこま犬ライブラリがそう。ブラウザを選ぶみたいで、Galeon(つまりMozilla)ではこの現象が起こる。w3mだと起こらない。たぶん、たまてばこがトラッキングできないのもこのせいじゃないかな。

同じ方式を採用していても問題のないサイトもあるので、Apacheの設定でなんとかなるような気がするんだが、よくわからない。謎だ。これが解決しないとStableの方に入れられないなぁ。

tDiary.Netで使えるプラグイン

tDiary.Netのプラグインに関する問題。いちおう、tDiary.Netについてでそれらしきことは書いてあるんだけど、まぁ、tDiary.NetとtDiaryの混在に問題があるのは認める。

ホントはさ、tDiaryの開発はtdiary.orgで、レンタルサービスはtdiary.netで……てな感じにできればよかったんだけどね、.orgは取られちゃってたし(ってそういう問題か?)。これで、devel-MLで出ていた「プラグインの更新情報を伝えるページ」ができたりしたら、さらに混乱に拍車がかかるよねぇ……(笑)。って笑いごとじゃねー。

本日のツッコミ(全4件) [ツッコミを入れる]

Oかもと [いや、「日記作成CGIを作った」とその人の日記に書いてあったので、 そのうち拡大する可能性はあるかと思って(^^;;]

ぼん [お初にお目にかかります。今は空いているみたいですね ^^; <tdiary.org]

woods [しんちゃんとこのれんたるtDiaryの立場は?(とか)]

Y田 [はじめまして。tDiaryのホスティングサービスとタレこまれたものです。仲間内には拡大しているのですが公開するにはサ..]


トップ 最新 追記
RSS feed