第31章 RHEL システムロールを使用した VPN 接続の設定


VPN は、信頼できないネットワーク経由でトラフィックをセキュアに送信するための暗号化接続です。vpn RHEL システムロールを使用すると、VPN 設定の作成プロセスを自動化できます。

注記

vpn RHEL システムロールは、VPN プロバイダーとして、IPsec 実装である Libreswan のみをサポートしています。

31.1. vpn RHEL システムロールを使用して PSK 認証によるホスト間 IPsec VPN を作成する

IPsec を使用すると、VPN を介してホストを相互に直接接続できます。ホストは事前共有鍵 (PSK) を使用して相互に認証できます。vpn RHEL システムロールを使用すると、PSK 認証による IPsec ホスト間接続を作成するプロセスを自動化できます。

デフォルトでは、このロールはトンネルベースの VPN を作成します。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    Copy to Clipboard Toggle word wrap
    ---
    - name: Configuring VPN
      hosts: managed-node-01.example.com, managed-node-02.example.com
      tasks:
        - name: IPsec VPN with PSK authentication
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.vpn
          vars:
            vpn_connections:
              - hosts:
                  managed-node-01.example.com:
                  managed-node-02.example.com:
                auth_method: psk
                auto: start
            vpn_manage_firewall: true
            vpn_manage_selinux: true

    サンプル Playbook で指定されている設定は次のとおりです。

    hosts: <list>

    VPN を設定するホストを含む YAML ディクショナリーを定義します。エントリーが Ansible 管理対象ノードでない場合は、hostname パラメーターに完全修飾ドメイン名 (FQDN) または IP アドレスを指定する必要があります。次に例を示します。

    Copy to Clipboard Toggle word wrap
              ...
              - hosts:
                  ...
                  external-host.example.com:
                    hostname: 192.0.2.1

    このロールは、各管理対象ノード上の VPN 接続を設定します。接続の名前は <host_A>-to-<host_B> です (例: managed-node-01.example.com-to-managed-node-02.example.com)。このロールは外部 (管理対象外) ノード上で Libreswan を設定することはできないことに注意してください。そのようなホストでは手動で設定を作成する必要があります。

    auth_method: psk
    ホスト間の PSK 認証を有効にします。ロールはコントロールノードで openssl を使用して PSK を作成します。
    auto: <start-up_method>
    接続の起動方法を指定します。有効な値は addondemandstart、および ignore です。詳細は、Libreswan がインストールされているシステム上の ipsec.conf(5) man ページを参照してください。この変数のデフォルト値は null です。この値は自動起動操作を実行しないことを示します。
    vpn_manage_firewall: true
    ロールにより、管理対象ノード上の firewalld サービスで必要なポートを開くことを指定します。
    vpn_manage_selinux: true
    ロールにより、IPsec ポートに必要な SELinux ポートタイプを設定することを指定します。

    Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.vpn/README.md ファイルを参照してください。

  2. Playbook の構文を検証します。

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook ~/playbook.yml

検証

  • 接続が正常に開始されたことを確認します。次に例を示します。

    Copy to Clipboard Toggle word wrap
    # ansible managed-node-01.example.com -m shell -a 'ipsec trafficstatus | grep "managed-node-01.example.com-to-managed-node-02.example.com"'
    ...
    006 #3: "managed-node-01.example.com-to-managed-node-02.example.com", type=ESP, add_time=1741857153, inBytes=38622, outBytes=324626, maxBytes=2^63B, id='@managed-node-02.example.com'

    このコマンドは、VPN 接続がアクティブでないと成功しないことに注意してください。Playbook 内の auto 変数を start 以外の値に設定する場合は、まず管理対象ノードで接続を手動でアクティブ化する必要がある場合があります。

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.vpn/README.md ファイル
  • /usr/share/doc/rhel-system-roles/vpn/ ディレクトリー
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.