PacketiX VPN ServerがAndroid12から繋がらない件

はじめに

2021年末にAndroid12 がリリースされました。
私のXperia 1 III SO-51B でも 2022年3月にソフトウェアの更新が来ましたので、早速アップデートしました。
すると、VPN設定画面の接続情報タイトルに「安全ではない」の警告文字が・・・・・・。

今までこんな表示はありませんでした・・・。
試しにタップしてみると、一見接続成功に見えるときもあるのですが、すぐに「切断されました」と表示されてしまい、実際には安定接続できない状態になってしまいました。
PacketiX VPN Server側もCentOS(AlmaLinux)側も何も設定を変えていないのですが、これは一体どういうことでしょう??

そこで SoftetherのHPを調べてみると、「2021/11/11 Android 12 で新しい L2TP/IPsec 接続が作成できない問題について」という記事が見つかりました。
私はスマホからのVPN接続に L2TP/IPsecを用いていますが、この記事によればAndroid12ではL2TP/IPsecによる接続設定が新規に追加作成できなくなってしまったようです。
ただ今回の私の事象では、新規に接続設定を追加しようとしている訳ではなく、既存の接続設定を用いて接続しようとしているだけです。それでも接続に失敗するのはきっとAndroid12が何かしらの悪さをしているのでしょう??

差し当たりSoftetherのHPに従い、OpenVPNクライアントを用いて安定接続を目指すことにします。
そのために私が行ったことを書いていきます。

 

PacketiX VPN Server の設定の見直し

PacketiX VPN Server には OpenVPN互換サーバー機能が実装されているそうですので、その機能が有効になっているかどうかを確認します。
今回は Windows版のサーバー管理マネージャを用いました。


仮想HUB管理画面の右下にある「OpenVPN / MS-SSTP 設定」をクリックします。

すると、次のような「OpenVPN / MS-SSTP VPN サーバー機能設定」が開きます。

「OpenVPN サーバー機能を有効にする」にチェックマークが入っていることを確認します。
UDPポートはデフォルトの1194が嫌であれば変更します。
「OK」をクリックし画面を閉じます。

デフォルトでOpenVPN互換サーバー機能はオンになっているのですね。

 

ルーターでポートを開放

外出先から接続可能になるようにルーターの設定を変更します。

先程 PacketiX VPN Server の「OpenVPN / MS-SSTP VPN サーバー機能設定」の画面で確認(または変更)したUDPポートへの通信パケットが PacketiX VPN Serverマシンに届くよう、ルーターのポートマッピングを設定します。

 

スマホへの OpenVPNクライアントのインストール

Android用のOpenVPNクライアントアプリは幾つか存在するようですが、私はSoftether の記事で紹介されていた「OpenVPN Connect」をそのまま使うことにしました。GooglePlayから「OpenVPN Connect」をダウンロードしインストールします。

 

OpenVPN の設定ファイル(*.ovpn)の作成

インストールした「OpenVPN Connect」を起動してみると、どうやら接続プロファイルを作成するためには、接続情報を記した何らかの設定用ファイルをインポートしなければいけばいようです。

設定ファイルの作成方法はいろいろありますが、今回はPacketiX VPN Server に搭載されている作成機能を用いて作成します。

再びPacketiX VPN Serverマネージャから「OpenVPN / MS-SSTP 設定」を開きます。

「OpenVPN クライアント用のサンプル設定ファイルを作成」をクリックします。
すると、拡張子 .ovpn の設定ファイルを含んだZIPファイルが生成されますので、PCの任意の場所に保存します。

私の場合は拠点間接続を行っていませんので、今回は ZIPファイルの中身のうち「openvpn_remote_access_l3.ovpn」をベースに設定情報をカスタマイズします。
私が書き換えた内容は以下の通りです。

[PacketiX VPN Server登録ユーザーの認証方法に “パスワード認証” を採用している場合]

67行目(VPNサーバーの hostname / IP address、およびポート番号)を自分の環境に合わせ変更します。
remote ******.com 1194(自分のサーバーのDNS名)

[PacketiX VPN Server登録ユーザーの認証方法に “固有証明書認証” を採用している場合]

上記同様、67行目(VPNサーバーの hostname / IP address、およびポート番号)を自分の環境に合わせ変更します。
remote ******.com 1194(自分のサーバーのDNS名)

114行目(Authentication with credentials.)をコメントアウトします。
;auth-user-pass(行の先頭に「;」を挿入)

162行目以降(クライアント証明書情報)のコメントアウトを解除し、自分のクライアント証明書情報を貼り付けます。
<cert>(行の先頭の「;」を削除)
—–BEGIN CERTIFICATE—–
(行の先頭の「;」を削除)
ABCDEF123456・・・・・・
(証明書ファイルの中身をコピーペースト)
—–END CERTIFICATE—–
(行の先頭の「;」を削除)
</cert>
(行の先頭の「;」を削除)
<key>
(行の先頭の「;」を削除)
—–BEGIN PRIVATE KEY—–
(行の先頭の「;」を削除)
GHIJKLM789123・・・・・・
(秘密鍵ファイルの中身をコピーペースト)
—–END PRIVATE KEY—–
(行の先頭の「;」を削除)
</key>
(行の先頭の「;」を削除)

書き換えが終わったら適当な名前(「***.ovpn」)を付けてPC内に保存します。
このファイルは後ほどスマホアプリ「OpenVPN Connect」で使用しますので、スマホ内ストレージの任意の場所に保管しておきます。

なお、クライアント証明書の証明書ファイル・秘密鍵ファイルですが、PacketiX VPN Server 管理マネージャ内でも作成することが出来ますので、参考にやり方を書いておきます。

<クライアント証明書の作成要領>

まず仮想HUBの管理画面を開きます。

「ユーザーの管理」をクリックします。
すると登録しているユーザー一覧が表示されます。

ユーザー一覧から固有証明書認証を用いているユーザーを選択し、「編集」をクリックします。
すると、ユーザーのプロパティ画面が開きます。

「証明書作成ツール」をクリックします。
すると「新しい証明書の作成」が開きます。

このまま「OK」をクリックします。
すると「証明書と秘密鍵の保存」が開きます。

「X509 証明書ファイル(.CER)と秘密鍵ファイル(.KEY)の組合せとして保存する」を選択し、「OK」をクリックします。
するとファイルの保存場所を求められますので、PCの任意の場所に保存します。
こうして作成された証明書ファイルと秘密鍵ファイルをテキストエディタで開き、先程の OpenVPN 設定ファイルにコピペします。

 

OpenVPN Connect から設定ファイル(*.ovpn)を読み込む

スマホにインストールした「OpenVPN Connect」を起動します。
すると「Import Profile」の画面が開きます。

右上の「FILE」をタップします。
ファイルがブラウズされますので、先程 PCからスマホに移動しておいたOpenVPN 設定ファイル(*.ovpn)を選択します。
すると設定がインポートされ、接続プロファイルが作成されます。

これで Android12のスマホから PacketiX VPN Serverへの接続設定はすべて完了です。

 

最後に

試しに接続してみると、無事にVPN接続されました。
接続後にすぐ途切れてしまうようなこともありません。
Android12の一時的な不具合なのか、それとも今後は L2TP/IPsecを用いた接続はまったくできなくなるということかは分かりません。
いずれにしてもOpenVPNサーバー互換機能を用いて接続できたので、これで安心です。

 

コメント

タイトルとURLをコピーしました