私のアプリの1つでは、ソフトウェアディスク暗号化を同時に使用しながら、OpenSSLに対してFIPS)を有効にする必要があります。
VM#1
インストール中にソフトウェアで暗号化されたCentOS VMインスタンスを起動しました。システムは正常に起動しました(起動復号化パスワードを入力した後)。
次に、手順を実行しました FIPS-OpenSSLを有効にするため そして再起動しました。システムは私のブート復号化パスワードを受け入れませんでした(意図的に入力するのは簡単でした)。
VM#2
2番目のVMを、ソフトウェア暗号化なしで他の点では同一のOS/configでセットアップしました。FIPS上記の手順を使用して再起動すると、再起動に問題なくすべてが正常に機能します。
VM#3
3番目のCentOS VMインスタンスを起動し、インストール中にシステム暗号化を使用しないことも選択しました。インストールと基本構成の後、luksを使用してテストボリュームを暗号化し、再起動しました。プロンプトが表示されます。その後、パスワードとシステムは正常に起動します。
次に、私は FIPS-OpenSSLを有効にした 、再起動しました-そして、通常は起動パスワードが表示され、システムが起動しないというエラーが多数発生します。
これをVMシングルユーザーモードで起動し、カーネルラインからfips = 1をプルして再起動しました。今回は、起動パスワードが受け入れられました。
.。
OpenSSLに対してFIPSを有効にすると、ブートパスワードが失敗するのはなぜですか?
問題は、FIPSを有効にする前にボリュームを暗号化したことでした。 garethTheRedcomment でほのめかされているように、LUKSはFIPS承認されていないアルゴリズムを使用したため、FIPS =有効にされたものは大騒ぎになりました。
解決策は
その順番で。
このガイド 問題の解決にも役立ちました。余分な説明が付いているので、ここにすべてをコピーして貼り付けることはしません。これが要点です:
A。 ENABLE FIPS
次の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)
事前リンクがオンになっているかどうかを確認します。
vi /etc/sysconfig/prelink
Change
PRELINKING=yes
to
PRELINKING=no
現在のすべての事前リンクを元に戻す
[root@centos64]# prelink -ua
インストールdracut-fips
[root@centos64]# yum install dracut-fips
Initramfsを再構築します
[root@centos64]# dracut -f
/boot
のデバイスパスを探す
[root@centos64]# df /boot
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 487652 115447 346605 25% /boot
cp /etc/grub.conf /etc/grub.bak
編集/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
リブート
FIPSが有効になっているかどうかを確認します(上記の手順1を参照)。
B.暗号化ボリューム
よろしいですかFIPS有効ですか?そうでない場合は、先に進まないでくださいENABLE FIPSに戻り、前にパーツが機能していることを確認してください続く...
暗号化する論理ボリュームのデバイスパスを取得します。私の例では、これは/dev/mapper/vg_mybox-LogVol03
です。
このボリュームのすべてのデータをバックアップします。破壊されます。
umount
ボリューム。
私の場合、umount /db_fips
shred -v -n1 /dev/mapper/vg_mybox-LogVol03
ボリュームを暗号化し、パスフレーズを設定します
cryptsetup -v --verify-passphrase luksFormat /dev/mapper/vg_mybox-LogVol03
[〜#〜] note [〜#〜]:RHELの最小インストールには、デフォルトでcryptsetupが含まれていない場合があります。必要なものを入手するには、yum install cryptsetup
だけです。 CentOS6.7の最小限のパッケージセットにはcryptsetup
が含まれています。
デバイスを開き、選択した「somename」(この場合は「db_fips」)にエイリアスします。
cryptsetup luksOpen /dev/mapper/vg_mybox-LogVol03 db_fips
マッパーにパスがあることを確認します
[root@centos64]# ls /dev/mapper/db_fips
At this point, treat /dev/mapper/db_fips as you would any ordinary filesystem or device
通常どおりにファイルシステムを作成します
[root@centos64]# mkfs -t ext4 /dev/mapper/db_fips
マウントして確認します
[root@centos64]# mount /dev/mapper/db_fips /db_fips
[root@centos64]# date >> /db_fips/today.txt
¡¡¡重要!!!:再起動時に問題が発生しないように、ターゲットボリュームの既存の/etc/fstab
エントリをコメントアウトします。 :-)
vi /etc/fstab
# /dev/mapper/vg_mybox-LogVol03 /some/path ext4 defaults 1,2
上記の手順が機能していることを確認するために再起動します。
暗号化されたボリュームのUUID
を取得します
blkid
/dev/mapper/vg_mybox-LogVol03: UUID="2e52ffee-7a02-4c91-b6bf-223b05f90ded" TYPE="crypto_LUKS"
暗号化されたボリュームを/etc/crypttab
に追加します-起動時に復号化できるようにします。ここでパスファイルを指定できますが、お勧めしません。 リモート管理する場合は、サーバーにDRACをインストールします(起動時にパスフレーズを入力できるようにします)。crypttabのマニュアルページ
[root@centos64]# vi /etc/crypttab
db_fips UUID="2e52ffee-7a02-4c91-b6bf-223b05f90ded"
再起動してテストします。