Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.2. Red Hat Enterprise Linux 6 からバージョン 7 への Identity Management の移行

この手順では、すべてのデータおよび設定を Red Hat Enterprise Linux 6 Identity Management から Red Hat Enterprise Linux 7 サーバーに移行する方法を説明します。移行手順には、以下が含まれます。
  • Red Hat Enterprise Linux 6 ベースの認証局 (CA) マスターサーバーを Red Hat Enterprise Linux 7 に移行する。
  • すべてのサービスを新しい Red Hat Enterprise Linux 7 サーバーに移行する。これらのサービスには、CRL および証明書の作成、DNS 管理、または Kerberos KDC の管理が含まれます。
  • 元の Red Hat Enterprise Linux 6 CA マスターの使用を終了する。
手順では、以下を前提としています。
  • rhel7.example.com は、新しい CA マスターとなる Red Hat Enterprise Linux 7 システムです。
    重要
    現在サポートされているマイナーバージョンは RHEL 7.9 のみです。システムに RHEL 7.9 がインストールされていることを確認してください。
  • rhel6.example.com は、元の Red Hat Enterprise Linux 6 CA マスターです。
    注記
    マスター CA サーバーである Red Hat Enterprise Linux 6 サーバーを特定するには、certmonger サービスが renew_ca_cert コマンドを追跡するサーバーを決定します。すべての Red Hat Enterprise Linux 6 サーバーでこのコマンドを実行します。
    [root@rhel6 ~]# getcert list -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" | grep post-save
    post-save command: /usr/lib64/ipa/certmonger/renew_ca_cert "subsystemCert cert-pki-ca"
    renew_ca_cert を実行する保存後アクションは CA マスターに対してのみ定義されます。

8.2.1. Red Hat Enterprise Linux 6 から 7 への Identity Management の移行の前提条件

  • rhel6.example.com システムを最新の Red Hat Enterprise Linux 6 バージョンに更新します。
  • rhel6.example.com システムで、ipa-* パッケージをアップグレードします。
    [root@rhel6 ~]# yum update ipa-*
    この手順では、RHBA-2015:0231-2アドバイザリーが適用されていることも確認します。このアドバイザリーは、2.3-6.el6_6 バージョンのbind-dyndb-ldapパッケージを提供し、Red Hat Enterprise Linux 6.6 拡張更新サポート (EUS) で使用できます。
    警告
    以前のバージョンの bind-dyndb-ldap を使用すると、Red Hat Enterprise Linux 6.6 DNS サーバーおよび Red Hat Enterprise Linux 7 DNS サーバー間の DNS 正引きゾーンに一貫性がない動作が生じます。
  • rhel7.example.com システムが 「サーバーのインストールの前提条件」 および 「レプリカのインストールの前提条件」 の要件を満たしていることを確認します。
  • rhel7.example.com システムで、必要なパッケージをインストールします。「IdM サーバーのインストールに必要なパッケージ」を参照してください。

8.2.2. Red Hat Enterprise Linux 6 での Identity Management スキーマの更新

copy-schema-to-ca.py スキーマ更新スクリプトは、rhel7.example.com レプリカのインストールに rhel6.example.com を準備します。Identity Management バージョン 3.1 とそれ以降のバージョン間のスキーマの変更により、スキーマを更新する必要があります。
  1. copy-schema-to-ca.py スキーマ更新スクリプトを rhel7.example.com システムから rhel6.example.com システムにコピーします。以下に例を示します。
    [root@rhel7 ~]# scp /usr/share/ipa/copy-schema-to-ca.py root@rhel6:/root/
  2. rhel6.example.com で更新された copy-schema-to-ca.py スクリプトを実行します。
    [root@rhel6 ~]# python copy-schema-to-ca.py
    ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60kerberos.ldif
    [... output truncated ...]
    ipa         : INFO     Schema updated successfully
  3. Red Hat Enterprise Linux 7 レプリカに接続する前に、認証局を実行するすべての Red Hat Enterprise Linux 6 IdM レプリカで手順を繰り返します。

8.2.3. Red Hat Enterprise Linux 7 レプリカのインストール

  1. rhel6.example.com システムで、rhel7.example.com レプリカをインストールするために使用するレプリカファイルを作成します。たとえば、IP アドレスが 192.0.2.1 である rhel7.example.com のレプリカファイルを作成するには、次のコマンドを実行します。
    [root@rhel6 ~]# ipa-replica-prepare rhel7.example.com --ip-address 192.0.2.1
    
    Directory Manager (existing master) password:
    Preparing replica for rhel7.example.com from rhel6.example.com
    [... output truncated ...]
    The ipa-replica-prepare command was successful
    「レプリカ情報ファイル」 および 「レプリカの作成」 も参照してください。
  2. rhel6.example.com から rhel7.example.com に、レプリカ情報ファイルをコピーします。
    [root@rhel6 ~]# scp /var/lib/ipa/replica-info-replica.example.com.gpg root@rhel7:/var/lib/ipa/
  3. 統合 CA のある新しいレプリカを Red Hat Enterprise Linux 7.6 以降にインストールする場合は、/etc/httpd/conf.d/nss.conf ファイルの NSSCipherSuite パラメーターの最後に以下のエントリーを追加します。
    +ecdhe_rsa_aes_128_sha,+ecdhe_rsa_aes_256_sha
    Red Hat Enterprise Linux 7.6 以降では、特定の暗号は IdM CA ではデフォルトで有効ではなくなりました。このエントリーを設定に追加せずに、Red Hat Enterprise Linux 6 で実行しているマスターのレプリカとして、統合 CA のある IdM サーバーを Red Hat Enterprise Linux 7.6 でセットアップすると、CRITICAL Failed to configure CA instance エラーが発生して失敗します。
  4. レプリカ ファイルを使用して rhel7.example.com レプリカをインストールします。たとえば、次のコマンドでは、以下のオプションを使用しています。
    • Certificate System コンポーネントを設定する --setup-ca
    • 統合 DNS サーバーを設定し、フォワーダーを設定する --setup-dns および --forwarder
    • --ip-address - rhel7.example.com システムの IP アドレスを指定します。
    [root@rhel7 ~]# ipa-replica-install /var/lib/ipa/replica-info-rhel7.example.com.gpg --setup-ca --ip-address 192.0.2.1 --setup-dns --forwarder 192.0.2.20
    Directory Manager (existing master) password:
    
    Checking DNS forwarders, please wait ...
    Run connection check to master
    [... output truncated ...]
    Client configuration complete.
    関連項目:
  5. Identity Management サービスが rhel7.example.com で稼働していることを確認します。
    [root@rhel7 ~]# ipactl status
    Directory Service: RUNNING
    [... output truncated ...]
    ipa: INFO: The ipactl command was successful

8.2.4. CA サービスの Red Hat Enterprise Linux 7 サーバーへの移行

作業を開始する前に:
  • rhel6.example.com および rhel7.example.com の CA がいずれもマスターサーバーとして設定されていることを確認します。
    [root@rhel7 ~]$ kinit admin
    [root@rhel7 ~]$ ipa-csreplica-manage list
    rhel6.example.com: master
    rhel7.example.com: master
    レプリカ合意の詳細を表示するには、以下を実行します。
    [root@rhel7 ~]# ipa-csreplica-manage list --verbose rhel7.example.com
    rhel7.example.com
    last init status: None
    last init ended: 1970-01-01 00:00:00+00:00
    last update status: Error (0) Replica acquired successfully: Incremental update succeeded
    last update ended: 2017-02-13 13:55:13+00:00
rhel6.example.com の元のマスター CA で、CA サブシステム証明書の更新を停止します。
  1. 元の CA 証明書の追跡を無効にします。
    [root@rhel6 ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "auditSigningCert cert-pki-ca"
    Request "20201127184547" removed.
    [root@rhel6 ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "ocspSigningCert cert-pki-ca"
    Request "20201127184548" removed.
    [root@rhel6 ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca"
    Request "20201127184549" removed.
    [root@rhel6 ~]# getcert stop-tracking -d /etc/httpd/alias -n ipaCert
    Request "20201127184550" removed.
  2. rhel6.example.com を再設定し、新しいマスター CA から更新された証明書を取得します。
    1. 更新ヘルパースクリプトを certmonger サービスディレクトリーにコピーし、適切なパーミッションを設定します。
      [root@rhel6 ~]# cp /usr/share/ipa/ca_renewal /var/lib/certmonger/cas/
      [root@rhel6 ~]# chmod 0600 /var/lib/certmonger/cas/ca_renewal
    2. SELinux 設定を更新します。
      [root@rhel6 ~]# restorecon /var/lib/certmonger/cas/ca_renewal
    3. certmonger を再起動します。
      [root@rhel6 ~]# service certmonger restart
    4. CA が証明書を取得するようになっているかチェックします。
      [root@rhel6 ~]# getcert list-cas
      ...
      CA 'dogtag-ipa-retrieve-agent-submit':
              is-default: no
              ca-type: EXTERNAL
      	helper-location: /usr/libexec/certmonger/dogtag-ipa-retrieve-agent-submit
    5. CA 証明書データベースの PIN を取得します。
      [root@rhel6 ~]# grep internal= /var/lib/pki-ca/conf/password.conf
    6. 外部更新の証明書 certmonger 追跡を設定します。これには、データベース PIN が必要です。
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /var/lib/pki-ca/alias \
          -n "auditSigningCert cert-pki-ca" \
          -B /usr/lib64/ipa/certmonger/stop_pkicad \
          -C '/usr/lib64/ipa/certmonger/restart_pkicad \
          "auditSigningCert cert-pki-ca"' \
          -T "auditSigningCert cert-pki-ca" \
          -P database_pin
      New tracking request "20201127184743" added.
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /var/lib/pki-ca/alias \
          -n "ocspSigningCert cert-pki-ca" \
          -B /usr/lib64/ipa/certmonger/stop_pkicad \
          -C '/usr/lib64/ipa/certmonger/restart_pkicad \
          "ocspSigningCert cert-pki-ca"' \
          -T "ocspSigningCert cert-pki-ca" \
          -P database_pin
      New tracking request "20201127184744" added.
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /var/lib/pki-ca/alias \
          -n "subsystemCert cert-pki-ca" \
          -B /usr/lib64/ipa/certmonger/stop_pkicad \
          -C '/usr/lib64/ipa/certmonger/restart_pkicad \
          "subsystemCert cert-pki-ca"' \
          -T "subsystemCert cert-pki-ca" \
          -P database_pin
      New tracking request "20201127184745" added.
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /etc/httpd/alias \
          -n ipaCert \
          -C /usr/lib64/ipa/certmonger/restart_httpd \
          -T ipaCert \
          -p /etc/httpd/alias/pwdfile.txt
      New tracking request "20201127184746" added.
CRL 生成を元の rhel6.example.com CA マスターから rhel7.example.com に移動します。
  1. rhel6.example.com で CRL 生成を停止します。
    1. CA サービスを停止します。
      [root@rhel6 ~]# service pki-cad stop
    2. rhel6.example.com で CRL 生成を無効にします。/var/lib/pki-ca/conf/CS.cfg ファイルを開き、ca.crl.MasterCRL.enableCRLCache および ca.crl.MasterCRL.enableCRLUpdates パラメーターの値を false に設定します。
      ca.crl.MasterCRL.enableCRLCache=false
      ca.crl.MasterCRL.enableCRLUpdates=false
    3. CA サービスを起動します。
      [root@rhel6 ~]# service pki-cad start
  2. rhel6.example.com で、CRL 要求をリダイレクトするように Apache を設定します。
    1. /etc/httpd/conf.d/ipa-pki-proxy.conf ファイルを開いて、RewriteRule エントリーをコメントアウトします。
      RewriteRule ^/ipa/crl/MasterCRL.bin https://rhel6.example.com/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL [L,R=301,NC]
      注記
      URL のサーバーのホスト名を置き換えないでください。URL はローカルホスト名を参照する必要があります。
    2. Apache を再起動します。
      [root@rhel6 ~]# service httpd restart
    IdM は、ローカルファイルではなく、ローカル CA から証明書失効リスト (CRL) を取得するようになりました。
  3. rhel7.example.com で、新しい CA マスターとして rhel7.example.com を設定します。
    1. 「証明書更新を処理するサーバーの変更」 の説明に従って、CA サブシステム証明書の更新を処理するように rhel7.example.com を設定します。
    2. 「CRL を生成するサーバーの変更」 で説明されているように、rhel7.example.com を一般的な証明書失効リスト (CRL) に設定します。

関連情報

8.2.5. Red Hat Enterprise Linux 6 サーバーの停止

rhel6.example.com 上の全サービスを停止して、新しい rhel7.example.com サーバーへのドメイン検索を実施します。
[root@rhel6 ~]# ipactl stop
Stopping CA Service
Stopping pki-ca:                                           [  OK  ]
Stopping HTTP Service
Stopping httpd:                                            [  OK  ]
Stopping MEMCACHE Service
Stopping ipa_memcached:                                    [  OK  ]
Stopping DNS Service
Stopping named: .                                          [  OK  ]
Stopping KPASSWD Service
Stopping Kerberos 5 Admin Server:                          [  OK  ]
Stopping KDC Service
Stopping Kerberos 5 KDC:                                   [  OK  ]
Stopping Directory Service
Shutting down dirsrv:
    EXAMPLE-COM...                                         [  OK  ]
    PKI-IPA...                                             [  OK  ]
この後に、ipa ユーティリティーを使用すると、Remote Procedure Call (RPC) で新規サーバーに接続します。

8.2.6. マスター CA サーバーの移行後の次のステップ

トポロジーの各 Red Hat Enterprise Linux 6 サーバーの場合:
  1. rhel7.example.com からレプリカファイルを作成します。
    注記
    Red Hat Enterprise Linux 6 サーバーから Red Hat Enterprise Linux 7 レプリカをインストールすると、Identity Management ドメインのドメインレベルは、自動的に 0 に設定されます。
    Red Hat Enterprise Linux 7.3 では、レプリカのインストールや管理が容易になりました。これらの機能を使用するには、トポロジーはドメインレベル 1 にする必要があります。7章ドメインレベルの表示と引き上げを参照してください。
  2. レプリカファイルを使用して、別の Red Hat Enterprise Linux 7 システムに新しいレプリカをインストールします。
Red Hat Enterprise Linux 6 サーバーの使用を終了するには、以下を実行します。
  • Red Hat Enterprise Linux 7 サーバーで削除コマンドを実行して、トポロジーからサーバーを削除します。
重要
クライアント設定は自動的に更新されません。IDM サーバーの使用を終了し、新しいサーバーを異なる名前で設定した場合は、全体的なクライアント設定を確認する必要があります。特に、以下のファイルを手動で更新する必要があります。
  • /etc/openldap/ldap.conf
  • /etc/ipa/default.conf
  • /etc/sssd/sssd.conf