web-dev-qa-db-ja.com

LUKS暗号化CENTOSシステムの有効FIPS - ブートパスワードが認識されない

インストール中にソフトウェアが暗号化されたCentos VMインスタンスがあります。システムは罰金(起動復号化パスワードを入力した後)を起動しました。

私のプロジェクトではOpenSSLにFIPSを有効にする必要があるため、 ステップ ---を実行して再起動しました。

これで、システムは私の起動復号化パスワードを受け入れません(これは意図的にタイプが簡単です)。

ソフトウェア暗号化なしでそうでなければ同一のシステムで、上記の手順を使用してFIPSを有効にします。

編集

私は3番目のCentOS VMインスタンスを上げて、この時期はシステム暗号化全体を使用しません。次に、LUKSを使用してボリュームを暗号化してから再起動しました。パスワードとシステムが正常に起動するように求められます。

次に、OpenSSLのFIPSを有効にし、再起動し、通常は起動パスワードを表示していて、システムは起動しません。

このシステムを単一のユーザーモードに起動し、カーネル行からFIPS = 1をプルして起動しました。今回起動パスワードが受け入れられました。

1
a coder

問題は、FIPSを有効にする前にボリュームを暗号化したという問題でした。 AS GarethTheredコメント 、LUKSはFIPS承認済みアルゴリズムを使用しているため、FIPSが有効になった場合は。

解決策は

  1. FIPSを有効にします
  2. ボリュームを暗号化します

その順序で。

このガイド 問題を解決するのにも役立ちました。特別な説明があるのは長いですので、ここで完全なものを貼り付けません。 JISTはこちらです。

a。 fipsを有効にする

  1. FIPSが2つのメソッドの1つを使用して有効になっているかどうかを確認してください。

    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をインストールする(Boot中にパスフレーズを入力することができます).CryptTab Man Page

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

1
a coder