我是真正的系统管理新手,但多年来一直在家运行 Linux 服务器。我不太关心安全性,因为我在工作中维护的几台服务器一直位于内联网上,服务器上存储的所有信息都可以供所有员工访问,所以这是我第一次真正保护系统。
我对锁定系统以供生产使用了解很多(或可以在互联网上找到),但我似乎找不到大量关于在使用日志文件系统的 Linux 机器上安全删除文件的文档。
据我所知,由于日志记录过程,即使使用诸如srm
或之类的工具也shred
会使数据容易受到恢复。
那么,您发现在 Linux 上安全删除文件的最佳方法是什么?使用 LVM 有什么不同吗?
非常感谢!
编辑1:再补充一点说明,我想要保护的服务器将包含其他用户的数据,因此虽然我可以删除(或粉碎)文件,但我无法对整个分区执行此操作,因为它将包含对其他用户仍然很重要的数据。我并不担心在时间到了时如何保护驱动器;如果需要,我可以将其放在一个巨大的磁铁前面,然后将其扔进火山,我担心的是保护它免受远程访问。物理站点相当安全,尽管加密驱动器可能仍然是一个好主意。
编辑2:编辑标题以更准确地描述我所面临的问题。
答案1
如果你使用的是 ext3,那么很可能只有元数据会被记录,这是 ext3 的默认行为。如果你查看手册页撕碎:
对于 ext3 文件系统,上述免责声明仅适用于 data=journal 模式(因此 shred 的效果有限),该模式除了记录元数据外,还记录文件数据。在 data=ordered(默认)和 data=writeback 模式下,shred 均可正常工作。可以通过在 /etc/fstab 文件中为特定文件系统的挂载选项添加 data=something 选项来更改 ext3 日志模式,如挂载手册页(man mount)中所述。
然后你检查你的/proc/mounts查看已挂载文件系统的挂载标志是什么。
一个例子:
$ grep -i data /proc/mounts
/dev/root / ext3 rw,data=ordered 0 0
/dev/sda4 /stash ext3 rw,data=ordered 0 0
在我的/藏和/文件系统,shred 应该能够充分安全地删除数据。
答案2
您可以这样说:shred
对分区有用,对单个文件没有用。虽然暂时关闭日志功能可以防止一些问题,您的文件的某些部分可能还存在于其他地方,可以通过之前对该文件进行的其他日志事务恢复。因此,如果您想安全,请粉碎该文件。如果您过于谨慎,请粉碎分区。
这也许不是您想要的答案,但日志记录和 RAID 在某种程度上超出了 shred 的纠正能力。据我所知,LVM 并不重要。
答案3
如果您要存储必须保护的数据,以防止有人物理访问驱动器。那么您最好只是加密文件系统,这样存储在文件系统上的数据默认是安全的,您不必担心安全删除内容。
答案4
dd if=/dev/urandom of=$FILENAME
rm $FILENAME
可能会奏效。用随机位覆盖文件,然后删除它。为了增加安全性/偏执,您可以进行一些覆盖,在 /dev/urandom 和 /dev/zero 之间交替。
警告
我实际上没有在文件上使用过“dd”,只在硬盘上使用过。请先阅读手册页并在您不关心的驱动器上进行测试。我曾因搞砸“dd”命令而毁掉了几个硬盘。
强制性警告
‘dd’ 是一个非常危险的工具。请勿在生产环境中运行此工具,除非您先进行广泛的测试、研究手册页、向您所选择的神祈祷并重读您的命令行。按下回车键之前请三思。