내 애플리케이션 중 하나에서 소프트웨어 디스크 암호화를 사용하는 동안 OpenSSL용 FIPS를 활성화해야 합니다.
가상 머신 #1
설치 중에 소프트웨어 암호화를 사용하여 CentOS VM 인스턴스를 시작했습니다. 시스템이 정상적으로 시작됩니다(시작 암호 해독 비밀번호 입력 후).
다음으로 다음 단계를 완료했습니다.FIPS-OpenSSL 활성화그리고 다시 시작하세요. 시스템은 내 부팅 암호 해독 암호(의도적으로 입력하기 쉬운 암호)를 허용하지 않습니다.
가상 머신 #2
다른 동일한 OS/구성을 사용하여 두 번째 VM을 설정했습니다.소프트웨어 암호화 없음. 위 단계를 사용하여 FIPS를 활성화한 다음 재부팅했고 모든 것이 제대로 작동했으며 재부팅 시 문제가 없었습니다.
가상 머신 #3
세 번째 CentOS VM 인스턴스를 시작했으며 설치 중에 시스템 암호화를 사용하지 않기로 선택했습니다. 설치 및 기본 구성 후 luks를 사용하여 테스트 볼륨을 암호화하고 재부팅했습니다. 비밀번호를 묻는 메시지가 나타나면 시스템이 정상적으로 부팅됩니다.
다음으로 나는FIPS-OpenSSL 활성화, 재부팅 - 오류가 많이 발생합니다. 일반적으로 부팅 비밀번호가 표시되고 시스템이 부팅되지 않습니다.
이 VM을 단일 사용자 모드로 부팅하고 커널 라인에서 fips=1을 가져와 재부팅했습니다. 이번에는 시작 비밀번호가 승인되었습니다.
...
OpenSSL용 FIPS를 활성화하면 시작 암호화가 실패하는 이유는 무엇입니까?
답변1
문제는 FIPS를 활성화하기 전에 볼륨을 암호화했다는 것입니다. ~처럼가레스 레드에서 언급된논평, LUKS는 FIPS가 승인되지 않은 알고리즘을 사용하므로 FIPS가 활성화되면 상황이 이상해질 수 있습니다.
해결책은
- FIPS 활성화
- 암호화된 볼륨
그와 같은 순서로.
이 가이드문제 해결에도 유용합니다. 꽤 길고 추가 설명이 있으므로 여기에 전체 내용을 복사하여 붙여넣지는 않겠습니다. 요점은 다음과 같습니다.
A. FIPS 활성화
다음 두 가지 방법 중 하나를 사용하여 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가 활성화되어 있습니까? 그렇지 않은 경우 계속하지 마십시오. - 돌아가기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
노트: RHEL 최소 설치에는 기본적으로 cryptsetup이 포함되지 않을 수 있습니다.
yum install cryptsetup
필요한 것을 얻으려면 . CentOS 6.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"
테스트를 위해 다시 시작하세요.