6.13.3. nmstatectl を使用してクライアントを IPsec VPN ゲートウェイに接続するように設定する
リモートのプライベートネットワーク上のリソースにアクセスするには、ユーザーはまず IPsec VPN 接続を設定する必要があります。Nmstate を使用すると、宣言型の API を使用して既存の Libreswan IPsec ゲートウェイとの接続を作成できます。
一般に、どちらのホストを left または right と呼ぶかは任意です。ただし、NetworkManager では、ローカルホストには常に left という用語を使用し、リモートホストには常に right という用語を使用します。
前提条件
リモートゲートウェイは Libreswan IPsec を実行し、証明書ベースの認証による ホストとサイト間の 接続に対応しています。
NetworkManager-libreswanプラグインの設計上、Nmstate は、同じ接続にこのプラグインを使用する他のピアと通信することはできません。クライアントに、次の内容を含む PKCS#12 ファイル
~/file.p12が存在する。- ユーザーの秘密鍵
- ユーザー証明書
- CA 証明書
- 中間証明書 (必要な場合)
秘密鍵および証明書署名要求 (CSR) の作成や、CA からの証明書要求に関する詳細は、CA のドキュメントを参照してください。
-
証明書の Extended Key Usage (EKU) が
TLS Web Client Authenticationに設定されている。
手順
Libreswan がまだインストールされていない場合は、以下を実行します。
必要なパッケージをインストールします。
# dnf install nmstate libreswan NetworkManager-libreswanNetworkManager サービスを再起動します。
# systemctl restart NetworkManagerネットワークセキュリティーサービス (NSS) データベースを初期化します。
# ipsec initnssこのコマンドにより、
/var/lib/ipsec/nss/ディレクトリーにデータベースが作成されます。ファイアウォールで IPsec ポートとプロトコルを開きます。
# firewall-cmd --permanent --add-service="ipsec" # firewall-cmd --reload
PKCS #12 ファイルを NSS データベースにインポートします。
# ipsec import ~/file.p12 Enter password for PKCS12 file: <password> pk12util: PKCS12 IMPORT SUCCESSFUL correcting trust bits for Example-CAユーザーのニックネームと CA 証明書を表示します。
# certutil -L -d /var/lib/ipsec/nss/ Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI user u,u,u Example-CA CT,, ...この情報は Nmstate の YAML ファイルに必要です。
次の内容を含む YAML ファイル (例:
~/ipsec-host-to-site-cert-auth.yml) を作成します。--- interfaces: - name: '<connection_name>' type: ipsec libreswan: ikev2: insist left: <ip_address_or_fqdn_of_left_peer> leftid: '%fromcert' leftcert: <user_certificate_nickname> right: <ip_address_or_fqdn_of_right_peer> rightid: '%fromcert' 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=%fromcertおよびrightid=%fromcert- 証明書の識別名 (DN) フィールドからアイデンティティーを取得するように Libreswan を設定します。
leftcert="<server_certificate_nickname>"- NSS データベースで使用されるサーバーの証明書のニックネームを設定します。
rightsubnet: <subnet>- ゲートウェイに接続されているサブネットを Classless Inter-Domain Routing (CIDR) 形式で定義します。
設定をシステムに適用します。
# nmstatectl apply ~/ipsec-host-to-site-cert-auth.yml
検証
- リモートネットワーク内のホストへの接続を確立するか、ping を実行します。
トラブルシューティング
NetworkManager が Libreswan に渡す実際の設定を表示するには、次のように入力します。
# nmcli connection export <connection_name>この出力は、リモートホスト上の Libreswan 設定と比較する際に、ID や鍵などの設定の違いを特定するのに役立ちます。
次のステップ
- DHCP またはステートレスアドレス自動設定 (SLAAC) が設定されたネットワークでこのホストを使用すると、接続がリダイレクトされる危険性があります。詳細および緩和策手順については、VPN 接続を専用ルーティングテーブルに割り当てて、接続がトンネルを迂回するのを防ぐ を参照してください。