人気の strongSwan VPN ソリューションの公式 Android ポート。
# 機能と制限 #
* Android 4 以降に搭載されている VpnService API を使用します。一部のメーカーのデバイスはこれをサポートしていないようです - strongSwan VPN Client はこれらのデバイスでは動作しません!
* IKEv2 鍵交換プロトコルを使用 (IKEv1 は *サポートされていません*)
* データ トラフィックに IPsec を使用 (L2TP は *サポートされていません*)
* MOBIKE (または再認証) による変更された接続とモビリティの完全なサポート
* ユーザー名/パスワード EAP 認証 (つまり、EAP-MSCHAPv2、EAP-MD5、および EAP-GTC) と、ユーザーを認証するための RSA/ECDSA 秘密鍵/証明書認証をサポートし、クライアント証明書を使用した EAP-TLS もサポートされています。
* RSA/ECDSA と EAP の組み合わせ認証は、RFC 4739 で定義されている 2 つの認証ラウンドを使用してサポートされます
* VPN サーバー証明書は、ユーザーがシステムにプリインストールまたはインストールした CA 証明書に対して検証されます。サーバーの認証に使用される CA またはサーバー証明書は、アプリに直接インポートすることもできます。
* VPN サーバーがサポートしている場合、IKEv2 フラグメンテーションがサポートされます (strongSwan は 5.2.1 以降サポートしています)。
* 分割トンネリングにより、VPN を介して特定のトラフィックのみを送信したり、VPN から特定のトラフィックを除外したりできます
* アプリごとの VPN により、VPN 接続を特定のアプリに制限したり、それらのアプリの使用を除外したりできます
* IPsec の実装は現在、AES-CBC、AES-GCM、ChaCha20/Poly1305、および SHA1/SHA2 アルゴリズムをサポートしています。
* パスワードは現在、データベースに平文で保存されています (プロファイルと共に保存されている場合のみ)
* VPN プロファイルはファイルからインポートできます
詳細と変更ログは、https://docs.strongswan.org/docs/5.9/os/androidVpnClient.html のドキュメントで確認できます。
# 権限 #
* READ_EXTERNAL_STORAGE: 一部の Android バージョンで外部ストレージから VPN プロファイルと CA 証明書をインポートできるようにします
* QUERY_ALL_PACKAGES: VPN プロファイルとオプションの EAP-TNC ユースケースに含める/含めるアプリを選択するために、Android 11 以降で必要です
# サーバー構成の例 #
サーバー構成の例は、https://docs.strongswan.org/docs/5.9/os/androidVpnClient.html#_server_configuration のドキュメントに記載されています。
アプリで VPN プロファイルを使用して構成されたホスト名 (または IP アドレス) は、subjectAltName 拡張子としてサーバー証明書に含まれている必要があることに注意してください。
# フィードバック #
GitHub 経由でバグ レポートと機能リクエストを投稿してください: https://github.com/strongswan/strongswan/issues/new/choose
その場合、お使いのデバイスに関する情報 (メーカー、モデル、OS のバージョンなど) を含めてください。
鍵交換サービスで書き込んだログファイルをアプリ内から直接送信できます。