파일을 보호하는 방법?


24

중요한 데이터가 포함 된 파일을 보호하는 방법은 무엇입니까? 예를 들어, 중요한 파일이 있다고 가정 해보십시오. 우분투에서 이러한 종류의 파일을보다 안전하게 보호하는 방법이나 전략이 있습니까? 누군가 파일을 열려고 할 때마다 일부 파일에 비밀번호를 묻도록 만들고 싶습니다. 보안 정책 측면에서 우분투 버전에 영향을 줍니까? 암호화 알고리즘을 외부에서 사용할 수 있습니까? 문안 인사.


보호 란 무엇을 의미합니까? 파일을 수정하거나 삭제하기가 더 어렵습니까?
Zanna

보호의 의미로 아무도 내 허락 없이는 액세스 할 수 없으며 수정 내용을 쉽게 삭제할 수 없습니다. 또는 까다로운 방법으로 열려면 암호가 필요합니다.
Avani badheka

간단 chown root하고 의미 chmod go-rwx합니까?
njzk2

암호를 요구하려면 자동 마운트되지 않은 암호화 된 디스크 또는 디스크 이미지 파일을 사용하십시오.
Joshua

답변:


32

가장 좋은 방법은입니다 chattr +i {file}. 변경 불가능한 속성을 설정하면 파일을 수정, 삭제, 이름 변경하거나 루트를 포함한 모든 사람이 만든 하드 링크를 만들 수 없습니다.

파일을 편집 할 수있는 유일한 사람은 root입니다. (S) 그는 불변 비트를 제거하여 이것을 취소 chattr -i {file}해야하며 파일로 무엇이든 할 수 있습니다. + i를 다시 설정하면 파일이 수정되지 않습니다.

그래도 파일이 저장된 파티션을 포맷하지 못하게됩니다. 파일 도난을 방지합니다.


원하는 경우 전체 마운트 지점에서이 작업을 수행 할 수도 있습니다.

chattr +i -R /discworld

전체 "discworld"와 그 안의 모든 것을 불변으로 만들 것입니다 ( chattr -i -R /discworld취소;))



루트로만 수정, 삭제, 이름 바꾸기 등을 수행하고 싶습니다. 루트가 변경되지 않더라도 모든 사람에게만 읽히고 내 경우에는 원하지 않습니다.
Avani badheka

@Avanibadheka root는 편집하기 전에 chattr -i를 수행 한 다음 chattr + i를 다시 수행하여 잠급니다.
Rinzwind

1
시스템에서 변경 불가능한 비트를 수정하는 기능을 영구적으로 (재부트 할 때까지) 제거 할 수도 있습니다.
rackandboneman

심지어 복사 할 수 없습니까? 그래서 고양이 파일> 출력 또는 dd가 작동하지 않습니까?
Konerak

1
변경 불가능한 파일은 (로 설정되지 않은 경우) 복사 할 수 있습니다 chmod a-r. 테스트 예제는 터미널 로그 를 참조하십시오 .
Ruslan

18

특별한 작업을 수행하지 않으면 소유자 이외의 모든 사람의 권한을 제거하여 다른 사람이 파일을 읽거나 변경하거나 삭제하는 것을 어렵게 만들 수 있습니다. 루트를 파일의 소유자로 만들고 루트 만 액세스 할 수있는 디렉토리에 넣으십시오.

sudo mkdir /home/secret     #this directory will be owned by root, no need to chown
sudo chmod 700 /home/secret

sudo mv file /home/secret거기에 파일을 옮기고 ( )

sudo chown root: /home/secret/file
sudo chmod 600 /home/secret/file

chmodchown다수의 인수를 : chmod 600 file1 file2또는chmod 600 file*

그 외에는 암호화를 사용하십시오 ...


3
8 진수 대신 문자 권한을 사용하면 이해하기 쉽습니다. 따라서 "chmod go-rwx"는 그룹 및 다른 사용자의 읽기, 쓰기 및 실행 권한을 제거합니다. chmod 매뉴얼 페이지를 참조하십시오.
jamesqf

12

문서를 보호하는 매우 안전한 방법은 암호화입니다 (원본을 폐기하고 암호화 된 버전을 올바르게 저장 한 경우).

권한 (다른 답변에 의해 제안) (참조 피할 수있는 ).

따라서 파일을 올바르게 암호화하는 것이 좋습니다. 방법은 다음과 같습니다.

(그래픽 인터페이스 방법은이 답변의 끝 부분을 참조하십시오)

gpg설치 했는지 확인하십시오 .

예를 들어,이라는 파일을 암호화 Important_File.txt하려면

$ gpg -c Important_File.txt

이제 암호를 입력하십시오 (이 암호는 나중에 읽을 때 사용됩니다).

이제 원본 이름과 .gpg확장자를 가진 파일을 얻 습니다 (예 :) Important_File.txt.gpg.

원본 파일을 제거하고 .gpg버전을 유지하십시오 . 보안 shred유틸리티를 사용하지 않으면 디스크에서 원본 파일을 가져 오는 것이 쉬울 수 있습니다 (SSD 드라이브 또는 SD 카드에서는 여전히 작동하지 않음).

$ shred Important_File.txt

이제 우리는 우리 Important_File.txt.gpg와 함께 있습니다.

읽어야 할 때마다 간단히

$ gpg Important_File.txt.gpg

그런 다음 첫 번째 명령에서 설정 한 비밀번호를 입력하십시오. 당신은 원본을 얻을 것이다 Important_File.txt.

참고 : 이것은 암호화 된 파일 의 내용.gpg다른 사람이 읽을 수 없도록 보호 하지만 (암호화 사용) 누구나 파일을 제거, 복사 또는 이동할 수 있습니다 ! 에서 기본적인 보호를 위해 , 암호화에 다른 답변의 허가 방법을 사용하여 .gpg파일을.

그래픽 인터페이스 (GUI) 방법

Seahorse 응용 프로그램을 설치하십시오.

그런 다음 파일 애플리케이션에서이를 수행 할 수 있습니다.

그놈 파일 암호화 스크린 샷


1
"문서를 보호하는 유일한 안전한 방법은 암호화입니다"라고 동의하지 않습니다. 암호화 행위는 안전하지 않으므로 안전하지 않습니다. 그 후의 사회적 부분입니다. "암호는 다음과 같습니다. 암호 : 11212324234"를 사용하여 감염된 파일 옆에 추가 정보를 작성하면 보안이 유지되지 않는 모든 항목을 암호화 할 수 있습니다.
Rinzwind

1
@Rinzwind가 편집되었습니다. 어쨌든, 그 정도의 어리 석음으로, 아무것도 안전하지 않습니다.
UniversallyUniqueID

기대에 찬성 ;-)
Rinzwind

먼지를 삭제 rm하거나 파일 관리자에서 삭제하면 암호화되지 않은 원본 파일을 쉽게 검색 할 수 있습니다 . 예를 들어을 사용하여 복구 불가능하게하려면 덮어 써야합니다 shred. 그것은 또한 SSD와 플래시 드라이브에서도 쓸모가 없습니다 ...
Byte Commander

@ByteCommander 감사합니다. 답변에 추가했습니다.
UniversallyUniqueID

9

소유자 만 읽고 쓸 수 있도록 매우 엄격한 권한 600을 설정하십시오 (실행 권한이 필요한 경우 700 임).

파일을 마우스 오른쪽 버튼으로 클릭하고을 선택한 다음 필드를 제외한 모든 필드를 아무것도 Properties > Permissions > Set설정 하지 않고 그래픽으로 수행 할 수도 있습니다 .owner

예를 들어 그림을 참조하십시오.

사진


이봐, 당신의 대답은 GUI로 그것을하는 방법을 보여주는 스크린 샷에서 도움이 될 것이라고 생각합니다.
grooveplex

고마워 :) (하지만 내 시스템은 이탈리아어입니다 ...)
dadexix86

@ 잔나 좋은 관찰 (대답을 수정)
dadexix86

8

시스템의 단일 사용자이고 아무도 권한없이 컴퓨터에 합리적으로 액세스 할 수없는 경우 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

파일 을 변경 하려면 파일을 임시로 잠금 해제하려면 +ia -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 :

  1. 보관소 만들기 :

    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
    
  2. 볼트를 채우십시오.

    sudo mkdir /crypt
    sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. 볼트를 잠그십시오.

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. 볼트를 고정하십시오.

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. 볼트를 엽니 다.

    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
    

물론 루트 액세스 권한이있는 사용자는 cryptsetup입력 한 모든 비밀번호를 기록하는 것으로 대체 될 수도 있습니다 .
Hagen von Eitzen

@HagenvonEitzen 네, 컴퓨터에는 "진정한 보안"과 같은 것은 없습니다. 선을 그리는 지점이 있습니다.
Kaz Wolfe

7

디렉토리 암호화에 encfs를 사용할 수 있습니다 .

기본적으로 암호화 된 데이터가 저장 될 디렉토리와 그 데이터에 액세스 할 디렉토리를 2 개 만들어야합니다.

mkdir ~/.encrypted
mkdir ~/private

그런 다음 실행하십시오 (디렉토리를 '마운트'할 때 마다이 줄을 실행해야합니다).

encfs ~/.encrypted/ ~/private/

그것에 대해 더 많이 알지 않는 한,를 누르면 ENTER표준 설정으로 이동합니다 (처음 만 요청).

그런 다음 비밀번호를 입력하면 마운트됩니다.

귀하의 데이터는 사용자가 안전하게 액세스 ~/private/할 수 있습니다 (거의 무시할 수 있음 ~/.encrypted)

마운트를 해제하려면

sudo umount ~/private/

또는

fusermount -u ~/private/

그렇게 간단합니다.


3

cryptkeeper를 사용하여 데이터를 암호화 할 수 있습니다정말 훌륭한 응용 프로그램이며 파일에 보안을 제공 할 수있는 를 . 다음과 같이 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install cryptkeeper

나는 일반적으로 다음으로 시작하는 이름으로 폴더를 암호화하는 것이 좋습니다 . 파일 이름 앞에 숨기면 . 약간의 트릭이지만 작동합니다.

폴더를 숨기려면 Ctrl+ h또는 vise를 사용하십시오 .


1
키 입력 Ctrl + h는 어떤 응용 프로그램에 적용됩니까? ls확실히 작동하지 않습니다 .
Melebius

Ctrl-H는 최소한 노틸러스 (그리고 Nemo와 같은 포크)에서 작동합니다. 다른 파일 관리자는 말할 수 없습니다. 사용하는 경우 ls, 당신은 사용할 수있는 -a모든 (즉, 숨겨진 포함) 파일을 표시하도록 스위치를.
s3lph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.