次の方法で共有


ユーザー VPN P2S 証明書認証 IKEv2 接続用に strongSwan VPN を構成する - Linux

この記事は、Virtual WAN ユーザー VPN ポイント対サイト (P2S) VPN を使用して Azure 仮想ネットワーク (VNet) に接続し、strongSwan を使用して Ubuntu Linux クライアントから証明書認証するのに役立ちます。

開始する前に

正しい記事が表示されていることを確認します。 次の表は、Azure Virtual WAN P2S VPN クライアントで使用可能な構成の記事を示しています。 手順は、認証の種類、トンネルの種類、クライアント OS によって異なります。

認証方法 トンネルの種類 クライアントの OS VPN client
証明書 IKEv2、SSTP Windows ネイティブ VPN クライアント
IKEv2 macOS ネイティブ VPN クライアント
IKEv2 Linux strongSwan
OpenVPN Windows Azure VPN クライアント
OpenVPN クライアント バージョン 2.x
OpenVPN クライアント バージョン 3.x
OpenVPN macOS OpenVPN クライアント
OpenVPN iOS OpenVPN クライアント
OpenVPN Linux Azure VPN クライアント
OpenVPN クライアント
Microsoft Entra ID OpenVPN Windows Azure VPN クライアント
OpenVPN macOS Azure VPN クライアント
OpenVPN Linux Azure VPN クライアント

前提条件

この記事では、次の前提条件を満たしているとみなします。

  • ユーザー VPN ポイント対サイト接続を作成するの記事の手順に従って、Virtual WAN を構成した。 ユーザー VPN 構成では、証明書認証と IKEv2 トンネルの種類を使用する必要があります。
  • VPN クライアント構成ファイルを生成し、ダウンロードした。 VPN クライアント プロファイル構成パッケージを生成する手順については、「VPN クライアント構成ファイルを生成する」を参照してください。
  • クライアント証明書を生成する、または認証に必要な適切なクライアント証明書を取得するアクセス許可がある。

接続の要件

strongSwan クライアントと IKEv2 トンネル タイプを介した証明書認証を使用して Azure に接続するには、各接続クライアントに次のものが必要です。

  • 各クライアントが strongSwan を使用するように構成する必要があります。
  • クライアントには、適切な証明書がローカルにインストールされている必要があります。

ワークフロー

この記事のワークフローは次のとおりです。

  1. strongSwan をインストールします。
  2. 生成した VPN クライアント プロファイル構成パッケージに含まれている VPN クライアント プロファイル構成ファイルを表示します。
  3. 必要なクライアント証明書を見つけます。
  4. strongSwan を構成します。
  5. Azure に接続します。

証明書について

証明書認証の場合は、1 つのクライアント証明書を各クライアント コンピューターにインストールする必要があります。 使用するクライアント証明書は秘密キーを含めてエクスポートし、証明書パスにすべての証明書が含まれている必要があります。 さらに、一部の構成では、ルート証明書情報もインストールする必要があります。

Linux の証明書の詳細については、次の記事を参照してください。

strongSwan のインストール

コマンドを指定するときに、次の構成が使用されました。

  • コンピューター:Ubuntu Server 18.04
  • 依存関係: strongSwan

次のコマンドを使用して、必要な strongSwan 構成をインストールします。

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

VPN クライアント プロファイル構成ファイルの表示

VPN クライアント プロファイル構成パッケージを生成すると、VPN クライアントに必要なすべての構成設定は、VPN クライアント プロファイル構成 zip ファイルに含まれています。 VPN クライアント プロファイル構成ファイルは、仮想ネットワークの P2S VPN ゲートウェイ構成に特化しています。 ファイルを生成した後に、P2S VPN 構成に変更があった場合は (VPN プロトコルの種類や認証の種類の変更など)、新しい VPN クライアント プロファイル構成ファイルを生成し、接続するすべての VPN クライアントに新しい構成を適用する必要があります。

生成してダウンロードした VPN クライアント プロファイル構成パッケージを見つけて解凍します。 Generic フォルダーには、構成に必要なすべての情報が含まれています。 Azure では、この構成用の mobileconfig ファイルは提供されません。

Generic フォルダーが表示されない場合は、次の項目を確認してから、もう一度 zip ファイルを生成します。

  • 構成のトンネルの種類を確認します。 IKEv2 がトンネルの種類として選択されていない可能性があります。
  • VPN ゲートウェイで、SKU が Basic ではないかを確認します。 VPN Gateway Basic SKU は IKEv2 をサポートしていません。 次に、IKEv2 を選択し、もう一度 zip ファイルを生成して、Generic フォルダーを取得します。

Generic フォルダーには、次のファイルが含まれています。

  • VpnSettings.xml。サーバー アドレスやトンネルの種類など、重要な設定が含まれています。
  • VpnServerRoot.cer。P2S 接続の設定中に Azure VPN Gateway を検証するために必要なルート証明書が含まれています。

VPN クライアントを構成する

VPN クライアント プロファイル ファイルが表示されたら、使用する手順に進みます。

GUI での手順

このセクションでは、strongSwan GUI を使用した構成について説明します。 次の手順は、Ubuntu 18.0.4 上で作成されました。 Ubuntu 16.0.10 は strongSwan GUI をサポートしません。 Ubuntu 16.0.10 を使う場合は、コマンド ラインを使う必要があります。 Linux および strongSwan のバージョンによっては、次に示す例が実際に表示される画面と一致しない可能性があります。

  1. [ターミナル] を起動し、例のコマンドを実行して strongSwan とその Network Manager をインストールします。

    sudo apt install network-manager-strongswan
    
  2. [Settings](設定)[Network](ネットワーク) の順に選択します。 + ボタンを選択して、新しい接続を作成します。

    [ネットワーク接続] ページを示すスクリーンショット。

  3. [VPN の追加] ページ上で、メニューから [IPsec/IKEv2 (strongSwan)] を選択して、ダブルクリックします。

  4. [VPN の追加] ページで、VPN 接続の名前を追加します。

  5. ダウンロードした VPN クライアント プロファイル構成パッケージ ファイル内に含まれる Generic フォルダーから VpnSettings.xml ファイルを開きます。 VpnServer というタグを検索して、"azuregateway" で始まり ".cloudapp.net" で終わる名前をコピーします。

    データのコピーを示すスクリーンショット。

  6. この名前を、 [ゲートウェイ] セクションの、新しい VPN 接続の [アドレス] フィールドに貼り付けます。 次に、 [証明書] フィールドの最後のフォルダー アイコンを選択して、Generic フォルダーに移動し、VpnServerRoot ファイルを選択します。

  7. 接続の [クライアント] セクションの [認証] で、 [Certificate/private key](証明書/秘密キー) を選びます。 [証明書][秘密キー] で、前に作成した証明書および秘密キーを選びます。 [オプション] で、 [Request an inner IP address](内部 IP アドレスを要求する) をオンにします。 その後、 [追加] を選択します。

    [内部 IP アドレスを要求する] を示すスクリーンショット。

  8. 接続を [On](オン) にします。

    コピーを示すスクリーンショット。

CLI での手順

このセクションでは、strongSwan CLI を使用した構成について説明します。

  1. VPN クライアント プロファイル構成ファイルの Generic フォルダーから、VpnServerRoot.cer/etc/ipsec.d/cacerts にコピーするか移動します。

  2. 生成したファイルをそれぞれ /etc/ipsec.d/certs および /etc/ipsec.d/private/ にコピーまたは移動します。 これらのファイルはクライアント証明書と秘密キーであり、対応するディレクトリに配置する必要があります。 次のコマンドを使用します。

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. 次のコマンドを実行して、ホスト名をメモします。 次の手順でこの値を使用します。

    hostnamectl --static
    
  4. VpnSettings.xml ファイルを開き、<VpnServer> の値をコピーします。 次の手順でこの値を使用します。

  5. 次のサンプルの値を調整し、/etc/ipsec.conf構成にこのサンプルを追加します。

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. シークレット値を /etc/ipsec.secrets に追加します。

    PEM ファイルの名前は、クライアント キー ファイルとして以前に使用した名前と一致している必要があります。

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. 次のコマンドを実行します。

    sudo ipsec restart
    sudo ipsec up azure
    

次のステップ

その他の手順については Virtual WAN P2S ユーザー VPN 接続を作成するの記事に戻ってください。