XG Firewall VPNにスマホから接続する

この記事で実現すること

スマホ(iPhone、Android)からXG FirewallのVPNに接続できます。2要素認証の設定も可能です。

事前準備

前回の記事でPC(WindowsおよびmacOS)からXGのVPN(Sophos Connect)に2要素認証で安全に接続できるようになりました。ここでは、スマホからVPNへ接続できるように設定していきます。この記事では、XG側に一通りVPNの設定が終わっている事を前提としています。以下の記事を参考にしてください。

前提条件は以下の通りです。なお、この記事では、ワンタイムパスワードを必ず必須とはしていません。PCとは異なり、移動しながら使うスマホは毎回ワンタイムパスワードを入力するのでは利便性に欠けます。ここは利便性とセキュリティの安全面を比較し判断という事になります。

  • XGにVPN(Sophos Connect)の設定を終えている
  • XGの外側(インターネット側)にホームゲートウェイがあり、ホームゲートウェイからXGに対し必要なVPNのパケットを転送出来ている

iOS(iPhone)、AndroidのVPN設定

iOSの設定

LAN環境にて、XGのユーザーポータルhttps://XGのIPアドレス/に接続します。ユーザーポータルには、前回までに作成したVPNユーザーでログインします。ポータルのログイン後には、以下の画面のように、iPhone(iOS)のIPSec VPNに必要な設定ファイルをダウンロードできるようになっています。

ダウンロードした設定ファイルは一部修正が必要ですので、PCでダウンロードしファイルを修正の後、iOSにインストールする事をお勧めします。

ファイルをダウンロードしたらメモ帳やテキストエディットなどで設定ファイルを開きます。以下はファイルの先頭からの抜粋ですが、11行目にXGのWAN側のIPアドレスが記載されている行があります。内容は以下の通りです。

1
2
3
4
5
6
7
8
9
10
11
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>IPSec</key>
<dict>
<key>AuthenticationMethod</key>
<string>SharedSecret</string>
<key>RemoteAddress</key>
<string>192.168.x.x</string>

上記のIPアドレスをXGで設定してあるダイナミックDNSのホスト名に書き換えます(Sophos社が提供しているダイナミックDNSであれば、xxxx.myfirewall.coです)。その後、ファイルを保存し、iCloudまたはメールなどでiPhoneに転送し、iPhoneから設定ファイルをインストールします。macOSだとFinderからファイルを選んでAirDropでiPhoneに送信すると簡単ですね。iPhoneではプロファイルのインストール時には、最初にiPhoneのパスワードを求められますのでiPhoneのパスワードを入力します。次にXGの接続ユーザーのパスワードを求められますが、ここはワンタイムパスワードの有無で設定が異なります。前回の記事ではワンタイムパスワードが必要なユーザーを作成しましたが、ワンタイムパスワードが不要であれば、ワンタイムパスワードを使わないユーザーを改めて作成してください。

以下の場合は、XGの接続ユーザーのパスワードを入力します。

  • ワンタイムパスワードは利用しない
  • iPhoneにパスワードを記憶させたい

以下の場合は、パスワードを入力せずプロファイルのインストールを完了させます。

  • ワンタイムパスワードを利用する
  • iPhoneにパスワードを記憶させたくない

(2021-4-7更新)v18 MR-4での不具合について

v18 MR-4では不具合により、上記設定ファイルがダウンロードできない状況でした。このケースに遭遇した場合はVPNのプロファイルを使わずに手動設定できます。なお、v18 MR-5ではこの不具合は解消されています。

  1. iOSの設定からVPNを選択します
  2. VPN構成を追加...をタップします
  3. 以下のパラメータを入力し、完了をタップします。
説明 内容
タイプ IPSecを選択します
サーバー xxx.myfirewall.coなどのダイナミックDNSのホスト名を入力します
アカウント VPNで接続するユーザーIDを入力します
シークレット XGで設定した共有鍵を入力します

iOS(iPhone)からVPNに接続

iPhoneの設定アプリからVPNを選択、XGの接続先が選択されている状態で状況のトグルスイッチをオンにします。パスワードが設定済みの方は短い時間でXGへの接続が完了します。ワンタイムパスワードを設定している方、或いはパスワードを記憶させていない方は、パスワード入力のポップアップが表示されます。ワンタイムパスワードは、パスワードのあと続けてワンタイムパスワードの6つの数字を続けて入力します。一旦ポップアップが表示されると他のアプリに切り替えられないので一旦キャンセルします。ワンタイムパスワードアプリで6桁の数字を記憶するかコピーするなどし、最大30秒以内で設定アプリに再度切り替え、VPNのパスワードを完成させ接続する事になります。

Androidの設定

AndroidからVPNに接続する場合は、以下の設定を行います。今回の実例はAndroidのバージョン9のタブレットで説明します。機種によって操作は異なるかとおもいますが、ご容赦ください。無線とネットワーク→VPN→VPNネットワークの追加をタップします。

説明 内容
名前 接続名を入力します
タイプ IPSec Xauth PSKを選択します
サーバー xxx.myfirewall.coなどのダイナミックDNSのホスト名を入力します
IPSec ID 空白のままで構いません
IPSec事前共有鍵 XGで設定した共有鍵を入力します

AndroidからVPNに接続

設定から無線とネットワークに進みVPNを選択し、ユーザーIDとパスワードを入力し接続します。ワンタイムパスワードを利用する場合は、パスワードの後ろにワンタイムパスワード(6桁の数字)を続けて入力します。

Androidに関しては1点、注意点があります。Androidは、SSLインスペクションについて、Chromeブラウザ以外のアプリからは使えない前提があります。そこで、Android専用のVPNユーザーを作成しSSLインスペクションの対象からAndroidユーザーを除外するなどの設定が必要となります。

2要素認証の有無による使い分け

私はVPN接続ユーザーを2つ有効にしています。2要素認証が必要なユーザーはLANへのアクセスを許可するもの、2要素認証を不要としているユーザーはLANおよびHGWのセグメントへのアクセスを不許可とするルールを作成しています。またVPNからXGの管理画面には接続できないようにもしています。