14.8. 証明書システムのバックアップと復元
Certificate System には、バックアップと復元のツールは含まれません。ただし、Certificate System コンポーネントは手動でアーカイブおよび復元できます。このコンポーネントは、証明書または鍵の情報が失われた場合に情報にアクセスできないデプロイメントに必要な場合があります。Certificate System の主な部分は、データ損失やハードウェアに障害が発生した場合に、通常 3 つにバックアップする必要があります。
- 内部データベース。サブシステムは LDAP データベースを使用してデータを保管します。Directory Server は、独自のバックアップスクリプトと手順を提供します。
- インスタンスディレクトリー。インスタンスディレクトリーには、すべての設定ファイル、セキュリティーデータベース、その他のインスタンスファイルが含まれます。これは、tar や zip などのユーティリティーを使用してバックアップできます。
14.8.1. LDAP 内部データベースのバックアップおよび復元
Red Hat Directory Server のドキュメント には、データベースのバックアップおよび復元の詳細情報が記載されています。
14.8.1.1. LDAP 内部データベースのバックアップ
Directory Server インスタンスのバックアップには、dsctl コマンドのサブコマンドのペアが 2 つ利用できます。それぞれのバックアップサブコマンドには、生成したファイルを復元するためのカウンターがあります。
db2ldif
サブコマンドは、ldif2db
サブコマンドを使用して復元できる LDIF ファイルを作成します。db2bak
サブコマンドは、bak2db
サブコマンドを使用して復元できるバックアップファイルを作成します。
14.8.1.1.1. db2ldif を使用したバックアップ
db2ldif サブコマンドを実行すると、単一のサブシステムデータベースのバックアップが作成されます。
注記
db2ldif サブコマンドは dirsrv ユーザーで実行するため、
/root/
ディレクトリー配下に書き込み権限がないので、書き込みが可能なパスを提供する必要があります。
PKI サブシステムが使用する各 Directory Server データベースをバックアップします。以下の pki-server ca-db-config-show コマンドを使用して、指定のサブシステムのデータベース名を確認することができます。たとえば、メインデータベースのバックアップを作成するには、
userRoot
を使用します。
- インスタンスを停止します。
# dsctl instance_name stop
- データベースを LDIF ファイルにエクスポートします。
# dsctl instance_name db2ldif userroot /tmp/example.ldif OK group dirsrv exists OK user dirsrv exists ldiffile: /tmp/example.ldif [18/Jul/2018:10:46:03.353656777 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [18/Jul/2018:10:46:03.383101305 +0200] - INFO - ldbm_back_ldbm2ldif - export userroot: Processed 160 entries (100%). [18/Jul/2018:10:46:03.391553963 +0200] - INFO - dblayer_pre_close - All database threads now stopped db2ldif successful
- インスタンスを起動します。
# dsctl instance_name start
ldif2db
サブコマンドを使用して LDIF ファイルを復元するには、「ldif2db を使用した復元」 を参照してください。
14.8.1.1.2. db2bak を使用したバックアップ
db2bak サブコマンドを実行すると、Directory Server (および Directory Server インスタンスが維持するその他のデータベース) の全 Certificate System サブシステムデータベースがバックアップされます。以下に例を示します。
以下に例を示します。
- インスタンスを停止します。
# dsctl instance_name stop
- データベースのバックアップを作成します。
# dsctl instance_name db2bak OK group dirsrv exists OK user dirsrv exists [18/Jul/2018:14:02:37.358958713 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ... db2bak successful
- インスタンスを起動します。
# dsctl instance_name start
注記
db2bak サブコマンドを dirsrv ユーザーで実行するため、ターゲットディレクトリーは dirsrv で書き込み可能でなければなりません。引数を指定せずにコマンドを実行すると、db2bak が適切な書き込み権限を持つ
/var/lib/dirsrv/slapd-<instance_name>/bak
ディレクトリーにバックアップが作成されます。
bak2db を使用して LDIF ファイルを復元するには、「bak2db を使用した復元」 を参照してください。
14.8.1.2. LDAP 内部データベースの復元
Directory Server インスタンスをバックアップする方法に応じて、対応するファイルで
ldif2db
またはbak2db
を使用して、データベースを復元してください。
注記
データベースを復元する前に、インスタンスを停止してください。
14.8.1.2.1. ldif2db を使用した復元
db2ldif
で LDIF ファイルを作成している場合は、ldif2db サブコマンドを使用して、Directory Server インスタンスを停止してファイルをインポートします。1 つのデータベースを指定して、バックアップから復元できます。たとえば、メインデータベースの場合、userRoot
などです。
- Directory Server インスタンスを停止します。
# dsctl instance_name stop
- LDIF ファイルからデータをインポートします。
# dsctl instance_name ldif2db userroot /tmp/example.ldif OK group dirsrv exists OK user dirsrv exists [17/Jul/2018:13:42:42.015554231 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ... [17/Jul/2018:13:42:44.302630629 +0200] - INFO - import_main_offline - import userroot: Import complete. Processed 160 entries in 2 seconds. (80.00 entries/sec) ldif2db successful
- Directory Server インスタンスを開始します。
# dsctl instance_name start
14.8.1.2.2. bak2db を使用した復元
db2bak
でバックアップファイルを作成した場合は、Directory Server を停止し、bak2db サブコマンドを使用してファイルをインポートします。以下に例を示します。
- Directory Server インスタンスを停止します。
# dsctl instance_name stop
- データベースを復元します。
# dsctl instance_name bak2db /var/lib/dirsrv/slapd-instance_name/bak/instance_name-time_stamp/ OK group dirsrv exists OK user dirsrv exists [20/Jul/2018:15:52:24.932598675 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ... bak2db successful
- Directory Server インスタンスを開始します。
# dsctl instance_name start
14.8.2. インスタンスディレクトリーのバックアップおよび復元
インスタンスディレクトリーには、サブシステムインスタンスのすべての設定情報が含まれているため、インスタンスディレクトリーのバックアップを作成すると、内部データベースに含まれていない設定情報が保持されます。
注記
インスタンスまたはセキュリティーデータベースをバックアップする前にサブシステムインスタンスを停止します。
- サブシステムインスタンスを停止します。
pki-server stop instance_name
- ディレクトリーを圧縮ファイルに保存します。
# cd /var/lib/pki/ # tar -chvf /export/archives/pki/instance_name.tar instance_name/
以下に例を示します。# cd /var/lib/pki/ # tar -chvf /tmp/test.tar pki-tomcat/ca/ pki-tomcat/ca/ pki-tomcat/ca/registry/ pki-tomcat/ca/registry/ca/ ...........
- サブシステムインスタンスを再起動します。
pki-server start instance_name
データが破損したり、ハードウェアが破損している場合に、Certificate System のバックアップファイル (
alias
バックアップおよび完全なインスタンスのディレクトリーバックアップ) の両方を使用して、現在のディレクトリーを交換できます。データを復元するには、unzip ツールまたは tar ツールを使用してアーカイブファイルを圧縮解除し、既存のファイルにアーカイブをコピーします。
インスタンスディレクトリーを復元するには、以下を実行します。
- アーカイブをデプロイメントします。
cd /export/archives/pki/ tar -xvf instance_name.tar
以下に例を示します。# cd /tmp/ # tar -xvf test.tar pki-tomcat/ca/ pki-tomcat/ca/registry/ pki-tomcat/ca/registry/ca/ pki-tomcat/ca/registry/ca/default.cfg .........
- サブシステムインスタンスが停止していない場合は停止します。
pki-server stop instance_name
- アーカイブされたファイルをコピーして、インスタンスディレクトリーを復元します。
cp -r /export/archives/pki/instance_name /var/lib/pki/instance_name
以下に例を示します。# cp -r /tmp/pki-tomcat/ca/ /var/lib/pki/pki-tomcat/ca/
- 復元されたファイルの所有権およびグループのパーミッションが
pkiuser
に設定されていることを確認します。# chown -R pkiuser:pkiuser /var/lib/pki/pki-tomcat/ca/
- サブシステムインスタンスを再起動します。
pki-server start instance_name