如何使 CentOS/RHEL 7 FIPS 140-2 兼容

为了使 CentOS/RHEL 7 符合联邦信息处理标准出版物 (FIPS) 140-2,需要进行一些更改以确保使用经过认证的加密模块并且系统(内核和用户空间)处于 FIPS 模式。

欢迎来到之路教程(on itroad-com)

操作步骤

在内核上激活 FIP:

  1. 安装 dracut-fips。
# yum install dracut-fips
  1. 备份当前的 initramfs。
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).backup

确保已创建 initramfs 的备份。

  1. 重新创建 initramfs 文件:
# dracut -f
  1. 修改grub.cfg文件中当前内核的内核命令行。
    在 /etc/default/grub.cfg 中,在 GRUB_CMDLINE_LINUX 行的末尾添加以下选项:“fips=1”
# cat /etc/default/grub | grep GRUB_CMDLINE_LINUX=
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg_os/root rd.lvm.lv=vg_os/swap rhgb quiet fips=1"
  1. 重建 grub.cfg 文件如下:
# grub2-mkconfig -o /boot/grub2/grub.cfg

如果服务器被配置为使用基于 UEFI 的,运行以下命令来重建 grub.cfg :

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
  1. 重新启动系统。
# shutdown -r now
  1. 最后再次检查是否现在启用了 FIP。
    如果启用,它将显示 1.
# cat /proc/sys/crypto/fips_enabled
1

准备工作

  1. 确认当前openssl版本支持fips:
# openssl version
OpenSSL 1.0.1e-fips 11 Nov 2013
  1. 检查以下命令的输出。
    它显示内核是否已为 FIP 配置。
    如果未启用,它将显示 0。
# cat /proc/sys/crypto/fips_enabled
0
  1. 备份输出 'blkid' 和 'df -h' 以防将来出现问题。
# blkid > /var/tmp/blkid_bkp_`date`
# df -h > /var/tmp/df_bkp_`date`
  1. 在 /etc/sysconfig/prelink 检查预链接是否被禁用。
    这可以通过在配置文件中配置“PRELINKING=no”来完成。

注意:如果服务器中没有预链接,则可以跳过此步骤。

  1. 检查服务器是否使用AESNI(高级加密标准指令集):
# cat /proc/cpuinfo | grep aes
# lsmod | grep aes

注意:如果在服务器中 aes 正在工作,请在继续之前安装库依赖项:dracut-fips-aesni。

日期:2020-09-17 00:13:42 来源:oir作者:oir