Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

35.2. ホストの暗号化

前提条件

  • libreswan 3.15 以降がクラスターホストにインストールされていることを確認します。便宜的なグループ (opportunistic group) 機能が必要な場合は、libreswan バージョン 3.19 以降が必要になります。
  • このトピックでは、62 バイトを必要とする IPSec 設定について説明します。クラスターが最大伝送単位 (MTU) 値 1500 バイトを持つイーサネットネットワーク上で動作している場合、IPsec および SDN のカプセル化のオーバーヘッドに対応するために SDN MTU 値は 1388 バイトに変更する必要があります。クラスター内のノードの MTU を変更するには、以下の手順を実施します。

    1. node-config-masternode-config-infranode-config-compute の各 ConfigMap を編集します。

      1. 以下のコマンドを実行して ConfigMap を編集します。<config_map> を、編集する ConfigMap の名前に置き換えます。

        # oc edit cm <config_map> -n openshift-node
      2. mtu パラメーターを、IPsec オーバーヘッドに十分な MTU サイズ (1388 バイト) に更新します。

        networkConfig:
          mtu: 1388
    2. 以下のコマンドを実行して SDN インターフェイスを削除します。<ovs_pod_name> を OVS Pod の名前に置き換えます。

      # oc exec <ovs_pod_name> -- ovs-vsctl del-br br0
    3. クラスターの各ノードについて、以下のアクションを実行します。

      1. 更新された MTU 値が /etc/origin/node/node-config.yaml ファイルに保存されていることを確認します。
      2. 以下のコマンドを実行して SDN および OVS Pod を再起動します。

        # oc delete pod -n openshift-sdn -l=app=ovs
        # oc delete pod -n openshift-sdn -l=app=sdn

35.2.1. 証明書での IPsec の設定

OpenShift Container Platform の内部認証局 (CA) を使用して、IPsec に適した RSA 鍵を生成できます。内部 CA の共通名 (CN) の値は openshift-signer に設定されています。

  1. 以下のコマンドを実行して、マスターノードで RSA 証明書を生成します。

    # export CA=/etc/origin/master
    
    # oc adm ca create-server-cert \
      --signer-cert=$CA/ca.crt --signer-key=$CA/ca.key \
      --signer-serial=$CA/ca.serial.txt \
      --hostnames='<hostname>' \ 1
      --cert=<hostname>.crt \ 2
      --key=<hostname>.key 3
    1 2 3
    <hostname> をノードの完全修飾ドメイン名 (FQDN) に置き換えます。
  2. openssl を使用してクライアント証明書、CA 証明書、およびプライベートキーファイルを PKCS#12 ファイルに追加します。 これは、複数の証明書およびキーの共通ファイル形式です。

    # openssl pkcs12 -export \
      -in <hostname>.crt \ 1
      -inkey <hostname>.key \ 2
      -certfile  /etc/origin/master/ca.crt \
      -passout pass: \
      -out <hostname>.p12 3
    1 2 3
    ノードの完全修飾ドメイン名 (FQDN) で置き換えます。
  3. クラスターの各ノードで、前の手順でホスト用に作成したファイルを安全に転送してから、PKCS#12 ファイルを libreswan 証明書データベースにインポートします。

    -W オプションは、パスワードが一時的で PKCS#12 ファイルに割り当てられないため、空のままになります。

    # ipsec initnss
    # pk12util -i <hostname>.p12 -d sql:/etc/ipsec.d -W ""
    # rm <hostname>.p12