在未加密的CentOS系统上启用了FIPS-无法再识别启动密码


1

我有一个在安装过程中已加密的CentOS VM实例。系统启动正常(输入启动解密密码后)。

我的项目需要为OpenSSL启用FIPS,因此我逐步完成了步骤并重新启动。

现在,系统将不接受我的引导解密密码(该密码很容易键入)。

在没有软件加密的其他相同系统上,使用上述步骤启用FIPS则可以正常工作,重新启动没有问题。

编辑

我启动了第三个CentOS VM实例,这次不使用整个系统加密。接下来,我使用luks加密了一个卷,然后重新启动。系统提示输入密码,然后系统正常启动。

接下来,我为openssl启用了fips,重新启动-并得到了很多错误,通常我会在该错误中看到引导密码,并且系统无法引导。

我将系统引导到单用户模式,从内核行中拉出fips = 1并引导。这次接受了启动密码。

Answers:


1

问题是我在启用FIPS之前对卷进行了加密。正如garethTheRed评论中所暗示的那样,LUKS使用了未经FIPS批准的算法,因此,启用FIPS后,事情就变得一团糟。

解决方案是

  1. 启用FIPS
  2. 加密卷

以该顺序。

该指南对于解决问题也很有用。这很冗长,需要额外的解释,所以我不会在此处复制粘贴完整的内容。这是吉斯特:

A.启用FIPS

  1. 使用以下两种方法之一检查是否启用了FIPS:

    cat /proc/sys/crypto/fips_enabled
    0 = not enabled
    1 = enabled
    
    openssl md5 /any/file
    valid hash = not enabled
    "Error setting digest md5" = enabled (likely)
    
  2. 检查是否已打开预链接。

    vi /etc/sysconfig/prelink
    
    Change
    PRELINKING=yes
    to
    PRELINKING=no
    
  3. 撤消所有当前的预链接

    [root@centos64]# prelink -ua
    
  4. 安装 dracut-fips

    [root@centos64]# yum install dracut-fips
    
  5. 重建您的initramfs

    [root@centos64]# dracut -f      
    
  6. 查找的设备路径 /boot

    [root@centos64]# df /boot
    Filesystem     1K-blocks   Used Available Use% Mounted on
    /dev/sda2         487652 115447    346605  25% /boot
    
  7. cp /etc/grub.conf /etc/grub.bak

  8. 编辑 /etc/grub.conf

    Add in the "fips=1" and "boot=/dev/***" lines to the kernel command line 
    
    Example: 
    kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_centos6464bittempl-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_LVM_LV=vg_centos6464bittempl/lv_swap rd_LVM_LV=vg_centos6464bittempl/lv_root rd_NO_MD crashkernel=auto SYSFONT=latarcyrheb-sun16 rd_NO_DM rhgb quiet fips=1 boot=/dev/sda2
    
  9. 重启

  10. 检查是否启用了FIPS(请参阅上面的步骤1)。

B.加密量

  1. 您确定已启用FIPS吗?如果没有,请不要继续-返回“ 启用FIPS”并确保该部分在工作,然后再继续...

  2. 获取要加密的逻辑卷的设备路径。在我的示例中,这是/dev/mapper/vg_mybox-LogVol03

  3. 备份此卷上的所有数据。它将被销毁。

  4. umount 体积。

    就我而言 umount /db_fips

  5. shred -v -n1 /dev/mapper/vg_mybox-LogVol03

  6. 加密卷并设置密码

    cryptsetup -v --verify-passphrase luksFormat /dev/mapper/vg_mybox-LogVol03
    

    注意:默认情况下,RHEL最小安装可能不包括cryptsetup。只是yum install cryptsetup为了得到您所需要的。CentOS 6.7的最小软件包包括cryptsetup

  7. 打开设备并将其别名为您选择的“ somename”(在本例中为“ db_fips”)

    cryptsetup luksOpen /dev/mapper/vg_mybox-LogVol03 db_fips
    
  8. 验证映射器具有路径

    [root@centos64]# ls /dev/mapper/db_fips
    
    At this point, treat /dev/mapper/db_fips as you would any ordinary filesystem or device
    
  9. 照常创建文件系统

    [root@centos64]# mkfs -t ext4 /dev/mapper/db_fips
    
  10. 安装并验证

    [root@centos64]# mount /dev/mapper/db_fips /db_fips
    [root@centos64]# date >> /db_fips/today.txt
    
  11. 重要!!!:注释掉/etc/fstab目标卷的现有条目,以免重新启动时感到头疼。:-)

    vi /etc/fstab

    # /dev/mapper/vg_mybox-LogVol03 /some/path ext4 defaults 1,2

  12. 重新启动以确保上述步骤有效。

  13. 获取UUID加密卷

    blkid

    /dev/mapper/vg_mybox-LogVol03: UUID="2e52ffee-7a02-4c91-b6bf-223b05f90ded" TYPE="crypto_LUKS"

  14. 将加密的卷添加到/etc/crypttab-以便可以在启动时将其解密。您可以在此处指定密码文件,但不建议这样做。 如果要对DRAC进行远程管理,请在服务器中安装DRAC(这样您就可以在引导过程中输入密码)。 crypttab手册页

    [root@centos64]# vi /etc/crypttab
    
    db_fips UUID="2e52ffee-7a02-4c91-b6bf-223b05f90ded" 
    
  15. 重新启动进行测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.