시스템의 단일 사용자이고 아무도 권한없이 컴퓨터에 합리적으로 액세스 할 수없는 경우 Zanna의 답변에 따라이 명령을 사용하여 액세스를 차단할 수 있습니다 .
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
이 경우 파일은 사용자 만 읽고 쓸 수 root
있습니다. 아무도 귀하의 허락없이 컴퓨터를 부팅하거나 하드 드라이브를 들어 올릴 수 없으면 "충분히 안전한"것으로 간주됩니다. 우리는 사용하고 root
때문에,이 경우 사용자가 root
사용자가 항상 파일을 읽을 수가 권한이없는 경우에도. 루트 사용자를 사용하면 한 명의 사용자 만 액세스 할 수 있습니다.
어떤 방식 으로든 모양 또는 형태 i
로 파일을 변경할 수없는 것으로 표시하려는 경우 속성을 사용 하여 파일을 불변 으로 표시 할 수 있습니다 . 이 경우 파일의 권한이 잠겨 있으며 어떤 상황에서도 변경할 수 없습니다. 따라서 다음 명령을 수행하여 파일을 변경할 수 없게 만들고 삭제 및 권한 변경으로부터 파일을 보호 할 수 있습니다.
sudo chattr +i /my/secret/file.txt
파일 을 변경 하려면 파일을 임시로 잠금 해제하려면 +i
a -i
로 바꾸십시오 . 더 자세한 내용은 Rinzwind의 답변 을 참조하십시오 .
이제 다른 사람이 사용자의 컴퓨터에 액세스 할 수있는 경우 (원격 sudo
액세스 또는 모든 형태의 물리적 액세스) 즉시 사라집니다. 공격자는 root
강력한 기능을 사용 하여 파일을 읽거나 Live USB를 삽입하거나 하드 드라이브를 당깁니다.
따라서 파일을 암호화해야합니다. 저는 개인적으로 "파일 컨테이너"를 사용하여 더 많은 것을 고수하고 필요에 따라 확장 할 수 있도록합니다. chattr +i
파일이 실수로 삭제되거나 변경되지 않도록 여전히 권장됩니다. 마지막으로 암호화 된 이미지를 사용하는 경우 디스크를 마운트 할 때 다른 사람이 매우 제한된 파일의 하위 집합에 액세스 할 수 있도록 권한을 설정하여 서버에 적합합니다. 이 안내서는 원래 여기 에서 사용할 수 있으며 여기 에서 사용하도록 조정되었습니다.
먼저, 사용할 디스크 이미지를 작성하려고합니다. 이 예에서는 5GB로 만듭니다.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
그런 다음 이미지를 암호화해야합니다.
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
여기에서 선호하는 암호화 비밀번호를 입력 할 수 있습니다. 이 작업이 완료되면 원시 블록 장치를 노출해야합니다.
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
지금 우리는 해독 된 파일 컨테이너를 가지고 있지만 파일 시스템이 없으며 쓸모가 없습니다. 그것을 고치자 :
sudo mkfs.ext4 /dev/mapper/my-secret-device
이제 새 파티션을 마운트 할 장소가 필요합니다. 이 경우에는에 넣을 것 /crypt
입니다. 나는 사용자 1000이므로, 나 (그리고 루트) 만 읽고 쓸 수 있도록 파티션을 설정하려고합니다.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
이제 파일 도구를 사용하여 /crypt
중요한 파일을 모두 찾아 저장할 수 있습니다. 완료되면 파티션을 마운트 해제했다가 다시 암호화해야합니다.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
이제 이미지 파일에 적절한 파티션을 설정하여 I와 루트 만 액세스 할 수 있으며 더 이상 변경할 수 없도록합니다.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
이 파일을 읽기 위해 열 때마다 다음 두 명령을 실행하면됩니다.이 명령은 쉽게 별칭을 지정할 수 있습니다.
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
암호화 된 데이터는 다음에 사용할 수 /crypt
있으며 읽기 전용으로 유지되며 나와 루트 만 액세스 할 수 있습니다.
파일을 변경하려면 권한을 변경 한 다음 마운트해야합니다.
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
사용자는 시스템에 루트가있는 경우 암호화 된 파티션을 수정 / 파기하여 쓸모 없게 만들 수 있으므로 여기서주의해야합니다. 또한 드라이브가 열려있을 때만 드라이브에서 데이터를 훔칠 수 있습니다. 그러나 데이터를 훔치거나 명시 적으로 열지 않으면 데이터가 존재한다는 것을 알 수 없습니다. 따라서 암호화 된 볼륨을 열 때 시스템에 루트 사용자가 온라인 상태가되지 않도록 시스템을 안전하게 보호해야합니다.
TL; DR :
보관소 만들기 :
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
볼트를 채우십시오.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
볼트를 잠그십시오.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
볼트를 고정하십시오.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
볼트를 엽니 다.
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro