L2TP/IPsecサーバの構築 (3/3) 設定編

SoftEther VPN のサーバーを導入してiPadやAndroidから接続できるようにします。

CLIだけで構築してみました。

前回 vpnserver が起動したところからの続きです。

まずはインストールした vpncmd の場所へ移動しておきましょう。その後いろいろな設定を行います。

$ cd /opt/vpnserver

仮想ハブ設定

SoftEther VPNには DEFAULT という名前の仮想ハブが最初から用意されています。この DEFAULT ハブとローカルブリッジ専用にしたネットワークカード(今回はens10)を接続します。

$ sudo ./vpncmd localhost /server /cmd bridgecreate default /device:ens10

コマンドが成功していれば最後の行に The command completed successfully. と表示されます。以下同じ。

次は DEFAULT ハブのユーザーを作ります。

$ sudo ./vpncmd localhost /server /hub:default /cmd usercreate <<USER>> /group:none /realname:none /note:none

<<USER>>部分にはユーザー名を記述します。

次に <<USER>> のパスワードを設定します。

$ sudo ./vpncmd localhost /server /hub:default /cmd userpasswordset <<USER>> /password:<<PASSWORD>>

コマンド内の <<PASSWORD>> 部分は実際のパスワードを記述します。ここで作成したユーザーとパスワードはVPNに接続する際に使用します。

L2TP/IPsecの有効化

SoftEther VPNのL2TP/IPsecを有効化します。 コマンド内の <<PSK>> は IPSecの事前共有キー(iOSでは"シークレット"と呼ぶようです)になります。

$ sudo ./vpncmd localhost /server /cmd ipsecenable /l2tp:yes /l2tpraw:no /etherip:no /psk:<<PSK>> /defaulthub:default

接続テスト

ここまででL2TP/IPsecが有効になっているはずです。

SoftEther VPNにはダイナミック DNS機能があり、初期状態で有効になっているようです。 割り当てられているホスト名を DynamicDnsGetStatus コマンドで確認してみましょう。

$ sudo ./vpncmd localhost /server /cmd dynamicdnsgetstatus
vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.34 Build 9745   (English)
Compiled 2020/04/05 23:39:56 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

Connection has been established with VPN Server "localhost" (port 443).

You have administrator privileges for the entire VPN Server.

VPN Server>DynamicDnsGetStatus
DynamicDnsGetStatus command - Show the Current Status of Dynamic DNS Function
Item                                    |Value
----------------------------------------+-------------------------------------
Assigned Dynamic DNS Hostname (Full)    |vpn=========.softether.net
Assigned Dynamic DNS Hostname (Hostname)|vpn=========
DNS Suffix                              |.softether.net
Global IPv4 Address                     |***.***.***.***
Global IPv6 Address                     |****:****:****:****:****:****:****:****
The command completed successfully.

ホスト名がAssigned Dynamic DNS Hostname (Full)に表示されています。このホスト名とユーザー名とパスワードおよび事前共有キーを、クライアントとなるデバイスに設定して接続してみます。

ログファイルが /opt/vpnserver/server_log/ に1日ごとに作られます。問題がある場合は確認してみましょう。

DNSが返すレコードのTTLは60秒ぽいですね。

パスワードの設定

最後にVPNサーバーの Administrator のパスワードを設定します。

$ sudo ./vpncmd localhost /server /cmd serverpasswordset <<password>>

これ以降 vpncmd を実行にするたびにパスワードの入力が求められます。

最後に

コマンドヒストリにパスワードなどが残っているので消去しておきましょう。

$ history -c
$ history
    1  history

使用したメモリとディスク

今回は次のようになりました。

ディスク使用量(抜粋):

$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv   20G  4.4G   15G  24% /
/dev/vda2                          976M  103M  806M  12% /boot

メモリ使用量:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          980Mi       166Mi       107Mi       0.0Ki       706Mi       664Mi
Swap:         1.9Gi       0.0Ki       1.9Gi

[おわり]