Red Hat Training

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

第 9 章 备份和恢复身份管理

Red Hat Enterprise Linux Identity Management 提供了手动备份和恢复 IdM 系统的解决方案,例如当服务器停止正确执行或数据丢失时。在备份过程中,系统会创建一个目录,其中包含您的 IdM 设置信息并存储它。在恢复过程中,您可以使用这个备份目录使原始 IdM 设置返回。
重要
只有在您无法从部署的其余部分中重建丢失的 IdM 服务器组部分时,才使用本章中描述的备份和恢复步骤,方法是重新安装丢失的副本作为剩余服务器的副本。
IdM/IPA 中的 "Backup 和 Restore in IdM/IPA"知识库解决方案 描述了如何通过维护多个服务器副本来避免损失。最好从具有相同数据的现有副本中重建,因为备份版本通常包含较旧的信息,因此可能会过期的信息。
备份和恢复可防止的潜在威胁情况包括:
  • 机器上的灾难性硬件故障发生,机器变得无法进一步运行。在这种情况下:
    1. 从头开始重新安装操作系统。
    2. 配置相同主机名、完全限定域名(FQDN)和 IP 地址的计算机。
    3. 安装 IdM 软件包,以及与原始系统中存在的 IdM 相关的所有其他可选软件包。
    4. 恢复 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-SS
  • ipa-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 存储在有足够可用空间的不同卷中:
    1. 创建目录,如 /home/idm/backup/
      # mkdir -p /home/idm/backup/
    2. 将以下权限设置为该目录:
      # chown root:root /home/idm/backup/
      # chmod 700 /home/idm/backup/
    3. 如果 /var/lib/ipa/backup/ 包含现有的备份,请将其移到新目录中:
      # mv /var/lib/ipa/backup/* /home/idm/backup/
    4. 删除 /var/lib/ipa/backup/ 目录:
      # rm -rf /var/lib/ipa/backup/
    5. 创建 /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/
    1. 创建 /home/idm/backup/ 目录:
      # mkdir -p /home/idm/backup/
    2. 将以下权限设置为该目录:
      # chown root:root /home/idm/backup/
      # chmod 700 /home/idm/backup/
    3. 如果 /var/lib/ipa/backup/ 包含现有的备份,请将其移到新目录中:
      # mv /var/lib/ipa/backup/* /home/idm/backup/
    4. /home/idm/backup/ 挂载到 /var/lib/ipa/backup/
      # mount -o bind /home/idm/backup/ /var/lib/ipa/backup/
    5. 要在系统引导时自动挂载 /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 密钥:
  1. 创建包含密钥详情的 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 ~]#
  2. 生成名为 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