13.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 には、ansible
、ansible-playbook
などのコマンドラインユーティリティー、docker
や podman
などのコネクター、プラグインとモジュールが多く含まれています。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 を参照してください。
- 管理対象ノードが記載されているインベントリーファイルがある。
手順
以下の内容を含む新しい
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
-
オプション:設定に合わせて変数を変更できます。詳細は、
/usr/share/doc/rhel-system-roles/vpn/README.md
ファイルを参照してください。 オプション:Playbook の構文を確認します。
# ansible-playbook --syntax-check playbook.yml
インベントリーファイルで Playbook を実行します。
# ansible-playbook -i inventory_file /path/to/file/playbook.yml