CentOS7のVPNサーバで安全にインターネット(サーバ編)

普段は、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構成の確認と接続検証についてまとめています。

LINEで送る
Pocket

コメントは受け付けていません。