1

У меня есть экземпляр CentOS VM, который был зашифрован во время установки. Система загрузилась нормально (после ввода пароля расшифровки загрузки).

Мой проект требует включения FIPS для OpenSSL, поэтому я прошел все этапы и перезагрузился.

Теперь система не примет мой пароль для расшифровки загрузки (который преднамеренно легко ввести).

На идентичной в остальном системе без программного шифрования включение FIPS с помощью описанных выше шагов работает нормально, без перезагрузки.

редактировать

Я развернул третий экземпляр CentOS VM, на этот раз не используя шифрование всей системы. Затем я зашифровал том с помощью luks, затем перезагрузил компьютер. Мне предлагают пароль, и система загружается нормально.

Затем я включил fips для openssl, перезагрузился - и получил множество ошибок, где я обычно вижу пароль загрузки, а система не загружается.

Я загрузил эту систему в однопользовательском режиме, вытащил fips = 1 из строки ядра и загрузился. Пароль загрузки был принят на этот раз.

1 ответ1

1

Проблема заключалась в том, что я зашифровал тома перед включением FIPS. Как упомянул в комментарии garethTheRed, LUKS использовал алгоритм, не одобренный FIPS, поэтому, когда FIPS был включен, все пошло наперекосяк.

Решение состоит в том, чтобы

  1. Включить FIPS
  2. Шифровать тома

В этой последовательности.

Это руководство также было полезно при решении проблемы. Это долго с дополнительными пояснениями, поэтому я не буду копировать и вставлять полную информацию здесь. Вот Jist:

A. ENABLE 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 выше).

Б. ОБЪЕМ ШИФРОВАНИЯ

  1. Вы уверены, что FIPS включен? Если нет, не продолжайте - вернитесь к ENABLE 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 на сервере для удаленного администрирования (чтобы вы могли вводить фразу-пароль во время загрузки). Страница справочника crypttab

    [root@centos64]# vi /etc/crypttab
    
    db_fips UUID="2e52ffee-7a02-4c91-b6bf-223b05f90ded" 
    
  15. Перезагрузитесь, чтобы проверить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .