発呼(クライアント)側、待ち受け(サーバ)側それぞれの設定。
発呼→待ち受け、間でパスワードなしでsshコネクションが張れるよう にしておく。待ち受け側にvpnユーザを作り、空パスフレーズのRSAキーな どを ~vpn/.ssh/authorized_keys に登録しておく。
まず、ssh経由でサーバのpppdを呼び出すシェルスクリプトを作る。
#!/bin/sh exec ssh -1 -l vpn -i /root/.ssh/vpn Remote /usr/sbin/ppp -direct loop-in
#!/bin/sh exec ssh -1 -l vpn -i /root/.ssh/vpn Remote /usr/sbin/pppd file vpn.option
これら二つのスクリプトのファイル名を /etc/ppp/vpnssh としよう。これらのシェルスクリプトをクライアントとなるpppプロセス で利用するように設定ファイルを書く。
vpn: allow user root set timeout 0 set log phase chat connect lcp ipcp command set device !/etc/ppp/vpnssh set dial set login set ifaddr 10.2.0.10 10.2.0.1 #←IPアドレスは適当 set server /var/tmp/loop.2 "" 0177
とくに準備必要なし
loop-in: allow user vpn set timeout 0 set log phase chat connect lcp ipcp command set escape 0xff allow mode direct
# cd /etc/ppp # echo 'privgroup vpngrp' >> options (vpngrpはユーザvpnが属するグループ名)
このファイルはクライアント側の vpnssh スクリプトの pppdに与える引数として利用している。# cat > vpn.option proxyarp noauth notty ^D
# ppp vpn ppp> dial
netbsd# pppd pty /etc/ppp/vpnssh 10.2.0.10:10.2.0.1 (IPアドレスは適当)