사용자 로그인시 암호화 된 드라이브를 안전하게 자동 마운트


18

로그인하면 암호화 된 / home 디렉토리가 자동으로 마운트됩니다. 디스크 유틸리티로 포맷하고 암호화 한 두 번째 내장 하드 드라이브가 있습니다. 암호화 된 / home 디렉토리와 마찬가지로 로그인 할 때 자동으로 마운트되기를 원합니다. 어떻게해야합니까?

여기에 몇 가지 매우 유사한 질문이 있지만 답변은 제 상황에 적용되지 않습니다. 여기에서 내 질문을 닫거나 병합하고 아래 두 번째 질문을 편집하는 것이 가장 좋지만, 질문이 취소되었을 수 있으므로 허용 된 것으로 표시되지 않아야합니다.

이 솔루션 은 안전한 방법이 아니며 암호화를 우회합니다.
이를 위해서는 편집 fstab이 필요하며 부팅시 추가 암호를 입력 해야합니다 . / home을 마운트하는 것과 같이 자동적이지 않습니다.
이 질문 은 매우 유사하지만 암호화 된 드라이브에는 적용되지 않습니다. 솔루션이 내 요구에 맞지 않습니다.
여기 하나가 있지만 NTFS 드라이브 용입니다. 내 것이 ext4입니다.

솔루션에 필요한 경우 두 번째 드라이브를 다시 포맷하고 다시 암호화 할 수 있습니다. 다른 곳에서 모든 데이터를 백업했습니다.


암호화에 어떤 FS를 사용합니까? LUKS 또는 ecrytpfs?
데이지

@AaronLewis 우분투의 디스크 유틸리티를 사용하여 드라이브를 포맷 한 다음 '이 드라이브 암호화'상자를 선택하십시오. / crypt가 기본적으로 암호화되는 방식이므로 ecryptfs와 함께 가야한다고 생각합니다. 하기가 너무 쉬워서 한번도 보지 않았습니다.
Tom Brossman

답변:


5

더 이상 위의 솔루션이 필요하지 않습니다.

전제 조건 :

참고 :이 방법은 암호화 된 드라이브를 수동으로 마운트하는 것보다 덜 안전합니다. 누군가 귀하의 컴퓨터에 물리적으로 액세스 할 수있는 경우, 루트 비밀번호로주의를 기울이지 않거나 컴퓨터에 여러 명의 사용자 / 게스트 계정이있는 경우, 이있는 경우이 방법은 안전하지 않습니다 . 보조 드라이브는 로그 아웃 할 때 마운트 상태를 유지하지만 시스템을 종료하지 않으므로 다른 사용자가 내용을 볼 수 있습니다.

1 부 : 보조 드라이브를 암호화하십시오.

  1. Unity 대시에서 "disks"를 입력하고 Enter 키를 누르십시오.
  2. "장치"아래에서 암호화하려는 하드 드라이브를 클릭하십시오.
  3. "볼륨"아래에서 코그 / 추가 작업 버튼을 클릭하십시오.
  4. "볼륨 포맷"을 클릭하십시오. 유형으로 "암호화, Linux 시스템과 호환 가능"을 선택하십시오. 드라이브 이름을 지정하고 강력한 암호 문구를 제공하십시오.
  5. "포맷"을 클릭하십시오

2 부 : 시스템 시작시 HDD를 자동으로 마운트합니다.

  1. "디스크"응용 프로그램을 열어두고 코 그를 클릭하십시오.
  2. "암호화 옵션 편집"을 클릭하십시오.
  3. "자동 암호화 옵션"이 켜지고 아래 메뉴가 회색으로 표시됩니다. 자동 암호화 옵션을 끕니다.
  4. 디스크를 포맷했을 때의 암호를 입력하십시오. "확인"을 클릭하십시오.

이제 컴퓨터가 부팅 될 때 자동으로 마운트되는 암호화 된 하드 드라이브가 있습니다.


1
누군가가 이것을 사용할 것이라고 확신하지만 제기 된 질문에 대한 답변은 아닙니다. 이는 시스템 시작과 달리 사용자 로그인시 보조 마운트가 발생하도록 지정합니다. 이로 인해 "위의 해결책이 더 이상 필요하지 않다"는 초기 주장이 부적절하며, 저자는 그에 따라 그 답을 바꾸라고 권유합니다.
mc0e

2
나는 네가 틀렸다고 생각한다. 즉, 2 차 마운트는 사용자 로그인시 (내가 언급 한 작업이 수행 된 계정에서만) 발생하며 1 초 전이 아닙니다. 아내가 같은 컴퓨터에서 Ubuntu 계정에 로그인하면 드라이브가 마운트되지 않습니다. 마운트를 시도하면 암호화 키를 요청합니다. 나는 위의 답변이 필요하지 않습니다 유지합니다.
tryion

1
동의, 이것은 지금 컴퓨터에서 유일한 사용자이므로 가장 간단한 방법입니다. 모든 사람에게 적용되지는 않지만 Ubuntu가 설치되어 있고 기본 / 관리자 사용자 인 경우이 방법을 사용하십시오. 실제로 어딘가에 큰 "이 작업을 암호화 된 / 홈과 동일하게 만들기"확인란이 있어야합니다. 간단한 사용 사례입니다.
Tom Brossman

@tryion LUKS 파티션은 시스템 시작시 잠금이 해제되었지만 마운트되지 않았습니다. 따라서 컴퓨터가 켜지 자마자 암호화되지 않은 파티션만큼 액세스 할 수 있습니다. 비밀번호는에 일반 텍스트로 저장됩니다 /etc/crypttab. 파티션에 액세스하는 데 사용자 비밀번호가 필요하지 않습니다. 따라서이 설정은 암호화가 전혀없는 것과 같으며 질문에 대한 답변이 아닙니다.
빅터

libsecret을 사용하여 특정 사용자에 대해 암호화를 해제하는 다른 옵션을 저장하는 방법이 있습니까?
MrMesees

10

몇 년 전에이 답변을 썼을 때 이것이 솔루션을 구현하는 가장 좋은 방법이었습니다. 이제 mount.ecryptfs_private를 사용하여 다음 답변 을 살펴 보는 것이 좋습니다 .

또한 두 번째 eCryptfs 볼륨을 자동으로 마운트하는 방법을 찾고있었습니다. 다음 스크립트 모음 및 구성 수정은 로그인시 GUI 또는 CLI에 볼륨을 안전하고 자동으로 마운트합니다.

작성 과정에 더 나은 솔루션이 있습니다 (사용자 로그인에 자동 마운트 할 준비가되지는 않았지만이 스크립트는 유효 기간이 제한적입니다).

너무 작은 하드 드라이브의 ecryptfs-암호화에 링크를 추가하는 방법?

스크립트의 보안은 암호를 풀기위한 비밀번호가있는 스크립트 및 파일이 암호화되도록 eCryptfs로 암호화되는 홈 디렉토리에 따라 다릅니다. 로그인 후 루트 셸을 연 상태에서 컴퓨터의 잠금을 해제 한 상태로두면 암호에 액세스 할 수 있지만 sudo NOPASSWD를 사용하면 암호를 입력하거나 암호 구문을 사용자가 읽을 수있는 파일에 그대로 두지 않고도 파티션을 안전하게 마운트 할 수 있습니다.

이 스크립트의 알려진 결함 중 하나는 두 번째 볼륨이 로그 아웃시 마운트 해제되지 않기 때문에 다중 사용자 시스템에 특히 적합하지 않다는 것입니다.

내 솔루션은 실제 마운트를 수행하고 다른 하나는 래퍼 역할을하는 두 개의 쉘 스크립트로 구현됩니다.

이것은 디렉토리가 이미 마운트되어 있는지 확인하는 래퍼 스크립트이며, 그렇지 않은 경우 sudo를 사용하여 마운트 스크립트를 호출합니다.

/ home / johnf / scripts / automount_ecryptfs

#!/bin/bash

MOUNT_POINT=/home/johnf/slow

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  sudo /home/johnf/scripts/mount_other_ecryptfs
fi

이 스크립트는 다음과 같은 / home / johnf / scripts / mount_other_ecryptfs를 호출합니다.

이 스크립트는 파일 이름 암호화가 활성화되어 있다고 가정합니다. 그렇지 않은 경우 탐지를 처리하기 위해 스크립트를 수정하거나 (ecryptfs-recover-private 확인) ecryptfs_fnek_sig 마운트 옵션을 제거 할 수 있습니다.

다음은 / home / johnf / scripts / mount_other_ecryptfs 스크립트입니다.

#!/bin/bash

ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`

printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}

또한 비밀번호가 포함 된 파일을 작성해야합니다.이 파일은 eCryptfs mount 명령에서 사용됩니다.

/ home / johnf / scripts / ecryptfs_passphrase :

passwd=secret_passphrase

여러 파일에 대한 권한을 수정해야합니다.

chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase

스크립트를 작성하기 전에 sudo 비밀번호를 입력하지 않고 sudo를 사용하여 마운트 스크립트를 실행할 수 있도록 sudoers 구성을 작성해야합니다.

다음을 / etc / sudoers (또는 /etc/sudoers.d의 파일)에 추가하십시오. johnf를 사용자 이름으로 바꾸려고합니다. 마운트 스크립트에 대한 절대 경로를 사용해야합니다.

johnf   ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs

마지막 단계는 로그인시 automount_ecryptfs 스크립트를 호출하는 것입니다.

Ubuntu Unity (및 아마도 gnome)에서는 Startup Applications 애플릿을 사용하여 / home / johnf / scripts / automount_ecryptfs를 호출하는 새로운 시작 프로그램을 만듭니다.

bash 쉘에 로그인 할 때 두 번째 eCryptfs 볼륨을 자동으로 마운트하려면 ~ / .bashrc 파일을 수정해야합니다. 다음을 추가하십시오.

/home/johnf/scripts/automount_ecryptfs

이 구성을 사용하면 이제 두 번째 eCryptfs 볼륨을 자동으로 마운트해야합니다.


와우, 좋은 대답입니다! 공감 및 수락. 아직 테스트 할 수는 없지만 매우 완벽하게 보입니다.
Tom Brossman

의 저자는 mount.ecryptfs_private이제 ecryptfs-mount-private그를위한 래퍼 스크립트 인의 사용을 권장합니다 mount.ecryptfs_private. thesimplecomputer.info/… 는 ecryptfs와 LUKS의 상대적 장점을 읽을 가치가 있습니다.
mc0e

9

@ johnf의 답변을 기반으로하지만 대신 mount.ecryptfs_private를 사용하십시오.

  • /home/bob/Ubuntu의 일반적인 암호화 된 홈 디렉토리 마법을 사용하여 암호화 된 (예 : SSD).
  • /media/hdd/bob_extra/장착 할 암호화 (예 : HDD) /home/bob/extra. 홈 디렉토리와 마찬가지로 로그인시 자동 마운트됩니다.
  • 두 가지 모두에 동일한 키 / 자격 증명을 사용하십시오.

그것을 만들

mkdir /media/hdd/bob_extra
cp /home/bob/.ecryptfs/Private.sig /home/bob/.ecryptfs/extra.sig
echo "/media/hdd/bob_extra /home/bob/extra ecryptfs none 0 0" > /home/bob/.ecryptfs/extra.conf

그것을 테스트

mount.ecryptfs_private extra

실행 mount하면 다음을 볼 수 있습니다.

...
/media/hdd/bob_extra on /home/bob/extra type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=12345678abcdef,ecryptfs_fnek_sig=abcdef12345678)

마운트를 해제하려면

sudo umount /media/hdd/bob_extra

자동 마운트 설정

만들기 /home/bob/bin/automount_ecryptfs.extra가되어 이미 마운트되지 않은 경우 마운트 것이다.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  mount.ecryptfs_private extra
fi

실행 가능하게하고 ( chmod +x) 다음에 추가하십시오 /home/bob/.bashrc.

...
/home/bob/bin/automount_ecryptfs.extra

그런 다음 그놈의 시작 응용 프로그램에도 추가하십시오.


+1 답변 주셔서 감사합니다. 여러 개의 SSD와 공유 드라이브에 대한 심볼릭 링크를 사용하여 훨씬 더 복잡한 설정을 수행 했으므로 테스트 할 수 없습니다. 여러 HDD를 암호화하는 것이 언젠가는 / home을 암호화하는 것만 큼 간단하기를 바랍니다.
Tom Brossman

ecryptfs-mount-private더 유사한 기능 도 참조하십시오 . 예를 들어, 사용자 키링의 키를 자동으로 사용할 수 있습니다.
mc0e

이 답변은 eCryptfs 개인 디렉토리 마운트에 관한 것입니다. 문제는 디스크 유틸리티로 만든 LUKS 파티션을 마운트하는 것에 관한 것입니다 .
Victor

1

암호화 된 홈 디렉토리에 스크립트를 작성하십시오. ~/scripts/mount_storage.sh:

#!/bin/bash

sudo cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file ~/keys/storage_keyfile
sudo mount /dev/mapper/storage /storage

"시작 응용 프로그램"에 추가 :

sh ~/scripts/mount_storage.sh

추가 /etc/sudoers:

%sudo   ALL= NOPASSWD: /sbin/cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file *
%sudo   ALL= NOPASSWD: /bin/mount /dev/mapper/storage /storage

/storage마운트 지점 을 작성 하고 위 스크립트에서 UUID를 변경 해야합니다 (로 찾기 blkid).


USB가 연결될 때마다 이와 같은 스크립트를 실행하는 쉬운 방법이 있습니까?
naught101

나는 이것을 직접 시도하지 않았으므로 확실하게 말할 수는 없지만 왜 그런지 모르겠습니다. 특정 USB 장치를 대상으로하고 위 스크립트를 실행하는 udev 규칙을 만들어야합니다. 예를 들어이 게시물이 시작점이 될 수 있습니다.
Raul Laasner

0

이것이 인기있는 대답이 아닐까 걱정됩니다 ...

암호화 자체의 보안을 우회하지 않으면 서 암호화 된 파티션을 자동으로 마운트하는 것은 불가능합니다.

" 자동 "의 의미 에 대해 생각 하고 자동으로 그들이 데이터를 볼 수 있음을 의미합니다.


나는 '안전하게'주관적으로 사용했는데 질문에서 제거 할 수있었습니다. / home과 같이 로그인 할 때 사진으로 가득 찬 암호화 된 드라이브를 마운트하려고합니다. Déjà Dup의 목적지로 세 번째 (또한 암호화 된) 드라이브가 있기 때문에 이것이 이론적으로 가능하다는 것을 알고 있습니다. 해당 드라이브는 백업 유틸리티가 실행될 때만 마운트됩니다. 완전 자동으로 키가 저장되어 매번 입력하지 않습니다. 로그인 화면에 비밀번호를 입력 한 후 모든 키를 자동으로 처리하는 것이 편합니다. 어떻게 이런 일이 일어날 수 있을까요? 감사.
톰 Brossman

3
이 컨텍스트에서 자동은 로그인 비밀번호를 입력 한 후에 마운트되어야 함을 의미합니다. 로그인 암호는 암호화 된 파티션의 키이거나 키의 키일 수 있습니다. 이것은 합리적인 보안입니다 (좋은 로그인 암호 제공).
Javier Rivera

다른 컴퓨터에 자동으로 마운트되지 않으므로 대부분의 사람들이 일부 디스크를 암호화하는 이유입니다. 제 경우에는 백업에 사용하는 디스크입니다. 나는 공유 공간에서 일하고 많은 지식을 가진 여러분 중 한 명이 내 디스크 / 컴퓨터에 물리적으로 액세스하여 내가하는 모든 일을 우회 할 수 있다는 것을 알고 있습니다. 하지마
라몬 수아레스

자동 프로세스를 통해 컴퓨터를 훔친 사람이 암호화 된 추가 HD 키에 액세스 할 수 있습니까? (그리고 물론이 HD를 마운트하고 액세스하십시오)
miguelfg

쉽고 확실한 시나리오 : 사무실의 서버에 USB 드라이브를 연결하여 데이터를 백업합니다. 서버에 문제가 생길 경우 오프 사이트 백업을 위해 USB 드라이브를 집으로 가져갑니다. 집에가는 길에 누군가 내 차에 침입하여 USB 디스크를 가져옵니다. 이제 그들은 1) 서버의 위치를 ​​알고 2) 사무실에 침입하여 디스크를 해독해야합니다. 그 부분은 "집에서 컴퓨터에 연결하기"보다 훨씬 어렵습니다.
Ernie

0

다음과 같이 진행해야합니다. 암호를 요구하면 볼륨이 마운트되어 있어도 다른 사용자가 볼륨에 액세스 할 수 없게됩니다.

1. 디스크를 열고 드라이브를 선택한 다음 LUKS 볼륨을 클릭하십시오. 톱니 바퀴를 클릭하고 "사용자 세션 기본값"을 선택 취소하십시오. "시스템 시작시 잠금 해제"및 "잠금 해제를 위해 추가 인증 필요"를 선택하십시오. 여기에 이미지 설명을 입력하십시오

2. LUKS 볼륨 아래의 디스크 볼륨을 클릭하십시오. 톱니 바퀴를 클릭하고 "사용자 세션 기본값"을 선택 취소하십시오. "시스템 시작시 마운트"및 "사용자 인터페이스에 표시"를 선택하십시오. 여기에 이미지 설명을 입력하십시오

볼륨을 마운트하기 위해 추가 인증을 요구할 수도 있지만,이 경우 해당 사용자에게 마운트가 자동으로 이루어지지 않습니다.

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