Ubuntu 11.10에서 부팅시 암호 문구를 하나만 입력하여 LUKS / LVM으로 암호화 된 2 개의 하드 디스크를 해독 할 수 있습니까?


8

여기에 내가 가진 구성 :-2 개의 하드 드라이브-첫 번째 하드 드라이브는 LUKS 및 LVM을 사용하여 암호화됩니다. 볼륨 그룹에 두 번째 하드 드라이브를 암호화하고 싶습니다. 성공적으로 설치하고 암호화했습니다. 그러나 부팅 할 때 두 하드 드라이브를 모두 해독하려면 암호를 2 개 입력해야합니다.

하나만 사용하는 방법이 없습니까?



이것은 나를 위해 일했다 : unix.stackexchange.com/a/110102/50601
Tim Abell

답변:


4

마침내 암호를 하나만 입력하고 모든 실제 디스크를 암호화하는 트릭을 찾습니다.

암호를 사용하여 첫 번째 암호를 암호화하고 첫 번째 하드 드라이브에 저장 한 키 파일 (/ root / mykeyfile)을 사용하여 두 번째 암호를 암호화합니다.

그리고 / etc / crypttab 파일에 올바른 줄을 사용하면 트릭을 수행합니다.

/ etc / crypttab 업데이트

sda5_crypt UUID = fb07f1e8-a569-4db9-9fd7-fc1994e093b5 없음 luks

sdb1_crypt UUID = 4c0687f0-d7af-4f2e-9c57-5ca8e909d492 / root / mykeyfile luks


dd if = / dev / urandom of = / root / mykeyfile bs = 1024 count = 20 'keyfile'로 사용될 임의의 문자열을 만드는 방법의 예입니다.
earthmeLon

1
이 문제는 파일 시스템에 대한 액세스 (예 : 사용 권한 문제 또는 사소한 문제)와 관련된 타협으로 인해 더 큰 문제인 주요 타협으로 이어질 수 있습니다. 이 방법을 강력히 권장합니다. 더 나은 (자동) 방법에 대한 내 대답을 참조하십시오.
몰래

이것이 어떻게 작동하는지 설명해 주시겠습니까? LVM이 성능 저하 모드에서 시작한 다음 두 번째 PV를 사용할 수있게되면 자체적으로 수정됩니까?
aij

0

우분투에서는 루트에서 파생 된 키를 다른 파일 시스템의 추가 키로 사용할 수 있습니다. 이것은 파일 시스템 자체에서 다른 드라이브의 키를 유지하는 이점이 있습니다.

이 작업을 수행하기 전에 먼저 / tmp가 램에만 마운트되어 있는지 확인하십시오! 이 변경에 대한 단일 사용자 모드를 제안합니다.

mount -t ramfs none /tmp

그런 다음 파생 된 키를 내보낼 수 있습니다.

# replace vda5_crypt with the cryptsetup name of your root luks
# have a look in /dev/mapper or 'pvdisplay' to find it...
/lib/cryptsetup/scripts/decrypt_derived vda5_crypt > /tmp/key

그런 다음 다른 장치에 추가하십시오.

# use your own disks here instead of sdb1 sdc1 sdd1 etc
cryptsetup luksAddKey /dev/sdb1 /tmp/key
cryptsetup luksAddKey /dev/sdc1 /tmp/key
cryptsetup luksAddKey /dev/sdd1 /tmp/key
rm /tmp/key

루트가 잠금 해제되면 우분투 초기화 스크립트가 파생 키를 사용하여 나머지 블록 장치를 잠금 해제하고 / dev / mapper에서 유사하게 사용할 수있게합니다. / etc / crypttab 항목이 필요한지 잘 모르겠습니다. 먼저 입력하지 말고 나타나지 않으면 키없이 crypttab에 입력하면 잠금이 해제됩니다.

(나는 이것을 테스트하지 않았습니다.)


데비안에서 crypttab없이 시도했지만 작동하지 않았습니다. crypttab을 사용해도 작동하지 않지만 더 가까워졌습니다. sdb3_crypt UUID = 4a ... sda3_crypt luks, initramfs, keyscript = decrypt_derived. initramfs에 포함 된 decrypt_derived 스크립트를 얻으려면 initramfs 옵션이 필요합니다. 그러나 시작시 여전히로드되지 않습니다.
aij

-1

이론적으로 사용자 정의 부팅 스크립트에서 임시 환경 변수를 설정 한 다음 암호 해독 프로세스의 초기화 스크립트에서 참조 할 수 있습니다. 나는 실제로 몇 년 전에 이것을했습니다.

다른 옵션은 하드 드라이브의 기존 초기화 스크립트를 도끼로 만들고 비밀번호를 한 번 입력 한 다음 두 개의 암호 해독 프로세스를 진행하는 사용자 지정 스크립트를 작성하는 것입니다.

대안으로 LVM 볼륨을 두 번째 드라이브로 확장 할 수 있습니다. 올바르게 기억한다면 암호화가 계속되어야합니다.


1
LVM은 기본 암호화 된 볼륨 위에 구축됩니다. 다른 암호화 된 볼륨을 만들지 않고 LVM을 확장해도 볼륨 그룹에 추가 된 추가 스토리지는 암호화되지 않습니다.
몰래

-2

아니요, 즉시 사용할 수있는 방법이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.