【さくらの 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 を使う (ローカルブリッジしない)

参考情報

過去に書いた投稿を参考にして設定していきます。

SoftEther VPN サーバをコマンド操作だけで構築 (設定) する方法

設定内容の準備

VPN サーバーを構築するためには、この表に書いてあるようなパラメータが必要になるので最初に準備する。

項目 コマンド
[1] VPN サーバ管理者パスワード hoge-mgmt-pass ServerPasswordSet
[2] ダイナミック DNS ホスト名 hoge-ddns DynamicDnsSetHostname
[3] 仮想 HUB 名 hoge-vhub HubCreate
[4] 仮想 HUB の管理パスワード hoge-vhub-pass SetHubPassword
[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 サーバーが自動起動してほしいところですよね。その方法は次回の投稿で書きたいと思います。

作業の都合上、次の記事の自動起動設定まで済ませたほうがキリが良いと思います。

【さくらの VPS】Ubuntu にインストールした SoftEther VPN サーバーを自動起動させる設定


(Visited 120 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください