*

Linux版SoftEther VPNのIPsec/L2TP設定方法

  最終更新日:2018/02/19

Linux版SoftEther VPNのIPsec/L2TP設定方法

 LinuxにインストールしたSoftEther VPNサーバーをSoftEther VPNサーバー管理マネージャを使用してIPsec/L2TP設定を行う方法について説明します。

 LinuxへのSoftEther VPNサーバーのインストール方法については下記記事を参照して下さい。

スポンサーリンク

サーバー管理マネージャインストール

 SoftEther VPNサーバー管理マネージャはWindowsアプリケーションです。Mac OS版やLinux版は存在しません。もしMac OSやLinuxで動かしたい場合、仮想環境のWindowsやWineを使用して下さい。本記事ではその方法については説明しません。

 サーバー管理マネージャはWindows版のSoftEther VPNサーバーに付属しています。下記からダウンロードします。

 選択肢は以下を選んで下さい。

  • コンポーネント:SoftEther VPN Server
  • プラットフォーム:Windows
  • CPU:Intel (x86 and x64)

 本記事投稿時点のファイル名は、”softether-vpnserver_vpnbridge-v4.19-9599-beta-2015.10.19-windows-x86_x64-intel.exe”です。

SoftEther VPN インストールソフトウェア選択

SoftEther VPN インストールソフトウェア選択

 インストーラを起動して「次へ」をクリックして画面を進めると、インストールソフトウェアの選択画面が表示されます。ここで、「SoftEther VPNサーバー管理マネージャ(管理ツールのみ)」を選択して「次へ」をクリックして下さい。

 これでサーバー管理マネージャのみがインストールされます。以降はインストーラーの指示に従ってインストールを完了させます。

サーバー管理マネージャによる設定

SoftEther VPNサーバー管理マネージャ初期画面(その1)

SoftEther VPNサーバー管理マネージャ初期画面(その1)

 サーバー管理マネージャを起動すると上記のウィンドウが表示されます(アプリ名は”SE-VPN サーバー管理 (ツール)”です)。「新しい接続設定」をクリックして、接続設定を作成します。

新しい接続設定

新しい接続設定

 「接続設定名」に任意の文字列、「ホスト名」にSoftEther VPNサーバーをインストールしたPCのホスト名またはIPアドレスを入力し、右下の「OK」をクリックします。

SoftEther VPNサーバー管理マネージャ初期画面(その2)

SoftEther VPNサーバー管理マネージャ初期画面(その2)

 初期ウィンドウに戻ってくるので、先程作成した「接続設定名」を選択し、「接続」をクリックします。

管理者パスワードの設定

管理者パスワードの設定

 初回接続時に管理者パスワードの設定を求められます。

Bridge 簡易セットアップ

Bridge 簡易セットアップ

 Bridge簡易セットアップ画面が表示されます。「リモートアクセスVPNサーバー」を選択し、「次へ」をクリックして先に進みます。警告ダイアログが表示されますが、そのまま「はい」をクリックして進めます。

仮想HUB名の決定

仮想HUB名の決定

 仮想HUB名の入力を求められます。こちらは初期値の”VPN”のまま進めても特に問題ありません。

ダイナミックDNS機能の設定

ダイナミックDNS機能の設定

 続いて、ダイナミックDNS機能の設定画面が表示されます。一般的なプロバイダではインターネット接続時のグローバルIPアドレスは固定ではありません。しかし、ダイナミックDNSを使用すれば、動的に変化するIPアドレスにホスト名を付けてくれます。

 そうすることにより、外出先からホスト名で家のLANにアクセスすることが可能になります。また、IPアドレスが変化した場合でも自動的にDNS設定をやり直してくれます。

 「ダイナミックDNSホスト名の変更」にて名前を変更できます。デフォルトのままでも良いですし、自分の分かりやすい名前に変えても良いです。このダイナミックDNSホスト名は実際の接続時に使用するのでどこかに控えて置いて下さい。最後に「閉じる」をクリックして抜けます。

IPsec/L2TP/EtherIP/L2TPv3設定

IPsec/L2TP/EtherIP/L2TPv3設定

 IPsec/L2TP/EtherIP/L2TPv3設定画面が表示されます。一番上の「L2TPサーバ機能を有効にする(L2TP over IPsec)」を選択し、一番下の「IPsec事前共有鍵」の文字列を設定します。この鍵の文字列も接続時に使用するので、どこかに控えておいて下さい。

VPN Azureサービスの設定

VPN Azureサービスの設定

 VPN Azureの機能は不要なので、「VPN Azureを無効にする」を選択し、「OK」をクリックして抜けます。

簡易セットアップの実行

簡易セットアップの実行

 簡易セットアップの実行画面が表示されます。ここではユーザー作成だけ行います。「ユーザーを作成する」をクリックします。

ユーザーの新規作成

ユーザーの新規作成

 「ユーザー名」と「パスワード」だけ設定し、「OK」をクリックして抜けます。ユーザーの管理画面が表示されますが、閉じて構いません。

 再び簡易セットアップの実行画面に戻りますが、「閉じる」をクリックして抜けます。

VPNサーバーの管理(その1)

VPNサーバーの管理(その1)

 VPNサーバーの管理画面が表示されます。左下の「ローカルブリッジ設定」をクリックします。

ローカルブリッジ設定(その1)

ローカルブリッジ設定(その1)

 ローカルブリッジ設定画面が表示されます。ここでtapデバイスを作成します。tapデバイスは仮想イーサネットデバイスです。ブリッジインタフェースを通して物理インタフェースとの通信を可能にします。

 「仮想HUB」で先程作成した仮想HUBを選択し、「新しいtapデバイス名」に文字列”vpn”を入力します。「ローカルブリッジを追加」をクリックします。注意事項のダイアログが表示されますが、そのまま「OK」をクリックして進めます。

ローカルブリッジ設定(その2)

ローカルブリッジ設定(その2)

 ローカルブリッジ設定画面に戻ります。上の表に作成したtapデバイスの情報が表示されていることを確認します。

 LANをDHCPで管理している場合、以上でSoftEther VPNサーバーの設定は完了です。「tapデバイスの設定確認」の説明に飛んで下さい。

 LANでDHCPサーバが動いておらず、固定IPで管理している場合は以下の説明に進んで下さい。

仮想DHCPサーバー機能の設定

 LANでDHCPサーバが動いておらず、固定IPで管理している場合、仮想DHCPサーバー機能を動かす必要があります。この仮想DHCPサーバーは仮想と名前は付いていますが、通常のDHCPサーバーと何も変わりはありません。

 DHCPを有効にしたPCをLANに接続すると仮想DHCPサーバーがIPアドレスを割り当てます。そのため、LANに接続されたルーターやLinux PCで新たにDHCPサーバを稼働させるのでも問題ありません。

 また、私が調べた限り、SoftEther VPNサーバーに接続したクライアントに対するIPアドレス割当は、DHCPによる方法しかないようです。結局のところ、LANを固定IPで管理している場合でもDHCPサーバーを必ず動かすしかないことになります。

 以上を踏まえて、以降で仮想DHCPサーバー機能の設定手順を説明します。

VPNサーバーの管理(その2)

VPNサーバーの管理(その2)

 「仮想HUBの管理」をクリックします。

仮想HUBの管理

仮想HUBの管理

 仮想HUBの管理画面が表示されます。右下の「仮想NATおよび仮想DHCPサーバー機能」をクリックします。

仮想NATおよび仮想DHCP機能(SecureNAT)の設定(その1)

仮想NATおよび仮想DHCP機能(SecureNAT)の設定(その1)

 仮想NATおよび仮想DHCP機能(SecureNAT)の設定画面が表示されます。「SecureNATの設定」をクリックします。

SecureNATの設定

SecureNATの設定

 SecureNATの設定画面が表示されます。「仮想NAT機能を使用する」のチェックを外します。これを外さないと今回の設定では動作がおかしくなるので注意して下さい(検証中に大量のブロードキャストが発生しひどい目に合いました)。

 あとはLANのネットワークアドレスに合わせて「仮想ホストのネットワークインターフェイスの設定」、「仮想DHCPサーバーの設定」を設定します(例えば192.168.0.0/24ならIPアドレスは192.168.0.100等)。「クライアントに割り当てるオプションの設定」は空欄でも構いません。

 設定が終わったら「OK」をクリックして抜けます。

仮想NATおよび仮想DHCP機能(SecureNAT)の設定(その2)

仮想NATおよび仮想DHCP機能(SecureNAT)の設定(その2)

 最後に「SecureNAT機能を有効にする」をクリックします。警告が出ますが「OK」で進めます。これで仮想DHCPサーバーの設定は完了です。

tapデバイスの設定確認

 ここからの作業はSoftEther VPNサーバーをインストールしたLinux側で行います。tapデバイスが出来ていることを確認します。”tap_vpn”のデバイス名が表示されればOKです。下記はCentOS 7での表示例です。

# ifconfig tap_vpn

tap_vpn: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:ac:0a:ba:a7:4a  txqueuelen 500  (Ethernet)

 続いて、SoftEther VPNサーバーのサービスを再起動します。

  Ubuntuの場合)
    # sudo service vpnserver restart

  Debianの場合)
    # /etc/init.d/vpnserver restart

  CentOS 7の場合)
    # systemctl restart vpnserver

 tapデバイスがブリッジ設定に追加されているかを確認します。”interfaces”の項目に”tap_vpn”のデバイス名が表示されればOKです。

# brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.001122334455       no              eth0 ← ブリッジに収容したI/F名
                                                        tap_vpn

 ここまででSoftEther VPNサーバーの設定確認が完了しました。残りはルーターの設定です。

ルーター設定

SoftEther VPNのネットワーク構成例

SoftEther VPNのネットワーク構成例

 上図はSoftEther VPNのネットワーク構成例です。インターネット側にはADSLや光のブロードバンドルーターで接続し、LANの中は無線LANルーターを経由してSoftEther VPNサーバーの動作するLinux PCが接続しているものとします。

 スマホなどのSoftEther VPNクライアントがLAN内のSoftEther VPNサーバーにアクセスする場合、サーバー管理マネージャで登録したダイナミックDNSホスト名(DDNSホスト名)でアクセスします。DDNSホスト名はブロードバンドルーターに割り当てられたグローバルIPアドレスに等しいので、このままではブロードバンドルーターで通信が止まってしまいます。

 このようなインターネット側からのアクセスをLANの内側のPCに引き込むための機能がポートフォワードです。ルーターの設定ではポートフォワーディング設定、ポートマッピング設定などの名称で呼ばれます(以降はポートフォワーディング設定に統一)。

 このポートフォワーディング設定はルーターがIPマスカレード等のIPアドレス変換を行っている場合に必要になります(IPマスカレードはNAPTやアドバンストNATなどの別名があります)。ネットワーク構成例では2つのルーターのそれぞれでIPマスカレードを行っているものとし、ポートフォワーディング設定もそれぞれで行っています。

 具体的な設定は以下の様になります。UDPの500番、4500番を対象に設定します。500番はIPsec、4500番はSoftEther VPNで使用します。

・ブロードバンドルーターのポートフォワーディング設定
対象プロトコル 対象ポート 宛先アドレス 宛先ポート
UDP 500 192.168.0.1 500
UDP 4500 192.168.0.1 4500
・LAN内部のルーターのポートフォワーディング設定
対象プロトコル 対象ポート 宛先アドレス 宛先ポート
UDP 500 192.168.0.10 500
UDP 4500 192.168.0.10 4500

 注意点として、LAN内部のルーターがIPマスカレードを使用していない場合、ブロードバンドルーターの宛先アドレスは直接SoftEther VPNサーバーを対象として下さい。上記の様に中継する必要はありません。

 最後に私が使用しているブロードバンドルーター、NEC製Aterm WD700の設定例を掲載しておきます。

NEC製Aterm WD700のポートマッピング設定例

NEC製Aterm WD700のポートマッピング設定例

接続確認

 以上で設定が最後まで完了しました。それでは実際にスマホなどのクライアントからSoftEther VPNサーバーに接続してみましょう。それぞれのOSの接続方法はSoftEther VPNの以下のページに説明があります。

 注意事項があります。スマホやタブレットの場合、家の無線LANルーター経由でインターネットに接続しているとSoftEther VPNでの接続ができません。3GでもLTEでも良いですが、携帯電話会社の回線経由で接続して下さい。

 私が動作確認したのはAndroidのみなので、Androidについてのみ方法を説明します。以降はAndroid 4.4での方法です。

 「設定」の「無線とネットワーク」から「その他」に移動し、「VPN」をタップします。「+」をタップするとVPN設定を追加できます。設定内容は次の通りです。

設定名 設定内容
名前 任意の文字列(分かりやすい名前)
タイプ L2TP/IPSec PSK
サーバーアドレス DDNSホスト名
L2TPセキュリティ保護 (未使用)
IPSec ID (未使用)
IPSec事前共有鍵 サーバー管理マネージャで設定した文字列
DNS検索ドメイン (未使用)
DNSサーバー (未使用)
転送ルート 空欄の場合、全通信がVPN経由になる。
LANのネットワークアドレスを入力すると
LANアクセスのみVPN通信となる(例:192.168.10.0/24)。

 設定を保存し、先ほど設定した「名前」をタップするとユーザー名とパスワードの入力を求められるので、仮想HUBで設定したものを入力します。「接続」をタップするとSoftEther VPNサーバに接続しに行きます。

 接続に成功すると「接続されました」と表示されます。接続後は、例えばブラウザからLANのWebサーバのIPアドレスを入力すれば、Webサーバに接続できるようになります。注意事項として、自分で切断しない限りSoftEther VPNの接続はずっと維持されます。ポーリングパケットを停止すれば良いようですが、現状は設定ファイルの編集しか停止方法は無いようです(「3.4.8 IP アドレス存在確認ポーリングパケット」を参照)。

接続できない場合

 クライアントからの接続時にどこで通信が止まっているのかを確認する必要があります。下記のとりあえずログをみるしかないと思います。

  • ルーターのログ
  • SoftEther VPNサーバーのログ(/usr/local/vpnserver/server_log/以下)

 SoftEther VPNサーバーのログに接続時の情報が何も残っていないようであれば、途中のルーターの設定に誤りがあるものと考えられます。