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
[おわり]