비홈 디렉토리에서 ecryptfs를 사용하는 방법


14

ecryptfs를 사용하여 임의의 디렉토리 (즉, 홈 파티션의 디스크 공간 제한으로 인해 내 홈 디렉토리 나 그 하위 디렉토리가 아님)를 암호화하고 계정에 로그인 할 때 해당 디렉토리를 마운트하고 싶습니다. 이 작업을 수행하는 방법 또는 기존 소프트웨어에서 실제로 가능한 경우조차 볼 수 없습니다. mount.ecryptfs_privateALIAS 옵션과 함께 사용하기 위해 모호한 제안을 제공하는 게시물을 보았지만 이 작업을 수행하는 방법에 대한 간단한 단계별 지침을 아직 찾지 못했습니다. 누군가이 지시 사항을 제공하거나 어디에서 지시를 찾을 수 있습니까?


2
이것은 가장 간단한 방법입니다 : wiki.archlinux.org/index.php/…
Rinzwind

1
이 솔루션의 문제점은 이미 암호화 된 홈 디렉토리가 있다는 것입니다. 에 대한 코드를 살펴보면 ecryptsfs-setup-private이미 암호화 된 집이 있고 실제로 나쁜 일을하는 것을 두려워하고 싶지 않은 경우 어떻게 될지 잘 모르겠습니다.
user3004015

1
왜 이중이 그렇게 어려운지 이해합니까? 논리적 인 것은 암호화 된 저장소와 폴더를 만들고 자동 마운트하는 일반 시스템을 구축 한 다음 해당 시스템을 기반으로 홈 디렉토리를 만드는 시스템이지만,이 소프트웨어는 많이 작성된 것처럼 보입니다. 딱딱한 것들. 저장소는
.Private

2
비밀번호로 보호 된 zip 파일을 사용하는 것은 암호로 안전하지 않습니다. 비슷한 방법을 사용하는 것 gpg입니다. 폴더를 안전하게 저장하고 데이터를 저장하고 데이터 를 복원하는 데 mydata사용할 수 있다고 가정 하십시오. 개인 / 공개 키를 쉽게 사용하여 권장되는 데이터를 보호 할 수 있습니다. 이 방법을 사용하면 소량의 데이터 만 저장해야합니다. @Rinzwindtar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydatagpg --decrypt mydata.tar.gpg | tar -x
Arne L.

1
만약 당신이 데이터를 암호화하는 목적을 무너 뜨 rm -fR mydata립니다. 해당 데이터는 "삭제"한 후 디스크에서 복구 할 수 있습니다. 나는 그것이 얼마나 안전한지 확신하지 못하지만 대신 "재귀 적"파쇄를 기대합니다 find mydata -type f -exec shred -uz -- {} \;. 파쇄는 저널링되지 않은 파일 시스템 및 특정 장치 유형에만 효과적입니다. 중요한 경우 가장 좋은 방법을 연구해야합니다. 나는 이것이 안전한 관행이라고 생각하지 않습니다. 아카이브를 이와 같이 암호화하고 해독하십시오. 승률은 효과가 없습니다.
bambams

답변:


8

당신은 ecryptsfs-setup-privateand와 같은 매우 쉬운 스크립트만을보고 ecryptsfs-mount-private있습니다. 그들은 당신이 찾고있는 것보다 더 "일반적인"도구를 사용합니다 : mount.ecryptfs그리고 ecryptfs-add-passphrase. 자세한 내용은 해당 man페이지를 참조하십시오.

그리고 Rinzwind 게시 링크는 필요한 모든 정보를 제공하며, 수동 설정 아래의 페이지 아래에 있습니다. 그것들은 꽤 길지만 매우 짧은 버전 은 다음과 같습니다.


"수동 설정"방식 (archlinux wiki)

먼저 원하는대로 별칭을 선택하십시오. 이 섹션을 통해 ALIAS는 비밀이 될 것입니다. 필요한 디렉토리 / 파일을 작성하십시오.

$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig

~/.secret디렉터리 암호화 된 데이터를 개최한다. ~/secret디렉토리는 마운트 지점입니다 ~/.secret된 eCryptfs 파일 시스템으로 마운트됩니다.

[이제 실제 마운트 암호 구를 만듭니다 (쉬운 스크립트는에서 의사 난수로 32자를 선택합니다 /dev/urandom)]

$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase: 
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring

이전 명령의 출력 서명 (ecryptfs_sig)을 ~ / .ecryptfs / secret.sig에 씁니다.

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • 파일 이름 암호화를위한 두 번째 암호가 사용될 수 있습니다. 선택하면 키링에 추가하십시오.

    $ ecryptfs-add-passphrase
    Passphrase: 
    Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
    

    위의 명령을 실행하면 출력 서명 (ecryptfs_fnek_sig)을 ~ / .ecryptfs / secret.sig에 추가하십시오.

    $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
    

마지막으로 ~ / secret에 ~ / .secret을 마운트하려면 다음을 수행하십시오.

$ mount.ecryptfs_private secret

~ / .secret을 마운트 해제하려면 다음을 수행하십시오.

$ umount.ecryptfs_private secret

  • 또는 실제로 손을 더럽 히고 Without ecryptfs-utils 지침을 따를 수 있습니다 .

  • 또는 이미 쉽게 스크립트를 보았다 경우 ecryptsfs-setup-privateecryptsfs-mount-private, 당신은 기술 및 인내심이 조금으로, 원하는 디렉토리에 그와 점 편집을 복사 할 수 있습니다.

  • 또는 암호 문구를 어떻게 든 (안전하게 바람직하게) 저장하고 man ecryptfs페이지 예제 와 같이 하십시오 (man 페이지를 읽어야 함).

    The following command will layover mount eCryptfs on /secret with a passphrase
    contained in a file stored on secure media mounted at /mnt/usb/.
    
    mount  -t  ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret
    
    Where file.txt contains the contents "passphrase_passwd=[passphrase]".
    

암호화 된 홈 폴더 및 홈 내부의 암호화 된 폴더-중첩 된 eCryptfs 폴더

또한 암호화 된 홈 폴더는 일반적으로 파일을에 저장 /home/.ecryptfs/user/하고 암호화 된 개인 폴더는 자신의 홈 폴더 내에 파일을 저장합니다. 당신은 할 수 없는 두 가지를 동시에 사용 eCryptfs가 암호화 된 폴더를 중첩하지 않습니다. 그러나 집 밖에 암호화되어 있고 집 밖에 암호화 된 폴더가 있으면 괜찮습니다.

  • 방금 암호화 된 집으로 새 사용자를 만들려고했습니다. sudo adduser --encrypt-home jack

    다음 /home/.ecryptfs/과 같이 폴더를 만들었습니다 .

    • /home/.ecryptfs/jack/.ecryptfs/ -암호문 및 구성 파일을 래핑하여 로그인시 잭의 자동 마운트
    • /home/.ecryptfs/jack/.Private/- /home/jack/로그인시 마운트 된 실제 암호화 된 홈 파일

      또한 /home/jack/폴더,하지만있는 링크 포함 된 체류 가가의 여부를 기록할지 여부를 :

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • 다음으로 잭으로 로그인하지만, 링크가 너무 실행하려고,이 여전히 ecryptfs-setup-private그것을 보면 원인 /home/jack/.ecryptfs/에 기존 파일을 볼 수 있지만 실제로 /home/.ecryptfs/jack/.ecryptfs는 다른 암호 파일을 작성 및 실패에 실패 때문에ERROR: wrapped-passphrase file already exists, use --force to overwrite.

      암호화 된 홈 내에서 .secret 폴더를 사용하여 위의 "ALIAS"단계를 시도 하지 못했습니다. 다음 오류가 발생합니다.
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      "eCryptfs에서는 암호화 된 디렉토리 내에 암호화 된 디렉토리를 숨길 수 없습니다. 죄송합니다." -eCryptfs 작성자 및 관리자

    • 잭의 집 밖에서 ALIAS 폴더 변경, 시도 /tmp/.secret/& /tmp/secret/ 작동 . 그러나 잭 로그에서 로그 아웃 된 경우 새 암호화 된 폴더는 마운트 된 상태로 유지 되므로 마운트 해제해야합니다 ( umount.ecryptfs_private secret).


1
간단한 답변 감사합니다. 그러나 한 가지 질문 : 자동 마운트 문제를 처리합니까? 이것에 대해 밀도가 높아서 죄송하지만 표시 한 웹 페이지와 매뉴얼 페이지는 비표준 상황에 대한 자동 마운트 설정과 관련하여 특히 이해하기 쉽지 않습니다. 이미 암호화 된 홈 디렉토리가 있으므로 이미 $ HOME / .ecryptfs / auto-mount 및 랩핑 된 암호문이 있지만 첫 번째는 비어 있고 두 번째는 이미 그 안에 있습니다. 새 암호 문구를 추가하고 디렉토리를 자동 마운트하도록 지시하는 방법은 완전히 명확하지 않습니다.
user3004015

약간의 테스트로 업데이트되었으며,이 사람 ragingpenguin.com/2012/12/… PAM을 이용한 자동 마운팅에 관한 아치 Wiki 가이드에 따르면 약간의 행운 이 있었음 에도 불구하고 그는 꽤 빡빡했습니다.
Xen2050

당신의 노력에 감사드립니다. ecryptfs 디렉토리를 중첩하는 데 관심이 없지만 두 번째 디렉토리를 두 ​​번째 디렉토리에 자동 마운트합니다. 나는 약간의 시간이있을 때 작동하도록 노력할 것이지만, 확실히 명확하지는 않습니다.
user3004015

mount줄로 잘라내 .conf거나 파일이나 키를 추가 할 필요가 없으며 man ecryptfs사용 가능한 옵션에 대한 페이지를 읽으십시오 . 그런 다음 "로그인시 실행"파일을에 넣습니다 /home/user/.config/autostart/. 그러나 암호를 잘못 저장하면 암호 문구의 보안이 위험해질 수 있습니다.
Xen2050

문제는 ecryptfs에 로그인 암호로 열린 래퍼 안에 암호화 암호를 래핑하는 훌륭한 시스템이 있다는 것입니다. 이것은 ecryptfs 암호에 대한 추가 보호 기능을 제공합니다. 스크립트에 넣을 내용을 오해하지 않는 한 .config / autostart에 무언가를 넣는 것이 이것을 허용한다고 생각하지 않습니다.
user3004015

0

encfs처럼 사용하려면 다음 항목을 사용하십시오. /etc/fstab

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim은 ​​비밀을 나타내는 독일어 단어이지만 키워드가 아닌지 확인합니다. 먼저 디렉토리를 작성해야합니다. 처음으로 떠나야 ecryptfs_fnek_sig=1f7aefb9e239099f합니다. 그런 다음 mount /tmp/geheim올바른 값을 보여줍니다.

다른 곳에 암호를 저장하고보다 정교한 옵션을 설정할 수 있습니다. 의 모든 옵션을 찾을 수 있습니다 man ecryptfs.


-1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data

예 :

ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY

RANDOMDIRECTORY에 저장된 파일이 암호화되어 EFILES에 저장되는 암호화 된 시스템을 작성하고 마운트하려면 위의 명령을 사용하십시오.

추가 메모. 시작할 때 RANDOMDIRECTORY가 비어 있는지 확인하십시오. 위의 명령을 실행하고 시스템이 마운트되어 준비가되면 RANDOMDIRECTORY에 저장 한 모든 파일은 시스템이 마운트 된 경우 EFILES로 암호화됩니다. 빠른 마운트 해제 / 마운트 해제를 위해 bash 스크립트를 생성하고 앱 바로 가기를 통해 실행하거나 빠른 마운트를위한 별칭 명령을 생성 할 수 있습니다.

나는 이것을 1 년 이상 사용해왔다.

편집 : 확인하기 위해 집으로 갔다, 당신의 명령은 ecryptfs가 아닙니다. 그것의 encfs 즉

encfs /destination/encrypted /destination/unencrypted

미안합니다. 이것으로 새로운 프로그램을 설치해야 할 것입니다.


1
명령을 입력했는데 ecryptfs찾을 수없는 명령에 응답합니다. man ecryptfs에 대한 매뉴얼 페이지를 불러 mount -t ecryptfs오지만 실제로 암호화 된 파일 시스템을 만드는 방법을 설명하지는 않습니다.
user3004015

Ubuntu 14.04 LTS를 사용하고 있으므로 설치가 비교적 최근입니다. 는 IS ecryptfs명령은 최근에 추가?
user3004015

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