如何在 Linux 中安全擦除删除的文件内容

如何在 Linux 中安全擦除删除的文件内容,第1张

/etc/passwd中包含有用户的登录名、经过加密的口令、用户号、用户组号、用户注释、用户主目录和用户所用的Shell程序。其中,用户号(UID)和用户组号(GID)用于Linux系统惟一标识用户和同组用户,以及用户的访问权限。一个好的口令应当至少有6个字符,最好不要取用个人信息(如生日、名字、反向拼写的登录名),普通的英语单词也不好(因为用字典攻击法容易破解)。口令最好含有一些非字母字符(如数字、标点符号、控制字符等),并且要好记,不能写在纸上或计算机中的文件里。选择口令的一个好方法是将两个不相关的词用一个数字或控制字符相连,并截断为8个字符。当然,如果你能记住8位乱码自然更好。不应在不同机器中使用同一个口令,特别是在不同级别的用户上使用同一口令。不要将口令于终端功能键或Modem的字符串器中。用户应定期改变口令,推荐3个月改变一次。系统管理员可以强制用户定期修改口令。为防止眼明手快的人得到口令,在输入口令时应确认身边无人。

1.不要让文件或目录被他人读写。

如果不信任本组用户,umask设置为022。确保自己的.profile他人不可读写;暂存目录最好不要存放重要文件;home目录任何人不可写; uucp传输的文件应该加密,并尽快转移到自己的目录中。

2.若不想要其他用户读文件或目录,就要使其不允许任何人读。

umask设置为006/007。若不允许同组用户存取自己的文件和目录,umask设置为077;暂存文件按当前umask设置。存放重要数据到暂存文件的程序,就被写成能确保暂存文件其他用户不可读。这样,就可确保别的用户不可读home目录。

拷贝和移动文件的安全用cp命令拷贝文件时,若目的文件不存在,则将同时拷贝源文件的存取许可,包括Suid和Sgid许可。新拷贝的文件属拷贝用户所有,故拷贝别人的文件时应小心,不要被其他用户的Suid程序破坏文件安全。

用mv命令移动文件时,新移的文件存取许可与原文件相同,mv仅改变文件名。只要用户有目录的写和搜索许可,就可移走该目录中某人的Suid程序,且不改变存取许可。若目录许可设置不正确,则用户的Suid程序可能被移到不能修改和删除的目录中,从而出现安全漏洞。

cpio命令用于将目录结构拷贝到一个普通文件中,然后再用cpio命令将该普通文件转成目录结构。小心使用该命令,因为它能覆盖不在当前目录结构中的文件,用t选项可首先列出要被拷贝的文件。

不要离开登录的终端这个问题看起来简单,但却是最容易忽视的问题,哪怕只是几分钟的疏忽,也会给系统造成危害。

文件加密的安全crypt命令可提供给用户加密文件。它使用一个关键词将标准输入的信息编码变为不可读的杂乱字符串,送到标准输出设备。再次使用该命令,用同一关键词作用于加密后的文件,可恢复文件内容。

一般来说,文件加密后应删除原始文件,只留下加密后的版本,且不能忘记加密关键词。vi命令一般都有加密功能,用vi -x命令可编辑加密后的文件。加密关键词的选取规则与口令的选取规则相同。

由于crypt程序可能被做成特洛伊木马,故不宜用口令做为关键词。最好在加密前用pack或compress命令对文件进行压缩,然后再加密。

CU的问题CU命令能使用户从一个Linux系统登录到另一个Linux系统。此时,在远地系统还必须输入“~”后回车,以断开CU和远地系统的连接。

CU也有安全问题。如果本机安全性弱于远地机,不提倡用CU去登录远地机,以免由于本地机不安全而影响较安全的远地机。由于CU的老版本处理“~”的方法不完善,从安全性强的系统调用,会使安全性弱的系统的用户使用强系统用户的CU,传送强系统的/etc/passwd文件。

暂存文件和目录的安全Linux系统中暂存目录为/tmp和/usr/tmp,如果用这些目录存放暂存文件,别的用户可能会破坏这些文件。使用暂存文件最好将文件屏蔽值定义为007。保险的方法是建立自己的暂存文件和目录$Home/Mp,不要将重要文件存放于公共的暂存目录。

UUCP文件传输和网络安全UUCP命令用于将文件从一个Linux系统传送到另一个Linux系统。通过UUCP传送的文件,通常存于/usr/spool/uucppublic/login目录中,Login是用户的登录名,该目录存取许可为777。通过网络传输并存放于此目录的文件属于UUCP所有,文件存取许可为666和777。用户应当将通过UUCP传送的文件加密,并尽快移到自己的目录中。其它网络将文件传送到用户home目录下的RJC目录中。该目录对其他人是可写、可搜索的,但不一定是可读的,因而用户的RJC目录的存取许可方式应为733,允许程序在其中建立文件。同样,传送的文件也应加密并尽快移到自己的目录中。

Suid/Sgid的安全尽量不写Suid/Sgid程序。in为现有文件建立一个链,即建立一个引用同一文件的新名字。如目的文件已经存在,则该文件被删除而代之以新的链;或存在的目的文件不允许用户写,则请求用户确认是否删除该文件,因为只允许在同一文件系统内建链。若要删除一个Suid文件,就要确认文件的链接数,只有一个链才能确保该文件被删除。若Suid文件已有多个链,一种方法是改变其存取许可方式,这将同时修改所有链的存取许可;也可以Chmod000文件名,这不仅取消了文件的Suid和Sgid许可,同时也取消了文件的全部链。要想找到谁与自己Suid程序建立了链,不要立刻删除该程序,系统管理员可用Ncheck命令找到该程序的其他链。

智能终端的安全由于智能终端有Send Enter换码序列,因此告诉终端当前系统就像是用户敲入的一样。这是一种危险的能力,其他人可用Write命令发送信息给本用户终端。禁止其他用户发送信息的方法是使用Mesgn命令。Mesgn不允许其他用户发信息,Mesgy允许其他用户发信息。 即使如此仍有换码序列的问题存在,任何一个用户用Mail命令发送同样一组换码序列,不同的要用!rm-r*替换rm-r*。

其他安全问题除了信任的用户外,不要运行其他用户的程序。在自己的Path中,将系统目录放在前面。用Ctrl+D或Exit退出后,在断开与系统的连接前看到login:提示后再离开,以免在用户没注销时他人进入。定时使用ls -a .命令列出当前目录中的全部文件,包括以“.”开头的文件,查看所有文件的存取许可方式和所有者。任何不属于自己的文件都应怀疑和追究。

以上这些是我作为Linux系统管理员对保持用户账户安全的一些建议。更重要的是要建立安全意识,了解用户。系统管理员越熟悉自己的用户和用户工作习惯源码天空

,就越能快速发现不寻常的事件,而不寻常的事件就意味着系统安全问题。避免用户账户不安全事故的最基本方法是预防和定期的安全检查,包括使用嗅探器。

1. shred – 覆盖文件以隐藏内容

shred可覆盖文件以隐藏内容,另外还可以删除文件。

$ shred -zvu -n 5 passwords.list

这个命令包括的几个选项有:

-z – 最后一次覆盖添加0,以隐藏覆盖 *** 作

-v – 能够显示 *** 作进度

-u – 覆盖后截断并删除文件

-n – 指定覆盖文件内容的次数(默认值是3次)

shred – 覆盖文件以隐藏内容。

你可以在shred的参考手册页找到更多的使用选项和信息:

$ man shred

2. wipe – 安全地擦除Linux下的文件

Linux的wipe命令,可安全地删除磁存储器中的文件,后续无法恢复已删除文件或目录的内容。

首先,你需要安装wipe工具才能使用它,运行下面命令:$ sudo apt-get install wipe [在Debian及其衍生版上]

$ sudo yum install wipe [在基于RedHat的系统上]

下面这个命令将擦除目录private下面的一切内容。

$ wipe -rfi private/*

相关标志的用法如下:

-r – 告诉wipe递归查询子目录

-f – 启用强行删除,并禁用确认查询

-i – 显示删除过程的进度

wipe – 安全地删除Linux下的文件

注意:wipe只能适用于磁存储器,对于固态磁盘要使用其他方法。

仔细阅读wipe的参考手册页,了解更多的使用选项和使用说明:

$ man wipe

3. 面向Linux的secure-deletetion工具包

secure-delete是一套安全文件删除工具,包含SRM(secure_deletion)工具,它是用来安全地删除文件。

首先,你要安装它,为此使用下面这个相关命令:$ sudo apt-get install secure-delete [在Debian及其衍生版上]

$ sudo yum install secure-delete [在基于RedHat的系统上]

一旦安装完毕,你可以使用srm工具,在Linux系统上安全地删除文件或目录,如下所示。

$ srm -vz private/*

使用的选项如下:

-v – 启用详细信息模式

-z – 用0而不是随机数据擦除上一次写入的内容

srm – 安全删除Linux下的文件

仔细阅读srm的参考手册页,了解更多的使用选项和信息:

$ man srm

4. sfill –安全免费的磁盘/索引节点空间擦除工具

ffill是secure-deletetion工具包的一部分,它是一种安全免费的磁盘和索引节点空间擦除工具,可以安全地删除闲置磁盘空间上的文件。sfill可检查指定分区上的闲置空间,并用来自/dev/urandom的随机数据来填充。

下面这个命令将在我的根分区上执行sfill,-v参数选项符启用详细信息模式:

$ sudo sfill -v /home/aaronkilik/tmp/

假设你创建了一个单独的分区,/home用来存储平常的系统用户主目录,那么你可以在该分区上指定一个目录,对它进行sfill *** 作:

$ sudo sfill -v /home/username

sfill有几个局限性,参考手册页中有说明,你还能找到另外的使用标志和 *** 作说明:

$ man sfill

注意:secure-deletetion工具包中的下面两个工具(sswap和sdmem)与本文并不直接有关,不过我们会介绍它们,也许将来用得着。

5. sswap – 安全交换分区擦除工具

这是一个安全分区擦除工具,sswap删除的数据驻留在交换分区上的数据。

警告:记得在使用sswap之前先卸载掉你的交换分区!不然系统可能会崩溃!

只要确定你的交换分区(并使用swapon命令,核实分页和交换设备/文件是否开启),下一步,使用swapoff命令,禁用分页和交换设备/文件。

然后,在交换分区上运行sswap命令:

$ cat /proc/swaps

$ swapon

$ sudo swapoff /dev/sda6

$ sudo sswap /dev/sda6 #这个命令需要一段时间才能完成,默认情况下执行38趟

sswap – 安全交换分区擦除工具

确保仔细阅读sswap的参考手册页,了解更多的使用选项和信息:

$ man sswap

6. sdmem – 安全内存擦除工具

sdmem是安全内存擦除工具,它旨在安全地删除驻留在内存中的数据。

它原先名叫smem,但是在Debain系统上,有另一个程序包名叫smem(报告每个进程和每个用户的内存使用情况),于是开发人员将它改名为sdmem。

$ sudo sdmem -f -v

想了解更多的使用信息,请仔细阅读sdmem的参考手册页:

$ man sdmem

现在可以在网上公开获得的日志清除程序代码很粗糙,我曾经看到过最夸张的清日志的代码像这样:

rm -rf /var/log/lastlog rm -rf /var/log/telnetd rm -rf /var/run/utmp rm -rf /var/log/secure rm -rf /root/.ksh_history rm -rf /root/.bash_history rm -rf /root/.bash_logut rm -rf /var/log/wtmp rm -rf /etc/wtmp rm -rf /var/run/utmp rm -rf /etc/utmp rm -rf /var/log rm -rf /var/adm rm -rf /var/apache/log rm -rf /var/apache/logs rm -rf /usr/local/apache/log rm -rf /usr/local/apache/logs rm -rf /var/log/acct rm -rf /var/log/xferlog rm -rf /var/log/messages rm -rf /var/log/proftpd/xferlog.legacy rm -rf /var/log/proftpd.access_log rm -rf /var/log/proftpd.xferlog rm -rf /var/log/httpd/error_log rm -rf /var/log/httpd/access_log rm -rf /etc/httpd/logs/access_log rm -rf /etc/httpd/logs/error_log rm -rf /var/log/news/suck.notice rm -rf /var/spool/tmp rm -rf /var/spool/errors rm -rf /var/spool/logs rm -rf /var/spool/locks rm -rf /usr/local/www/logs/thttpd_log rm -rf /var/log/thttpd_log rm -rf /var/log/ncftpd/misclog.txt rm -rf /var/log/ncftpd.errs rm -rf /var/log/auth rm -rf /root/.bash_history touch /root/.bash_history history Cr

整个一rm集合,要是服务器跑了很长时间,积累了很多日志。你这样一删除,的,你帮他省事了,他也省事,一眼就看出有人进来了。

先不说其他,用rm删除就不可取,正确的删除文件做法是用shred

shred -n 31337 -z -u file_to_delete

这样多次擦除才够安全。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7407521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存