第 9 章 备份和恢复身份管理
Red Hat Enterprise Linux Identity Management 提供了手动备份和恢复 IdM 系统的解决方案,例如当服务器停止正确执行或数据丢失时。在备份过程中,系统会创建一个目录,其中包含您的 IdM 设置信息并存储它。在恢复过程中,您可以使用这个备份目录使原始 IdM 设置返回。
重要
只有在您无法从部署的其余部分中重建丢失的 IdM 服务器组部分时,才使用本章中描述的备份和恢复步骤,方法是重新安装丢失的副本作为剩余服务器的副本。
IdM/IPA 中的 "Backup 和 Restore in IdM/IPA"知识库解决方案 描述了如何通过维护多个服务器副本来避免损失。最好从具有相同数据的现有副本中重建,因为备份版本通常包含较旧的信息,因此可能会过期的信息。
备份和恢复可防止的潜在威胁情况包括:
- 机器上的灾难性硬件故障发生,机器变得无法进一步运行。在这种情况下:
- 从头开始重新安装操作系统。
- 配置相同主机名、完全限定域名(FQDN)和 IP 地址的计算机。
- 安装 IdM 软件包,以及与原始系统中存在的 IdM 相关的所有其他可选软件包。
- 恢复 IdM 服务器的完整备份。
- 在隔离的机器上进行升级会失败。操作系统仍然可以正常工作,但 IdM 数据已损坏,因此您要将 IdM 系统恢复到已知良好的状态。重要如果出现硬件或升级失败(如上述两项),只有在所有副本或具有特殊角色(如唯一证书颁发机构(CA))的副本都已丢失时才从备份中进行恢复。如果仍存在具有相同数据的副本,建议删除丢失的副本,然后将其从剩余副本中重建。
- 对 LDAP 内容进行了不必要的更改,例如删除了条目,您想要恢复它们。恢复备份的 LDAP 数据会将 LDAP 条目返回到之前的状态,而不影响 IdM 系统本身。
恢复的服务器成为 IdM 的唯一信息来源;其他 master 服务器是从恢复的服务器重新初始化的。最后一次备份后创建的所有数据都将丢失。因此,您不应该使用备份和恢复解决方案进行正常的系统维护。如果可能,请始终通过将丢失的服务器重新安装为副本来重建丢失的服务器。
备份和恢复功能只能从命令行管理,在 IdM Web UI 中不可用。
9.1. 仅备份全服务器备份和恢复
IdM 提供两个备份选项:
- 全 IdM 服务器备份
- 全服务器备份会创建所有 IdM 服务器文件的备份副本以及 LDAP 数据,这使其成为独立备份。IdM 会影响数百个文件;备份过程复制的文件是整个目录和特定文件(如配置文件或日志文件)的组合,并与 IdM 依赖的各种服务直接相关。由于全服务器备份是原始文件备份,因此它会脱机执行。执行 full-server 备份的脚本停止所有 IdM 服务,以确保备份过程的安全。有关完整服务器备份副本的文件和目录的完整列表,请查看 第 9.1.3 节 “备份期间目录和文件绑定列表”。
- 只数据备份
- 仅数据备份仅创建 LDAP 数据的备份副本以及 changelog。进程备份
IPA-REALM
实例,也可以备份多个后端或只有一个后端;后端包括IPA
后端和CA Dogtag
后端。这种类型的备份还会备份以 LDIF(LDAP 数据交换格式)存储的 LDAP 内容记录。仅数据备份可以在线和脱机执行。
默认情况下,IdM 将创建的备份存储在
/var/lib/ipa/backup/
目录中。包含备份的子目录的命名约定有:
ipa-full-YEAR-MM-DD-HH-MM-SS
(全服务器备份)中的 ipa-full-YEAR-MM-DD-HH-MM-SSipa-data-YEAR-MM-DD-HH-MM-SS
(仅数据备份)中的 ipa-data-YEAR-MM-DD-HH-MM-SS
9.1.1. 创建备份
使用 ipa-backup 工具创建全服务器和仅数据备份,必须始终以 root 用户身份运行。
要创建全服务器备份,请运行 ipa-backup。
重要
执行全服务器备份会停止所有 IdM 服务,因为进程必须离线运行。IdM 服务将在备份完成后再次启动。
要创建仅数据备份,请运行 ipa-backup --data 命令。
您可以在 ipa-backup 中添加几个附加选项:
- --online 执行在线备份 ; 这个选项仅适用于仅数据备份
- --logs 在备份中包含 IdM 服务日志文件
有关使用 ipa-backup 的详情,请参考 ipa-backup(1) man page。
9.1.1.1. 在备份过程中,在卷不足时工作空间不足
本节论述了如何解决 IdM 备份过程中涉及的目录存储在空闲空间不足的卷中的问题。
卷中含有 /var/lib/ipa/backup/ 的空间不足
如果
/var/lib/ipa/backup/
目录存储在空闲空间不足的卷中,则无法创建备份。要解决这个问题,请使用以下临时解决方案之一:
- 在不同的卷上创建一个目录,并将其链接到
/var/lib/ipa/backup/
。例如,如果/home
存储在有足够可用空间的不同卷中:- 创建目录,如
/home/idm/backup/
:# mkdir -p /home/idm/backup/
- 将以下权限设置为该目录:
# chown root:root /home/idm/backup/ # chmod 700 /home/idm/backup/
- 如果
/var/lib/ipa/backup/
包含现有的备份,请将其移到新目录中:# mv /var/lib/ipa/backup/* /home/idm/backup/
- 删除
/var/lib/ipa/backup/
目录:# rm -rf /var/lib/ipa/backup/
- 创建
/var/lib/ipa/backup/
链接到/home/idm/backup/
目录:# ln -s /home/idm/backup/ /var/lib/ipa/backup/
- 将存储在不同卷上的目录挂载到
/var/lib/ipa/backup/
。例如,如果/home
存储在具有足够可用空间的不同卷中,请创建/home/idm/backup/
,并将其挂载到/var/lib/ipa/backup/
:- 创建
/home/idm/backup/
目录:# mkdir -p /home/idm/backup/
- 将以下权限设置为该目录:
# chown root:root /home/idm/backup/ # chmod 700 /home/idm/backup/
- 如果
/var/lib/ipa/backup/
包含现有的备份,请将其移到新目录中:# mv /var/lib/ipa/backup/* /home/idm/backup/
- 将
/home/idm/backup/
挂载到/var/lib/ipa/backup/
:# mount -o bind /home/idm/backup/ /var/lib/ipa/backup/
- 要在系统引导时自动挂载
/home/idm/backup/
到/var/lib/ipa/backup/
,请在/etc/fstab
文件中附加以下内容:/home/idm/backup/ /var/lib/ipa/backup/ none bind 0 0
卷中含有 /tmp 的空间不足
如果因为
/tmp
目录中空间不足造成备份失败,请使用 TMPDIR
环境变量更改在备份期间创建的暂存文件的位置:
# TMPDIR=/path/to/backup
ipa-backup
详情请查看 ipa-backup 命令无法完成 知识库解决方案。
9.1.2. 加密备份
您可以使用 GNU Privacy Guard(GPG)加密 IdM 备份。
创建 GPG 密钥:
- 创建包含密钥详情的
keygen
文件,例如运行 cat >keygen <<EOF 并在命令行中提供所需的加密详情:[root@server ~]# cat >keygen <<EOF > %echo Generating a standard key > Key-Type: RSA > Key-Length:2048 > Name-Real: IPA Backup > Name-Comment: IPA Backup > Name-Email: root@example.com > Expire-Date: 0 > %pubring /root/backup.pub > %secring /root/backup.sec > %commit > %echo done > EOF [root@server ~]#
- 生成名为
backup
的新密钥对,并将keygen
的内容提供给命令。以下示例生成了一个名为 /root/backup.sec 和 /
:root
/backup.pub 的密钥对[root@server ~]# gpg --batch --gen-key keygen [root@server ~]# gpg --no-default-keyring --secret-keyring /root/backup.sec \ --keyring /root/backup.pub --list-secret-keys
要创建 GPG 加密备份,请通过提供以下选项将生成的 备份密钥传递给 ipa-
backup
:
- --GPG,它指示 ipa-backup 执行加密的备份
- --GPG-keyring=GPG_KEYRING,它提供了 GPG 密钥环的完整路径,而无需文件扩展名。
例如:
[root@server ~]# ipa-backup --gpg --gpg-keyring=/root/backup
注意
如果您的系统使用 gpg2 工具生成 GPG 密钥,您可能会遇到问题,因为 gpg2 需要外部程序才能正常工作。要在这种情况下从控制台生成密钥,请在生成密钥前将 pinentry-program /usr/bin/pinentry-curses 行添加到
.gnupg/gpg-agent.conf
文件中。
9.1.3. 备份期间目录和文件绑定列表
目录:
/usr/share/ipa/html /root/.pki /etc/pki-ca /etc/pki/pki-tomcat /etc/sysconfig/pki /etc/httpd/alias /var/lib/pki /var/lib/pki-ca /var/lib/ipa/sysrestore /var/lib/ipa-client/sysrestore /var/lib/ipa/dnssec /var/lib/sss/pubconf/krb5.include.d/ /var/lib/authconfig/last /var/lib/certmonger /var/lib/ipa /var/run/dirsrv /var/lock/dirsrv
文件:
/etc/named.conf /etc/named.keytab /etc/resolv.conf /etc/sysconfig/pki-ca /etc/sysconfig/pki-tomcat /etc/sysconfig/dirsrv /etc/sysconfig/ntpd /etc/sysconfig/krb5kdc /etc/sysconfig/pki/ca/pki-ca /etc/sysconfig/ipa-dnskeysyncd /etc/sysconfig/ipa-ods-exporter /etc/sysconfig/named /etc/sysconfig/ods /etc/sysconfig/authconfig /etc/ipa/nssdb/pwdfile.txt /etc/pki/ca-trust/source/ipa.p11-kit /etc/pki/ca-trust/source/anchors/ipa-ca.crt /etc/nsswitch.conf /etc/krb5.keytab /etc/sssd/sssd.conf /etc/openldap/ldap.conf /etc/security/limits.conf /etc/httpd/conf/password.conf /etc/httpd/conf/ipa.keytab /etc/httpd/conf.d/ipa-pki-proxy.conf /etc/httpd/conf.d/ipa-rewrite.conf /etc/httpd/conf.d/nss.conf /etc/httpd/conf.d/ipa.conf /etc/ssh/sshd_config /etc/ssh/ssh_config /etc/krb5.conf /etc/ipa/ca.crt /etc/ipa/default.conf /etc/dirsrv/ds.keytab /etc/ntp.conf /etc/samba/smb.conf /etc/samba/samba.keytab /root/ca-agent.p12 /root/cacert.p12 /var/kerberos/krb5kdc/kdc.conf /etc/systemd/system/multi-user.target.wants/ipa.service /etc/systemd/system/multi-user.target.wants/sssd.service /etc/systemd/system/multi-user.target.wants/certmonger.service /etc/systemd/system/pki-tomcatd.target.wants/pki-tomcatd@pki-tomcat.service /var/run/ipa/services.list /etc/opendnssec/conf.xml /etc/opendnssec/kasp.xml /etc/ipa/dnssec/softhsm2.conf /etc/ipa/dnssec/softhsm_pin_so /etc/ipa/dnssec/ipa-ods-exporter.keytab /etc/ipa/dnssec/ipa-dnskeysyncd.keytab /etc/idm/nssdb/cert8.db /etc/idm/nssdb/key3.db /etc/idm/nssdb/secmod.db /etc/ipa/nssdb/cert8.db /etc/ipa/nssdb/key3.db /etc/ipa/nssdb/secmod.db
日志文件和目录:
/var/log/pki-ca /var/log/pki/ /var/log/dirsrv/slapd-PKI-IPA /var/log/httpd /var/log/ipaserver-install.log /var/log/kadmind.log /var/log/pki-ca-install.log /var/log/messages /var/log/ipaclient-install.log /var/log/secure /var/log/ipaserver-uninstall.log /var/log/pki-ca-uninstall.log /var/log/ipaclient-uninstall.log /var/named/data/named.run