VPN Gateway でSSL-VPN を使用する#5 iOS から接続

Alibaba Cloud VPN Gateawy のSSL-VPNですが、WIndows 以外のOSに対応しています。

ポイント対サイト接続
SSL VPN トンネルを介してクライアントを VPC に接続することで、リモート作業のニーズに対応できます。 SSL-VPN コネクションでは、インターネットアクセスを利用できる限り、VPC にデプロイされたアプリケーションに安全にアクセスできます。
SSL-VPN 接続は、Windows、Linux、Mac、IOS、Android など、さまざまなオペレーティングシステムのクライアントからのリモートアクセスをサポートしています。

https://jp.alibabacloud.com/help/doc-detail/65069.htm?spm=a21mg.p38356.b99.3.20b2388as7jwVY

今回はiOS から接続してみます。

1. iOS へのVPN クライアントのインストール

VPN クライアントにはOpenVPN Connect を使用します。

1.1. OpenVPN Connect のインストール

別用途で既にインストール済みだったのでインストールの手順は省略します。 App Store から”OpenVPN Connect”で検索とインストール出来ます。

1.2. config.ovpn の準備

Alibaba Cloud VPN Gateway のSSL-VPN は証明書認証にのみ対応しています。今回、iOS へのconfig.ovpn のインポートにあたり、証明書情報をconfig.ovpn に統合します。

具体的にはconfig.ovpn ファイルにCA証明書、証明書、秘密鍵をマージします。以下が記載方法のポイントです。

  • 元々のconfig.ovpn のCA証明書、証明書、秘密鍵のファイル指定部分を”;”でコメントアウト
  • CA証明書は<ca> ~ </ca> で囲む
  • 証明書は<cert> ~ </cert> で囲む
  • 秘密鍵は<key> ~ </key> で囲む

以下、太字の部分がポイントです。

client
dev tun
proto udp
remote 47.74.32.12 1194
resolv-retry infinite
nobind
persist-key
persist-tun
;ca ca.crt
;cert vsc-6we3aajp34f89wparn5ei.crt
;key vsc-6we3aajp34f89wparn5ei.key

cipher AES-128-CBC
;comp-lzo
verb 4

<ca>
—–BEGIN CERTIFICATE—– MIIDjDCCAnSgAwIBAgIRAKOUYkA/9hB/gXToVLGSaXMwDQYJKoZIhvcNAQELBQAw UjELMAkGA1UEBhMCQ04xETAP
~中略~
TWAlK/lujDjUHhY1e6nRWJHr9WMtrVOsj3OIcpvrD9FmXAoe1t+hVZTOk3//T

—–END CERTIFICATE—–
</ca>

<cert>
—–BEGIN CERTIFICATE—– MIIDRTCCAi2gAwIBAgIQPsrzBnvyA+CMCdbhx799kTANBgkqhkiG9w0BAQsFADBS MQswCQYDVQQGEwJDTjERMA8G
~中略~
Lc9LewHHhAdrWEOQvO//cdErWFYAhHpZqZ BtE304bKj2wL65JHIQPA3+A49nYjMZJx+Q==
—–END CERTIFICATE—–

</cert>

<key>
—–BEGIN RSA PRIVATE KEY—–
MIIEpAIBAAKCAQEAzEzrUeYPtJq6iiU50dG8fXsocP8tHFjJkhJZrT4w7xJvcY/F vMIPp7mYXP5mHZjP3vqIequSqXcmDD+S9aqpzoQMJchUTWzS8SDio
~中略~
nMWwlRTqqc+//sY2/LI uIKClT84dUvQcJMTNytoZk/WsI86XkQgqaif52mtYJ6dt//2OJQHoQ==
—–END RSA PRIVATE KEY—–

</key>

1.3. OpenVPN Connect への設定インポート

1.2. の手順で作成した”config.ovpn”をメールで送付します(安全ではない方法ですが)。

“config.ovpn”について、”OpenVPNにコピー”を実行します。

OpenVPN Connect でのImport が実行されます。 途中での確認・承諾事項も確認した上で進めます。

プロファイルの登録完了後の画面です。

1.4. config.ovpn のインポートの失敗例

config.vpn に証明書をマージしつつ、ファイル指定のコメントアウトを未実施のままインポートしようとすると以下のエラーで失敗します。

“Failed to import profile Failed to import OVPN profile from selected file.Missing/bad files” と文面そのままにconfig.vpn で読み込むように指定したca.crt が見つからないということです。 

2. 接続テスト

2.1. VPN 接続

プロファイルの左横のスライドボタンをクリックします。

正常に接続出来ると緑色文字で”CONNECTED”となります。

下にスクロールすると接続先のサーバ情報なども確認出来ます。

2.2. Alibaba Cloud のECS にRDP接続

iOS から Alibaba Cloud 上のWindows Server にリモートデスクトップ接続します。 リモートデスクトップクライアントはMicrosoft 純正を利用します。

資格情報を入力し、

Alibaba Cloud 上のWindows Server 2019 にサインインします。 接続元(iOS)がどのIPアドレスとなっているかnetstata -aon コマンドから確認します。

Windows Server 2019 (10.10.10.21) のポート 3389 にiOS がIPアドレス 172.16.0.6 として接続されたことが確認出来ました。

3. まとめ

iOS からAlibaba Cloud VPN Gateway のSSL-VPN 機能を問題なく利用できることが確認出来ました。

iOS のファイルシステムの都合(なのか、私自身のiOSの知識不足かも)で、config.ovpn にCA証明書、証明書、秘密鍵をマージする点がAndroidやWindows と手順が異なる点でした。 結果として、複数OSに対応するconfig.ovpn を準備する場合は、マージした1つのconfig.ovpn ファイルを準備し、利用者に配布する運用がよいことがわかりました。