Linux是否有加密的只写文件系统?


14

我正在寻找可以以只写方式挂载的Linux加密文件系统,这意味着您应该能够在不提供密码的情况下挂载它,但是仍然能够写/附加文件,但是您也不应该能够读取您已写入的文件或读取文件系统中已有的文件。仅当通过密码挂载文件系统时,才可以访问文件。这样做的目的是写入日志文件或仅被写入但从未被修改的类似数据,而不会暴露文件本身。文件权限在这里无济于事,因为我希望即使系统受到完全破坏也无法访问数据。

Linux上是否存在这样的事情?否则,创建加密日志文件的最佳选择是什么?

我当前的解决方法是简单地通过管道传输数据gpg --encrypt,这是可行的,但是非常麻烦,因为您无法轻松访问整个文件系统,因此必须gpg --decrypt手动通过管道传输每个文件。


3
我相信您可以通过做您想做的事情syslog。这样可以将日志消息的生成与存储日志消息的系统分开,因此生成消息的应用程序无权访问其存储位置。日志甚至可以(经常是)在单独的服务器上。
mpez0 2010年

我想更进一步,使数据根本无法访问,不仅仅是创建它的过程,甚至根本无法访问。这就是使用gpg进行公钥加密的方法,但是我正在寻找一种在文件系统级别进行加密的方法。
Grumbel

Answers:


4

...我希望即使系统完全崩溃也无法访问数据。

这是不可能的。如果系统完全受到威胁,则“按定义”可以访问其中的任何内容-包括加密密钥。

在系统运行时,如果用于加密/解密数据的密钥与加密的数据位于同一系统上,则加密对于防止系统受损是无用的。例如,如果您安装了LUKS文件系统,并且某人获得了对系统的root访问权限,则可以从RAM中提取密钥-因为它们必须驻留在RAM中才能解密文件系统。在您的情况下,如果每次加密文件时都键入密码,则表示您受到保护(假定系统中不存在键盘记录器),如果没有,则处于相同的情况,并且危及系统的人可以发现密钥并撤消所有加密。

您需要将要保护的数据发送到系统外部,如果绝对不希望root用户访问,则不要将其写入该系统上的中间介质。rsyslog明确支持日志记录,您可以使用OpenVPN stunnel或类似方法加密源和接收器之间的连接。我确定那里还有其他“单向”转移选项。



“因为他们住在RAM解密的文件系统”,这可能是与陆氏特别真实的,但不是一般:非对称加密的设计正是出于这个目的(有人拿着公钥可以加密,但不能解密)
克莱门特

3

在我看来,您走错了方向。如果您想要一个可以写入但不能读取的文件,那么您正在寻找文件权限。


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

当然,该文件可以在加密的文件系统上。


您可以使用给定的umask挂载文件系统,而不允许用户更改权限。

并且只有文件的所有者(或超级用户)可以更改权限。
大猩猩

我认为OP甚至试图保护自己,以防攻击者生根发芽。
克莱门特

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

也会有用。当前进程中创建的任何文件都将具有0200模式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.