로그 아웃 한 후에도 암호화 된 홈 폴더에 여전히 액세스 가능


13

암호화 된 홈 폴더가있는 계정이 있는데, 시스템이 마지막으로 부팅 된 후 아직 사용자가 로그인하지 않은 경우 홈 폴더의 사용자 일반 텍스트 데이터에 액세스 할 수 없습니다. 이것은 실제로 암호를 입력하지 않고 사용자의 홈 폴더에 액세스하는 것이 실제로 불가능하기 때문에 예상 한 것입니다.

그러나 암호화 된 홈 폴더를 가진 사용자가 로그인 한 다음 로그 아웃 할 때 홈 폴더의 일반 텍스트 데이터는 여전히 다른 사용자가 액세스 할 수 있음을 발견했습니다. 물론 충분한 액세스 권한이 필요합니다.

w사용자를 나열하지 않고 출력 sudo pgrep -u <username>이 비어 있으면 사용자에게 실행중인 프로세스가 없음을 나타냅니다.

이 행동의 이유는 무엇입니까? 로그 아웃 한 후 사용자의 홈 폴더를 잠그지 않는 이유는 무엇입니까?


grep -Fe ecryptfs /var/log/auth.log사용자가 로그 아웃 한 시점부터 의 결과를 포함시켜 주 시겠습니까?
David Foerster

이 명령은이 출력을 산출 : pastebin.com/jZXdahbJ는 이맥스에 따르면, 문자열 "eCryptfs가"를 포함하는 유일한 라인은 내가 그 명령을 실행했을 때 생성 된 라인이다.
UTF-8

결과는 예상대로 Emacs가 이미 보여준 라인들입니다. pastebin.com/VtV7iCDg
UTF-8

확인. 살펴볼 가치가있었습니다.
David Foerster

영구 라이브 시스템에서도 암호화 된 홈으로 두 번째 사용자를 만들려는 시도 에서이 버그를 발견했습니다.
sudodus

답변:


6

알려진 버그

올바르게 이해하면 알려진 버그입니다.

이 링크를 참조하십시오 : wiki.archlinux.org/index.php/ECryptfs

분홍색 단락으로 스크롤

경고 : 불행히도 자동 마운트 해제는 systemd와 충돌하기 쉽고 버그가 제기됩니다 ...

해결 방법

이제 추적을 제거하기 위해 종료 하거나 재부팅하는 것이 좋습니다 ( 로그 아웃하기에 충분 하지 않음 ).


"로그 아웃하면 사용자간에 정보가 유출됩니다"는 무슨 뜻입니까? 충분한 권한을 가진 다른 사용자가 첫 번째 사용자의 홈 디렉토리에있는 일반 텍스트 데이터에 액세스 할 수 있다는 것 외에 다른 일이 발생 했습니까? (물론 로그 아웃하기 전에 이미 가능합니다.)
UTF-8

1
더 잘 설명하려고 : '로그 아웃하는 것만으로는 충분하지 않습니다.' (로그 아웃해도 암호화 된 홈을 가진 사용자가 사용한 파일의 일반 텍스트 인스턴스는 제거되지 않습니다. 따라서 최소한이 다른 사용자가 sudo 권한을 가진 경우 로그인 한 다른 사용자에게 정보가 유출 될 수 있습니다. 그러나 종료하거나 재부팅하면 파일의 일반 텍스트 인스턴스가 사라집니다.
sudodus

3

나는 이것을 테스트하거나 확인할 수는 없지만 ecryptfs설치 중 우분투가 제공하는 IIRC를 사용한다고 가정 하면 암호화 된 데이터는 숨겨진 폴더에 저장되고 기록 할 때 드라이버를 /home/.encryptfs/$USER사용하여 실제 홈 폴더 위치에 마운트됩니다 ecryptfs에.

그러면 로그 아웃 할 때 해당 디렉토리를 자동으로 마운트 해제하지 못하므로 파일에 여전히 액세스 할 수있게됩니다. 이로 인해 발생할 수 있습니다 ...

  • 잘못된 구성 (아마도 로그 아웃시 마운트 해제하도록 구성되었지만 그렇지 않은 경우)
  • 예기치 않은 로그 아웃 유형 (때때로 이러한 솔루션은 DM 로그인 / 로그 아웃에서는 작동하지만 그렇지 않으면 제대로 작동하지 않음)
  • 마운트 해제가 로그 아웃 스크립트 (필요한 것은 아님)에 의해 처리되는 경우 마운트 해제 명령 앞의 항목이 실패하여 스크립트가 일찍 종료 될 수 있습니다.

이를 확인하는 데 도움이되는 한 가지 방법은 sudo mount | grep home로그인 전, 로그인 후 및 로그 아웃 후에 실행 하여 관련 항목 home이 마운트되어 있는지 확인하는 것 입니다. /etc/fstab관련 항목을 찾아 볼 수도 있습니다 . 마지막으로, /home/.ecryptfs/$USER/.ecryptfs/자동 마운트 / 마운트 해제와 관련된 설정이 있습니다.

유용한 정보 ecryptfs이 답변 과 항상 유용한 ArchWiki 에서 찾을 수 있습니다 .


나는 당신이 나에게 말한 것을 시도했다 : pastebin.com/DrmEXQPV 이상한 방식으로 로그 아웃하지 않고 표준 GUI 방식으로 로그 아웃합니다. 보시다시피 FS는 여전히 마운트되어 있습니다. 언급 한 구성 파일이 비어 있습니다. /etc/fstab내 유일한 데이터 파티션을 마운트해야한다고 말하는 /1 개의 항목과 대학 관련 네트워크 리소스에 관한 1 개의 항목을 제외하고 는 아무것도 없습니다 . 다른 방법으로 로그 아웃해야합니까? 그렇다면 : 어떻게?
UTF-8

다른 방법으로 주석을 로그 아웃하는 것은 약간의 추측이었습니다. 데스크톱 관리자는 로그인 및 로그 아웃을 많이 추가하여 개념을 복잡하게 만들고 어떤 이벤트가 트리거되는지 알기가 어렵습니다. 실행되지 않은 스크립트 또는 이벤트가 있었기 때문에 궁금합니다. 다른 답변에 따르면, 그것은 그런 종류의 문제가 아니라 ecryptfs그 자체 와 관련이 있습니다. 그러나 해당 메모 ssh에서 텍스트 터미널을 통해 사용 하거나 로그인합니까? 로그 아웃 할 위치를 찾으면 로그 아웃시 마운트 해제를 처리하는 스크립트를 작성할 수 있습니다.
krs013

3

편집 /etc/systemd/logind.conf및 설정KillUserProcesses=yes

참고이 중단 배경 프로그램, 즉 screen, tmux및 유사 ...

이 질문은 여기에 더 자세히 설명되어 있습니다. 새로운 시스템 서비스를 정의하는 것이 불필요하다는 것을 알았습니다 (또는 사용자 세션이 종료 될 때가 아니라 종료 후크로 호출되기 때문에 원하는 동작이 아니라).

/unix/251902/ecryptfs-auto-umount-does-not-work


귀하의 방법이 집을 암호화 한 두 번째 사용자가있는 영구 라이브 시스템에서 작동하는지 확인합니다.
sudodus

죄송하지만 집을 암호화 한 두 번째 사용자가있는 영구 라이브 시스템에서는이 방법을 사용할 수 없습니다 . (설치된 시스템에서 솔루션을 테스트하지 않았습니다. 원래 질문을 한 사람은 @ UTF-8로 남겨 두겠습니다.)
sudodus

내 컴퓨터 에서이 문제를 해결하는 데 관심이 없습니다. 어쨌든 그것을 사용하는 유일한 사람이지만 암호화 된 홈 폴더가있는 2 개의 계정을 사용하고 싶지만 아무도 다른 계정의 암호를 모릅니다. 기본적 으로 암호화 된 볼륨을 자동으로 마운트 해제하지 않는 이유에 관심이 있습니다. 사용자의 컨텍스트에서 실행중인 활성 백그라운드 프로세스 만 확인하고없는 경우 마운트 해제 할 수 없습니까?
UTF-8

@ UTF-8, 나는 당신이 원하는대로 작동 해야 한다는 것에 동의 합니다. 올바르게 이해하면 알려진 버그입니다. 이 링크 ( wiki.archlinux.org/index.php/ECryptfs)를 참조하십시오 . 분홍색 경고 인 '경고 : 불행히도 자동 마운트 해제는 systemd로 인해 깨지기 쉽고 버그가 제기됩니다'로 스크롤하십시오. -현재 추적을 제거하기 위해 시스템을 종료하거나 재부팅하는 것이 좋습니다 (로그 아웃하면 사용자간에 정보가 유출됩니다)
sudodus

@ UTF-8 적어도 wheezy 때문에 systemd / session 상호 작용의 버그입니다 (systemd에 매달려 있으면 완벽하게 편안합니다)-/etc/systemd/logind.conf 변경은 16.04에 나에게 적합합니다 (세 명의 다른 사용자로 테스트 됨) , 다른 세션 등 ...)
quadruplebucky

3

나는이 문제를 꽤 오랫동안 연구 해왔다. 즉, 암호화되지 않은 파일 시스템은 사용자 로그 아웃 후에도 마운트 상태로 남아있다.

"ecryptfs-migrate-home -u user"를 사용하여 마운트를 만들었습니다. 로그 아웃시 자동 마운트 해제를 제외한 지시와 모든 작업을 수행했습니다.

/etc/pam.d/의 구성 파일을 pam_ecryptfs 설명서와 비교하여 약간의 차이점을 발견했습니다. ecryptfs는 pam.d 구성 파일 중 4 개에있는 반면 pam_ecryptfs 문서는 2 개의 파일 만 필요 / should / support ecryptfs를 나타냅니다.

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

그래서 다른 두 인스턴스를 주석 처리하고 재부팅했으며 그래픽 및 콘솔 로그인 모두에 대해 로그인시 자동 마운트 및 로그 아웃시 자동 마운트 해제가 모두 작동했습니다. (대체 tty를 사용하여 루트 계정을 확인했습니다)

랩탑, 데스크탑 및 가상 박스 게스트 (Windows 호스트)의 18.04 Lubuntu에 있습니다.

나는 다른 경험에 관심이 있습니다.

edit_1 : 개선 된 문구. edit_2 : 데스크톱 및 VB 테스트 결과가 추가되었습니다.


해당 라인을 비활성화 / 코멘트 처리하면 문제가 발생 했습니까? 비밀번호를 변경해도 여전히 eCryptfs 키 파일이 랩핑됩니까?
Xen2050

이것은 Linux Mint 19에서 나를 위해 일했습니다. 다른 사람들을 위해 더 자세한 내용을 추가하려면 ecryptfs를 참조하는 /etc/pam.d의 네 가지 구성 파일은 다음과 같습니다. common-auth, common-password, common-session, common-session- 비대화 형. common-password 및 common-session-non-interactive의 행을 주석 처리하면 로그 아웃시 원하는 마운트 해제 동작이 발생했습니다. 또한 common-auth의 항목은 설명서에 따라 "필수"대신 "선택적"으로 설정되었습니다. 그러나 나는 이것을 그대로 두었습니다.
evencoil

@ Xen2050, 답변이 늦어서 죄송합니다. 줄을 주석 처리하여 변경 한 후에도 문제가 발견되지 않았으며 아직 비밀번호 변경을 시도하지 않았습니다.
redrock

비밀번호 변경은 테스트에 중요 할 수 있으며 암호화 키를 새 비밀번호로 자동으로 랩핑하여 다음에 로그인 할 때 작동합니다. 작동하지 않는 경우 비밀번호를 이전 비밀번호로 다시 변경하면 정상적으로 작동 합니다 . [항상 백업하는 것이 좋습니다]
Xen2050

1
@ Xen2050, 암호 변경 테스트를 수행했습니다. 효과가있었습니다.
redrock

2

rclocal의 스크립트로 수행합니다.

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0

사용자 ID는 어떻게 얻습니까?
Avinash Raj

0

cron 또는 작업 (비 대화식 작업)에서 모든 홈 디렉토리에 액세스 할 필요가없는 경우에는 해당 라인을 주석 처리하면됩니다.

session  optional        pam_ecryptfs.so unwrap

에서 /etc/pam.d/common-session-noninteractive.

이로 인해 사용자가 로그 아웃 할 때 암호화 된 모든 홈 디렉토리가 마운트 해제됩니다.

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