Tripwire是目前最为著名的unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。
工作原理
当Tripwire运行在数据库生成模式时,会根据管理员设置的一个配置文件对指定要监控的文件进行读取,对每个文件生成相应数字签名,并将这些结果保存 在自己的数据库中,在缺省状态下,MD5和SNCFRN(Xerox的安全哈希函数)加密手段被结合用来生成文件的数字签名。除此以外,管理员还可使用 MD4,CRC32,SHA等哈希函数,但实际上,使用上述两种哈希函数的可靠性已相当高了,而且结合MD5和sncfrn两种算法(尤其是 sncfrn)对系统资源的耗费已较大,所以在使用时可根据文件的重要性做取舍。当怀疑系统被入侵时,可由Tripwire根据先前生成的,数据库文件来 做一次数字签名的对照,如果文件被替换,则与Tripwire数据库内相应数字签名不匹配, 这时Tripwire会报告相应文件被更动,管理员就明白系统不"干净"了。
如下是安装和使用方法
1.rpm -ivh tripwire-2.3.1-22.el4.i386.rpm
2.修改/etc/tripwire/twpol.txt文件,自定义需要监控的文件
如:在文件的最后加入如下内容,关于其中的属性标记可以通过man twpolicy查看
# Test Web GUI File
(
rulename = "Test Web GUI File",
severity = $(SIG_HI)
)
{
/var/www/html/test -> $(SEC_CONFIG) ;
}
3.执行/usr/sbin/tripwire-setup-keyfiles,设置site和local密码,并对配置文件和规则文件进行加密
设置site pass(用于加密twpol.txt和twcfg.txt),在/etc/tripwire目录下产生site.key
设置local pass(用于加密指纹数据库时使用),在/etc/tripwire目录下产生$HOSTNAME-local.key(如mail.test.com-local.key)
4.tripwire --init
建立指纹数据库,期间会提示输入local pass密码
在/var/lib/tripwire/目录下生成$HOSTNAME.twd文件(即指纹数据库文件,如mail.test.com.twd)
5.tripwire --check --interactive
对比指纹数据库,检查系统是否进行了改动,最后会显示报告清单