luksで暗号化されたCentOSシステムでFIPSを有効にすると、起動パスワードが壊れます。

luksで暗号化されたCentOSシステムでFIPSを有効にすると、起動パスワードが壊れます。

私のアプリケーションの1つでソフトウェアディスク暗号化を使用している間は、OpenSSL用のFIPSを有効にする必要があります。

仮想マシン#1

インストール中にソフトウェア暗号化を使用してCentOS VMインスタンスを起動しました。システムは正常に起動します(起動復号化パスワードを入力した後)。

次に、次のステップを完了しました。FIPS-OpenSSLを有効にするそして再起動してください。システムは、私の起動復号化パスワード(意図的に入力しやすいパスワード)を許可しません。

仮想マシン #2

別の同じOS /構成を使用して2番目のVMを設定しました。ソフトウェア暗号化なし。上記の手順を使用してFIPSを有効にして再起動し、すべてが正常に動作し、再起動時に問題はありませんでした。

仮想マシン #3

3番目のCentOS VMインスタンスを起動し、インストール中にシステム暗号化を無効にすることを選択しました。インストールとデフォルト設定の後、luksを使用してテストボリュームを暗号化して再起動しました。パスワードの入力を求められたら、システムは正常に起動します。

次に私はFIPS-OpenSSLを有効にする、再起動 - エラーがたくさん発生します。通常、起動パスワードが表示され、システムは起動しません。

このVMをシングルユーザーモードで起動し、カーネルラインからfips = 1を取得して再起動しました。今回はスタートパスワードが承認されました。

...

OpenSSL用のFIPSを有効にすると起動暗号化が失敗するのはなぜですか?

ベストアンサー1

問題は、FIPSを有効にする前にボリュームを暗号化したことです。 〜のようにガレスレッドで言及コメント、LUKS は FIPS が承認されていないアルゴリズムを使用するため、FIPS が有効になると状況が異常になる可能性があります。

解決策は

  1. FIPSの有効化
  2. 暗号化されたボリューム

そのような順序で。

このガイドトラブルシューティングにも役立ちます。かなり長くて追加の説明があるので、ここに全内容をコピーして貼り付けません。ポイントは次のとおりです。

A. FIPS 有効化

  1. 次の 2 つの方法のいずれかを使用して、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をインストールします(起動中にパスワードを入力できるように)。 crypttab のマニュアルページ

    [root@centos64]# vi /etc/crypttab
    
    db_fips UUID="2e52ffee-7a02-4c91-b6bf-223b05f90ded" 
    
  15. テストのために再起動してください。

おすすめ記事