Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

35.2.2. 创建 libreswan IPsec 策略

确保将必要的证书导入到 libreswan 证书数据库后,创建一个策略来使用它们来保护集群中的不同主机之间的通信。

如果您使用 libreswan 3.19 或更高版本,则建议使用 opportunistic 组配置。否则,需要明确的连接。

35.2.2.1. 配置 opportunistic 组

以下配置创建两个 libreswan 连接。第一个使用 OpenShift Container Platform 证书加密流量,第二个则使用 cluster-external 流量创建异常。

  1. 将以下内容放在 /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> 替换为步骤中的 certificate nickname。
    2
    如果不使用 NAT,则必须在配置中包含 encapsulation=yes 来强制封装。AmazonAzure 内部云网络没有路由 IPsec ESPAH 数据包。这些数据包必须封装在 UDP 中,如果配置了,则 NAT 检测会在 UDP 封装中配置 ESP。如果使用 NAT 或您没有在 Network/Cloud-Provider 的限制下,如前所述,请省略此参数和值。
  2. 告诉 libreswan 使用 /etc/ipsec.d/policies/ 中的策略文件应用每个策略,其中每个配置的连接都有对应的策略文件。因此,在上面的示例中,两个连接是 私有清除 的,每个连接在 /etc/ipsec.d/policies/ 中都有一个文件。

    /etc/ipsec.d/policies/private 必须包含集群的 IP 子网,主机从中接收 IP 地址。默认情况下,如果远程主机的客户端证书针对本地主机的证书颁发机构证书进行身份验证,则会导致集群子网中主机间的所有通信都会被加密。如果远程主机的证书没有身份验证,则这两个主机间的所有流量都会被阻断。

    例如,如果所有主机都配置为使用 172.16.0.0/16 地址空间中的地址,您的私有策略文件将包含 172.16.0.0/16。要加密的任何其他子网数量可能添加到该文件中,这样会导致使用 IPsec 对这些子网的所有流量。

  3. 在所有主机和子网网关之间取消加密通信,以确保流量进入并退出集群。在 /etc/ipsec.d/policies/clear 文件中添加网关:

    172.16.0.1/32

    可以在此文件中添加其他主机和子网,这将导致对这些主机和子网的所有流量都未加密。