35.2.2. libreswan IPsec ポリシーの作成
必要な証明書が libreswan 証明書データベースにインポートされた後に、それらを使用してクラスター内のホスト間の通信をセキュリティー保護するポリシーを作成します。
libreswan 3.19 以降を使用している場合、便宜的なグループ (opportunistic group) 設定が推奨されます。これ以外の場合は、明示的な接続が必要になります。
35.2.2.1. 便宜的なグループ (opportunistic group) の設定
以下の設定は 2 つの libreswan 接続を作成します。最初の設定は OpenShift Container Platform 証明書を使用してトラフィックを暗号化し、2 つ目の設定はクラスターの外部トラフィック用に暗号化に対する例外を作成します。
以下を /etc/ipsec.d/openshift-cluster.conf ファイルに配置します。
conn private left=%defaultroute leftid=%fromcert # our certificate leftcert="NSS Certificate DB:<cert_nickname>" 1 right=%opportunisticgroup rightid=%fromcert # their certificate transmitted via IKE rightca=%same ikev2=insist authby=rsasig failureshunt=drop negotiationshunt=hold auto=ondemand encapsulation=yes 2 conn clear left=%defaultroute right=%group authby=never type=passthrough auto=route priority=100
- 1
- <cert_nickname> を、手順 1 の証明書ニックネームに置き換えます。
- 2
- NAT を使用しない場合は、カプセル化を強制するには、設定に
encapsulation=yes
を含める必要があります。Amazon および Azure 内部クラウドネットワークは、IPsecESP
またはAH
パケットをルーティングしません。これらのパケットはUDP
でカプセル化する必要があり、設定されている場合は、NAT の検出がUDP
のカプセル化でESP
を設定します。NAT を使用する場合、または前述のネットワーク/クラウドプロバイダーの制限を受けていない場合は、このパラメーターと値を省略してください。
libreswan に対して、/etc/ipsec.d/policies/ のポリシーファイルを使用して各ポリシーを適用する IP サブネットおよびホストを示します。このファイルには、それぞれの設定された接続に対応するポリシーファイルがあります。そのため、上記の例では、
private
およびclear
の 2 つの接続のそれぞれに /etc/ipsec.d/policies/ のファイルが設定されます。/etc/ipsec.d/policies/private には、ホストの IP アドレスの受信元であるクラスターの IP サブネットが含まれる必要があります。これにより、デフォルトでは、リモートホストのクライアント証明書がローカルホストの認証局の証明書に対して認証される場合、クラスターサブネットのホスト間のすべての通信が暗号化されることになります。リモートホストの証明書が認証されない場合、2 つのホスト間のすべてのトラフィックがブロックされます。
たとえば、すべてのホストが
172.16.0.0/16
アドレス空間のアドレスを使用するように設定される場合、private
ポリシーファイルには172.16.0.0/16
が含まれることになります。暗号化する追加サブセットの任意の数がこのファイルに追加され、それらのサブネットへのすべてのトラフィックでも IPsec が使用されることになります。トラフィックがクラスターに出入りすることを確認するためにすべてのホストとサブネットゲートウェイ間の通信の暗号化を解除します。ゲートウェイを /etc/ipsec.d/policies/clear ファイルに追加します。
172.16.0.1/32
追加のホストおよびサブネットをこのファイルに追加できます。これにより、これらのホストおよびサブネットへのすべてのトラフィックの暗号が解除されます。