ポイント対サイト VPN クライアントの構成 - 証明書認証 - Linux

この記事では、ユーザーが Linux クライアントから VPN Gateway ポイント対サイト (P2S) と証明書認証を使用して Azure 仮想ネットワーク (VNet) に接続するのを支援します。 この記事では、P2S 構成に選択したトンネルの種類、オペレーティング システム、接続に使用される VPN クライアントに応じて、複数の手順を用意しています。

開始する前に

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

認証 トンネルの種類 構成ファイルを生成する VPN クライアントを構成する
Azure 証明書 IKEv2、SSTP Windows ネイティブ VPN クライアント
Azure 証明書 OpenVPN Windows - OpenVPN クライアント
- Azure VPN クライアント
Azure 証明書 IKEv2、OpenVPN macOS-iOS macOS-iOS
Azure 証明書 IKEv2、OpenVPN Linux Linux
Microsoft Entra ID OpenVPN (SSL) Windows Windows
Microsoft Entra ID OpenVPN (SSL) macOS macOS
RADIUS - 証明書 - 記事 記事
RADIUS - パスワード - 記事 記事
RADIUS - その他の方法 - 記事 記事

重要

2018 年 7 月 1 日以降、Azure VPN Gateway では TLS 1.0 および 1.1 のサポートが終了します。 VPN Gateway では、TLS 1.2 のみがサポートされるようになります。 影響を受けるのはポイント対サイト接続のみであり、サイト対サイト接続には影響ありません。 Windows 10 以降のクライアント上でポイント対サイト VPN に対して TLS を使用する場合、特に何も行う必要はありません。 Windows 7 および Windows 8 クライアント上でポイント対サイト接続に対して TLS を使用する場合、更新手順については「VPN Gateway に関する FAQ」を参照してください。

証明書の生成

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

証明書の操作の詳細については、ポイント対サイトの証明書生成に関するページを参照してください。

VPN クライアント構成ファイルの生成

VPN クライアントに必要なすべての構成設定は、VPN クライアント プロファイル構成 zip ファイルに含まれています。 生成する VPN クライアント プロファイル構成ファイルは、仮想ネットワークの P2S VPN ゲートウェイ構成に固有です。 ファイルを生成した後に、P2S VPN 構成に変更があった場合は (VPN プロトコルの種類や認証の種類の変更など)、新しい VPN クライアント プロファイル構成ファイルを生成し、接続するすべての VPN クライアントに新しい構成を適用する必要があります。 P2S 接続の詳細については、「ポイント対サイト VPN について」を参照してください。

Azure portal を使用して構成ファイルを生成するには、次のようにします。

  1. Azure portal で、接続する仮想ネットワークの仮想ネットワーク ゲートウェイに移動します。

  2. 仮想ネットワーク ゲートウェイ ページで、 [ポイント対サイトの構成] を選択して、[ポイント対サイトの構成] ページを開きます。

  3. [ポイント対サイトの構成] ページの上部で [VPN クライアントのダウンロード] を選択します。 これにより、VPN クライアント ソフトウェアがダウンロードされるのではなく、VPN クライアントの構成に使用される構成パッケージが生成されます。 クライアント構成パッケージが生成されるまでに数分かかります。 この間、パケットが生成されるまで、何も表示されない場合があります。

    [ポイント対サイトの構成] ページのスクリーンショット。

  4. 構成パッケージが生成されると、クライアント構成 ZIP ファイルが使用可能であることがブラウザーに示されます。 ファイルにはゲートウェイと同じ名前が付けられています。

  5. そのファイルを解凍して、フォルダーを表示します。 これらのファイルの一部またはすべてを使用して、VPN クライアントを構成します。 生成されるファイルは、P2S サーバー上に構成した認証とトンネルの種類の設定に対応します。

次に、VPN クライアントを構成します。 次の手順から選択します。

IKEv2 - strongSwan の手順

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

証明書をインストールする

Azure 証明書の認証タイプを使用する場合、認証にはクライアント証明書が必要です。 クライアント証明書は、各クライアント コンピューターにインストールする必要があります。 エクスポートするクライアント証明書は秘密キーを含めてエクスポートし、証明書パスにすべての証明書が含まれている必要があります。 次のセクションに進む前に、クライアント コンピューターに適切なクライアント証明書がインストールされていることを確認します。

クライアント証明書については、証明書の生成 - Linux に関するページを参照してください。

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 を検証するために必要なルート証明書が含まれています。

ファイルが表示されたら、使用する手順に進みます。

strongSwan 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. メニューから [IPsec/IKEv2 (strongswan)] を選び、ダブルクリックします。

    [VPN の追加] ページを示すスクリーンショット。

  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](オン) にします。

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

strongSwan 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
    

OpenVPN の手順

このセクションは、OpenVPN トンネルの種類を使用する証明書認証用に Linux クライアントを構成するのに役立ちます。 Azure に接続するには、OpenVPN クライアントをダウンロードし、接続プロファイルを構成します。

注意

OpenVPN クライアント バージョン 2.6 はまだサポートされていません。

  1. 新しいターミナル セッションを開きます。 新しいセッションを開くには、Ctrl キーと Alt キーを押しながら t キーを押します。

  2. 次のコマンドを入力して、必要なコンポーネントをインストールします。

    sudo apt-get install openvpn
    sudo apt-get -y install network-manager-openvpn
    sudo service network-manager restart
    
  3. 次に、VPN クライアント プロファイル フォルダーに移動し、解凍してファイルを表示します。

  4. 作成してゲートウェイ上の P2S 構成にアップロードした P2S クライアント証明書をエクスポートします。 手順については、VPN Gateway のポイント対サイトに関する記事を参照してください。

  5. .pfx から秘密キーと base64 サムプリントを抽出します。 これを行うには複数の方法があります。 1 つの方法として、コンピューター上で OpenSSL を使用します。

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    

    profileinfo.txt ファイルには、CA およびクライアント証明書の秘密キーとサムプリントが含まれています。 必ず、クライアント証明書のサムプリントを使用してください。

  6. テキスト エディターで profileinfo.txt を開きます。 クライアント (子) 証明書のさむプリントを取得するには、子の証明書の "-----BEGIN CERTIFICATE-----" および "-----END CERTIFICATE-----" とその間のテキストを選択してコピーします。 subject=/ 行を確認して、子の証明書を識別できます。

  7. vpnconfig.ovpn ファイルを開いて、以下に示したセクションを見つけます。 "cert" と "/cert" の間をすべて置き換えます。

    # P2S client certificate
    # please fill this field with a PEM formatted cert
    <cert>
    $CLIENTCERTIFICATE
    </cert>
    
  8. テキスト エディターで profileinfo.txt を開きます。 秘密キーを取得するには、"-----BEGIN PRIVATE KEY-----" および "-----END PRIVATE KEY-----" とその間のテキストを選択してコピーします。

  9. テキスト エディターで vpnconfig.ovpn ファイルを開き、このセクションを見つけます。 秘密キーを貼り付けて、"key" と "/key" の間をすべて置き換えます。

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  10. その他のフィールドは変更しないでください。 クライアント入力に入力された構成を使用して VPN に接続します。

    • コマンド ラインを使用して接続するには、以下のコマンドを入力します。

      sudo openvpn --config <name and path of your VPN profile file>&
      
    • コマンド ラインを使用して切断するには、以下のコマンドを入力します。

      sudo pkill openvpn
      
    • GUI を使用して接続するには、システム設定に移動します。

  11. + を選択して新しい VPN 接続を追加します。

  12. [VPN の追加][ファイルからインポート] を選択します。

  13. プロファイル ファイルを参照して、ダブルクリックするか [開く] を選択します。

  14. [VPN の追加] ウィンドウで [追加] を選択します。

    [VPN の追加] ページの [ファイルからインポート] を示すスクリーンショット。

  15. 接続するには、[ネットワーク設定] ページで VPN をオンにするか、システム トレイのネットワーク アイコンを選択します。

次のステップ

追加の手順については、作業元のポイント対サイトの記事に戻ります。