[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 にログインできれば実家のネットワーク環境を遠隔で見ることができます。

またひとつやりたいことが形になりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください