[Ubuntu] VPN Azure を使って SoftEther VPN サーバーに接続する方法

前書き

前回の記事で VPN Azure を利用する SoftEther VPN サーバー (以降 VPN サーバーと略す) を設定する方法について書いた。

[Windows 10] VPN Azure を利用する SoftEther VPN サーバーを設定する方法

本投稿では、この VPN サーバーに VPN 接続する方法を紹介します。

前提条件

  • VPN 接続する VPN クライアントの OS は Ubuntu です
  • Ubuntu は自宅にあるものとし、デフォルトゲートウェイは自宅ルータの IP アドレスが設定されています
  • Ubuntu は Wi-Fi でネットワークにつながっています
  • SSL-VPN で VPN サーバーに接続する方法を説明します
  • 仮想 LAN カードに設定する IP アドレスは DHCP サーバーから取得します
  • コマンド操作で設定を行います

設定に必要な情報を準備する

VPN クライアントの設定をするために必要な情報をあらかじめ用意する。今回の VPN 接続設定では VPN Azure を経て VPN サーバーへ接続する形になります。

このため、以下情報のうち、赤字で書いた箇所に留意してください。

項目 関連コマンド
[1] 仮想 LAN カードの名前 vnic-x01 NicCreate
[2] VPN 接続の名前 connect-vpnazure-lenovovpn AccountCreate
[3] VPN Azure の FQDN lenovowin10.vpnazure.net AccountCreate
[4] VPN Azure の TCP ポート番号 443 AccountCreate
[5] VPN サーバーの仮想 HUB 名 lenovo-vpn-vhub AccountCreate
[6] VPN サーバーに接続するためのユーザー名 hoge AccountCreate
[7] 上記ユーザーのパスワード vpnuserpasswd AccountPasswordSet
[8] Ubuntu のデフォルトゲートウェイ IP アドレス 192.168.86.1 ip route
[9] VPN Azure の IP アドレス 130.158.6.125 ip route

VPN クライアントを起動する

まずは VPN クライアントのプロセスを起動し、vpncmd を実行して設定を始める準備をします。

$ cd /usr/local/vpnclient
$ sudo ./vpnclient start
[sudo] nobi のパスワード: 
The SoftEther VPN Client service has been started.
$ ps -ef | grep vpnc
root       43508    1433  0 22:58 ?        00:00:00 /usr/local/vpnclient/vpnclient execsvc
root       43509   43508  1 22:58 ?        00:00:00 /usr/local/vpnclient/vpnclient execsvc
nobi       43537   42626  0 22:58 pts/0    00:00:00 grep --color=auto vpnc
$ sudo ./vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.39 Build 9772   (Japanese)
Compiled 2022/04/26 18:00:50 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

vpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 2

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
接続先のホスト名または IP アドレス: 

VPN Client "localhost" に接続しました。

VPN Client>

VPN サーバーに接続する設定

[1] 仮想 LAN カードを作る

NicCreate コマンドを使います。

VPN Client>niccreate
NicCreate コマンド - 新規仮想 LAN カードの作成
仮想 LAN カードの名前: vnic-x01

コマンドは正常に終了しました。

VPN Client>niclist
NicList コマンド - 仮想 LAN カード一覧の取得
項目 |値
-----------------+------------------------------------
仮想 LAN カード名|vnic-x01
状態 |有効 (使用可能)
MAC アドレス |5E621E656C9B
バージョン |Version 4.39 Build 9772 (Japanese)
コマンドは正常に終了しました。

VPN Client>

[2] VPN サーバーに接続する設定 (アカウント) を作る

VPN サーバーに接続する設定を作ります。これは VPN 接続するためのアカウントと考えられています。このため AccountCreate というコマンドを使います。

VPN Client>accountcreate
AccountCreate コマンド - 新しい接続設定の作成
接続設定の名前: connect-vpnazure-lenovovpn

接続先 VPN Server のホスト名とポート番号: lenovowin10.vpnazure.net:443

接続先仮想 HUB 名: lenovo-vpn-vhub

接続するユーザー名: hoge

使用する仮想 LAN カード名: vnic-x01

コマンドは正常に終了しました。

VPN Client>accountlist
AccountList コマンド - 接続設定一覧の取得
項目               |値
-------------------+-----------------------------------------------------
接続設定名         |connect-vpnazure-lenovovpn
状態               |オフライン
接続先 VPN サーバー|lenovowin10.vpnazure.net:443 (直接 TCP/IP 接続)
仮想 HUB 名        |lenovo-vpn-vhub
仮想 LAN カード名  |vnic-x01
コマンドは正常に終了しました。

VPN Client>

細かく確認していませんが、上記 [接続先 VPN Server のホスト名とポート番号] のところですが、ポート番号は 443 じゃないと駄目みたいです。5555 だとうまくいかないと思います。

[3] アカウントにパスワードを関連付ける

上記 [2] で作ったアカウントには VPN 接続するユーザー名が含まれています。このユーザーのパスワードを設定 (関連付け) します。

AccountPasswordSet というコマンドを使います。

VPN Client>accountpasswordset
AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定
接続設定の名前: connect-vpnazure-lenovovpn

パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。

パスワード: *******
確認入力  : *******

standard または radius の指定: standard

コマンドは正常に終了しました。

VPN Client>accountget
AccountGet コマンド - 接続設定の設定の取得
接続設定の名前: connect-vpnazure-lenovovpn

項目                                 |値
-------------------------------------+--------------------------
接続設定名                           |connect-vpnazure-lenovovpn
接続先 VPN Server のホスト名         |lenovowin10.vpnazure.net
接続先 VPN Server のポート番号       |443
接続先 VPN Server の仮想 HUB 名      |lenovo-vpn-vhub
経由するプロキシサーバーの種類       |直接 TCP/IP 接続
サーバー証明書の検証                 |無効
接続に使用するデバイス名             |vnic-x01
認証の種類                           |標準パスワード認証
ユーザー名                           |hoge
VPN 通信に使用する TCP コネクション数|1
各 TCP コネクションの確立間隔        |1
各 TCP コネクションの寿命            |無制限
半二重モードの使用                   |無効
SSL による暗号化                     |有効
データ圧縮                           |無効
ブリッジ / ルータモードで接続        |無効
モニタリングモードで接続             |無効
ルーティングテーブルを調整しない     |無効
QoS 制御機能を使用しない             |無効
コマンドは正常に終了しました。

VPN Client>

[4] ルーティング設定変更の準備をする

過去記事に書きましたが、VPN 接続をすることにあわせて Ubuntu のルーティング設定を変更しないといけません。

Ubuntu から SoftEther VPN サーバーに VPN 接続する方法 (コマンド操作のみ)

このルーティング設定変更の準備をします。具体的には以下の 3 つのコマンドです。

  1. VPN Azure に対するスタティックルートの追加
  2. 仮想 LAN カードで DHCP クライアントを有効にする
  3. デフォルトゲートウェイの変更

1 のスタティックルートを設定するためには VPN Azure の IP アドレスを知る必要があります。これは nslookup [VPN Azure の FQDN] や dig [VPN Azure の FQDN] コマンドで確認します。例 ↓

C:\Users\keram>nslookup lenovowin10.vpnazure.net
サーバー: UnKnown
Address: 10.2.0.254

権限のない回答:
名前: lenovowin10.vpnazure.net
Address: 130.158.6.84

C:\Users\keram>

2 は dhclient コマンドを使います。

3 のデフォルトゲートウェイの変更は、ビフォーアフターでデフォルトゲートウェイの IP アドレスを、現時点の IP アドレス = 自宅ルーターの IP アドレスから VPN Azure の IP アドレスに変える必要があります。これを実現するためのコマンドとしては、デフォルトゲートウェイの IP アドレスが自宅ルーターの IP アドレスになっているのを削除するだけで良い。なぜなら 2 の dhclient コマンドにより DHCP サーバーから IP アドレスを取ってくる際にデフォルトゲートウェイの IP アドレスもゲットするからだ。

まとめると以下のコマンドを前もって用意すれば良いことになる。

sudo ip route add 130.158.6.84 via 192.168.86.1 dev wlp2s0

sudo dhclient vpn_vnic-x01

sudo ip route delete default via 192.168.86.1 dev wlp2s0

  • 上記 130.158.6.84 が nslookup / dig コマンドで確認した VPN Azure の IP アドレスであり、
  • 192.168.86.1 が自宅ルーターの IP アドレスであり、
  • wlp2s0 が Ubuntu が Wi-Fi 接続で使用している NIC であり、
  • vpn_vnic-x01 が Ubuntu が認識する仮想 LAN カードの名前 (ip a コマンドで確認できる) である

以上を準備して、VPN 接続を行う。

[5] VPN 接続する

AccountConnect コマンドで VPN 接続することができる。このコマンドを実行してから手早くルーティング設定を変更していく流れとなる。

VPN Client>accountconnect
AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始
接続設定の名前: connect-vpnazure-lenovovpn

コマンドは正常に終了しました。

VPN Client>exit
$ sudo ip route add 130.158.6.84 via 192.168.86.1 dev wlp2s0
$ sudo dhclient vpn_vnic-x01
$ sudo ip route delete default via 192.168.86.1 dev wlp2s0

VPN Azure を経由して VPN 接続できたことを確認する

確認方法は色々ある。

  1. たとえば、今回の構成では VPN サーバーは Windows 10 なのでブザウざーを起動して 確認くん のサイトにアクセスする。このとき、あなたのIPアドレス(IPv4) をメモする。
  2. 次に、VPN クライアント側 (Ubuntu) で curl ifconfig.me; echo というコマンドを実施する。このコマンドで Ubuntu がインターネット接続するときに使用する IP アドレスを確認することができる。

上記 1 と 2 で同じ IP アドレスになっていることが確認できれば、Ubuntu は VPN Azure を経由して VPN サーバーに接続し、そこからインターネット接続を行っていることになる。

そうなっていれば成功だ。

コメントを残す

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

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