10.6. LUKS 암호화 볼륨의 자동 잠금 해제를 위해 NBDE 클라이언트 구성
Clevis 프레임워크를 사용하면 선택한 Tang 서버를 사용할 수 있을 때 LUKS 암호화 볼륨의 자동 잠금 해제를 위해 클라이언트를 구성할 수 있습니다. 그러면 NBDE(Network-Bound Disk Encryption) 배포가 생성됩니다.
사전 요구 사항
- Tang 서버가 실행 중이고 사용 가능합니다.
절차
기존 LUKS 암호화된 볼륨의 잠금을 자동으로 해제하려면
clevis-luks
하위 패키지를 설치합니다.yum install clevis-luks
# yum install clevis-luks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PBD의 LUKS 암호화 볼륨을 식별합니다. 다음 예에서 블록 장치는 /dev/sda2 라고 합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow clevis luks bind
명령을 사용하여 볼륨을 Tang 서버에 바인딩합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 다음 네 가지 단계를 수행합니다.
- LUKS 마스터 키와 동일한 엔트로피를 사용하여 새 키를 만듭니다.
- Clevis를 사용하여 새 키를 암호화합니다.
- LUKS2 헤더에 Clevis JWE 오브젝트를 저장하거나 기본이 아닌 LUKS1 헤더가 사용되는 경우 LUKSMeta를 사용합니다.
- LUKS에 사용할 새 키를 활성화합니다.
참고바인딩 절차에서는 사용 가능한 LUKS 암호 슬롯이 하나 이상 있다고 가정합니다.
clevis luks bind
명령은 슬롯 중 하나를 사용합니다.이제 Clevis 정책과 함께 기존 암호를 사용하여 볼륨을 잠금 해제할 수 있습니다.
초기 부팅 시스템이 디스크 바인딩을 처리할 수 있도록 하려면 이미 설치된 시스템에서
dracut
툴을 사용합니다. RHEL에서 Clevis는 호스트별 구성 옵션 없이 일반initrd
(초기 RAM 디스크)를 생성하고 커널 명령줄에rd.neednet=1
과 같은 매개변수를 자동으로 추가하지 않습니다. 구성이 초기 부팅 중에 네트워크가 필요한 Tang 핀을 사용하는 경우--hostonly-cmdline
인수를 사용하고dracut
은 Tang 바인딩을 감지할 때rd.neednet=1
을 추가합니다.clevis-dracut
패키지를 설치합니다.yum install clevis-dracut
# yum install clevis-dracut
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 초기 RAM 디스크를 다시 생성합니다.
dracut -fv --regenerate-all --hostonly-cmdline
# dracut -fv --regenerate-all --hostonly-cmdline
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
/etc/dracut.conf.d/
디렉터리에 .conf 파일을 생성하고hostonly_cmdline=yes
옵션을 파일에 추가합니다. 그런 다음--hostonly-cmdline
없이dracut
을 사용할 수 있습니다. 예를 들면 다음과 같습니다.echo "hostonly_cmdline=yes" > /etc/dracut.conf.d/clevis.conf dracut -fv --regenerate-all
# echo "hostonly_cmdline=yes" > /etc/dracut.conf.d/clevis.conf # dracut -fv --regenerate-all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clevis가 설치된 시스템에서
grubby
툴을 사용하여 초기 부팅 시 Tang 핀의 네트워킹을 사용할 수 있는지 확인할 수도 있습니다.grubby --update-kernel=ALL --args="rd.neednet=1"
# grubby --update-kernel=ALL --args="rd.neednet=1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Clevis JWE 오브젝트가 LUKS 헤더에 성공적으로 배치되었는지 확인하고
clevis luks list
명령을 사용합니다.clevis luks list -d /dev/sda2
# clevis luks list -d /dev/sda2 1: tang '{"url":"http://tang.srv:port"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 초기 부팅에 바인딩을 사용할 수 있는지 확인합니다. 예를 들면 다음과 같습니다.
lsinitrd | grep clevis-luks
# lsinitrd | grep clevis-luks lrwxrwxrwx 1 root root 48 Jan 4 02:56 etc/systemd/system/cryptsetup.target.wants/clevis-luks-askpass.path -> /usr/lib/systemd/system/clevis-luks-askpass.path …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow