SoftEther VPN サーバーに仮想 HUB を追加作成する方法 (コマンド操作のみ)
この記事を書くに至った経緯
- 現在 SoftEther VPN サーバー (以下、VPN サーバー) を運用しているが、この VPN サーバーに VPN 接続している端末は Chromebook だ。行きつけのカフェから接続することが多い。VPN 接続するときに使うプロトコルは L2TP/IPsec である。
- この VPN サーバーに Linux (Ubuntu) からも VPN 接続できるようにしようと考えた。この場合 VPN 接続に使用するプロトコルは SSL-VPN にする。
- SSL-VPN で VPN 接続するときに上手く接続できない問題に遭遇し、あれこれ試す必要が出てきた。このとき、上記 1 の L2TP/IPsec 接続用の設定を壊してしまう気がしてきた。
- 上記 3 の流れから、Ubuntu から SSL-VPN で接続する場合は仮想 HUB を 1 とは分けて作ることにした。これがこの記事を書くことにした理由だ。
- 上記 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 を追加作成することができました。