安全擦除无头远程Linux服务器


18

我将终止与多年的托管服务提供商的关系,但是在此之前,我想安全地擦拭盒子。这是一台专用服务器,在单个EXT3驱动器上运行Debian,尽管我具有root用户访问权限,但我无法引导备用媒体,因为它没有机架的某个地方。

我不需要多次通过,但是如果可能的话,我想擦除可用空间。基本上,我想走开并确保我不会遗漏任何个人数据。我担心如果我只是运行该框,在它完成擦除/同步文件系统之前可能会崩溃srm -R -s /


恕我直言,请使用dd(在底部)
一些Linux Nerd

Answers:


4

我成功地完成了所有工作,rm -rf --no-preserve-root /没有首先导致系统崩溃,也没有在驱动器上留下任何东西。


我在数据目录上运行了srm,然后rm -rf --no-preserve-root /通过SSH清理了其余部分。它在/ dev中抛出了几个错误,然后完成了;在bash提示符下,我不太清楚该怎么办。如果没有/ bin / ls或/ sbin / shutdown,则无法确认成功。太滑稽了;我已经为崩溃做好了心理准备,而不是僵尸内核和sshd会话。
notpeter 2010年

7
这是不安全的。不会清除数据,并且仍然可以取消删除。最好dd改用磁盘。
qris 2015年

10

PXE映像附带的CentOS安装程序(anaconda)包括一个VNC服务器,因此您可以更改grub配置以引导CentOS安装程序,将答案传递给grub行中的前2个安装程序问题,然后重新启动,然后再进行VNC到安装程序。

现在,如果我的记忆正确地为我服务,则可以从该安装程序中放到一个外壳中,您可以从中访问和销毁磁盘。

从CentOS发行版(http://mirror.centos.org/centos/5/os/i386/images/pxeboot/)中的PXE目录复制vmlinuz和initrd文件到/ boot并修改您的grub配置:

默认0
超时5
标题CentOS
根(hd0,0)
内核/boot/vmlinuz.cent.pxe vnc vncpassword =无头ip = IP网络掩码= 255.255.255.0网关= GATEWAYIP dns = 8.8.8.8 ksdevice = eth0 method = http://mirror.centos.org/centos/5/os / i386 / lang = zh_CN keymap = us
initrd /boot/initrd.img.cent.pxe

顺便说一句,任何体面的托管公司都应准备好为您破坏磁盘。


3
他们不是一家“不错的托管公司”,因此我需要离开并擦拭磁盘。
notpeter 2010年

我没有使用这种方法,但是使用GRUB引导一个最小的救援映像是完全可行的,该映像已预先配置为启用vnc(甚至只是SSH)。如果您搞砸了,则可能会遇到需要手动干预才能再次正常启动的系统,因此可能值得首先在VM中进行测试。
notpeter 2010年

1
在擦除内容的顺序上写一个字可能会很有用。通过首先擦除除包含的分区以外的所有分区/boot,您可以重新开始,以防机器在过程中重新启动。如果/boot碰巧在该/分区上,则可以删除该文件之外的所有文件/boot并擦除可用空间,然后才能最终擦除整个分区。如果您擦除了太多磁盘后重新引导,则可以最大程度地减少磁盘上剩余的数据量,从而使您无法再引导它。
卡巴斯德,2015年

7

在销毁操作系统之前,您可以删除所有敏感内容和零填充(使用dd if = / dev / zero of = justabigfile)。

而且我相信大多数系统都能在运行中的系统中幸存下来,并足以覆盖整个磁盘。如果没有,就没有回头路了。


4
如果在执行此操作之前删除了所有您关注的文件,请交换掉交换分区,擦除交换分区(使用wipe或dd),那么上面的内容应该很安全。您需要以root用户身份执行操作,以超过为root保留的5%,并且可能不会擦除所有文件名,但是数据应该消失了。
Slartibartfast

6

我的解决方案涉及执行上述某些操作的多步骤方法,但还涉及ram中的chroot,应允许dd完全清除磁盘。

首先,删除所有敏感数据,并保留运行操作系统所需的文件。然后执行此操作(不在脚本中,一次执行一个命令):

mkdir /root/tmpfs/
mount -t tmpfs tmpfs /root/tmpfs/
debootstrap --variant=buildd --arch amd64 precise /root/tmpfs/
mkdir /root/tmpfs/mainroot
mount --bind / /root/tmpfs/mainroot
mount --bind /dev /root/tmpfs/dev
chroot /root/tmpfs/

# fill mainroot partition to wipe previously deleted data files
dd if=/dev/zero of=/mainroot/root/bigfile; rm /mainroot/root/bigfile
# now clobber the entire partition, probably won't be able to stay connected to ssh after starting this
# obviously change '/dev/md1' to the device that needs cleared
nohup dd if=/dev/zero of=/dev/md1 >/dev/null 2>&1

那应该照顾!


1

您可以使用它dd来覆盖正在运行的服务器上的整个分区/磁盘,而无需担心。我们在工作中经常使用它(当客户不想为安全的物理磁盘销毁付费时)。

您实际上是在挂载的文件系统不知道的情况下擦除了数据,因此文件系统将因其元数据丢失而开始崩溃,然后操作系统本身将开始“崩溃”。但是,缓存中已经存在的内容仍然有效。因此,您可以通过远程控制台或KVM监视进度(不能通过ssh进行尝试)。即使dd完成后系统仍保持运行,但是没有命令将起作用,并且所有守护程序可能已经死亡。

我使用以下命令: dd if=/dev/zero of=/dev/sda bs=1M & 然后kill -HUP %1监视进度(dd将打印出当前速度和写入的数据量)。设置块大小(bs)对于通过达到HDD seq写入速度非常重要dd

每次dd都能够将磁盘擦除到尽头,而我可以发出kill命令(内置Shell)直到结束。如果您有软件袭击,则可以擦除md设备本身,也可以分别擦除每个组成设备。


我的同事这样做了,xwindows崩溃失败了,应该正是请求者所需要的。
一些Linux Nerd

1

ATA协议具有“安全擦除”命令,顾名思义,该命令应安全擦除整个HDD。

有关详细信息,请参见内核Wiki文章,但请注意顶部的警告:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase


2018年更新:即使服务器运行在要擦除的文件系统上,我也多次成功使用它来远程擦除服务器。由于程序仅发出ATA命令并等待响应,因此在擦除过程中无需在CPU上执行任何代码。
弗拉基米尔·潘捷列夫

0

您可以尝试像这样在磁盘上写入随机数据:

dd if=/dev/urandom of=/dev/sda

比使用/ dev / zero更安全,因为它会写入随机数据,但速度也要慢很多。


作为一个不那么了解的人,为什么人们不赞成这一点?这不是一个好习惯吗?
加拿大卢克REINSTATE MONICA 2015年

@CanadianLuke问题是关于安全擦除已经运行的服务器。您无法像这样写入已安装的驱动器,因此它将无法工作。
longneck 2015年

@longneck谢谢。出于某种原因,我认为root可以做到这一点...尽管我从未尝试过,所以我会相信你的。不过,感谢您的解释
加拿大卢克·雷尼斯特·莫尼卡(Roine Remonstate Monica)2015年

@longneck是的,您可以在上面添加评论,但我确实有一个非常偏执的同事。实际上,您可以完全拔出硬盘驱动器,并且linux仍将继续运行内存中的所有内容,而不会产生一堆应用程序错误消息。
一些Linux Nerd

0

无论您选择做什么,都请其他提供商进行测试。

在AWS(或gcloud或...)上获得一个相似的实例,并在那里进行尝试,保留磁盘,然后将其作为附加存储附加到另一个实例并进行扫描。dd if = sdb | 高清

几乎所有敏感材料都应放在

/home
/opt
/var
/etc
/usr

带有嵌入式密码的配置文件使大多数人感到困扰。如果您知道它们是什么,请搜索整个文件系统以将其根除。

rm将删除文件,但十六进制编辑器仍将读取磁盘。所以事后为零。看看切丝。您应该拥有配置文件的日志,以及它们用于灾难恢复的位置,对吗?例如,如果其中包含密码,请不要忘记crontab文件。

CentOS安装或任何ramdisk解决方案都是正确的。内核将在内存中,您需要dd和一些bin内容。但是,如果以恢复模式重新启动,则可能没有网络或SSH,因此无法进行连接。

NB Kedare有一个好主意,如果您在下次重新启动(ramdisk)时从ram运行,这是可能的,那么从/ dev / zero写入开始就很难恢复,因此除非您度过一生,否则它不会真正增加价值取决于它吗?

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.