show log include yunabe

勉強したことの復習を兼ねて、IT関係(主にネットワーク/サーバ)についてまとめてます。

Softether Client 使い方

概要

自宅のオンプレサーバとIaaSで使っているクラウドを拠点間VPNで結ぶことでなんちゃってハイブリットクラウド環境を構築するのにSoftetherを用いて構築しました。
今回作った構成は小規模の構成のため、全てL2の1つのNWにまとめました。簡単に導入できかつ環境の管理をするのが非常に楽になりました。
今回前提としては既にSoftether Severが既に構築済であることです。 yunabe.hatenablog.com

インストール方法

softether client のダウンロード

wget http://jp.softether-download.com/files/softether/v4.27-9666-beta-2018.04.21-tree/Linux/SoftEther_VPN_Client/64bit_-_Intel_x64_or_AMD64/softether-vpnclient-v4.27-9666-beta-2018.04.21-linux-x64-64bit.tar.gz

ダウロードしたファイルを解凍

tar xvf softether-vpnclient-v4.27-9666-beta-2018.04.21-linux-x64-64bit.tar.gz

ファイルをデプロイ

cd vpnclient
make

作成したファイルを移動

cd ..
mv vpnclient /usr/local

権限を付与する

cd /usr/local/vpnclient/
chmod 600 *
chmod 700 vpncmd
chmod 700 vpnclient

起動スクリプトの作成

vim /etc/init.d/vpnclient

#!/bin/sh
#
# chkconfig: 2345 99 01
# 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

スクリプトに権限付与

chmod 755 /etc/init.d/vpnclient

起動コマンド

/etc/init.d/vpnclient start

GUIで使えるように設定する

cd /usr/local/vpnclient/
./vpncmd
※起動後2のManagement of VPN Clientを選択  

起動する際にパスワードを要求する

PasswordSet
※私はさらに自宅から以外からは許可しないようにクラウドのFWで設定をしました。

GUIで設定をできるように許可する

RemoteEnable
GUI使うためにはTCP:9930のポートを開ける必要があります。

Windowsのクライアントアプリを使用する

  1. 仮想インターフェイスを作成する(vpn_<指定した名前>がIf名になります)
  2. ifconfigをすると作成したインターフェイスが表示されます。
  3. 新規接続でsoftether VPN Sever で設定した宛先とユーザ名とを入力することでトンネルが張れます。
  4. 私の場合DHCPではなく固定でIPを指定したかったため以下のコマンドで起動時に固定でIPを振り分けています。
    vi /etc/sysconfig/network-scripts/ifcfg-vpn_<指定した名前>
DEVICE=vpn_<指定した名前>
BOOTPROTO=none
ONBOOT=yes
HWADDR=<作成した仮想インターフェイス>
IPADDR=<指定したいIP>
NETMASK=<指定したいサブネットマスク>
USERCTL=no

ネットワークインターフェイス再起動

service network restart

確認

これで他のL2で接続されている拠点にpingを打ってリプライが返ってくるようであれば成功になります。