普段は、FreeWi-Fiの利用を控えていましたが、海外出張に行く予定があり、スマホにVPNを導入することを検討していました。
色々なVPNの情報を見ているうちに、VPSを借りているんだから自分でVPNサーバを作った方が安全かも…
と思い、構築した際の備忘録です。
大きく3つに分けて記事を書きます。
1 サーバ編(今回の記事)
2 SoftEther VPN Server初期設定(GUI)編
3 クライアント編
今回構成するVPNネットワーク図

1 SoftEther VPN Serverのダウンロード
SoftEther ダウンロード センターにアクセスし、環境に合わせて各項目を選択し、表示されたファイルを右クリックメニューから「リンクのアドレスをコピー」を選択、またはダウンロードしてWinSCPなどでサーバに転送します。

今回は、サーバ上でファイルをダウンロードします。
# wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.32-9731-beta/softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz
# tar zxvf softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz
# cd vpnserver/
1行目:ダウンロード
3行目:ファイルの展開
5行目:展開ディレクトリへ移動
2 SoftEther VPN Serverのインストール
# make
--------------------------------------------------------------------
SoftEther VPN Server (Ver 4.32, Build 9731, Intel x64 / AMD64) 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
~ 中略 ~
DISCLAIMER
==========
~ 中略 ~
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
Did you agree the License Agreement ?
1. Agree
2. Do Not Agree
Please choose one of above number:
1
make[1]: ディレクトリ `/root/vpnserver' に入ります
Preparing SoftEther VPN Server...
~ 中略 ~
1行目:実行可能ファイル生成コマンド
10行目:ライセンス契約を読みますか?
16行目:1を入力
26行目:ライセンス契約を理解しましたか?
34行目:1を入力
37行目:ライセンス契約に同意しますか?
43行目:1を入力
~ 続き ~
VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。
VPN Tools>Check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能 性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
Connect Failed. (6)
[不合格] ×
一部のチェック結果は不合格でした。システムの動作環境を確認してください。このシステム上で SoftEther VPN Server / Bridge を実行した場合、問題が発生する可能性があります。
コマンドは正常に終了しました。
--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !
~ 中略 ~
make[1]: ディレクトリ `/root/vpnserver' から出ます
5行目:VPN Toolsが起動するので、「Check」コマンドで動作環境の確認をします
26行目:ネットワークシステムのチェックで不合格となりました
35行目:SoftEther VPN Serverの準備ができました
※ネットワークシステムの不合格は、Apacheでポート443を使用しているため
後ほどの設定で対処するので、このまま継続します
・パーミッション変更
# cd
# mv vpnserver/ /usr/local/
# cd /usr/local/vpnserver/
# chmod 600 *
# chmod 700 vpncmd
# chmod 700 vpnserver
1行目:ホームディレクトリへ移動
2行目:/usr/local/ディレクトリ配下へvpnserverディレクトリの移動
3行目:vpnserverディレクトリへ移動
4~6行目:パーミッションの変更
・vpncmdコマンド
# ./vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.32 Build 9731 (Japanese)
Compiled 2020/01/01 18:16:55 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.
vpncmd プログラムを使って以下のことができます。
1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
1 - 3 を選択: 3
VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。
VPN Tools>check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール
~ 中略 ~
一部のチェック結果は不合格でした。システムの動作環境を確認してください。このシステム上で SoftEther VPN Server / Bridge を 実行した場合、問題が発生する可能性があります。
コマンドは正常に終了しました。
VPN Tools>exit
1行目:vpncmdコマンドを実行すると管理ユーティリティが起動する
14行目:3を入力
16行目~:先ほどのVPN Toolsが起動する
18行目:checkコマンド
19行目~:結果は同じなので省略
29行目:exitでVPN Toolsの終了
3 設定等
# cd
# rm -f softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz
1行目:ディレクトリの移動
2行目:ダウンローファイルの削除
・vpnserverサービス
# vi /etc/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target
# systemctl start vpnserver.service
# systemctl enable vpnserver.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vpnserver.service to /etc/systemd/system/vpnserver.service.
# systemctl status vpnserver.service
● vpnserver.service - SoftEther VPN Server
Loaded: loaded (/etc/systemd/system/vpnserver.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2020-02-15 15:08:19 JST; 3s ago
Process: 32624 ExecStart=/usr/local/vpnserver/vpnserver start (code=exited, status=0/SUCCESS)
Main PID: 32628 (vpnserver)
CGroup: /system.slice/vpnserver.service
tq32628 /usr/local/vpnserver/vpnserver execsvc
mq32629 /usr/local/vpnserver/vpnserver execsvc
1行目:SoftEther VPN Serverサービスの起動スクリプト作成
14行目:サービスの起動
15行目:自動起動有効化
18行目:ステータスの確認
21行目:active(running)になっていれば起動している
・設定ファイル
# vi /usr/local/vpnserver/vpn_server.config
declare DDnsClient
{
bool Disabled true
}
declare ListenerList
{
declare Listener0
{
bool DisableDos false
bool Enabled false
uint Port 443
}
declare Listener1
{
bool DisableDos false
bool Enabled false
uint Port 992
}
declare Listener2
{
bool DisableDos false
bool Enabled false
uint Port 1194
}
declare Listener3
{
bool DisableDos false
bool Enabled true
uint Port 5555
}
}
今回は、5555ポートだけを使用するのでそれ以外を使用不可とする
12、18、24行目:true → false
・サービス再起動
# systemctl restart vpnserver.service
1行目:設定ファイルを変更したのでvpnserverのサービスを再起動
・ファイアウォール設定
# firewall-cmd --zone=public --add-service=ipsec
# firewall-cmd --zone=public --permanent --add-port=5555/tcp
# firewall-cmd --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client http https ipsec
ports: 5555/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
1行目:L2TP/IPSEC用(500/udp、4500/udpをポートで指定しても同様)サービスで指定
2行目:VPN接続用ポート
3行目:設定確認
9、10行目:ipsec、5555/tcpが追加されている
・vpncmdコマンド
# /usr/local/vpnserver/vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.32 Build 9731 (Japanese)
Compiled 2020/01/01 18:16:55 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.
vpncmd プログラムを使って以下のことができます。
1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
1 - 3 を選択: 3
VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。
VPN Tools>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
1行目:SoftEther VPN コマンドライン管理ユーティリティの実行
14行目:3(VPN Tools)を入力
18行目:checkコマンドで再確認
41行目:すべてのチェックに合格
45行目:exitコマンドで終了
今回のサーバ編については以上になります。
これで、SoftEther VPN Serverへの接続までできるようになりました。
次は、Windows PCからSoftEther VPN サーバ管理マネージャを使用して初期設定をします。
VPNサーバの構築に併せて、記事を追加しました。
VPNの確認と検証
VPNの確認と検証その2
構築したVPN構成の確認と接続検証についてまとめています。