Linux: LUKS 및 여러 하드 드라이브

Linux: LUKS 및 여러 하드 드라이브

저는 RAID-1 시스템 암호화 장치(LUKS의 LVM)에 Debian Linux 시스템(amd64)을 설치했고 데이터(LUKS, 아마도 LVM)를 배치할 4개 이상의 디스크로 구성된 RAID-6을 갖게 될 것입니다.

기본 아이디어는 시스템 암호화 파티션의 잠금을 해제하고(로컬로 부팅하거나 SSH를 통해 부팅할 때) RAID-6 암호화 파티션에 대한 키 파일을 /etc/crypttab에 저장하는 것입니다. 이것이 보안 위험을 초래합니까? 내 말은... 누구든지 내 시스템에 로컬/원격으로 접근할 수 있다면 소용이 없으며 "루트" 공격(예: SSH)에 취약한 서버에서 실행되는 서비스가 많이 있다고 가정합니다. 다른 옵션이 있습니까(SSH를 통해 파티션 잠금을 해제하는 것 외에, 예를 들어 데이터 파티션이 마운트되기 전에 백업 작업이 시작되므로 문제가 될 수 있음).

다른 머신에서는 백업을 위해 LUKS+그레이홀(RAID-6 없음)이 포함된 여러 디스크를 사용할 예정입니다. 동일한 비밀번호를 10번 입력하여 10개의 디스크를 잠금 해제하는 것은 정말 고통스러울 것입니다.... ..

답변1

/lib/cryptsetup/scripts/decrypt_derived한 디스크 에서 crypttab다른 디스크로 키를 자동으로 사용할 수 있습니다 .

decrypt_derived 스크립트는 Debian의 cryptsetup 패키지의 일부입니다.

sda6crypt에서 sda5로 키를 추가하는 작은 예:

/lib/cryptsetup/scripts/decrypt_derived sda6crypt > /path/to/mykeyfile
cryptsetup luksAddKey /dev/sda5 /path/to/mykeyfile
ls -la /dev/disk/by-uuid/ | grep sda5
echo "sda5crypt UUID=<uuid> sda6crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab
shred -u /path/to/mykeyfile # remove the keyfile

지금은 실제로 파일을 삭제하기가 매우 어렵기 때문에 /path/to/mykeyfile이 암호화된 드라이브에 있는지 확인하세요( sda6crypt제 예에서는 좋은 해결책이 될 것입니다).

일반적으로 사용자 공간 파일 시스템 암호화를 사용하여 이를 수행할 수 있습니다(예: encfs.

답변2

decrypt_keyctl다음과 같은 이유로 대신 사용을 고려해 보세요 .

  1. LUKS2 호환성. decrypt_derived새로 설치할 때 맹목적으로 사용하지 마십시오. 이로 인해 다음이 발생할 수 있습니다.정적 오류 메시지이는 키 슬롯에서 안전하게 파생된 비밀번호로 대체됩니다.
  2. 기본적으로 비밀번호는 60초 후에 만료됩니다. 루트는 항상 파생된 비밀번호를 사용할 수 있습니다.
  3. decrypt_derived키 파일이 제공하는 거의 모든 장점을 가지고 있습니다 . 단점은 나중에 시스템에 연결되는 디스크와 함께 사용할 수 없다는 것입니다.

답변3

jofels의 답변을 바탕으로 동일한 예가 있지만 키를 파일에 저장하지 않습니다. 키는 디스크에 아무 것도 저장하지 않는 명명된 파이프로 전달됩니다.

crypttab을 사용 하면 /lib/cryptsetup/scripts/decrypt_derived자동으로 한 디스크의 키를 다른 디스크의 키로 사용할 수 있습니다. 이 decrypt_derived스크립트는 Debian의 cryptsetup 패키지의 일부입니다.

수정된 예에서는 sda6crypt의 키를 sda5에 추가합니다.

mkfifo fifo
/lib/cryptsetup/scripts/decrypt_derived sda6crypt > fifo &
cryptsetup luksAddKey /dev/sda5 fifo
rm fifo

ls -la /dev/disk/by-uuid/ | grep sda5
echo "sda5crypt UUID=<uuid> sda6crypt luks,initramfs,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab

keyscript옵션은 crypttabDebian의 원래 cryptsetup 도구로 처리할 때만 작동하며, systemd 재구현에서는 현재 이를 지원하지 않습니다. 시스템이 systemd(대부분의 시스템)를 사용하는 경우 initramfssystemd가 시작되기 전에 cryptsetup 도구를 통해 initrd에서 강제로 처리하도록 선택 해야 합니다 .

관련 정보