SoftEther VPN サーバーに仮想 HUB を追加作成する方法 (コマンド操作のみ)

この記事を書くに至った経緯

  1. 現在 SoftEther VPN サーバー (以下、VPN サーバー) を運用しているが、この VPN サーバーに VPN 接続している端末は Chromebook だ。行きつけのカフェから接続することが多い。VPN 接続するときに使うプロトコルは L2TP/IPsec である。
  2. この VPN サーバーに Linux (Ubuntu) からも VPN 接続できるようにしようと考えた。この場合 VPN 接続に使用するプロトコルは SSL-VPN にする。
  3. SSL-VPN で VPN 接続するときに上手く接続できない問題に遭遇し、あれこれ試す必要が出てきた。このとき、上記 1 の L2TP/IPsec 接続用の設定を壊してしまう気がしてきた。
  4. 上記 3 の流れから、Ubuntu から SSL-VPN で接続する場合は仮想 HUB を 1 とは分けて作ることにした。これがこの記事を書くことにした理由だ。
  5. 上記 4 のようにすることで、あれやこれや試しても 1 で使用している VPN サーバーの設定を壊さなくてすむと考えた。

前提

  • コマンド操作のみで行う
  • ローカルブリッジなし
  • SecureNAT 機能 (仮想 DHCP サーバー、仮想 NAT) を使用する
  • 仮想 DHCP サーバーで配布する IP アドレス帯を変更する

設定内容を準備する

仮想 HUB を追加作成するに当たって以下の情報をあらかじめ準備する。これが準備できない = 設定できないことになる。

項目 コマンド
[1] VPN サーバー管理者パスワード hoge-mgmt-pass (ServerPasswordSet)
[2] 仮想 HUB 名 hoge-sslvpn-vhub HubCreate
[3] 仮想 HUB の管理パスワード hoge-sslvpn-vhub-pass SetHubPassword
[4] ユーザー hoge-sslvpn-user UserCreate
[5] 上記ユーザーのパスワード hoge-sslvpn-user-pass UserPasswordSet
[6] 仮想 DHCP サーバーで配布する IP アドレス

サブネットマスク

デフォルトゲートウェイ

DNS サーバー

172.28.1.1 – 172.28.1.100

255.255.255.0

172.28.1.254

1.1.1.1, 8.8.8.8

DhcpSet
[7] SecureNAT で使用する IP アドレス 172.28.1.254 SecureNatHostSet

今回の手順で [1] の VPN サーバー管理者パスワードは使用するが、作成することはないので ServerPasswordSet コマンドを使用することもない。このためカッコをつけている。

設定前の確認事項

VPN サーバーとしてはすでに構築済みのため、OS 起動時に VPN サーバープロセスが起動している。ps コマンドで確認する。

$ ps -ef | grep vpn
root 572 1 0 Jun11 ? 00:00:00 /usr/local/vpnserver/vpnserver execsvc
root 573 572 0 Jun11 ? 05:02:55 /usr/local/vpnserver/vpnserver execsvc
nobi 674911 674851 0 16:17 pts/0 00:00:00 grep vpn
$

このように vpnserver プロセスが 2 個起動していればよし。起動していなければ sudo ./vpnserver start で起動させる。

仮想 HUB を追加作成する設定

コマンド操作で仮想 HUB を作っていきます。vpncmd コマンドを使って VPN サーバーの設定が行える状態にします。

$ cd /usr/local/vpnserver/
$ sudo ./vpncmd
[sudo] password for hoge: 
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: 
Password: ************

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

You have administrator privileges for the entire VPN Server.

VPN Server>

Password: のところで入力しているのは、[1] の VPN サーバー管理者パスワードです。

仮想 HUB を作る

hubcreate コマンドを使います。正式には HubCreate コマンドだが大文字小文字は関係ないので気にすることはない。

VPN Server>hubcreate
HubCreate command - Create New Virtual Hub
Name of Virtual Hub to be created: sakura-sslvpn-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-sslvpn-vhub
Status |Online
Type |Standalone
Users |0
Groups |0
Sessions |0
MAC Tables |0
IP Tables |0
Num Logins |0
Last Login |2022-07-09 16:26:55
Last Communication|2022-07-09 16:26:55
Transfer Bytes |0
Transfer Packets |0
------------------+-------------------
Virtual Hub Name |sakura-vps-vhub
Status |Online
Type |Standalone
Users |1
Groups |0
Sessions |1
MAC Tables |1
IP Tables |2
Num Logins |14
Last Login |2022-07-09 14:23:44
Last Communication|2022-07-09 16:26:57
Transfer Bytes |3,348,312,375
Transfer Packets |4,942,070
The command completed successfully.

VPN Server>

hubcreate コマンドで仮想 HUB を作ったあと、hublist コマンドで作成済み仮想 HUB を表示させている。hubcreate コマンドのときに聞かれるパスワードは [1] VPN サーバー管理者パスワードです。

仮想 HUB の管理パスワードを設定する

次に仮想 HUB の管理パスワードを設定します。この設定はマストではないのでスキップしても良いです。

sethubpassword コマンドを使いますが、その前に hub コマンドで対象の仮想 HUB に入る必要があります。

VPN Server>hub sakura-sslvpn-vhub
Hub command - Select Virtual Hub to Manage
The Virtual Hub "sakura-sslvpn-vhub" has been selected.
The command completed successfully.

VPN Server/sakura-sslvpn-vhub>sethubpassword
SetHubPassword command - Set Virtual Hub Administrator Password
Please enter the password. To cancel press the Ctrl+D key.

Password: ************
Confirm input: ************


The command completed successfully.

VPN Server/sakura-sslvpn-vhub>

次にユーザーを作ります。このユーザーとパスワードを使って VPN サーバー (より厳密には仮想 HUB) に接続する形になります。ユーザーを作るコマンドは usercreate です。

VPN Server/sakura-sslvpn-vhub>usercreate
UserCreate command - Create User 
User Name: hoge

Assigned Group Name:

User Full Name:

User Description:

The command completed successfully.

VPN Server/sakura-sslvpn-vhub>

続いてこのユーザーのパスワードを設定します。userpasswordset コマンドを使います。パスワードを設定したら作成したユーザー情報を見るために userlist コマンドを実行しています。

VPN Server/sakura-sslvpn-vhub>userpasswordset
UserPasswordSet command - Set Password Authentication for User Auth Type and Set Password
User Name: hoge

Please enter the password. To cancel press the Ctrl+D key.

Password: **********
Confirm input: **********

The command completed successfully.

VPN Server/sakura-sslvpn-vhub>userlist
UserList command - Get List of Users
Item |Value
----------------+-----------------------
User Name |hoge
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-sslvpn-vhub>

SecureNAT (仮想 DHCP サーバー + 仮想 NAT) の有効化

SecureNAT を securenatenable コマンドで有効化します。

VPN Server/sakura-sslvpn-vhub>securenatenable
SecureNatEnable command - Enable the Virtual NAT and DHCP Server Function (SecureNat Function)
The command completed successfully.

VPN Server/sakura-sslvpn-vhub>

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

SecureNAT 機能には仮想 DHCP サーバー機能があります。この仮想 DHCP サーバーが払い出しする IP アドレスはデフォルトでは 192.168.30.0/24 になっています。これを dhcpset コマンドで変更します。(変更しなくても良い)

以下の例では、172.28.1.1 – 172.28.1.100 までの 100 個の IP アドレスを払い出せるようにする設定です。デフォルトゲートウェイは 172.28.1.254 に設定 (これがクライアント側に通知されます) し、DNS サーバーは 1.1.1.1 と 8.8.8.8 をクライアント側が使うように通知します。

VPN Server/sakura-sslvpn-vhub>dhcpset
DhcpSet command - Change Virtual DHCP Server Function Setting of SecureNAT Function
Start Point for Distributed Address Band: 172.28.1.1

End Point for Distributed Address Band: 172.28.1.100

Subnet Mask: 255.255.255.0

Lease Limit (Seconds): 7200

Default Gateway ('none' to not set this): 172.28.1.254

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-sslvpn-vhub>

dhcpget コマンドで設定を確認します。

VPN Server/sakura-sslvpn-vhub>dhcpget
DhcpGet command - Get Virtual DHCP Server Function Setting of SecureNAT Function
Item |Value
-------------------------------+-------------
Use Virtual DHCP Function |Yes
Start Distribution Address Band|172.28.1.1
End Distribution Address Band |172.28.1.100
Subnet Mask |255.255.255.0
Lease Limit (Seconds) |7200
Default Gateway Address |172.28.1.254
DNS Server Address 1 |1.1.1.1
DNS Server Address 2 |8.8.8.8
Domain Name |
Save NAT and DHCP Operation Log|Yes
Static Routing Table to Push |
The command completed successfully.

VPN Server/sakura-sslvpn-vhub>

【注意事項】仮想 DHCP サーバー機能が配布する IP アドレス帯をデフォルトから変更した場合、仮想 NAT 機能の設定もこれにあわせて変更する必要があります。

仮想 NAT 機能の設定

dhcpset コマンドでデフォルトゲートウェイのアドレスを 172.28.1.254 に設定しました。これに合わせて仮想 NAT 機能で使われる IP も同じにしてやる必要があります。これは securenathostset コマンドで実行します。

確認は securenathostget コマンドです。

VPN Server/sakura-sslvpn-vhub>securenathostset
SecureNatHostSet command - Change Network Interface Setting of Virtual Host of SecureNAT Function
MAC Address:

IP Address: 172.28.1.254

Subnet Mask: 255.255.255.0

The command completed successfully.

VPN Server/sakura-sslvpn-vhub>securenathostget
SecureNatHostGet command - Get Network Interface Setting of Virtual Host of SecureNAT Function
Item |Value
-----------+-----------------
MAC Address|5E-BE-5B-A5-23-92
IP Address |172.28.1.254
Subnet Mask|255.255.255.0
The command completed successfully.

VPN Server/sakura-sslvpn-vhub>

hub コマンドで仮想 HUB から抜け、exit で VPN サーバーからも抜けます。

VPN Server/sakura-sslvpn-vhub>hub
Hub command - Select Virtual Hub to Manage
The Virtual Hub selection has been unselected.
The command completed successfully.

VPN Server>exit
$

以上で仮想 HUB を追加作成することができました。

コメントを残す

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

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