설치 후 디스크 암호화 사용


61

13.10 Saucy를 사용하고 있습니다. 설치 중에 디스크 암호화를 활성화하지 않은 경우 사실상 사후 암호화를 활성화 할 수있는 방법이 있습니까?

내가 발견 암호는 설치시 발생하는 것을 말한다있는, 그러나 또한 페도라를 참조합니다. 거기에서 할 수있는 방법이 있다면 라이브 디스크로 쉽게 부팅 할 수 있습니다.


전체 디스크 암호화 또는 / home 폴더 만?
Joren

전체 디스크. (질문을 따르 전체 디스크 대의 단점은 / 집에 무슨 일이고 :)?)
이삭 Dontje Lindell에게

/ home 디스크 암호화에는 스왑 공간이 포함되지 않습니다. / home 만 암호화 된 경우 중요한 데이터가 암호화되지 않은 스왑에 기록 될 수 있습니다. 복구 할 수 있습니다. Ubuntu는 로그온 중에 / home을 자동으로 해독합니다. 전체 디스크 암호화에는 부팅 및 로그인시 모두 암호가 필요합니다. 암호화 된 드라이브의 크기를 조정하는 것은 어려운 과정입니다. 외장 드라이브가있는 경우 13.10 Saucy Salamander에 설치 한 후 쉽게 암호화 할 수 있습니다. 데이터 백업, 대시 보드에서 "디스크"시작, 외장 드라이브 선택, 장부 클릭, 암호화 선택, 새로 암호화 된 드라이브 잠금 해제 , 데이터를 다시 복사하십시오.
user75798

답변:


57

당신이 당신의 홈 폴더의 암호화를 사용하려면 이러한 패키지를 설치하고 사용해야합니다 : ecryptfs-utilscryptsetup. 또한 관리자 (sudo) 권한을 가진 다른 사용자 계정이 필요합니다. 전체 문서는 다음과 같습니다.

설치 후 전체 디스크 암호화를 사용하려는 경우 현재로서는 짧은 대답은 다음과 같습니다. 아니요, 아니요 . 어쨌든, 이것에 관심이 있다면, 귀하의 질문은 다음과 같습니다.


8
링크 된 하우투의 기본 단계를 여기에 포함하십시오. 링크가 오프라인 상태가되거나 변경되거나 일시적으로 연결할 수없는 경우를 대비하여.
con-f-use

1
@ con-f-use (혼동없이)주의 깊게 읽으면 기본적인 단계가 답에 포함됩니다.
Radu Rădeanu

1
홈 폴더에 암호화 된 Samba 공유가 있으면 어떻게됩니까? 네트워크 사용자가 파일을 더 이상 읽을 수 없거나 공유를 통해 암호를 해독 할 수 있습니까?
Rush Frisby

21

후속 질문 : 전체 디스크의 장점과 단점은 무엇입니까?

/ home의 암호화는 ecryptfs 라는 사용자 공간 파일 시스템을 사용하여 수행됩니다.. 기본 인증 시스템에 매우 잘 짜여져있어 유용성 결점이 없습니다. 계정을 입력 할 때 (원격 셸 또는 기본 로그인 화면에서) 보안 키를 풀 때 암호가 사용됩니다 그러면 홈 디렉토리의 파일을 즉석에서 암호화 / 암호 해독하는 데 사용됩니다 (마운트 된 파일 시스템은 / home / username에 직접 상주합니다). 로그 아웃하면 / home / username이 마운트 해제되고 암호화 된 파일 만 시스템에 표시됩니다 (보통 /home/.ecryptfs/username/.Private/). 파일 이름도 암호화되어 있기 때문에 스크 러블 / 랜덤 파일처럼 보입니다. 정보 유출은 파일 크기, 타임 스탬프 및 파일 수뿐입니다 (전체 디스크 암호화를 사용하면 숨겨 짐).

여러 사용자가 시스템을 공유하는 경우이 기능과 함께 전체 디스크 암호화를 추가하기로 결정한 경우에도 매우 유용한 기능입니다. 로그 아웃 한 상태에서 ecryptfs) 암호화가 켜져 있습니다.

따라서 전체 디스크 암호화와 홈 암호화가 반드시 상호 배타적 일 필요는 없습니다.

다양한 보안 요구에 따라 가능한 설정 목록은 다음과 같습니다.

  • 전체 디스크 암호화 만 해당 : 컴퓨터를 사용하는 유일한 컴퓨터이고 컴퓨터가 전체 디스크 암호화의 오버 헤드를 처리 할 수있는 경우 (모든 최신 데스크톱은 사용자가 알지 못하고 넷북 및 오래된 랩톱을 사용하지 않고도 그렇게 할 수 있음) 전체를 사용할 수 있습니다 디스크 암호화 및 OS (/)와 동일한 파티션에 배치하십시오.
  • 전체 디스크 암호화 가정용 ECRYPTFS 암호화 : PC가 켜져있는 동안 개인 데이터를 읽는 것이 걱정되거나 다른 사용자와 컴퓨터를 공유하는 경우, 다른 파티션에있는 집에있을 수 있으며 전체 디스크와 함께 ecryptfs를 사용할 수 있습니다 암호화 (LUKS를 통한 / 암호화)
  • HOME ECRYPTFS 암호화 만 해당 : 외근 하는 동안 누군가 시스템을 조작하는 것에 대해 너무 걱정하지 않고 개인 데이터를 안전하게 유지하려면 전체 디스크 암호화를 건너 뛰고 ecryptfs (집의 암호화)를 사용하십시오. 이 시나리오의 추가 보너스이 아주 쉽다는 점이다 설정ecryptfs-migrate-home을 사용하여 Ubuntu를 설치했습니다. 또한 이것은 전체 디스크 암호화 가능성을 추가하여 몇 가지 릴리스를 다시 변경하기 전에 기본 우분투 설정이었습니다. 대부분의 최신 데스크톱은 땀없이 전체 디스크 암호화를 처리 할 수 ​​있고 오프라인 코드 삽입에 대해 얇은 보안 계층을 추가하므로 전체 디스크 암호화가 설치 프로그램에 추가되었습니다. 그러나 대부분의 사용자는 ecryptfs로 집을 암호화하는 것만으로도 충분합니다. 친구와 일반 랩톱 도둑이 개인 데이터를 차단하는 것입니다. 또한 올바른 수단을 사용하는 조직에서 단일 대상을 지정한 경우 전체 디스크 암호화 또는 홈 암호화 만 사용하면 다른 편집증 행동을 많이 설정하지 않는 한 큰 차이가 없습니다. 커널을 항상 사용자에게있는 별도의 펜 드라이브에 보관하십시오. 하드웨어 탬 퍼링 / 키로거 등을 지속적으로 확인)

설치 중에 디스크 암호화를 활성화하지 않은 경우 사실상 사후 암호화를 활성화 할 수있는 방법이 있습니까?

예. 현재 LVM을 사용하고 있고 시스템에 암호화되지 않은 모든 시스템 파일을 암호화 된 LUKS 파티션에 복사 할 수있는 충분한 공간이 있으면 더 쉬워 질 것입니다. LVM을 사용하는지 여부와 현재 ecrypfs를 사용하지 않고 다음 번 새로 설치할 때까지 전체 디스크 암호화 번거 로움을 건너 뛰고 있기 때문에 지금은 세부 사항을 설명하지 않습니다.


3

모든 중요한 디렉토리와 설치된 소프트웨어를 백업 할 수 있습니다. 버전 충돌을 피하기 위해 13.10이 완전히 업데이트되었는지 확인하십시오. 일반적으로 백업하는 것은 다음과 같습니다.

그런 다음 시스템 을 다시 설치 하면 이제 암호화됩니다. 전체 확장으로 업데이트하십시오. 그런 다음 백업을 암호화 된 시스템으로 이동하고 이전 버전의 모든 소프트웨어를 설치하십시오.

뒷면을 다시 넣어 때 그냥 암호화에 중요한 파일을 덮어 쓰지 않도록해야합니다 (예를 들어 /etc/fstab, /etc/cryptab일부 애벌레와 관련된 물건과에서 몇 가지 물건은 /boot백업 된 파일로 대체되어서는 안된다).


1

작동중인 Ubuntu 16.04에서 / boot를 제외한 모든 것을 포함하는 루트 파티션으로 설치 후 루트 파티션 암호화에 성공했습니다. 별도의 이동식 USB에 / boot를 넣었습니다. 특히 우분투 18로 업그레이드하기 전에이 작업을 수행했으며 암호화 된 디스크 버전에서 업그레이드가 정상적으로 작동했습니다.

암호화는 "제자리에서"수행되지 않았습니다. 어쨌든 새 설정이 작동 할 때까지 작업 버전을 덮어 쓰고 싶지 않았기 때문에 나에게 적합했습니다.

올바른 절차를 수행하는 것은 매우 간단하고 빠릅니다. (올바른 절차를 알아내는 데 약간의 잘못된 리드가 있었기 때문에 시간이 많이 걸렸습니다.)

개요

  1. 라이브 리눅스 USB 디스크 만들기-지속성을 활성화하는 것이 편리합니다. 라이브 USB 디스크로 부팅하십시오.
  2. 빈 파티션에 luks 암호화 볼륨 그룹을 작성하십시오. (제 경우에는 원래 리눅스와 같은 디스크에 있었지만 다른 디스크 일 수 있습니다.) / (루트)를 생성하고 암호화 된 파티션에서 논리 볼륨을 교환하십시오. 이것들은 복사 된 리눅스에 관한 한 가상 파티션의 역할을합니다.
  3. 이전 루트에서 새 루트로 파일을 복사하십시오.
  4. 이동식 USB 디스크로 작동하도록 다른 USB를 설정하고 파티션을 나눕니다.
  5. 새로운 루트에 일부 파일을 설정하고, 매직을 수행하고, 새로운 루트에 chroot 한 다음 chroot의 새 루트 환경에서 부트 디스크에 grub을 설치하십시오.

세부

1-라이브 리눅스 USB 디스크로 부팅-지속성을 활성화하는 것이 편리합니다.

unetbootin이있는 USB에 Ubuntu 16을 설치했습니다. GUI는 지정해야 "지속성"을 허용하지만, 또 다른 단계는 작업 지속성을 얻기 위해 필요 - 수정 /boot/grub/grub.cfg추가 --- persistent다음과 같이 :

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- persistent
    initrd  /casper/initrd
}

라이브 USB로 부팅

2- 빈 파티션에 luks 암호화 볼륨 그룹을 만듭니다. 암호화 된 파티션에서 / (루트)를 작성하고 논리 볼륨을 교환하십시오.

사용하지 않는 파티션을 암호화한다고 가정합니다 /dev/nvme0n1p4.

선택적으로 암호화 및 포맷 전에 숨길 파티션에 오래된 데이터가있는 경우 파티션을 임의로 지울 수 있습니다. 여기에서 토론을 참조하십시오 .

dd if=/dev/urandom of=/dev/nvme0n1p4 bs=4096 status=progress

암호화를 설정하십시오.

cryptsetup -y -v luksFormat /dev/nvme0n1p4

비밀번호를 설정하라는 메시지가 표시됩니다.

cryptsetup luksOpen /dev/nvme0n1p4 crypt1

비밀번호를 입력하라는 메시지가 표시됩니다. 그 주 crypt1임의의 사용자로 결정 이름입니다. 이제 볼륨과 형식을 만듭니다.

pvcreate /dev/mapper/crypt1
vgcreate crypt1-vg /dev/mapper/crypt1

lvcreate -L 8G crypt1-vg -n swap
mkswap /dev/crypt1-vg/swap

lvcreate -l 100%FREE crypt1-vg -n root
mkfs.ext4 /dev/crypt1-vg/root

볼륨을보고 계층 구조를 이해하려면이 유틸리티를 사용하십시오.

pvscan
vgscan
lvscan
ls -l /dev/mapper
ls -l /dev/crypt1

3- 기존 루트에서 새로운 루트로 파일 복사

mkdir /tmp/old-root 
mount /dev/ubuntu-vg/root /tmp/old-root/
mkdir /tmp/new-root
mount /dev/crypt1-vg/root /tmp/new-root/
cp -a /tmp/old-root/. /tmp/new-root/

umount /tmp/old-root
umount /tmp/new-root

cp -a ... 모든 파일 모드와 플래그를 유지하면서 아카이브 모드로 복사합니다.

4- 이동식 부팅 디스크로 작동하도록 다른 USB를 설정하고 파티션을 나눕니다.

나는 이것을 위해 gparted를 사용했다. 두 개의 파티션을 설정하십시오. 첫 번째 파티션은 vfat두 번째 ext2입니다. 각각 512MB 였으므로 적은 양으로 도망 갈 수 있습니다. 장치를 가정합니다 /dev/sdf.

# The first partition: (will be /dev/sdf1)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: fat32
Label: (leave)

# The second partition: (will be /dev/sdf2)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: ext4
Label: (leave) 

5- 새로운 루트에 일부 파일을 설정하고, 매직을 수행하고, 새로운 루트에 chroot 한 다음 chroot의 새 루트 환경에서 부트 디스크에 grub을 설치하십시오.

나중에 사용하기 위해 UUID를 찾으십시오. 다음 명령의 출력에 유의하십시오.

blkid /dev/sdf1
blkid /dev/sdf2
blkid /dev/nvme0n1p4

루트 파티션을 마운트하고 파티션을 부팅하십시오

sudo mount /dev/mapper/crypt1--vg-root /mnt
sudo mount /dev/sdf2 /mnt/boot
sudo mount /dev/sdf1 /mnt/boot/efi

파일 설정 /mnt/etc/fstab

/dev/mapper/crypt1--vg-root /               ext4    errors=remount-ro 0       1
/dev/mapper/crypt1--vg-swap none    swap    sw              0       0
UUID=[uuid of /dev/sdf2] /boot           ext2    defaults        0       2
UUID=[uuid of /dev/sdf1]  /boot/efi       vfat    umask=0077      0       1

여기서 "[uuid of ...]"는 문자-하이픈 조합 일뿐입니다.

파일 만들기 /mnt/etc/cryptab

# <target name> <source device>     <key file>  <options>
crypt1 UUID=[uuid of /dev/nvme0n1p4] none luks,discard,lvm=crypt1--vg-root

루트 디렉토리 환경에 들어가려면 몇 가지 마술이 필요합니다.

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
chroot /mnt

이제 부팅 USB 디스크를 grub다음 과 같이 설정하십시오 :

apt install --reinstall grub-efi-amd64
grub-install --efi-directory=/boot/efi --boot-directory=/boot --removable
update-initramfs -k all -c
update-grub

이제 새로 만든 USB 부팅 디스크를 사용하여 재부팅 및 부팅 할 수 있습니다.

문제 해결

(a)apt install --reinstall grub-efi-amd64 명령에 네트워크가 연결되어 있어야합니다 . 네트워크가 연결되었지만 DNS가 실패한 경우

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

(b)을 호출하기 전에 원래 Linux에서 사용 된 initramfs현재 vmlinuz...파일이 새 루트 디렉토리에 있어야합니다. 그렇지 않은 경우 찾아서 배치하십시오.

(c)grub-install명령은 기본적으로 에드가 아닌 경우에도 찾을 수있는 다른 모든 리눅스 디스크를 검색 mount하여 새 부팅 USB의 부팅 메뉴에 넣습니다. 일반적으로 이것은 바람직하지 않으므로이 행을 /boot/default/grub.cfg다음 에 추가하면 피할 수 있습니다 .

GRUB_DISABLE_OS_PROBER=true

참고 : 암호화 키가있는 텍스트 파일을 이동식 부팅 USB에 추가 할 수 있습니다.


0

간단한 답변 : 아니요.

복잡한 답변 :

디스크 나 파티션을 암호화하면 현재 해당 디스크 나 파티션에있는 모든 내용이 지워 지므로 디스크를 암호화하려면 디스크의 내용도 제거해야합니다. 시작하기 전에 적절한 데이터 백업을 수행해야합니다. 분명히 이것은 다른 방법으로 전체 디스크 암호화를 사용하도록 시스템을 다시 설치해야 함을 의미합니다. 이는 데이터 복구가 더 어려워 지도록 전체 디스크에 임의의 데이터가 기록되기 때문입니다.

그러나 요즘에는 루트 파티션을 암호화 할 필요가 없습니다. 무언가가 잘못 되면 데이터를 복구 할 수있는 가능성없이 시스템 외부에있는 것입니다 . 대신 개인 정보를 암호화하는 것을 고려해야합니다.

관련 질문 설치 후 전체 디스크를 암호화하는 방법을 참조하십시오 .


"데이터를 복구 할 가능성이없는 시스템 외부에 있습니다"<--- 맞지 않습니다. 암호화 키가있는 한 Live Medium으로 데이터를 복구 할 수 있습니다.
con-f-use

@ con-f-use는 조건부 "무엇이 잘못되면"암호화 된 드라이브 / 파티션에 엄청나게 나쁜 일이 발생하는 경우를 의미합니다.
Braiam

그래도 nitpicky라면 암호화 된 디스크에 LUKS 헤더의 최근 백업을 유지해야합니다. 그러나 "암호화 키"에 포함시킬 것입니다. 그 외에는 데이터 복구 관점에서 전체 암호화에 아무런 해가 없습니다. 그러나 어떤 버전의 Ubuntu가 있는지, 어떤 프로그램이 설치되어 있는지 등을 알 수 있다는 사실은 완전히 암호화되지 않은 디스크에서 가능한 공격 경로를 제공합니다. 또한 SSD도 일반적으로 사용합니다. 따라서 편집증의 경우 여전히 완전한 디스크 암호화 방법이 없습니다.
con-f-use

"하지만 요즘에는 루트 파티션을 암호화 할 필요가 없습니다." 스스로 동의하십시오. 전적으로 동의하지 않습니다. "디스크 나 파티션을 암호화하면 현재 해당 디스크 나 파티션에있는 모든 내용이 지워 지므로 디스크를 암호화하려면 디스크의 내용도 제거해야합니다." 다시, 동의하지 않습니다. Truecrypt는 기존 디스크를 사용하여 Windows에서 FDE를 수행하는 좋은 예입니다. 실제로, 그것은 암호화되지 않은, 그리고 일단 완료되면, 그것을 설치하는 사실상의 방법입니다. 우분투에서 atm을 사용할 수 없다는 대답을 바꾸지는 않지만 진술은 매우 범주적이고 부정확합니다.
Cookie

@ 쿠키 왜 나중에 설치할 수있는 것들이있는 파티션을 암호화하겠습니까? (제발, 나는 방대한 사용자 시스템에 대해 이야기하고 있습니다. 물건이 설치되어있을 수있는 회사 / 기업 서버와는 아무런 관련이 없습니다) 2) 당신이 이야기하는 것은 오직 사용할 수있는 truecrypt의 기능입니다 Windows는 최신 버전이며 설치 후 파티션을 암호화 할 수있는 Linux 암호화 시스템을 찾을 수 없다면 지금 부터 진술이 정확 하지 않습니다.
Braiam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.