Linux에서 홈 폴더를 암호화하는 방법

리눅스 환경에서 개인 홈 폴더를 안전하게 암호화하려는 사용자를 위해, EcryptFS는 간편하고 효과적인 솔루션을 제공합니다. 올바르게 설정하기만 하면, 사용자는 복잡한 과정 없이 자신의 데이터를 안전하게 보호하고 복호화할 수 있습니다.

주의: 이 글의 마지막 부분에는 관련 비디오 튜토리얼이 제공됩니다. 내용을 전부 읽으신 후 참고하시면 도움이 될 것입니다.

EcryptFS 설치 과정

데이터 암호화를 시작하기 위해서는 먼저 암호화 도구인 EcryptFS를 설치해야 합니다. 이 도구는 널리 사용되며, 대부분의 리눅스 배포판에서 원활하게 작동합니다. 설치 방법은 다음과 같습니다. 우분투, 데비안, 아치 리눅스, 페도라, 오픈수세 사용자는 아래의 명령어를 참조하여 설치할 수 있으며, 다른 배포판을 사용하는 경우에는 소스 코드로부터 직접 빌드해야 합니다.

우분투

sudo apt install ecryptfs-utils

데비안

sudo apt-get install ecryptfs-utils

아치 리눅스

sudo pacman -S ecryptfs-utils

페도라

sudo dnf install ecryptfs-utils

오픈수세

sudo zypper install ecryptfs-utils

기타 리눅스

만약 사용하시는 리눅스 배포판에서 EcryptFS 패키지를 찾을 수 없다면, 소스 코드를 다운로드하여 직접 설치해야 합니다. 소프트웨어 빌드 과정에 어려움이 있다면, EcryptFS 공식 문서를 참고하시기 바랍니다.

홈 폴더 암호화 방법

이 암호화 과정에서는 일시적인 사용자를 생성할 것입니다. 이 사용자는 암호화 작업 후 삭제될 예정입니다. 현재 로그인된 상태로는 사용자 디렉토리를 암호화할 수 없기 때문에, 임시 슈퍼유저 계정을 만드는 것이 필수적입니다.

새 사용자 생성

새로운 사용자를 생성하기 위해 터미널을 열고, 루트 권한으로 로그인합니다.

su

또는

sudo -s

이제 루트 권한을 얻었으므로, `useradd` 명령어를 사용하여 임시 계정을 생성합니다. 시스템이 새로운 홈 디렉토리를 생성하지 않도록 `-M` 옵션을 추가합니다.

useradd -M encrypt-admin

`useradd` 명령어는 새 사용자를 생성하지만, 비밀번호는 설정되지 않습니다. `passwd` 명령어를 사용하여 `encrypt-admin` 계정에 새로운 UNIX 비밀번호를 설정합니다.

passwd encrypt-admin

`encrypt-admin` 계정은 이제 사용할 준비가 되었지만, 루트 권한 명령을 실행할 수는 없습니다. 사용자가 루트 명령을 실행할 수 있도록 `sudoers` 파일에 추가해야 합니다. `visudo` 명령어를 사용하여 `sudo` 설정 파일을 편집합니다.

EDITOR=nano visudo

나노 텍스트 편집기에서 아래로 스크롤하여 “# 사용자 권한 사양” 부분을 찾습니다. 그 아래에 “root ALL=(ALL:ALL) ALL”과 같은 줄이 있을 것입니다. 해당 줄 아래에서 엔터키를 누르고 다음 내용을 추가합니다.

encrypt-admin ALL=(ALL:ALL) ALL

`Ctrl + O`를 눌러 `visudo` 파일을 저장하고, `Ctrl + X`를 눌러 편집기를 닫습니다.

암호화 진행

암호화 과정을 시작하기 위해, 암호화할 사용자 계정에서 로그아웃합니다. 로그인 화면에서 `Alt + Ctrl + F1` 키를 누릅니다. 만약 이 조합이 작동하지 않는다면 `F2`에서 `F6` 키를 시도해봅니다.

TTY 프롬프트가 나타나면, `encrypt-admin` 계정으로 로그인하고, 앞서 설정한 비밀번호를 입력합니다. 이제 `EncryptFS`를 사용하여 암호화를 시작합니다.

주의: `yourusername` 부분을 방금 로그아웃한 사용자 계정의 이름으로 변경해야 합니다. 여러 개의 사용자 계정을 암호화하려면 이 명령을 각각 실행해야 합니다.

sudo ecryptfs-migrate-home -u yourusername

위의 명령어는 사용자의 홈 폴더를 암호화된 상태로 마이그레이션합니다. 작업이 완료되면, 임시 관리자 계정에서 로그아웃하고 원래 사용자 계정으로 다시 로그인해도 안전합니다. TTY 콘솔에서 로그아웃하려면 다음 명령을 사용합니다.

exit

`exit` 명령어를 입력하면 이전의 로그인 화면으로 돌아갑니다. 다시 `Alt + F2` ~ `F7` 키를 눌러 그래픽 모드로 돌아갑니다.

사용자 계정 삭제

`EcryptFS` 설정이 완료되었으므로, 이제 임시 계정인 `encrypt-admin`을 삭제할 차례입니다. 먼저 `sudoers` 파일에서 해당 계정을 삭제합니다. 터미널을 열고 `visudo`를 수정합니다.

sudo -s

EDITOR=nano visudo

`sudoers` 파일을 아래로 스크롤하고, 앞서 추가했던 다음 코드를 삭제합니다.

encrypt-admin ALL=(ALL:ALL) ALL

`Ctrl + O` 키를 눌러 나노 편집기에서 `sudoers` 파일 수정을 저장합니다. `Ctrl + X` 키를 눌러 나노를 종료하고 터미널 셸로 돌아갑니다.

`encrypt-admin` 계정은 이제 더 이상 루트 권한을 얻거나 시스템을 수정할 수 없습니다. 이 상태로 놔두어도 무방하지만, 사용하지 않는 계정은 삭제하는 것이 좋습니다. 터미널에서 `userdel` 명령어를 사용하여 삭제합니다.

sudo userdel encrypt-admin

암호화 암호 설정

`EcryptFS` 설정은 거의 완료되었습니다. 이제 새로운 암호를 설정해야 합니다. 터미널을 열고 (sudo 또는 루트 권한 없이) `ecryptfs-add-passphrase` 명령어를 입력합니다. 강력한 암호 없이는 암호화가 의미 없다는 것을 명심하십시오. strongpasswordgenerator.com 과 같은 사이트를 이용하여 안전한 암호를 생성하는 것을 권장합니다.

참고: 암호 생성기를 이용하고 싶지 않으신가요? 이 글을 참고하여 스스로 안전한 암호를 생성하는 방법을 알아보세요.

ecryptfs-add-passphrase

`ecryptfs-add-passphrase` 명령이 완료되면, 홈 폴더가 완전히 암호화된 것입니다. 이제 리눅스 PC를 재시작하여 변경 사항을 적용하십시오. 다시 부팅 후, `EcryptFS`에 로그인할 때 새로운 암호가 필요합니다.