かくかきしかじか。

虎穴に入らずんば虎子を得ず。

iOS13からプロファイルを利用しWindowsServerのルーティングとアクセス(VPN:IKEv2)に接続する

はじめに

WindowsServerで動作しているルーティングとアクセスにiOS13で接続しようとした場合、 iOS13環境下で手動接続設定を行い接続していると、8分経過後に必ず切断される。

どうやらこれはiOS13のバグらしい。同様のバグがiOS9のときにも発生していた模様。 (あくまでAppleAppleが標準的と考えている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 を有効にする:有効

<子SAパラメータ>

太文字部分が特に気を付けるべき箇所。 これで上部メニューより、「保存」を行い、プロファイルを生成します。 何らかの方法でiOSやiPadOSにコピーして、プロファイルをインポートします。

これで接続ができるはず。

2020/05/15 誤字を修正