在经验丰富的系统管理员眼中,rsync实现文件的自动备份是相当简单的,这也正是设计的动机和目标。rsync是一套多功能的、高效的安全防护工具。
作者:Techrepublic.com.com 2006年4月20日
关键字:
完整性检测
通常,文件系统的完整性检查是通过操作特定的安全工具来完成的,比如tripwire。这类工具的操作十分彻底,功能非常强大,并提供一系列 灵活的策略,来帮助系统管理员完成文件系统的完整性检测。但是,对系统管理员来说,可能由于诸多原因而倾向于采用另外的方法来完成完 整性检测。rsync工具就具备这个功能。它所具有的校验功能能够将原始文件和拷贝后的文件进行对比,可以判断并检查出哪些文件被改变,还 可以判断这些文件的更改操作是否合法,是否具备足够的授权。对文件系统的完整性检测来说,rsync所做的第一件事情是为文件系统创建一份 快照。这必须在检查文件系统的完整性之前完成,因为必须有一份完好无缺的拷贝用于检查文件系统是否正确。
完成上述操作之后,在命令行简单地运行一条rsync复制命令。这里需要注意一下:为了确保所使用rsync版本不可被入侵者用于和他自己的版 本进行比较,这样文件系统的变化就无法被检测出,需要拷贝一个rsync的二进制文件版本(可能位于/usr/bin/rsync)到一个可写的媒介上,如 光盘上。然后,当使用rsync时,还需要指定rsync二进制文件位于哪个媒介上,而不是指向计算机上的某个版本。例如,如CD安装/mnt/cdrom ,运行如下命令,可从一台计算机上复制文件到另外一台主机上:
rsync -av --rsync-path=/mnt/cdrom/rsync -e ssh host:/ localdir
上述命令表示,从远端主机上复制整个文件系统(期望被检查的文件系统)到运行rsync所在机器的一个本地文件目录中,一旦拥有了文件系统 的快照,就可以使用如下的命令来检查文件系统的完整性了:
rsync -avn --rsync-path=/mnt/cdrom/rsync -e ssh host:/ localdir
前面提到的-n选项是用来确保没有任何文件被拷贝。而在rsync工具中则有所不同,它仅报告拷贝之前和拷贝之后的差别所在。如果不希望两者 间出现差别,就应该对它们进行仔细检查,确保没有发生未授权的更改。bin/ls, /bin/bash, 和/bin/sshd等文件若发生改变的话是需要特别 留意一下的,如果它们本来是不应该被更改的但却被改动了,这可能表示系统已遭受了某种安全威胁。但是,如果系统自动更新程序正在运行 ,这些文件被更新进程所改变就是很正常的了。因此,最好让更新程序做好日志记录,将那些更新进程替换过的包或文件都做好标记,再和 rsync的完整性检测报告中列出来的所有被更改过的文件进行对照,这样就可以检测出哪些文件已经被非法更改了。