如何在 CentOS/RHEL 7 上禁用 FIPS 模式

什么是 FIPS 合规性?

联邦信息处理标准 (FIPS - Federal Information Processing Standards) 是美国政府指定的用于批准加密软件的标准。
美国国家标准与技术研究院 (NIST) 迄今为止发布了 FIPS 140-1 和 FIPS 140-2 标准,而 FIPS PUB 140-2 是“密码模块的安全要求”标准。

在 CentOS/RHEL 7 上启用 FIPS 的步骤包括安装 dracut-fips 包。
该软件包提供了一个文件 /etc/system-fips,启用 FIPS 的软件(例如 openssh 客户端)使用该文件来检查内核中是否启用了 FIPS 模式。
在安装期间使用 fips=1 会告诉安装程序自动安装 dracut-fips 包。

on  It Road.com

禁用 FIPS 模式

  1. 删除 dracut-fips 包。
# yum remove dracut-fips*
  1. 备份 FIPS initramfs。
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).backup

注意:检查是否已创建 initramfs 文件。
此外,我们可以使用其他位置而不是 /boot/ 来避免空间问题。

  1. 重新创建 initramfs 文件:
# dracut -f

或者

# dracut -f -v /boot/initramfs-$(uname -r).img $(uname -r)
  1. 从内核命令行禁用 fips=1 值。
    修改 grub.cfg 中当前内核的内核命令行,在 /etc/default/grub 文件中的 GRUB_CMDLINE_LINUX 项中加入以下选项“fips=0”,然后重建 grub.cfg 文件:

GRUB_CMDLINE_LINUX 行的示例如下:

# 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=0"
  1. 对 /etc/default/grub 的更改需要重新构建 grub.cfg 文件,如下所示:
# grub2-mkconfig -o /boot/grub2/grub.cfg

或者如果我们有基于 UEFI 的运行:

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
  1. 重新启动服务器以使更改生效:
# shutdown -r now
  1. 重新启动后检查 FIPS 是否未处于强制模式 /proc/sys/crypto/fips_enabled 应为 0。

例子:

# cat /proc/sys/crypto/fips_enabled
0
日期:2020-09-17 00:13:30 来源:oir作者:oir