"이미 데이터가 들어 있는 드라이브를 어떻게 암호화하나요?"

"이미 데이터가 들어 있는 드라이브를 어떻게 암호화하나요?"

현재 암호화된(LUKS 사용) 호스트의 백업으로 사용하는 암호화되지 않은 외장 하드 드라이브가 있습니다. 백업을 업데이트하려면 호스트 시스템에 로그인하고 외장 하드 드라이브에 재동기화하면 됩니다. 분명히, 본질적으로 암호화할 가치가 있는 자료를 암호화되지 않은 백업으로 보유하는 것은 좋은 생각이 아닙니다. 하지만 시간 제약으로 인해 rsync와 같은 도구의 도움 없이는 정기적으로 백업을 업데이트할 수 없습니다. 따라서 외장 드라이브에서 사용하는 모든 암호화 방법은 rsync와 호환되어야 합니다. 그러나 다음과 같은 문제가 발생합니다.

  1. EncFS 또는 eCryptfs와 같은 사용자 공간 스택 가능 암호화 방법은 모두 많은 공간을 차지하는 것으로 보이며 rsync와 잘 작동하지 않습니다. 암호화를 담당하는 숨겨진 파일은 rsync가 너무 많은 파일을 복사해야 하므로 rsync를 사용할 가치가 거의 없을 정도로 자주 변경되는 것 같습니다.
  2. luksipc는 옵션이지만 최신 문서에는 대신 dm-crypt의 cryptsetup-reencrypt 도구를 사용하라고 나와 있습니다. 안타깝게도 아치 위키에서 cryptsetup-reencrypt에 대한 문서를 찾을 때마다 무엇을 해야 할지, rsync와 작동하는지 여부도 알 수 없습니다. cryptsetup-reencrypt 도구도 매우 새로운 것으로 보이며 내 수준의 누군가가 읽을 수 있는 문서를 찾기가 어렵습니다.
  3. 일반 LUKS 또는 유사한 것은 앞서 언급한 시간 제약으로 인해 드라이브를 지우고 백업을 처음부터 다시 시작할 수 없기 때문에 옵션이 아닙니다.
  4. 이중성은 옵션이지만 외장 하드 드라이브(예: 복사된 위치)에 있는 암호화되지 않은 파일은 암호화할 수 없는 것 같습니다.

전반적으로 #2가 외부 드라이브를 암호화하고 rsync를 통해 해당 드라이브를 최신 상태로 유지하려는 목표를 달성하는 데 가장 좋은 옵션인 것처럼 보이지만 실제로 어디서부터 시작해야 할지 모르고 나도 그렇지 않습니다. 드라이브를 암호화하기 전에 드라이브를 지워야 할 수도 있다는 가능성을 기꺼이 받아들입니다. 내가 뭔가 유용한 것을 놓쳤나요?

답변1

이제 cryptsetup다음을 통해 암호화되지 않은 파티션을 암호화된 LUKS 장치로 비파괴적으로 변환하는 기능을 지원합니다.하위 명령 재암호화.

외부 드라이브에 액세스할 수 /dev/sdX있고 파일 시스템이 현재 있다고 가정 /dev/sdXY하면 먼저 파일 시스템을 축소하여 LUKS 헤더를 위한 공간과 암호화 작업을 위한 일부 스크래치 공간(32MiB 유효)을 확보해야 합니다. 정확한 명령은 파일 시스템에 따라 다릅니다(예: ext4의 경우).

e2fsck -f /dev/sdXY
resize2fs /dev/sdXY NEWSIZE

(XFS는 축소를 지원하지 않으므로 fstransform먼저 축소가 필요합니다...)

트리거 암호화:

cryptsetup reencrypt --encrypt /dev/sdXY --reduce-device-size 32M

파일 시스템을 다시 확장합니다.

cryptsetup open /dev/sdXY backup
resize2fs /dev/mapper/backup
cryptsetup close backup

(크기 매개변수가 없으면 resize2fs는 사용 가능한 모든 공간을 사용합니다)

기존 파일 시스템의 내용을 변경하지 않으므로 rsync를 계속 사용할 수 있습니다. 그런 것보다는

mount /dev/sdXY /mnt/backup
rsync -a /home /mnt/backup
umount /mnt/backup

이제 다음과 같은 작업을 수행해야 합니다.

cryptsetup open /dev/sdXY backup
mount /dev/mapper/backup /mnt/backup
rsync -a /home /mnt/backup
umount /mnt/backup

시간 제한을 언급했으므로 cryptsetup reencrypt반드시 cryptsetup luksFormat새로운 rsync만큼 빠르지는 않습니다.


위의 접근 방식에 대한 대안은 다음으로 전환하는 것입니다.레스틱백업 요구사항을 충족하세요. Restic은 모든 백업을 암호화하고 증분 백업을 지원하며 매우 빠릅니다.

외장 드라이브가 충분히 큰 경우 새 하위 디렉터리에서 Restic 저장소를 초기화하여 Restic 사용을 시작할 수 있습니다. 첫 번째 Restic 백업이 완료된 후, 암호화되지 않은 오래된 백업 파일을 삭제할 수 있습니다. 마지막으로, 당신은해야합니다여유 공간 지우기암호화되지 않은 오래된 백업 파일의 흔적을 모두 파기합니다.

답변2

이제 가장 큰 문제는 다음과 같습니다.

"이미 데이터가 들어 있는 드라이브를 어떻게 암호화하나요?"

LUKS, eCryptFS, EncFS 또는 기본적으로 다른 것을 사용하든 안전한 대답은 하나뿐입니다.

  1. 다른 곳에 데이터 백업
  2. 드라이브 암호화(현재 백업된 기존 데이터 삭제/덮어쓰기)
  3. 이제 암호화된 드라이브에 데이터 복사
  4. 드라이브의 암호를 해독(잠금 해제)할 수 있고 데이터가 변경되지 않았는지 확인하세요.

귀하의 경우 백업 드라이브에서 LUKS를 사용하려는 경우백업 드라이브가 절반 미만으로 채워진 경우, 다음을 수행할 수 있습니다.

  1. 드라이브의 절반에 여유 파티션을 만듭니다.
  2. LUKS를 사용하여 여유 파티션 암호화
  3. 암호화되지 않은 파티션의 데이터를 LUKS 파티션으로 복사
  4. 암호화되지 않은 파티션 삭제
  5. 그런 다음 LUKS 파티션을 전체 드라이브로 확장합니다...

그러나 이러한 파티션 축소 및 확장 작업 중 하나에서는 데이터를 이동해야 할 가능성이 높으며, 안전을 위해 먼저 백업을 수행해야 하므로 어쨌든 이전 "데이터 백업" 단계만 수행할 수 있습니다.

LUKS 내부 암호화 솔루션(lukspic 또는 cryptsetup-reencrypt) 사용을 고려하는 경우에도 마찬가지입니다. 중요한 데이터인 경우 먼저 백업을 만드세요.

  • 이것은 이미 백업 드라이브이므로 원본 드라이브를 의사 백업으로 사용하고 전체 드라이브를 지우고 LUKS를 사용한 다음 원본 드라이브에서 새로운 백업을 만들 수 있습니다.

또는 데이터가 삭제되어도 상관이 없다면 내부 암호화 솔루션을 사용해 보거나 파티션을 앞뒤로 이동하여 문제가 발생하여 모든 것이 삭제되더라도 놀라지 마십시오.

관련 정보