Menu Close
Settings Close

Language and Page Formatting Options

5.2. VPNシステムロールを使用してIPsecで日和見メッシュVPN接続の作成

VPNシステムロールを使用して、コントロールノードでAnsible Playbookを実行することにより、認証に証明書を使用する日和見メッシュVPN接続を構成できます。これにより、インベントリファイルにリストされているすべての管理対象ノードが構成されます。

証明書による認証は、Playbookでauth_method: certパラメーターを定義することによって設定されます。VPNシステムロールは、/etc/ipsec.dディレクトリで定義されているIPsecネットワークセキュリティサービス(NSS)暗号ライブラリに必要な証明書が含まれていることを前提としています。デフォルトでは、ノード名が証明書のニックネームとして使用されます。この例では、これはmanaged_node1です。インベントリでcert_name属性を使用して、さまざまな証明書名を定義できます。

次の手順例では、Ansible Playbook を実行するシステムであるコントロールノードは、両方の管理対象ノード(192.0.2.0/24)と同じクラスレスドメイン間ルーティング(CIDR)番号を共有し、IPアドレスは192.0.2.7になります。したがって、コントロールノードは、CIDR 192.0.2.0/24用に自動的に作成されるプライベートポリシーに該当します。

再生中のSSH接続の損失を防ぐために、コントロールノードの明確なポリシーがポリシーのリストに含まれています。ポリシーリストには、CIDRがデフォルトと等しい項目もあることに注意してください。これは、このPlaybookがデフォルトポリシーのルールを上書きして、private-or-clearではなくprivateにするためです。

前提条件

  • 1 つ以上の 管理対象ノード (VPN システムロールで設定するシステム) へのアクセスおよびパーミッション。

    • すべての管理対象ノードで、/etc/ipsec.dディレクトリのNSSデータベースには、ピア認証に必要なすべての証明書が含まれています。デフォルトでは、ノード名が証明書のニックネームとして使用されます。
  • コントロールノード (このシステムから Red Hat Ansible Core は他のシステムを設定) へのアクセスおよびパーミッション。

    コントロールノードでは、

    • ansible-core パッケージおよび rhel-system-roles パッケージがインストールされている。
重要

RHEL 8.0-8.5 では、別の Ansible リポジトリーへのアクセス権を指定されており、Ansible をベースにする自動化用の Ansible Engine 2.9 が含まれています。Ansible Engine には、ansibleansible-playbook などのコマンドラインユーティリティー、dockerpodman などのコネクター、プラグインとモジュールが多く含まれています。Ansible Engine を入手してインストールする方法については、ナレッジベースの How to download and install Red Hat Ansible Engine を参照してください。

RHEL 8.6 および 9.0 では、Ansible Core (ansible-core パッケージとして提供) が導入されました。これには、Ansible コマンドラインユーティリティー、コマンド、およびビルトイン Ansible プラグインのセットが含まれています。RHEL は、AppStream リポジトリーを介してこのパッケージを提供し、サポート範囲は限定的です。詳細については、ナレッジベースの Scope of support for the Ansible Core package included in the RHEL 9 and RHEL 8.6 and later AppStream repositories を参照してください。

  • 管理対象ノードが記載されているインベントリーファイルがある。

手順

  1. 以下の内容を含む新しい playbook.yml ファイルを作成します。

    - name: Mesh VPN
      hosts: managed_node1, managed_node2, managed_node3
      roles:
        - rhel-system-roles.vpn
      vars:
        vpn_connections:
          - opportunistic: true
            auth_method: cert
            policies:
              - policy: private
                cidr: default
              - policy: private-or-clear
                cidr: 198.51.100.0/24
              - policy: private
                cidr: 192.0.2.0/24
              - policy: clear
                cidr: 192.0.2.7/32
  2. オプション:設定に合わせて変数を変更できます。詳細は、/usr/share/doc/rhel-system-roles/vpn/README.mdファイルを参照してください。
  3. オプション:Playbook の構文を確認します。

    # ansible-playbook --syntax-check playbook.yml
  4. インベントリーファイルで Playbook を実行します。

    # ansible-playbook -i inventory_file /path/to/file/playbook.yml