使用Linux文件系统一次写入,多次读取(WORM)


8

我需要将文件写入Linux文件系统,该文件随后不能被覆盖,附加,以任何方式更新或删除。不是由sudo-er,root或任何人组成。我试图满足FINRA 17A-4记录保存金融服务法规的要求,该要求基本上要求将电子文档写入WORM(一次写入,多次读取)设备。我非常希望避免使用DVD或昂贵的EMC Centera设备。

是否有Linux文件系统,或者SELinux是否可以支持在写入后立即(或至少很快)使文件完全不可变的要求?还是有人知道我可以使用Linux权限等在现有文件系统上实施此方法?

我知道可以设置只读权限和不可变属性。但是我当然希望root用户可以取消设置那些。

我考虑过将数据存储到小型卷中,这些小型卷已卸装,然后以只读方式重新挂载,但随后,我认为root仍然可以卸装并重新挂载为可写状态。

我正在寻找任何聪明的主意,在最坏的情况下,我愿意做一些编码来“增强”现有文件系统来提供此功能。假设有一个很好的起点文件系统。并放置经过精心配置的Linux服务器充当此类网络存储设备,而无需执行其他操作。

毕竟,文件加密也将非常有用!


4
您的要求无法完成。如果您具有对计算机的root访问权限,则可以直接在磁盘上执行块级操作。因此,最上面的文件系统无关紧要,您无法从根目录保护任何东西,只能放慢速度或使其变得晦涩难懂,以至于看起来很安全。
Regan

阅读SEC解释sec.gov/rules/interp/34-47806.htm后,我将同意@Regan。但是,这整个事情有点荒谬。例如,如何擦除CD?当然有火。
马克·瓦格纳

我绝对同意这些要求“有点荒谬”。他们试图使其变得如此明显,以至于试图掩盖一个事实,即没有IT人士会同意做一个坏经理所要求的事情。以root用户身份在大型目录上单击delete显然对某些人来说太容易了。物理破坏成为掩盖SEC规则中所有内容的唯一方法。
phil_ayres 2013年

chattr + i文件名,每次创建文件时都需要提供此命令
c4f4t0r 2014年

@ c4f4t0r不会停止:chattr -i filename然后rm
phil_ayres 2014年

Answers:


2

您可以使用OpenAFS和只读卷来执行此操作。要使它正常工作,需要安装大量基础结构,并且可能无法满足要求。

http://www.openafs.org/

基本上,有一个可写的卷以及该卷的一个或多个只读副本。在释放可写卷之前,只读副本对客户端不可更改。释放卷需要管理员权限。

似乎任何解决方案都需要专用硬件或复制专用硬件语义的网络文件系统。


OpenAFS是否实际上阻止root用户写入只读卷。我在文档中找不到明确的定义。
phil_ayres 2013年

它肯定会阻止客户机上的root写入ro卷。通常,root用户并不意味着OpenAFS中有任何特殊权限。
弗雷德神奇魔术犬

1

如果没有编写自定义文件系统/内核代码,似乎没有办法做到这一点。

可行的解决方案似乎是将Amazon Glacier与WORM存档存储选项结合使用。根据AWS官方博客(https://aws.amazon.com/blogs/aws/glacier-vault-lock/)

[...] Glacier的新功能,可让您使用旨在支持此重要记录保留用例的各种合规性控件来锁定保管库。现在,您可以在保管库上创建保管库锁定策略并将其锁定。一旦锁定,该策略将无法覆盖或删除。Glacier将执行该政策,并将根据其中指定的控制措施(包括预定义的保留期限)保护您的记录。

锁定后,您无法更改保管箱锁定策略。但是,您仍然可以使用单独的保管库访问策略来更改和配置与合规性无关的访问控制。例如,您可以授予业务合作伙伴或指定的第三方读取权限(法规有时要求)。

对我来说,这完全可以满足所需,而无需花费NetApp或EMC硬件,同时看起来可以满足记录保留要求。


与我的解决方案没有逻辑差异。服务器管理员(在这种情况下为Amazon)仍然可以擦除或篡改部分或全部文件。这里唯一的区别是文件存储提供程序...?
nrc

假设存储提供者是真正的区别,那么您完全正确。有了内部服务器管理员,监管者相信他们可以由同一组织中的高级人员操纵以删除或更改记录。当然,您可以要求亚马逊的某人销毁所有物品,但前提是会有纸质记录,并且更有可能拒绝意外的请求。不像正式代管那样好,但是将责任分开提供了很多需要的保护。
phil_ayres

1
您仍然可以通过停止支付存储空间来删除​​文件。
Tomas Zubiri

0

如果仅需要从用户无法覆盖文件的系统访问文件,则可以安装没有写许可权的远程卷。最简单的方法是挂载只读的samba / cifs共享。

否则,如果您需要一种允许用户写入新文件(无法覆盖或修改)的方法,则解决方案是使用FUSE curlftpfs挂载FTP路径。

您可以使用以下指令设置proftpd目录:

AllowOverwrite off
<Limit WRITE>
  DenyAll
</Limit>
<Limit STOR>
  AllowAll
</Limit>

这样,新文件可以存储在已挂载的目录中,但是不能再对其进行修改或删除。

链接: CurlFtpFSProFTPD


我明白你的意思,这当然是一种选择。但是,如果我是文件服务器的管理员,则可以删除任何内容。目的是防止甚至管理员(至少是那些无法访问物理驱动器的管理员)删除文件。
phil_ayres 2014年

FTP服务器充当廉价的WORM设备。但是可以,远程FTP服务器的管理员可以访问文件并进行更改。一种解决方案是使用非对称密钥系统在文件创建时对其进行签名,以防止任何系统管理员将其弄乱。管理员仍然可以删除文件,但无法在不引起注意的情况下修改文件。
nrc 2014年

不幸的是,根据SEC法规,仅对文件签名以证明(缺少)篡改是不够的。因此,有关使文件完全不可变的问题。
phil_ayres 2014年

0

这是“不可靠备份 ”问题的一种变体,唯一的实现方法是使用多个远程蠕虫文件系统,这些文件系统使用并共享校验和,并且没有共享的物理或管理访问权限。这样可以确保所有内容均写入一次,重复执行,可证明完整性,并且在单个块被擦除,更改或损坏的情况下可恢复。

Plan9或其派生产品可能暗含所有必需的功能。参见Plan9Venti

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.