[SoftEther VPN] Peppermint 起動時に VPN Client を自動起動させる方法
Peppermint の情報
Peppermint 6 です。
$ cat /etc/os-release
NAME="Peppermint"
VERSION="Six"
ID=peppermint
ID_LIKE=debian
PRETTY_NAME="Peppermint Six"
VERSION_ID="6"
HOME_URL="http://peppermintos.com/"
SUPPORT_URL="http://forum.peppermintos.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/peppermint/"
$
起動スクリプトの作成
/etc/init.d/vpnclient というファイル名でスクリプトを作る。
$ cat vpnclient
#!/bin/sh
# description: SoftEther VPN Client
DAEMON=/usr/local/vpnclient/vpnclient
LOCK=/var/lock/subsys/vpnclient
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
以上のような非常にシンプルなスクリプトで十分である。
ファイルのオーナーを root にしてパーミッションを変更しておく
$ cd /etc/init.d $ sudo chown root:root vpnclient $ sudo chmod 755 vpnclient $ ls -l vpnclient -rwxr-xr-x 1 root root 388 9月 23 22:52 vpnclient $
OS 起動時に実行するようにする
以下をやる。
$ cd /etc/init.d $ sudo update-rc.d vpnclient defaults 99 update-rc.d: warning: /etc/init.d/vpnclient missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> Adding system startup for /etc/init.d/vpnclient ... /etc/rc0.d/K99vpnclient -> ../init.d/vpnclient /etc/rc1.d/K99vpnclient -> ../init.d/vpnclient /etc/rc6.d/K99vpnclient -> ../init.d/vpnclient /etc/rc2.d/S99vpnclient -> ../init.d/vpnclient /etc/rc3.d/S99vpnclient -> ../init.d/vpnclient /etc/rc4.d/S99vpnclient -> ../init.d/vpnclient /etc/rc5.d/S99vpnclient -> ../init.d/vpnclient $
update-rc.d コマンドというのがある。これを実行する。
Peppermint を再起動する
再起動したらすぐに ifconfig, netstat で確認する。
$ ifconfig vpn_to_hgsnkn vpn_to_hgsnkn Link encap:Ethernet HWaddr 00:ac:8e:96:2d:6f inet addr:10.1.0.7 Bcast:10.1.0.255 Mask:255.255.255.0 inet6 addr: fe80::2ac:8eff:fe96:2d6f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:388 errors:0 dropped:0 overruns:0 frame:0 TX packets:339 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:38911 (38.9 KB) TX bytes:36754 (36.7 KB) $ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0 10.1.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vpn_to_hgsnkn 172.16.1.0 10.1.0.1 255.255.255.0 UG 0 0 0 vpn_to_hgsnkn 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 $
僕の設定では、VPN クライアントの仮想 NIC は vpn_to_hgsnkn という名前です。
この仮想 NIC に VPN サーバがローカルブリッジする先のセグメントである 10.1.0.0/24 の IP が UP していれば良い。
netstat-rn では 10.1.0.0/24 宛と 172.16.1.0/24 (VPN サーバの更に先にあるセグメント) 宛のルート情報が確認できれば問題なし、となる。
雑感
Peppermint は Ubuntu ベースなので、Ubuntu ベース (Debian ベースもかな) の他のディストリビューションも同じようにできるかもしれません。
今後できるようになったこと
Peppermint は実家の岡山にあって普段僕は東京で暮らしています。
実家のネットワーク環境に入りたいと思ったら、両親に Peppermint のパソコンの電源を立ち上げてもらえば、僕はどこにいても実家のネットワークに入れることになります。
Peppermint 上で SSH サーバを動かしているので、Peppermint が起動して VPN サーバにつながってしまえば、遠隔で Peppermint にログインできるようになります。
Peppermint にログインできれば実家のネットワーク環境を遠隔で見ることができます。
またひとつやりたいことが形になりました。