6.13.2. nmstatectl を使用して raw RSA 鍵認証による IPsec サイト間 VPN を設定する


宣言型の Nmstate API を使用すると、2 つの異なるネットワーク間でサイト間 VPN を設定し、セキュアでないネットワークを介してそれらをシームレスにリンクできます。Nmstate を使用すると、結果が必ず設定ファイルと一致したものになります。一致しない場合は、変更がロールバックされます。

ゲートウェイデバイスの認証に関しては、RSA 鍵は事前共有鍵 (PSK) よりもセキュアです。非対称暗号化によって秘密情報共有のリスクが排除されるためです。また、RSA 鍵を使用すると、強力なピアツーピア認証を提供しつつも、認証局 (CA) が不要になるため、デプロイが容易になります。

注記

一般に、どちらのホストを left または right と呼ぶかは任意です。ただし、NetworkManager では、ローカルホストには常に left という用語を使用し、リモートホストには常に right という用語を使用します。

前提条件

  • リモートゲートウェイは Libreswan IPsec を実行しており、サイト間 接続に対応しています。

    NetworkManager-libreswan プラグインの設計上、Nmstate は、同じ接続にこのプラグインを使用する他のピアと通信することはできません。

手順

  1. Libreswan がまだインストールされていない場合は、次の手順を実行します。

    1. 必要なパッケージをインストールします。

      # dnf install nmstate libreswan NetworkManager-libreswan
    2. NetworkManager サービスを再起動します。

      # systemctl restart NetworkManager
    3. ネットワークセキュリティーサービス (NSS) データベースを初期化します。

      # ipsec initnss

      このコマンドにより、/var/lib/ipsec/nss/ ディレクトリーにデータベースが作成されます。

    4. ファイアウォールで IPsec ポートとプロトコルを開きます。

      # firewall-cmd --permanent --add-service="ipsec"
      # firewall-cmd --reload
  2. RSA 鍵ペアを作成します。

    # ipsec newhostkey

    ipsec ユーティリティーにより、鍵ペアが NSS データベースに保存されます。

  3. left と right 両方のピアの Certificate Key Attribute ID (CKAID) を表示します。

    # ipsec showhostkey --list
    < 1> RSA keyid: <key_id> ckaid: <ckaid>

    以降のステップで、両方のピアの CKAID が必要になります。

  4. 公開鍵を表示します。

    1. left ピアで次のように入力します。

      # ipsec showhostkey --left --ckaid <ckaid_of_left_peer>
              # rsakey AwEAAdKCx
              leftrsasigkey=0sAwEAAdKCxpc9db48cehzQiQD...
    2. right ピアで次のように入力します。

      # ipsec showhostkey --right --ckaid <ckaid_of_right_peer>
              # rsakey AwEAAcNWC
              rightrsasigkey=0sAwEAAcNWCzZO+PR1j8WbO8X...

    これらのコマンドにより、設定ファイルで使用する必要がある対応するパラメーターとともに、公開鍵が表示されます。

  5. 次の内容を含む YAML ファイル (例: ~/ipsec-site-to-site-rsa-auth.yml) を作成します。

    ---
    interfaces:
    - name: '<connection_name>'
      type: ipsec
      libreswan:
        ikev2: insist
    
        left: <ip_address_or_fqdn_of_left_peer>
        leftid: peer_b
        leftrsasigkey: <public_key_of_left_peer>
        leftmodecfgclient: false
        leftsubnet: 198.51.100.0/24
    
        right: <ip_address_or_fqdn_of_right_peer>
        rightid: peer_a
        rightrsasigkey: <public_key_of_right_peer>
        rightsubnet: 192.0.2.0/24

    この例で指定されている設定は次のとおりです。

    ikev2: insist
    最新の IKEv2 プロトコルを、IKEv1 へのフォールバックなしで、唯一許可されるプロトコルとして定義します。この設定は、Nmstate を使用したサイト間設定では必須です。
    left=<ip_address_or_fqdn_of_left_peer> および right=<ip_address_or_fqdn_of_right_peer>
    ピアの IP アドレスまたは DNS 名を定義します。
    leftid=<id> および rightid=<id>
    Internet Key Exchange (IKE) ネゴシエーションプロセス中に各ピアを識別する方法を定義します。これには IP アドレスまたはリテラル文字列を指定できます。NetworkManager は、IP アドレス以外のすべての値をリテラル文字列として解釈し、内部的に先頭に @ 記号を追加することに注意してください。そのため、Libreswan ピアも ID としてリテラル文字列を使用する必要があります。そうしないと、認証が失敗します。
    leftrsasigkey=<public_key> および rightrsasigkey=<public_key>
    ピアの公開鍵を指定します。前のステップで ipsec showhostkey コマンドによって表示された値を使用します。
    leftmodecfgclient: false
    このホストで動的設定を無効にします。この設定は、Nmstate を使用したサイト間設定では必須です。
    leftsubnet=<subnet> および rightsubnet=<subnet>
    トンネルを介して接続されるサブネットを Classless Inter-Domain Routing (CIDR) 形式で定義します。
  6. パケット転送を有効にします。

    # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
    # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
  7. 設定をシステムに適用します。

    # nmstatectl apply ~/ipsec-site-to-site-rsa-auth.yml

検証

  1. IPsec ステータスを表示します。

    # ipsec status

    接続が正常に確立されていれば、出力に次の行が含まれています。

    • Internet Key Exchange バージョン 2 (IKEv2) ネゴシエーションのフェーズ 1 が正常に完了しています。

      000 #1: "<connection_name>":500 STATE_V2_ESTABLISHED_IKE_SA (established IKE SA); REKEY in 27935s; REPLACE in 28610s; newest; idle;

      これで、セキュリティーアソシエーション (SA) が、実際のデータ暗号化トンネル (子 SA またはフェーズ 2 SA と呼ばれる) をネゴシエートする準備が整いました。

    • 子 SA が確立されています。

      000 #2: "<connection_name>":500 STATE_V2_ESTABLISHED_CHILD_SA (established Child SA); REKEY in 27671s; REPLACE in 28610s; IKE SA #1; idle;

      これは、データトラフィックが通過する実際のトンネルです。

  2. ローカルサブネット内のクライアントから、リモートサブネット内のクライアントに ping を実行します。

トラブルシューティング

  • NetworkManager が Libreswan に渡す実際の設定を表示するには、次のように入力します。

    # nmcli connection export <connection_name>

    この出力は、リモートホスト上の Libreswan 設定と比較する際に、ID や鍵などの設定の違いを特定するのに役立ちます。

次のステップ

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る