Raspberry PiにSoftEther VPN Server

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちは、サイオステクノロジー技術部 武井です。今回は、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を経由するようになりますので、インターネットがちょっと遅くなるかもしれません。

アバター画像
About 武井 宜行 268 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる