<b>想知道若何将你的Linux服务器清空空吗?</b>[Linux安全]
本文“<b>想知道若何将你的Linux服务器清空空吗?</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我想大家一定碰到过需求远程且安全地排除Linux服务器内容的情况,在本文中我将分享具体的操作办法.(51CTO编辑注:这里的数据清空固然也具有破坏性质,但是倒是用来处理报废的服务器硬盘的;当然理论上,假若有人想要搞破坏的话……)
人们常常在评论托管服务器或云服务器所带来的便利,但假如这些设备已经该寿终正寝,大家会若何处理?当然,我们可以接洽设备商,让他们负责报废工作,但这实际上很难保证此中的数据安全地被加以排除.假如不具有对设备的物理拜候本领,他们很难将磁盘取出、覆盖一切旧有内容,并终究用大锤将其砸个破坏.因此,当我们预备放弃托管(或云)服务器时,心中应当有所预期,即该设备极大概得不到有效的摧毁.
其实上述问题是我近来一次在与Matt Prigge的谈论中无意间说起的.有一家托管服务供应商的几台Linux服务器已经到达三年利用上限,因此需求在不具有物理拜候本领的前提下将内容完好清空.在这种情形下也不用考虑重启设备,因为你无法保证它们可以正常重启.固然就这么放着仿佛也不会带来什么大麻烦,但任何具有解锁权限的家伙还是可以盗取到该系统上的各类数据.并且固然Darik's Boot and Nuke也能很便捷地完成清空工作,但我们在这里想聊聊别的筹划.
大家可以在root下运行rm -rf / 指令,这大概会将设备的内容搞得乱七八糟,但仍旧无法保证一切信息都被安全删除.事实上,我们乃至不能必定这种办法能否删除了全部文件,并使它们无法被恢复——并且一段时间之后,服务器开始没有呼应,进入未知状况,我们也就无法考证信息的清空情形了.
幸运的是,还有别的一些安全排除Linux服务器内容的办法.
在这个例子中,我们的目标是对全部本地磁盘履行数次归零操作,以确保MBR被完好清空;这关于保证磁盘中数据的完好擦除是对比抱负的有效筹划.(遗憾的是,这一回振奋人心的大锤没有施展的余地).别的,我还需求对磁盘内容举行确认——并且整台设备应当在归零操作完成后自行关闭.
若何才能做到这一点呢?事实上这相当简单.
第一步首先要成立一个Ramdisk,并将全部相关的二进制文件及函数库复制进去.
接下来,停用全部大概带来磁盘写入行动的系统服务,比方系统日记等.
上述内容完成后,查看挂载列表,并留神此中的全部区块装配,然后动态成立一个脚本,将0(大概别的任何大家喜好的随机内容)向这些装配中至少写入一次——不过最好是五次或更多.
除此之外,还要确保我们对每个磁盘的第一个512字节内容写入0,这样MBR就可以得以完好排除.
一旦这套脚本成立完成并布置到ramdisk当中,关闭全部变更指令、将根目录更改成ramdisk,然后由此开始运行.
不要忘了给自己保存一个可以拜候的暂时工作环境.
运行此脚本的终究后果是以远程方法将系统中的全部活泼分区都全面而完好地加以排除,而这一切工作都是通过ssh完成,无需具有掌握台或是物理拜候本领.假如各位拥有Linux托管服务器,大概乃至是一些远程站点的互联网服务器,那么在需求对其举行善后处理时,这套用于系统清空的脚本将为大家供应很好的帮忙作用.事实上,在我们打算将一台处于任何地址的Linux服务器扔进垃圾堆——大概行将着手处理——时,这套脚本都能快速、便捷地为我们完成预期工作.
需求夸大的是,这套脚本还有一项任务没有完成,即安全删除任何由托管服务供应商所持有的备份或快照信息.由于这属于供应商自家的特别标准,因此大家必须主动加以跟进;并且在云服务器实例大概托管虚拟机范畴,我们必定要考虑到这一点.假如某台运行中的服务器具有一大堆快照之类的后备筹划,那么对其举行归零实际上没有多粗心义.别的,这在准虚拟化的VPS实例上也行不通,因为它们不答应对初级磁盘举行拜候.
假如各位有爱好,可以看看下面这个例子,功效很完好:
#!/bin/bash
#
# This script will absolutely kill a RHEL/CentOS/Fedora server. Use with extreme caution.
# Tested with several CentOS/RHEL versions only. Run as root user.
# 10.20.11 Paul Venezia (pvenezia@pvenezia.com)
#
zeroscript="/var/ramdisk/zeroscript.sh"
echo "*******************************************************************
** This will permanently kill this Linux system and erase every **
** local disk and filesystem. In other words, you better be **
** REALLY REALLY SURE you want to do this on this system. **
*******************************************************************"
echo -n "Are you absolutely sure you want to do this? [yes|no]: "; read yn
if [ -z $yn ] || [ $yn != "yes" ]; then
echo "Aborting"
exit 1
fi
echo -n "How many zeroing passes? "; read zeropass
if [ -z $zeropass ] || [ $zeropass -lt 1 ]; then
echo "Invalid number of passes specified. Aborting."
exit 1
fi
echo -n "Automatically shutdown? [yes|no] "; read asd
echo "Okay, here we go..."
echo "Making and populating ramdisk (512MB)..."
mkdir -p /var/ramdisk
mount -t tmpfs none /var/ramdisk -o size=512m # You may need to adjust this depending on the amount of RAM in the box
mkdir -p /var/ramdisk/var/run
for f in dev bin lib lib64 sbin etc; do
cp -pr /$f /var/ramdisk
done
cp -pr /var/run /var/ramdisk/var
echo "Stopping services, it's probably safe to ignore any errors..."
for s in httpd acpid anacron atd auditd autofs avahi-daemon bluetooth cpuspeed crond cups firstboot gpm haldaemon hidd hplip irqbalance iscsi iscsid kudzu lm_sensors lvm2-monitor mcstrans mdmonitor messagebus microcode_ctl netfs nfslock pcscd portmap rawdevices readahead_early restorecond rpcgssd rpcidmapd sendmail smartd sshd syslog vmware-tools xfs yum-updatesd; do
service $s stop
done
echo "Placing zeroing script..."
echo "#!/bin/bash" > $zeroscript
for i in `fdisk -l | grep Disk | awk '{print$2}' | sed -e s/:// | grep -v /dev/md`; do
DU=$DU" "$i
DSK=`basename $i`
BLKS=$((`grep -w $DSK /proc/partitions | awk '{print$3}'` * 2)) # account for 512/1k blocksizes
BS=512
echo "echo \"Zeroing $i (dd if=/dev/zero of=$i bs=$BS count=$BLKS) ...\"" >> $zeroscript
for (( c=1; c<=$zeropass; c++ )); do
echo "echo \"Pass $c...\"" >> $zeroscript
echo "dd if=/dev/zero of=$i bs=$BS count=$BLKS" >> $zeroscript
done
echo "dd if=/dev/zero of=$i bs=512 count=1" >> $zeroscript # Just to make sure
done
echo "echo \"Disk(s)$DU have been zeroed $zeropass times\"" >> $zeroscript
if [ $asd = 'yes' ]; then
echo "echo \"Shutting down...\"" >> $zeroscript
echo "sleep 5 && /sbin/poweroff -n -d -f" >> $zeroscript
fi
chmod +x $zeroscript
echo "Turning off swap..." && swapoff -a
echo "Entering chroot..."
chroot /var/ramdisk /`basename $zeroscript`
该脚本中固然存在着一些过于强横的霸王内容,但却确切能帮大家完成任务.它本身是专门用于RHEL(即红帽企业版Linux)及CentOS(即社区企业操作系统)的,但只需经过简单的调整便可见效于任何类Unix操作系统之上.不过请大家当心,这个脚本存在的目的是追求完好的破坏性.假如破坏不是各位的需求,大概大家不理解自己在做什么,请千万不要尝试.
以上是“<b>想知道若何将你的Linux服务器清空空吗?</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |