2006年03月07日

PPP over SSH で複数アカウント

[ カテゴリ : memo - VPN over SSH ]

http://om.pizzica.to/archives/2006/02/vpn_over_sshvin.htmlで書いた奴のさらなる続き。

複数アカウントっつーか、1つのサーバSに、複数のクライアントC1,C2 がアクセスし、C1,C2 同士が通信できる状態にする方法。


1.
今までは、http://www.kmc.gr.jp/proj/vpn/server-setting.htmlのログインスクリプトでclient-IPアドレスを指定していたが、ここを空欄にする& auth 有効にする。

もぐら謹製は

/usr/bin/sudo /usr/sbin/pppd local proxyarp nocrtscts server-IP:client-IP nodetach ms-dns dns-IP noauth

であるが、うちの場合仮に Linux ppp サーバが 192.168.10.1 でクライアントが 192.168.10.2-4 とすると

/usr/bin/sudo /usr/sbin/pppd local proxyarp nocrtscts 192.168.10.1: nodetach ms-dns auth

とかいうことになる。


2./etc/ppp/pap-secret に複数のアカウントと IP アドレスを書く。
(chap-secret でもいいんだろうが、ssh 通してるからどっちでもいいだろ)

書き方は

account1 * "password1" 192.168.10.2
account2 * "password2" 192.168.10.3
account3 * "password3" 192.168.10.4

とかになる。(これを使ってもらうために"auth" が1で必要。)

このアカウントとパスワードは Windows のダイアルアップ接続のユーザー名・パスワードになる。
つまり、ユーザー名ごとに割り当て IPアドレスは固定される(自分はそのほうが都合がいいのでそうしてる。)。

あとは、アカウントとパスワード使って繋ぐだけ。
2カ所から繋ぐと、それぞれの クライアント側で適当な Netmask 指定で routing 情報が入ってる状態になってる。
コマンドプロンプトで route PRINT 192* とかやれば、192.168.0.0/16 あたりへの Gateway が設定されてるはず。

で、ping でもなんでも、192.168.10.2 と 192.168.10.3 の間で通ってればよし。

要するに、複数箇所から同じネットワーク(この場合192.168.0.0/16) に ppp でつなげるってことだ。

---
(加筆2006/3/8)
なお、IPアドレスを動的に割り当てたい(固定したくない)場合は、pap-secret の書き方を
account4 * "password4" 192.168.1.240/28+
とかやると、240-255 の範囲で動的に割り当てられるようだ。

投稿者 JK : 17:03 | トラックバック

2006年02月20日

PPP over SSH(Vine がサーバ/Win2K がクライアント)

[ カテゴリ : memo - VPN over SSH ]

まぁ、出先でサーバのファイルを秀丸で編集したいとかいうときのために。

もぐらプロジェクトの設定を Vine でやったときのメモ。

もぐらプロジェクトの説明が微妙に実際と違う部分とかがある。
たとえば、インストール時に自分でデバイスの追加をやらなくても、
たぶんインストーラが勝手にネットワークアダプタデバイスを登録してくれるのだが、
手動でやれとか、そのへん。


なお、複数から同時に接続したい場合は
http://om.pizzica.to/archives/2006/03/ppp_over_ssh.html
も参照のこと。

クライアント側設定1:
もぐらの説明 http://www.kmc.gr.jp/proj/vpn/install-w2k-img.html
を見ながらやるのがいいんだが、項目3を先にやれば、項目2のドライバのインストールはやらなくていい。

1.
http://www.kmc.gr.jp/proj/vpn/release/PPPoverSSHTool-0.3-pre2.zip
を落とし、展開し、msi ファイルを開いて installer まかせ。

msi ファイルが関連づけがなくて開けない場合は、Windows Installer 2.0 ってのが必要。
http://support.microsoft.com/default.aspx?scid=kb;ja;292539
で手に入るそうで。

2.ドライバがインストールされていることを確認し、作業続行。
要するに、もぐらの説明の2-1~2-16をすっとばして、2-17に行く。
インストールされていなければ、2-1からの手順をやればいいのだろう。

3.鍵準備
もぐらの説明の4をやる。

ここで、ダイアログを閉じる前に「Public key for pasting into OpenSSH authorized_keys file」って欄に書いてある意味不明の文字列はコピーしておく。
後でサーバ側の ~/.ssh/authorized_keys に書いておかないといけないので。


鍵を作るときに、使う ssh protocol の version が決まるので、注意。
普通に Vine でやるなら、SSH2 の DSA鍵とかでいいんじゃないかと。

でも、環境によっては、SSH1 の RSA でだけうまくいったりする不思議。
後でうまくいかないときに、sshd の認証がうまくいってない場合は、
鍵かえてみるといいかも。

ここで、クライアント側は一休み。サーバ側設定に入る。

Vine 側PPP over SSH

1.pppd 入れる。ppp パッケージに入ってるので
# apt-get install ppp

2.sudo 入ってないなら入れる(いつも入れなくても入ってる気がする)
# apt-get install sudo

3.http://www.kmc.gr.jp/proj/vpn/server-setting.html
に従って設定するw

さきほど鍵作ったときにコピっておいた情報を使いますね。

4./etc/ppp/pap-secret で PPPパスワード設定
username * "password"
これは、Windows 側のダイアルアップ画面での username/password になる。
"" はこのファイルでは記述するが、パスワードはその内側部分になる。

クライアント側設定2
もぐらの説明 http://www.kmc.gr.jp/proj/vpn/install-w2k-img.html
の、項目5以降をやる。

サーバ側追加設定
お好みで、 Vine 側で samba とか走らせて、/etc/samba/smb.conf の hosts allow でIPアドレス制限かけるなり、iptables で制限かけるなりあれやこれやしてやるとかして楽しむ。

なお、ssh での接続は vpnacct 権限で行われるが、
そこを経由して起動した pppd で IP connection は別に vpnacct と関係ないものなので、
ppp パスワードを共有してかまわないのなら、vpnacct は1コあればいい。
たとえば、samba で二人がつなぐ場合は、それぞれ Windows ファイル共有のユーザー名、パスワードが異なるので、二人が vpnacct で PPPoverSSH していたとしても、samba に渡るユーザーは別々になる等々。

samba 以外はどうかっつーと、、、、、SSH で port forwarding すればいいと思うけど、
local port で listen とかやりたくないなら、まぁ好きにやればいいかと。

Windows 側で、コマンドプロンプトで route PRINT とかやって、ルーティング把握してないと混乱するかもね。


追記。2006/3/7
Windows から接続するときに、ループバック接続がどったらってエラーがでることもあるが、しつこくやると繋がる。
しつこくやるのがイヤな場合、/dev/pts/ の中のファイルが足りないのが問題らしいので、
ダミーで ssh 接続を同時に3つくらい繋いで(TeraTerm とかで)、すぐ3つを閉じてからやるとうまくいったりとか。
(/dev/pts/ のファイルが増えて、減る前に繋ぐ。いつ減ってるのかはまだわかんない)

もうちょい本質的な修正方法もありそうなもんだが、今は不明。
そもそも TeraTerm でやると増えて、それ以外だと増えないというのはなんでなんだろ~。

投稿者 JK : 22:33 | トラックバック