전체 디스크 암호화를 위해 기존 라이브 데이터를 dm 암호화하는 데 사용할 수 있는 유틸리티나 프로그램이 있습니까?

전체 디스크 암호화를 위해 기존 라이브 데이터를 dm 암호화하는 데 사용할 수 있는 유틸리티나 프로그램이 있습니까?

암호화되지 않은 라이브 데이터가 저장된 HDD에 실행 중인 Linux 시스템이 설치되어 있습니다. 전체 HDD에 대해 적절한 dm 암호화를 수행하는 합리적인 방법이 있습니까? (백업, 복원, 새 파일 시스템으로 전송할 필요가 없습니다.)

가능하다면 온라인으로 할 수 있는 방법이 있나요? 즉, 한 시간 정도 안에 Linux 시스템을 작동하여 모든 데이터를 암호화할 수 있습니까?

답변1

(a) 여유 디스크 공간이 충분하고 (b) LVM을 사용하는 경우 다음을 수행할 수 있습니다.

  1. 백업을 하세요.
  2. 1단계를 다시 읽고 이번에는 무시하지 마세요.
  3. 1단계를 다시 읽고 아직 실제로 테스트하지 않았다는 것을 기억하세요. 그래도 작동해야합니다!
  4. 현재 물리 볼륨 줄이기( pvresize)
  5. 기본 파티션의 크기를 조정합니다. 안타깝게도 파티션 테이블(사용 중)을 다시 읽으려면 재부팅해야 할 수도 있습니다.
  6. 새 파티션을 생성하고 여기에 dm-crypt를 설정합니다. 그 위에 물리 볼륨을 배치합니다.
  7. 이제 이를 사용하여 pvmove실제로 데이터를 온라인으로 이동할 수 있습니다.
  8. 이동 중에 암호화된 볼륨을 부팅하려면 initramfs를 업데이트해야 합니다. 특히 모든 것을 암호화하려는 경우.
  9. 복구 디스크(예: Live CD)를 준비하세요. 재부팅하고 나타나는지 확인하십시오.
  10. 볼륨 그룹에서 이전 PV를 제거하고 안전하게 덮어씁니다.
  11. 이제 dm-crypt를 설정하고 동일한 vg에 두 번째 PV로 추가할 수도 있습니다.

LVM을 사용하지 않는다면 아마도 절망적일 것입니다. 확실히 rsync를 사용하여 한 파일 시스템에서 다른 파일 시스템으로 데이터를 복사할 수 있지만 시스템이 유휴 상태일 때 최종 동기화를 수행해야 합니다(그렇지 않으면 파일을 복사하려고 할 때 파일이 변경됩니다).

답변2

LUKS 내부 암호화존재하다. 하지만 그림과 같이 환경을 약간 설정해야 합니다.

여기에 이미지 설명을 입력하세요.

여기에 이미지 설명을 입력하세요.

여기에 이미지 설명을 입력하세요.

답변3

도구가 있어야 하는데 이름이나 URL을 제공할 수 없습니다. 하지만 두렵지 않다면 :-) 전혀 어렵지 않습니다. 암호화되지 않은 장치에서 데이터를 읽고 암호화된 장치에 쓰기만 하면 됩니다. 이전에 파일 시스템의 크기를 조정하여 더 작게 만들지 않으면 LUKS를 사용할 수 없습니다. 물론 이것은 설치 중인 장치에서는 작동하지 않습니다(ro가 설치되어 있어도 작동하지 않을 수 있습니다). 충돌에 대한 보호 기능이 없는 핵심 기능은 다음과 같습니다(예, 방금 성공적으로 시도했습니다).

for((i=0;i<100;i++)); do
  echo "Copying block with offset ${i} to tmpfs"
  dd if=/dev/storage2/test of=/mnt/tmpfs/cryptoblock skip=$i bs=10M count=1 &>/dev/null
  echo "Copying block with offset ${i} from tmpfs"
  dd if=/mnt/tmpfs/cryptoblock of=/dev/mapper/crypt_test seek=$i bs=10M count=1
done

필요한 개선 사항은 블록을 비휘발성 미디어에 복사하고 해당 오프셋을 기록하는 것입니다. 충돌이 발생하면 중단된 트랜잭션의 블록을 수동으로 복사하고 다음 블록의 오프셋을 시작 값으로 사용하여 루프를 시작할 수 있습니다.

관련 정보