[Ubuntu] VPN Azure を使って SoftEther VPN サーバーに接続する方法
前書き
前回の記事で VPN Azure を利用する SoftEther VPN サーバー (以降 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 のルーティング設定を変更しないといけません。
このルーティング設定変更の準備をします。具体的には以下の 3 つのコマンドです。
- VPN Azure に対するスタティックルートの追加
- 仮想 LAN カードで DHCP クライアントを有効にする
- デフォルトゲートウェイの変更
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 接続できたことを確認する
確認方法は色々ある。
- たとえば、今回の構成では VPN サーバーは Windows 10 なのでブザウざーを起動して 確認くん のサイトにアクセスする。このとき、あなたのIPアドレス(IPv4) をメモする。
- 次に、VPN クライアント側 (Ubuntu) で curl ifconfig.me; echo というコマンドを実施する。このコマンドで Ubuntu がインターネット接続するときに使用する IP アドレスを確認することができる。
上記 1 と 2 で同じ IP アドレスになっていることが確認できれば、Ubuntu は VPN Azure を経由して VPN サーバーに接続し、そこからインターネット接続を行っていることになる。
そうなっていれば成功だ。