Tripwire - 文件完整性检查
Tripwire 是一个文件完整性检查程序,用于监控指定文件是否变更,这些变更包含(但不限于):
inode
时间戳
文件大小
文件权限和所有权属性
哈希值
文件类型
初始化时,Tripwire 扫描文件系统,把每个文件的校验值存储到数据库中,建立正常文件的基线,下一次扫描时,将文件的校验值和数据库中的校验值进行对比,如果校验值不一样,它会通过电子邮件警报或日志报告任何异常情况。
安装
apt-get install tripwire
安装期间需要配置密码,Site passphrase 用于加密 tw.cfg 和 tw.pol ,Local passphrase 用于加密数据库和 report 文件
配置
tw.cfg 是 Tripwire 的加密配置文件,twcfg.txt 则是该文件未加密的状态
tw.pol 是 Tripwire 的加密策略文件,twpol.txt 则是该文件未加密的状态
local.key 是本地密钥,用于保护数据库
site.key 是站点密钥,用于保护tw.cfg 和 tw.pol
使用
调整策略文件tw.pol
vi twpol.txt
twadmin --create-polfile --polfile tw.pol -S site.key twpol.txt
显示策略文件
twadmin --print-polfile
调整配置文件tw.cfg
``vi twcfg.txt``
``twadmin --create-cfgfile --cfgfile tw.cfg -S site.key twcfg.txt``
显示配置文件
twadmin --print-cfgfile
初始化数据库
tripwire --init
初始化结束后,会在 /var/lib/tripwire/ 生成数据库
进行检测
tripwire --check
检测结束后,会在/var/lib/tripwire/report/ 生成检测报告
读取检测结果
twprint --print-report -r /var/lib/tripwire/report/*.twr
更新数据库
如果文件的变更是正常的,那么应该更新数据库来忽略这次变更
tripwire --update -r /var/lib/tripwire/report/*.twr
执行该命令之后,您就进入了一个编辑器。搜索所报告的文件名。所有侵害或更新都在文件名前面有一个 [x]。
如果您希望接受这些更改为正当的,则只需保存退出文件即可。Tripwire 不再报告此文件。如果您想要这个文件不被添加到数据库,那么请删除 'x'。
保存文件并退出编辑器时,若有数据库更新发生,会提示您输入密码以完成该过程。如果没有更新发生,那么 Tripwire 会通知您的,并且不需要输入密码。
更新策略文件tw.pol
策略文件的后续更新应该采取如下形式
tripwire --update-policy --secure-mode low twpol.txt