Linux 용 암호화 된 쓰기 전용 파일 시스템이 있습니까?


14

쓰기 전용 모드로 마운트 할 수있는 Linux 용 암호화 파일 시스템을 찾고 있습니다. 암호를 제공하지 않고 마운트 할 수는 있지만 여전히 파일을 쓰거나 추가 할 수는 있지만 작성한 파일을 읽거나 파일 시스템에 이미있는 파일을 읽을 수 있습니다. 파일 시스템에 암호를 통해 마운트 할 때만 파일에 액세스 할 수 있습니다. 이것의 목적은 파일 자체가 노출되지 않고 작성되었지만 수정되지 않은 로그 파일 또는 유사한 데이터를 작성하는 것입니다. 시스템이 완전히 손상된 경우에도 데이터에 액세스 할 수 없도록하려는 경우 파일 권한이 도움이되지 않습니다.

Linux에 그런 것이 있습니까? 아니면 암호화되지 않은 로그 파일을 만드는 가장 좋은 대안은 무엇입니까?

현재 해결 방법은 단순히 데이터를 통해 파이핑하는 것 gpg --encrypt입니다. 작동하지만 파일 시스템에 전체적으로 쉽게 액세스 할 수 없으므로 각 파일을 gpg --decrypt수동으로 파이핑 해야합니다.


3
나는 당신이 원하는 것을 할 수 있다고 믿습니다 syslog. 이는 로그 메시지 생성을 저장하는 시스템에서 로그 메시지 생성을 분리하므로 메시지를 생성하는 앱은 저장된 위치에 액세스 할 수 없습니다. 로그는 별도의 서버에있을 수도 있고 자주있을 수도 있습니다.
mpez0

한 걸음 더 나아가 데이터를 만든 프로세스뿐만 아니라 루트까지도 데이터에 액세스 할 수 없도록하고 싶습니다. 이것이 gpg를 사용한 공개 키 암호화의 기능이지만 파일 시스템 수준에서이를 수행하는 방법을 찾고 있습니다.
Grumbel

답변:


4

... 시스템이 완전히 손상된 경우에도 데이터에 액세스 할 수 없기를 원합니다.

이건 불가능 해. 시스템이 완전히 손상된 경우 암호화 키를 포함하여 시스템에 "정의 적으로"액세스 할 수 있습니다.

데이터를 암호화 / 복호화하는 키가 암호화 된 데이터와 동일한 시스템에있는 경우 시스템이 실행되는 동안 암호화는 시스템 손상을 방지하는 데 쓸모가 없습니다. 예를 들어, LUKS 파일 시스템이 마운트되어 있고 누군가가 시스템에 루트 액세스 할 수있는 경우 파일 시스템을 해독하려면 RAM에 있어야하기 때문에 RAM에서 키를 가져올 수 있습니다. 상황에 따라 파일을 암호화 할 때마다 암호를 입력하면 키로거가 시스템에 존재하지 않는다고 가정 할 수 있습니다. 키를 누르고 모든 암호화를 취소하십시오.

시스템 외부에서 보호하려는 데이터를 제공해야합니다. 루트에 접근하지 않으려면 해당 시스템의 중간 매체에 데이터를 쓰지 마십시오. rsyslog로깅과 관련하여이를 명시 적으로 지원하며 OpenVPN stunnel또는 이와 유사한 방식으로 소스와 싱크 간 연결을 암호화 할 수 있습니다 . 다른 "단방향"전송 옵션이있을 것입니다.



"그들은 파일 시스템의 암호를 해독 RAM에 거주하기 때문에"이 구체적으로 LUKS와 사실,하지만 일반적으로 할 수있다 : 비대칭 암호는 정확히 목적 것을 위해 설계 (누군가가 암호화 할 수있는 공개 키를 잡고 있지만 해독)을한다
클레망

3

당신이 잘못된 방향으로 가고있는 것처럼 들립니다. 쓸 수는 있지만 읽을 수없는 파일을 원하는 경우 파일 권한이 원하는 것입니다.


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

물론이 파일은 암호화 된 파일 시스템에있을 수 있습니다.


사용자가 권한을 변경할 수 없도록 지정된 umask로 파일 시스템을 마운트 할 수 있습니다.
nos

파일 소유자 (또는 수퍼 유저) 만 권한을 변경할 수 있습니다.
고릴라

OP는 공격자가 공격을받는 것으로부터 자신을 보호하려고 노력하고 있다고 생각합니다.
Clément

1
umask 0477 && touch file && echo test > file && cat file

유용 할 수도 있습니다. 현재 프로세스 내에서 생성 된 모든 파일은 0200 모드입니다.

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