2002年12月26日 木曜日

VPN over SSH

僕の家でのネット接続はNATなLANに対してなので、普通のクライアントだけという使い方では問題ないが、僕はコンテンツを見るだけの人ではないので、グローバルIPアドレス引けないところにいるのは、なんだかいただけないのである。そこでグローバルIPアドレスが引けるところ(ymzk.org)までVPNを張って、そこからIPv6な世界に飛び込もうと言う算段なのである。今回はお手軽にVPNを引けると言う話の、VPN over SSHの方法を家属MLでゆうじさんに習ったので、Linux(Debian)という環境に特化して、書いてみることにする。おそらくどの環境でも似た話だと思うが…
今回は、pppdでつないでみることにする。(というか、それで十分だと思う。)
なお「待ち受け側」まで込みのメモは、http://www.gentei.org/~yuuji/rec/pc/memo/2002/02/01/を参照のこと。
上記のメモだと SSH-1 で設定を行っているが、いまやどのOSのOpenSSHも SSH-2がデフォルトなんで、いまはSSH-2を使うこととする。鍵を作って公開鍵をVPNの接続先のサーバ管理者に送付する。公開鍵はこんな感じにして作る。(pppdはrootで実行なので、鍵は/root/.ssh 以下に作成することとする。) パスフレーズは ssh-agentを使えばちゃんと設定しても行ける気がするけども。今回はパスフレーズは空でためした。どうせ公開鍵を送って、秘密鍵を持っていないと接続できないんだし。
# ssh-keygen -t dsa
鍵の名前はわかりやすい名前にするといいかも。ホスト hogehogeにつなぐなら 秘密鍵:/root/.ssh/id_dsa-hogehoge, 公開鍵:/root/.ssh/id_dsa-hogehoge.pub 等とすればいいんじゃなかろうか。対話的に鍵のファイル名を聞いてくるので、まぁ適当に答える。
うまくsshで接続できるか確認。(/root/.ssh/known_hostsに接続先を登録するという意味合いもある。)
# ssh -2 -i /root/.ssh/id_dsa-hogehoge -l vpn hogehoge.foo.bar w
これで、すんなり w コマンドの出力が得られたら、sshの設定は完了。
次にpppdで処理するスクリプトを作成。/etc/ppp/vpnssh-hogehoge と言うシェルスクリプトを作って、実行属性を付けておく。

#!/bin/sh
exec ssh -2 -i 鍵ファイル -l vpn hogehoge.foo.bar /usr/sbin/ppp -direct loop-in
# pppd pty /etc/ppp/vpnssh-hogehoge noauth Local_IP_Address:Local_IP_Address

ここでのIPアドレスは適当で良いので、それぞれにルールを決めて割り当てる。ここで_noauth_を忘れないこと! 認証できないなんて言うエラーに悩まされることとなる。気に入らなかったら、/etc/ppp/option でauthと設定しているところをコメントアウトしてnoauthとすればいいはず。(これにえらいはまった。)

給料日

今日は給料日。年末調整で所得税が負の値になっているのに、この手取りはいったい…

つじあやの / 「恋する眼鏡」

昨日帰りにFMを聞いていて、声と何とも知れない脱力感が気に入ったので、早速購入。はじめて買ったCCCD。買うことはないと思っていたが、あっさり買ってしまいましたねぇCCCD。で、どっかで聞いたことがある声だと思っていたら、収録曲の「風になる」は映画「猫の恩返し」の主題歌だったのですか…
一応気になって、CD2WAV32 for Windowsなんかでリッピングしてみたんですが、問題なくリッピングできちゃうのは気のせいですか。