VPNサーバー構築(SoftEther VPN Server)

最終更新日: 2017.07.19

<<トップページ <<新着情報 <<逆引き集 <<リンク集 <<サイト内検索 <<メルマガ <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

SoftEther VPN Serverを使用してVPNサーバーを構築する。
SoftEther VPN Serverで構築したVPNサーバーへは、各OS(Windows、iOS、Android等)標準のVPN接続機能(L2TP)でVPNサーバーへ接続が可能なことから、VPN接続するクライアント側でソフトウェアをインストールする必要がない。このことから、ソフトウェアのインストールが制限されているような企業等でも容易に導入が可能。

※VPN接続先ネットワーク(社内LAN等)でDHCP(IPアドレス自動割当て)が有効になっていること




■SoftEther VPN Serverインストール

SoftEtherダウンロードセンターからSoftEther VPN ServerをダウンロードしてWinSCPでサーバーへアップロードする。

[root@centos ~]# tar zxvf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz ← SoftEther VPN Server展開

[root@centos ~]# cd vpnserver/ ← SoftEther VPN Server展開先ディレクトリへ移動

[root@centos vpnserver]# make ← 実行可能ファイル生成
--------------------------------------------------------------------

SoftEther VPN Server (Ver 4.22, Build 9634, 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 ← 1(Yes)応答
・
・
・
ライセンス事項が表示される
・
・
・
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(Yes)応答

Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:
1 ← 1(Agree)応答

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

[root@centos vpnserver]# cd ← ホームディレクトリへ戻る

[root@centos ~]# mv vpnserver/ /usr/local/ ← SoftEther VPN Server展開先ディレクトリを所定のディレクトリへ移動

[root@centos ~]# cd /usr/local/vpnserver/ ← SoftEther VPN Serverディレクトリへ移動

[root@centos vpnserver]# chmod 600 * ← root以外アクセスできないようにする

[root@centos vpnserver]# chmod 700 vpncmd ← vpncmdに実行権限付加

[root@centos vpnserver]# chmod 700 vpnserver ← vpnserverに実行権限付加

[root@centos vpnserver]# ./vpncmd ← vpncmd実行
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 コマンドの使用)応答


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

VPN Tools>check ← check応答

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

VPN Tools>exit ← exit応答

[root@centos vpnserver]# cd ← ホームディレクトリへ戻る

[root@centos ~]# rm -f softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz ← 削除

■SoftEther VPN Server起動

(1)SoftEther VPN Server起動
[root@centos ~]# vi /etc/systemd/system/vpnserver.service ← SoftEther VPN Server起動スクリプト作成
[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

[root@centos ~]# systemctl start vpnserver ← SoftEther VPN Server起動

[root@centos ~]# systemctl enable vpnserver ← SoftEther VPN Server自動起動設定

(2)UDP500番ポート、UDP4500番ポート開放
【ルーター】
ルーター側の設定で、UDP500番ポート、UDP4500番ポートへのアクセスをサーバーに転送するようにする。
※ルーターの設定は各ルーターのマニュアルまたはメーカー別ルーターポート開放手順を参照

【ファイアウォール】
サーバー側のファイアウォール設定で、UDP500番ポート、UDP4500番ポートへのアクセスを許可するようにする。
ファイアウォール設定はこちらを参照

ポート開放確認ツールで「IP」にサーバー名(例:centossrv.com)、「ポート番号」に500または4500と入力、「UDP」を選択して「確認」ボタンを押下し、ポートは開放されていますと表示されることを確認。



■SoftEther VPN Server設定

[root@centos ~]# systemctl stop vpnserver ← SoftEther VPN Server停止

[root@centos ~]# vi /usr/local/vpnserver/vpn_server.config ← 設定ファイル編集
        declare DDnsClient
        {
                bool Disabled true ← ダイナミックDNS機能無効化(VPNサーバーへ独自ドメイン名(例:centossrv.com)でアクセスする)
        }

        declare ListenerList
        {
                declare Listener0
                {
                        bool DisableDos false
                        bool Enabled false ← ポート443での待ち受けを無効化Apacheと競合するため
                        uint Port 443
                }
                declare Listener1
                {
                        bool DisableDos false
                        bool Enabled false ← ポート992での待ち受けを無効化
                        uint Port 992
                }
                declare Listener2
                {
                        bool DisableDos false
                        bool Enabled false ← ポート1194での待ち受けを無効化
                        uint Port 1194
                }
                declare Listener3
                {
                        bool DisableDos false
                        bool Enabled true
                        uint Port 5555
                }
        }

[root@centos ~]# systemctl start vpnserver ← SoftEther VPN Server起動

[root@centos ~]# vi /etc/cron.daily/vpnserver ← SoftEther VPN Serverログローテーションスクリプト作成
#!/bin/sh
# 30日以前のログを削除
find /usr/local/vpnserver/*_log -name '*.log' -mtime +30 -delete

[root@centos ~]# chmod +x /etc/cron.daily/vpnserver ← SoftEther VPN Serverログローテーションスクリプトへ実行権限付加

■SoftEther VPN Server初期設定

SoftEther VPN Serverの管理を行うWindows端末で初期設定を行う。

(1)SoftEther VPN Server Managerインストール
SoftEtherダウンロードセンターからSoftEther VPN Server Manager for WindowsをダウンロードしてSoftEther VPN サーバー管理マネージャ(管理ツールのみ)をインストールする。

(2)SoftEther VPN Server初期設定
SoftEther VPN Server Managerインストールにより作成されたデスクトップ上のショートカット(SE-VPN サーバー管理 (ツール))でSoftEther VPN サーバー管理マネージャを起動する。


「新しい接続設定」ボタン押下


「接続設定名」・・・任意の名前を入力
「ホスト名」・・・サーバー名を入力
「ポート番号」・・・5555(SE-VPNポート)を選択
「OK」ボタン押下


作成した接続設定を選択して「接続」ボタン押下


管理者パスワードを2回入力して「OK」ボタン押下
※簡易セットアップウインドウが表示されるので閉じる


「IPsec/L2TP設定」ボタン押下


「L2TPサーバー機能を有効にする(L2TP over IPsec)」・・・チェック
「L2TPサーバー機能を有効にする(暗号化されていないL2TP」・・・チェックをはずす
「IPsec事前共有鍵」・・・任意の文字列を入力※VPN接続ユーザー全員に周知するキー
「OK」ボタン押下


初期状態で作成されている仮想HUB(DEFAULT)を選択して「削除」ボタン押下


「仮想HUBの作成」ボタン押下


「仮想HUB名」・・・任意の名前を入力
「OK」ボタン押下


「ローカルブリッジ設定」ボタン押下


「仮想HUB」・・・作成した仮想HUBを選択
「作成する種類」・・・「物理的な既存のLANカードとのブリッジ接続」を選択
「LANカード」・・・ネットワーク接続しているLANカードを選択
「ローカルブリッジを追加」ボタン押下


作成した仮想HUBを選択して「仮想HUBの管理」ボタン押下


「ユーザーの管理」ボタン押下


「新規作成」ボタン押下


「ユーザー名」・・・任意のユーザー名を入力
「パスワード」・・・任意のパスワードを入力
「パスワードの確認入力」・・・上記と同じパスワードを入力
「OK」ボタン押下

(3)ユーザー一括登録
大量のユーザーをGUIで登録するのは煩雑なため、ユーザー名/パスワードを列挙したリストを用意してユーザーを一括登録する。
[root@centos ~]# vi UserPasswordSet.txt ← ユーザー登録リスト作成
Hub VPN ← 仮想HUB名を指定
UserCreate user2 /GROUP:none /REALNAME:none /NOTE:none ← ユーザーuser2を登録
UserCreate user3 /GROUP:none /REALNAME:none /NOTE:none ← ユーザーuser3を登録
UserPasswordSet user2 /PASSWORD:user2password ← user2のパスワードをuser2passwordで登録
UserPasswordSet user3 /PASSWORD:user3password ← user3のパスワードをuser3passwordで登録

[root@centos ~]# /usr/local/vpnserver/vpncmd /server localhost:5555 /in:UserPasswordSet.txt ← ユーザー登録リスト実行
ファイル "UserPasswordSet.txt" に記述されているコマンドを、キーボードからの入力の代わりに使用します。
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.

パスワード: ************* ← 管理パスワード応答

VPN Server "localhost" (ポート 5555) に接続しました。

VPN Server 全体の管理権限があります。

VPN Server>Hub VPN
Hub コマンド - 管理する仮想 HUB の選択
仮想 HUB "VPN" を選択しました。
コマンドは正常に終了しました。

VPN Server/VPN>UserCreate user2 /GROUP:none /REALNAME:none /NOTE:none
UserCreate コマンド - ユーザーの作成
コマンドは正常に終了しました。

VPN Server/VPN>UserCreate user3 /GROUP:none /REALNAME:none /NOTE:none
UserCreate コマンド - ユーザーの作成
コマンドは正常に終了しました。

VPN Server/VPN>UserPasswordSet user2 /PASSWORD:user2password
UserPasswordSet コマンド - ユーザーの認証方法をパスワード認証に設定しパスワードを設定
コマンドは正常に終了しました。

VPN Server/VPN>UserPasswordSet user3 /PASSWORD:user3password
UserPasswordSet コマンド - ユーザーの認証方法をパスワード認証に設定しパスワードを設定
コマンドは正常に終了しました。

■SoftEther VPN Server確認

(1)Windowsからの接続(設定)
スタート⇒コントロールパネル⇒ネットワークと共有センター⇒新しい接続またはネットワークのセットアップ


「職場に接続します」を選択して「次へ」ボタン押下


「インターネット接続(VPN)を使用します」を選択


「インターネットアドレス」・・・サーバー名を入力
「接続先の名前」・・・任意の名前を入力
「今は接続しない。自分が後で接続できるようにセットアップのみを行う。」・・・チェック
「次へ」ボタン押下


「ユーザー名」・・・「作成した仮想HUB名\作成したユーザー名」を入力
「パスワード」・・・作成したユーザーのパスワードを入力
「このパスワードを記憶する」・・・チェック※任意
「作成」ボタン押下


「閉じる」ボタン押下

スタート⇒コントロールパネル⇒ネットワークと共有センター⇒アダプターの設定の変更

作成したVPN接続を右クリック⇒プロパティ⇒セキュリティタブ


「VPNの種類」・・・「IPsecを利用したレイヤー2トンネリングプロトコル(L2TP/IPsec)」を選択
「暗号化されていないパスワード(PAP)」・・・チェック
「詳細設定」ボタン押下


「認証に事前共有キーを使う」を選択して「キー」にIPsec事前共有鍵を入力して「OK」ボタン押下


ネットワークタブで「インターネットプロトコルバージョン4(TCP/IPv4)」を選択して「プロパティ」ボタン押下


「詳細設定」ボタン押下


「リモートネットワークでデフォルトゲートウェイを使う」のチェックをはずして「OK」ボタン押下
※VPN接続先ネットワーク以外(通常のインターネット)へのアクセスは従来のルートでアクセスするようにする設定

(2)Windowsからの接続(確認)
VPN接続をダブルクリック


「接続」ボタン押下

□作成したVPN接続が白黒からカラーになること
□VPN接続したWindowsからLAN内の他端末へPINGが通ること※PINGが通らない場合はファイアウォールでPINGをブロック(ICMPの受信を拒否)している可能性があるためファイアウォール設定を確認すること

(3)iPhoneからの接続(設定)
設定⇒VPN⇒VPN構成を追加...


タイプ・・・L2TPを選択
説明・・・任意の名前を入力
サーバ・・・サーバー名を入力
アカウント・・・ユーザー名を入力
パスワード・・・パスワードを入力
シークレット・・・IPsec事前共有鍵を入力
完了

(4)iPhoneからの接続(確認)
設定⇒VPN⇒状況ボタンをタップ

□接続中となって上部にVPNと表示されること
□VPN接続したiPhoneからLAN内の他端末へPINGが通ること※PINGが通らない場合はファイアウォールでPINGをブロック(ICMPの受信を拒否)している可能性があるためファイアウォール設定を確認すること

(5)Androidからの接続
Android からの接続方法を参照

■VPNクライアントからVPNサーバーへのアクセス設定

VPNクライアントからVPNサーバーへアクセスできるようにする。
※本設定を行わないとVPNクライアントからVPNサーバーのサービス(Webサーバー、ファイルサーバー等)にアクセスできない。VPNサーバーはVPN接続サービスのみ提供するのであれば本設定は実施不要。
[root@centos ~]# nmcli device ← 物理インタフェース名確認
デバイス  タイプ    状態                       接続
eth0      ethernet  接続済み                   eth0 ← 物理インタフェース名はeth0
lo        loopback  管理無し                   --

[root@centos ~]# nmcli c add type bridge ifname br0 ← ブリッジインタフェースbr0作成
接続 'bridge-br0' (f80224fe-72c3-437b-804d-7aa890a54fdf) が正常に追加されました 。

[root@centos ~]# nmcli con modify bridge-br0 bridge.stp no ← ブリッジインタフェースbr0のSTPを無効化

[root@centos ~]# nmcli con modify bridge-br0 ipv4.method manual ipv4.addresses 192.168.1.30/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" ← ブリッジインタフェースbr0ネットワーク設定
※例:IPアドレスを192.168.1.30、ネットマスクを24、ゲートウェイを192.168.1.1、DNSサーバーのアドレスを8.8.8.8、8.8.4.4とする

[root@centos ~]# nmcli con add type bridge-slave ifname eth0 master bridge-br0 ← 物理インタフェースeth0をブリッジインタフェースbr0に接続
接続 'bridge-slave-eth0' (fdd5747f-222f-44b8-aa10-904b5e400903) が正常に追加されました。

[root@centos ~]# nmcli c del eth0 ← 物理インタフェースeth0削除
接続 'eth0' (404ed17e-716a-4f13-bbc0-3c4efe8b1eed) が正常に削除されました。

[root@centos ~]# reboot ← システム再起動

[root@centos ~]# brctl show ← ブリッジ接続状態照会
bridge name     bridge id               STP enabled     interfaces
br0             8000.525400245b91       no              eth0 ← 物理インタフェースeth0とブリッジインタフェースbr0がブリッジ接続されている

[root@centos ~]# ip addr show ← IPアドレス照会
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1986 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    物理インタフェースeth0にはIPアドレスは設定されていない
5: br0:  mtu 1986 qdisc noqueue state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.30/24 brd 192.168.1.255 scope global br0 ← ブリッジインタフェースbr0にIPアドレスが設定されている
       valid_lft forever preferred_lft forever
    inet6 2408:211:1242:7e00:f03a:5943:87f:f4c4/64 scope global noprefixroute dynamic
       valid_lft 2591837sec preferred_lft 604637sec
    inet6 fe80::d35c:2093:9420:e597/64 scope link
       valid_lft forever preferred_lft forever

SoftEther VPN サーバー管理マネージャで仮想ネットワークインタフェース(tapデバイス)を作成して仮想HUBとブリッジ接続する。


「ローカルブリッジ設定」ボタン押下


既存のローカルブリッジ設定を選択して「ローカルブリッジの削除」ボタン押下


「仮想HUB」・・・作成した仮想HUBを選択
「作成する種類」・・・「新しいtapデバイスとのブリッジ接続」を選択
「新しいtapデバイス名」・・・任意の仮想ネットワークインタフェース名(例:vpn)を入力
「ローカルブリッジを追加」ボタン押下

[root@centos ~]# nmcli device ← 仮想ネットワークインタフェースtap_vpn作成確認
デバイス  タイプ    状態      接続
br0       bridge    接続済み  bridge-br0
eth0      ethernet  接続済み  eth0
lo        loopback  管理無し  --
tap_vpn   tun       管理無し  -- ← 仮想ネットワークインタフェースtap_vpnが作成されている

[root@centos ~]# vi /etc/systemd/system/vpnserver.service ← SoftEther VPN Server起動スクリプト修正
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStartPost=/usr/local/vpnserver/add_tap.sh ← 仮想ネットワークインタフェースブリッジ接続コマンド加
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy=multi-user.target

[root@centos ~]# systemctl daemon-reload ← SoftEther VPN Server起動スクリプト修正反映

[root@centos ~]# vi /usr/local/vpnserver/add_tap.sh ← 仮想ネットワークインタフェースブリッジ接続スクリプト作成
#!/bin/sh

sleep 3
tap_dev=`/sbin/ip tuntap | awk -F: '{print $1}'`
if [ -n "$tap_dev" ]; then
    /sbin/brctl addif br0 $tap_dev
fi

[root@centos ~]# chmod +x /usr/local/vpnserver/add_tap.sh ← 仮想ネットワークインタフェースブリッジ接続スクリプトに実行権限付加

[root@centos ~]# systemctl restart vpnserver ← SoftEther VPN Server再起動

[root@centos ~]# brctl show ← ブリッジ接続状態照会
bridge name     bridge id               STP enabled     interfaces
br0             8000.00ac222f71cb       no              eth0
                                                        tap_vpn ← 仮想ネットワークインタフェースtap_vpnとブリッジインタフェースbr0がブリッジ接続されている

■VPNクライアントからVPNサーバーへのアクセス確認

□VPN接続したWindowsからVPNサーバーへPINGが通ること
□VPN接続したiPhoneからVPNサーバーへPINGが通ること
□VPN接続したWindowsからLAN内の他端末へPINGが通ること※PINGが通らない場合はファイアウォールでPINGをブロック(ICMPの受信を拒否)している可能性があるためファイアウォール設定を確認すること
□VPN接続したiPhoneからLAN内の他端末へPINGが通ること※PINGが通らない場合はファイアウォールでPINGをブロック(ICMPの受信を拒否)している可能性があるためファイアウォール設定を確認すること

■VPN接続/切断コマンドの配布

あらかじめ管理者にて作成したVPN接続設定をユーザーに配布して、ユーザーが容易にVPN接続できるようにする。

(1)VPN接続/切断コマンド作成(管理者作業)
VPN接続コマンド(例:VPN接続.bat)を以下の内容で作成する。
@echo off
rasdial "接続先の名前" 仮想HUB名\ユーザー名 パスワード
例)rasdial "VPN 接続" VPN\user1 xxxxxxxx
※パスワードは*にすると問合せがくる

VPN切断コマンド(例:VPN切断.bat)を以下の内容で作成する。
@echo off
rasdial "接続先の名前" /disconnect
例)rasdial "VPN 接続" /disconnect

(2)VPN接続/切断資材配布(管理者作業)
%USERPROFILE%\AppData\Roaming\Microsoft\Network\Connections\Pbkフォルダ内のrasphone.pbkをテキストエディタで編集する。
IpPrioritizeRemote=0 ← リモートネットワークのデフォルトゲートウェイを使わない
PreSharedKey=xxxxxxxx ← IPsec事前共有鍵を指定

rasphone.pbk
VPN接続.bat
VPN切断.bat
をユーザーに配布する。

(3)VPN接続/切断資材セットアップ(ユーザー作業)
rasphone.pbkを%USERPROFILE%\AppData\Roaming\Microsoft\Network\Connections\Pbkフォルダに格納
VPN接続.bat、VPN切断.batを適当な場所に格納

(4)VPN接続/切断確認(ユーザー作業)
□VPN接続.batをダブルクリックして実行してVPN接続パスワードを応答後、VPN接続できること
□VPN切断.batをダブルクリックして実行してVPN切断後、VPN切断できること






▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします