【さくらの VPS】Ubuntu にインストールした SoftEther VPN サーバーをコマンド操作で設定する
前書き
この投稿で触れる内容は、IPv6 インターネットに接続された SoftEther VPN サーバー (以下 VPN サーバーと略すことあり) を作る工程のひとつです。すでに VPN サーバーがインストールされていることを前提にしています。
VPN サーバーをインストールした OS は Ubuntu で、この Ubuntu は さくらインターネット の VPS 上で稼働しています。
自宅パソコンから Ubuntu に ssh でログインして VPN サーバーの設定作業を行っていきます。Ubuntu のバージョンは 20.04 です。
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
$
VPN サーバーの設定
以下の設定を含める形で書いていきます。
- L2TP / IPsec を使う
- SecureNAT を使う (ローカルブリッジしない)
参考情報
過去に書いた投稿を参考にして設定していきます。
設定内容の準備
VPN サーバーを構築するためには、この表に書いてあるようなパラメータが必要になるので最初に準備する。
項目 | 値 | コマンド |
[1] VPN サーバ管理者パスワード | hoge-mgmt-pass | ServerPasswordSet |
[2] ダイナミック DNS ホスト名 | hoge-ddns | DynamicDnsSetHostname |
[3] 仮想 HUB 名 | hoge-vhub | HubCreate |
[5] ユーザー | hoge-user | UserCreate |
[6] 上記ユーザーのパスワード | hoge-user-pass | UserPasswordSet |
[7] IPsec 事前共有鍵 | hoge-ipsec-key | IPsecEnable |
VPN サーバーの設定
まずは VPN サーバーに接続するところまで
ssh で Ubuntu にログインして、VPN サーバーの設定をコマンドで行うところまで行ないます。
$ cd /usr/local/vpnserver $ ls -l vpnserver* -rwx------ 1 root root 7214192 Jun 11 15:50 vpnserver $ sudo ./vpnserver start The SoftEther VPN Server service has been started. Let's get started by accessing to the following URL from your PC: https://xxx.yyy.156.13:5555/ or https://xxx.yyy.156.13/ Note: IP address may vary. Specify your server's IP address. A TLS certificate warning will appear because the server uses self signed certificate by default. That is natural. Continue with ignoring the TLS warning. $ ps -ef | grep vpn root 113246 1 0 15:52 ? 00:00:00 /usr/local/vpnserver/vpnserver execsvc root 113247 113246 1 15:52 ? 00:00:00 /usr/local/vpnserver/vpnserver execsvc nobi 113283 107466 0 15:52 pts/0 00:00:00 grep vpn $
VPN サーバーのプロセス 2 つが起動しました。ここから vpncmd コマンドで VPN サーバーに接続し、設定を行える状態にします。
$ ls -l vpncmd -rwx------ 1 root root 7214120 Jun 11 15:50 vpncmd $ sudo ./vpncmd vpncmd command - SoftEther VPN Command Line Management Utility SoftEther VPN Command Line Management Utility (vpncmd command) Version 4.39 Build 9772 (English) Compiled 2022/04/26 18:00:50 by buildsan at crosswin Copyright (c) SoftEther VPN Project. All Rights Reserved. By using vpncmd program, the following can be achieved. 1. Management of VPN Server or VPN Bridge 2. Management of VPN Client 3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool) Select 1, 2 or 3: 1 Specify the host name or IP address of the computer that the destination VPN Server or VPN Bridge is operating on. By specifying according to the format 'host name:port number', you can also specify the port number. (When the port number is unspecified, 443 is used.) If nothing is input and the Enter key is pressed, the connection will be made to the port number 8888 of localhost (this computer). Hostname of IP Address of Destination: If connecting to the server by Virtual Hub Admin Mode, please input the Virtual Hub name. If connecting by server admin mode, please press Enter without inputting anything. Specify Virtual Hub Name: Connection has been established with VPN Server "localhost" (port 443). You have administrator privileges for the entire VPN Server. VPN Server>
VPN Server> というプロンプトになりました。ここからが VPN サーバーの設定です。
[1] VPN サーバーの管理者パスワード
VPN Server>serverpasswordset ServerPasswordSet command - Set VPN Server Administrator Password Please enter the password. To cancel press the Ctrl+D key. Password: ************ Confirm input: ************ The command completed successfully. VPN Server>
serverpasswordset コマンドで VPN サーバーの管理者パスワードを設定します。
[2] ダイナミック DNS ホスト名
VPN Server>dynamicdnssethostname DynamicDnsSetHostname command - Set the Dynamic DNS Hostname Dynamic DNS Hostname (3 - 31 letters): hoge-vpn-server The command completed successfully. VPN Server>dynamicdnsgetstatus DynamicDnsGetStatus command - Show the Current Status of Dynamic DNS Function Item |Value ----------------------------------------+---------------------------------- Assigned Dynamic DNS Hostname (Full) |hoge-vpn-server.softether.net Assigned Dynamic DNS Hostname (Hostname)|hoge-vpn-server DNS Suffix |.softether.net Global IPv4 Address |xxx.yyy.156.13 Global IPv6 Address |aaaa:bbbb:202:1212:xxx:yyy:156:13 The command completed successfully. VPN Server>
dynamicdnssethostname コマンドでダイナミック DNS のホスト名を設定します。その後 dynamicdnsgetstatus コマンドで設定内容を確認します。
[3] 仮想 HUB を作る
VPN Server>hubcreate HubCreate command - Create New Virtual Hub Name of Virtual Hub to be created: sakura-vps-vhub Please enter the password. To cancel press the Ctrl+D key. Password: ************ Confirm input: ************ The command completed successfully. VPN Server>hublist HubList command - Get List of Virtual Hubs Item |Value ------------------+------------------- Virtual Hub Name |DEFAULT Status |Online Type |Standalone Users |0 Groups |0 Sessions |0 MAC Tables |0 IP Tables |0 Num Logins |0 Last Login |2022-06-11 15:52:18 Last Communication|2022-06-11 15:52:18 Transfer Bytes |0 Transfer Packets |0 ------------------+------------------- Virtual Hub Name |sakura-vps-vhub Status |Online Type |Standalone Users |0 Groups |0 Sessions |0 MAC Tables |0 IP Tables |0 Num Logins |0 Last Login |2022-06-11 16:15:45 Last Communication|2022-06-11 16:15:45 Transfer Bytes |0 Transfer Packets |0 The command completed successfully. VPN Server>
hubcreate コマンドで仮想 HUB を作成し、hublist コマンドで作った仮想 HUB を確認しています。
hubcreate コマンドでパスワード入力を求められますが、これは [1] で作成した VPN サーバー管理者パスワードを使用します。
[5] ユーザーと [6] パスワード
VPN Server>hub sakura-vps-vhub Hub command - Select Virtual Hub to Manage The Virtual Hub "sakura-vps-vhub" has been selected. The command completed successfully. VPN Server/sakura-vps-vhub>usercreate UserCreate command - Create User User Name: nobi Assigned Group Name: User Full Name: User Description: The command completed successfully. VPN Server/sakura-vps-vhub>userpasswordset UserPasswordSet command - Set Password Authentication for User Auth Type and Set Password User Name: nobi Please enter the password. To cancel press the Ctrl+D key. Password: ************ Confirm input: ************ The command completed successfully. VPN Server/sakura-vps-vhub>userlist UserList command - Get List of Users Item |Value ----------------+----------------------- User Name |nobi Full Name | Group Name |- Description | Auth Method |Password Authentication Num Logins |0 Last Login |(None) Expiration Date |No Expiration Transfer Bytes |0 Transfer Packets|0 The command completed successfully. VPN Server/sakura-vps-vhub>hub Hub command - Select Virtual Hub to Manage The Virtual Hub selection has been unselected. The command completed successfully. VPN Server>
このユーザーは VPN サーバーにログインするときのユーザーのことです。VPN サーバーの仮想 HUB にログインする形になるので、まず hub コマンドで仮想 HUB にアクセスした (仮想 HUB に入った) 状態にします。
その後 usercreate コマンドでユーザーを作成し、userpasswordset でそのユーザーのパスワードを設定します。
設定内容を確認するために userlist コマンドを使用します。
引数をつけずに hub コマンドを実行すると仮想 HUB から抜けます。
[7] IPsec 事前共有鍵
VPN Server>ipsecenable IPsecEnable command - Enable or Disable IPsec VPN Server Function Enable L2TP over IPsec Server Function (yes / no): yes Enable Raw L2TP Server Function (yes / no): no Enable EtherIP / L2TPv3 over IPsec Server Function (yes / no): no Pre Shared Key for IPsec (Recommended: 9 letters at maximum): %Sz,J8qQ7 Default Virtual HUB in a case of omitting the HUB on the Username: sakura-vps-vhub The command completed successfully. VPN Server>ipsecget IPsecGet command - Get the Current IPsec VPN Server Settings Item |Value ---------------------------------------------------+--------------- L2TP over IPsec Server Function Enabled |Yes Raw L2TP Server Function Enabled |No EtherIP / L2TPv3 over IPsec Server Function Enabled|No IPsec Pre-Shared Key String |%Sz,J8qQ7 Name of Default Virtual Hub |sakura-vps-vhub The command completed successfully. VPN Server>
ipsecenable コマンドで IPsec を使う設定にするときに IPsec 事前共有鍵を設定します。
ipsecget コマンドで設定内容を確認できます。
SecureNAT の設定
そもそも SecureNAT とは、SoftEther VPN サーバーに実装されている機能です。公式サイトの説明 がわかりやすいです。
SecureNAT 機能には、大きく分けて「仮想 NAT 機能」と「仮想 DHCP サーバー機能」の 2 つが搭載されています。仮想 HUB の管理者は、SecureNAT を有効にした状態で「仮想 NAT」と「仮想 DHCP サーバー」の両方、またはどちらか 1 つを有効にすることができます。
デフォルト状態ではこの SecureNAT は無効化されているので有効化させます。
有効化するときのコマンドがSecureNatEnable で、無効化するときのコマンドが SecureNatDisableです。
VPN Server>hub sakura-vps-vhub Hub command - Select Virtual Hub to Manage The Virtual Hub "sakura-vps-vhub" has been selected. The command completed successfully. VPN Server/sakura-vps-vhub>securenatenable SecureNatEnable command - Enable the Virtual NAT and DHCP Server Function (SecureNat Function) The command completed successfully. VPN Server/sakura-vps-vhub>
これで SecureNAT が有効化されました。
次に、SecureNAT の 1 機能である DHCP サーバーのパラメーターを設定します。ここでは、以下のようにした。
- リースする IP アドレス範囲: 192.168.30.100 – 192.168.30.200
- サブネットマスク: /24
- リース時間: 7200 秒
- デフォルトゲートウェイ: 192.168.30.1
- DNS サーバー: 1.1.1.1 と 8.8.8.8
- ログ保存: yes
VPN Server/sakura-vps-vhub>dhcpset DhcpSet command - Change Virtual DHCP Server Function Setting of SecureNAT Function Start Point for Distributed Address Band: 192.168.30.100 End Point for Distributed Address Band: 192.168.30.200 Subnet Mask: 255.255.255.0 Lease Limit (Seconds): 7200 Default Gateway ('none' to not set this): 192.168.30.1 DNS Server 1 ('none' to not set this): 1.1.1.1 DNS Server 2 ('none' to not set this): 8.8.8.8 Domain Name: Save Log (yes / no): yes The command completed successfully. VPN Server/sakura-vps-vhub>hub Hub command - Select Virtual Hub to Manage The Virtual Hub selection has been unselected. The command completed successfully. VPN Server>exit $
まとめ
ここまでで VPN サーバーの設定はできました。
あとは OS が起動したときにこの VPN サーバーが自動起動してほしいところですよね。その方法は次回の投稿で書きたいと思います。
作業の都合上、次の記事の自動起動設定まで済ませたほうがキリが良いと思います。