Raspberry PiにSoftEther VPN Server

こんにちは、サイオステクノロジー技術部 武井です。今回は、Raspberry PiにSoftEther VPN Server入れてみました。SoftEther VPN Serverの詳細は下記をご覧下さい。

https://ja.softether.org

構成

構成は以下のとおりです。

手順

VPNクライアントにSoftEther VPNクライアントをインストールすると、仮想NICが作成されます。その仮想NICはSoftEther VPNサーバー内に作成された仮想HUBとつながっていて、さらに仮想HUBはRaspberry Piの物理NICとローカルブリッジ接続されているので、VPNクライアントはあたかもvlan3のセグメントにL2で接続されているように見えます。

以下、設定方法になります。まずはSoftEter VPNサーバーのインストール方法です。

SoftEther VPNサーバーをダウンロードします。以下のリンクにアクセスします。
https://www.softether-download.com/ja.aspx?product=softether

以下を選択します。

コンポーネントを選択:SoftEther VPN Server
プラットフォームを選択:Linux
CPU を選択:ARM EABI(32bit)

ダウンロードリンクの一番上部に表示されている「SoftEther VPN Server」をクリックしてダウンロードします。

# tar xzvf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-arm_eabi-32bit.tar.gz
# cd vpnserver
# make

先ほどダウンロードしてきたファイルを解凍してmakeします。

--------------------------------------------------------------------

SoftEther VPN Server (Ver 4.22, Build 9634, ARM EABI) for Linux Install Utility
Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.

--------------------------------------------------------------------


Do you want to read the License Agreement for this software ?

 1. Yes
 2. No

Please choose one of above number:
1

1を選択します。

Did you read and understand the License Agreement ?
(If you couldn't read above text, Please read 'ReadMeFirst_License.txt'
 file with any text editor.)

 1. Yes
 2. No

Please choose one of above number: 
1

1を選択します。

Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number: 
1

1を選択します。

VPN Tools>Check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール

Copyright (c) SoftEther VPN Project.
All Rights Reserved.

この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...

'カーネル系' のチェック中...
              [合格] ○
'メモリ操作系' のチェック中...
              [合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
              [合格] ○
'ファイルシステム' のチェック中...
              [合格] ○
'スレッド処理システム' のチェック中...
              [合格] ○
'ネットワークシステム' のチェック中...
              [合格] ○

すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。

コマンドは正常に終了しました。


--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !

The preparation of SoftEther VPN Server is completed !と表示されればインストール成功です。

# cd ..
# mv vpnserver /usr/local

解凍して出来たディレクトリを/usr/local配下に移動します。

# cd /usr/local/vpnserver/
# chmod 600 *

所有者に読み取り書き込み権限をつけます。

# chmod 700 vpncmd
# chmod 700 vpnserver

実行系コマンドに実行権限をつけます。

# ./vpncmd

SoftEther VPN Serverが、この環境でちゃんと動くかどうかをチェックします。。

vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.22 Build 9634   (Japanese)
Compiled 2016/11/27 15:23:56 by yagi at pc30
Copyright (c) SoftEther VPN Project. All Rights Reserved.

vpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 3

3を選択します。

VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。

VPN Tools>check

checkコマンドを実行します。

Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール

Copyright (c) SoftEther VPN Project.
All Rights Reserved.

この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...

'カーネル系' のチェック中...
              [合格] ○
'メモリ操作系' のチェック中...
              [合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
              [合格] ○
'ファイルシステム' のチェック中...
              [合格] ○
'スレッド処理システム' のチェック中...
              [合格] ○
'ネットワークシステム' のチェック中...
              [合格] ○

すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。

コマンドは正常に終了しました。

上記のように表示されれば問題はないかと思います。

VPN Tools>exit

exitします。

次に起動スクリプトを作成します。ここでは、catコマンドを使用してスクリプトを作成します。下記のようにし、最後の行の改行の後にCtrl+D キーを押します。

# cat > /etc/init.d/vpnserver
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/vpnserver
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/vpnserver

起動スクリプトに実行権限をつけます。

# update-rc.d vpnserver defaults

OS起動時に自動的に実行するようにします。

# /etc/init.d/vpnserver start

SoftEther VPN Serverを起動します。これでインストールは完了です。

次にSoftEther VPN Serverの設定を行います。設定はWindowsから専用のツールを使用して行います。

以下のリンクにアクセスします。
https://www.softether-download.com/ja.aspx?product=softether

以下を選択します。

コンポーネントを選択:SoftEther VPN Server
プラットフォームを選択:Linux
CPU を選択:ARM EABI(32bit)

ダウンロードリンクの一番上部に表示されている「SoftEther VPN Server」をクリックしてダウンロードします。ダウンロードしたファイルを実行します。


「次へ」をクリックします。


「SoftEther VPNサーバー管理マネージャー(管理ツールのみ)」を選択して、「次へ」をクリックします。


「使用許諾契約書に同意します(A)」をチェックして、「次へ」をクリックします。


「次へ」をクリックします。


「次へ」をクリックします。


「次へ」をクリックします。


「完了」をクリックします。


「新しい接続設定」をクリックします。


「接続先設定名(N)」にこの接続先を識別するための任意の名称、「ホスト名(H)」にSoftEther VPN ServerをインストールしたRaspberry PiのIPアドレス、「ポート番号(P)」に443と入力して、「OK」をクリックします。


先ほど作成した接続名を選んで、「接続(C)」をクリックします。


ログインパスワードを設定する画面が表示されます。パスワードを入力して「OK」をクリックします。


「OK」をクリックします。


「リモートアクセスVPNサーバー(R)」をチェックして、「次へ(N)」をクリックします。


「はい(Y)」をクリックします。


仮想HUB名に任意の名称を入力して、「OK」をクリックします。


ダイナミックDNSの設定画面になります。プロバイダから固定IPアドレスが与えられていない場合は、適宜必要な項目を入力して「閉じる(X)」をクリックします。


今回は、L2TPやIPSecは何も使わないので、何もチェックしないでそのまま「OK」をクリックします。


特にこの機能は使いません。「VPN Azureを無効にする(D)」にチェックをして、「OK」をクリックします。


VPN接続するためのユーザーを作成します。ここで作成するユーザーは、後にインストールするSoftEther VPNクライアントでVPN接続するためのユーザーになります。「ユーザーを作成する(U)」をクリックします。


「ユーザー名(U)」に適当なユーザー名、「認証方法(A)」に「パスワード認証」、「パスワード認証」の部分の「パスワード」にパスワードを入力して、「OK」をクリックします。


「OK」をクリックします。


「閉じる(X)」をクリックします。


「3.ローカルブリッジの設定」でRaspberry Piの物理NICのインターフェース名を選択して、「閉じる(C)」をクリックします。

これで設定は以上になります。

次にVPNクライアントのPCの設定方法を記載します。VPNクライアント専用のツールをインストールする必要があります。

以下のリンクにアクセスします。
https://www.softether-download.com/ja.aspx?product=softether

以下を選択します。

コンポーネントを選択:SoftEther VPN Client
プラットフォームを選択:Windows
CPU を選択:Intel(x86 and x64)

ダウンロードリンクの一番上部に表示されている「SoftEther VPN Client」をクリックしてダウンロードします。ダウンロードしたファイルを実行します。


「次へ(N)」をクリックします。


「SoftEther VPN Client」を選択して、「次へ(N)」をクリックします。


「使用許諾契約書に同意します(A)」をチェックして、「次へ」をクリックします。


「次へ(N)」をクリックします。


「次へ(N)」をクリックします。


「次へ(N)」をクリックします。


「完了」をクリックします。


SoftEther VPN Clientが起動します。「新しい接続設定の作成」をクリックして下さい。


「はい(Y)」をクリックして下さい。仮想LANカードを作成します。


「仮想LANカードの名前(N)」に任意の名称を入力して、「OK」をクリックします。


結構時間がかかります。途中でフリーズした時もありましたが、無事作成されていました(´・ω・`)


以下のように入力して下さい。
接続設定名(N):この接続を識別するための任意の名称
ホスト名(H):SoftEther VPN ServerをインストールしたRaspberry PiのグローバルIPアドレス
ポート番号(P):443
仮想HUB名:SoftEther VPN Serverを設定した時に作成した仮想HUBの名前
ユーザー名(U):SoftEther VPN Server設定時に作成したユーザのユーザー名
パスワード(Y):SoftEther VPN Server設定時に作成したユーザのパスワード


作成した接続名の接続をダブルクリックすると、VPN接続が出来ます。

以上で、設定は完了になります。以下は、特殊な環境下での注意点となります。

■ DHCPサーバーの設定
SoftEther VPN ServerをインストールしたRaspberry Piと同じセグメントにDHCPサーバーがある場合には、そのDHCPサーバーに問い合わせて、IPアドレス等が自動で設定されます。

しかし、私の環境では、DHCPサーバーがなく、IPアドレスが自動で設定されませんでした。DHCPサーバーを立てたりとか、ルーター側でDHCPサービスを有効にしようとも考えたのですが、なんかめんどくさいなと思ってた時に、どうやら、SoftEther側で仮想的なDHCPサーバーを立てられることを知りました。これを利用すればOKでした。以下、設定方法です。


SoftEther VPNサーバー管理マネージャーを起動し、作成した仮想HUBを選択して、「稼働HUBの管理(A)」をクリックします。


「仮想NATおよび仮想DHCPサーバー機能(V)」をクリックします。


「SecureNATの設定(C)」をクリックします。


今回はDHCPのサービスだけ利用したいため、「仮想NAT機能を使用する(A)」を無効にします。

そして、「仮想DHCPサーバーの設定」で接続してきたVPNクライアントに通知したいIPアドレス等の情報を入力して、「OK」をクリックします。


「SecureNAT機能を有効にする(E)」をクリックします。


恐れず「OK」をクリックします。


「閉じる(X)」をクリックします。

これで設定は完了です。

■ VPN接続したいネットワークのサブネットが複数ある場合
私の環境がそうなのですが、SoftEther VPN Serverが置いてあるサブネット以外にも複数のサブネットがあり、VLAN間ルーティングされてます。他のサブネットにアクセスさせたい場合、VPNクライアントで作成された仮想NICのメトリックを1として下さい。これで、仮想NICに設定されたデフォルトゲートウェイが、VPNクライアントのPCのデフォルトゲートウェイになり、他のサブネットにもアクセスできるようになります。ただし、インターネットへのアクセスもVPNを経由するようになりますので、インターネットがちょっと遅くなるかもしれません。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

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