iOS13からプロファイルを利用しWindowsServerのルーティングとアクセス(VPN:IKEv2)に接続する
はじめに
WindowsServerで動作しているルーティングとアクセスにiOS13で接続しようとした場合、 iOS13環境下で手動接続設定を行い接続していると、8分経過後に必ず切断される。
どうやらこれはiOS13のバグらしい。同様のバグがiOS9のときにも発生していた模様。 (あくまでAppleはAppleが標準的と考えているDiffie-Hellmanグループと異なるグループを用いているVPNサーバー側の問題である、としているが、だったら接続できるようにするなよと言いたい)
その場合、Apple Configurator 2 を用いて(別に用いずにxmlを書いてもいいが)プロファイルをインポートすることで、現象の発生が回避できる。 設定する際に躓く点について記載する。 特にこの辺り、日本語での情報は少ない。。。
環境
以下のような環境を想定している。
VPN Server:
利用するプロトコル:
- IKEv2
認証方法:
- クライアント証明書 認証(EAPは利用しない)
クライアント:
- iOS13.3.1
事前準備
OpenSSLで発行したCA証明書、サーバー証明書、クライアント証明書は適切に設定できていることとする。 特にiOS13ではサブジェクト代替名(SAN)にDNS名を記載していないと証明書が利用できない。
WindowsServerの機能(証明書発行機関)では、SANにDNS名を記載した証明書を発行できなかったので、OpenSSLを利用した。 (もしかしたらできるかもしれない。)
Apple Configurator 2 の設定
Apple Configurator 2 開き、「証明書」のタブで証明書のインポート(Ca証明書の公開鍵証明書、クライアント証明書の秘密鍵証明書が認証に必要) する。
クライアント証明書のインポート時には、パスワードを求められるので、作成時に指定したパスワードを利用する。
「VPN」タブを開く。以下の設定を入れていく。
- 接続名:(任意の名前)
- 接続のタイプ:IKEv2
- VPN常時接続:必要であればチェック
- サーバー:(接続したいVPNサーバーのFQDNやIP)
- リモート接続子(接続したいVPNサーバーのFQDNやIP)
ローカル接続子:(接続したいVPNサーバーのFQDNやIP) ★リモート接続子やローカル接続子については、証明書やVPNサーバーの設定により変わります。
コンピューター認証:証明書
- 固有名称証明書:(証明書タブで登録したクライアント証明書名を選択)
- 証明書のタイプ:RSA(証明書の内容により変更)
- サーバー証明書発行者のコモンネーム:(EAP用なので無記入)
- EAPを有効にする:無効
- サーバー証明書の顧問ネーム:(サーバー証明書のCNを記載)
- 待機時に接続解除:接続を解除しない
- DPD(デッドピア検出)のレート:中
- リダイレクトを無効にする:無効
- モバイル環境とマルチホーミングを無効にする:無効
- IPv4 / IPv6 内部サブネットの属性を使用:無効
- Perfect Forword Secrecy を有効にする:有効
- 暗号化アルゴリズム:AES-256
- 整合性アルゴリズム:SHA1-96
- Diffie-Hellmanグループ:2
- 存続期間(分単位):1440
- プロキシ設定:なし
<子SAパラメータ>
- 暗号化アルゴリズム:AES-256
- 整合性アルゴリズム:SHA1-96
- Diffie-Hellmanグループ:2
- 存続期間(分単位):1440
- プロキシ設定:なし
太文字部分が特に気を付けるべき箇所。 これで上部メニューより、「保存」を行い、プロファイルを生成します。 何らかの方法でiOSやiPadOSにコピーして、プロファイルをインポートします。
これで接続ができるはず。
2020/05/15 誤字を修正