目的:等保检查项:被测方未对重要程序的完整性进行检测,并在检测到完整性受到破坏后具有恢复的措施
Tripwire对每个文件生成相应数字签名,并将这些结果保存在自己的数据库中,生成一个唯一的标识,即“快照”snapshot。当怀疑系统被入侵时,文件的大小、inode号、权限、时间等任意属性被修改后,再次运行Tripwire,可由Tripwire根据先前生成的,数据库文件来做一次数字签名的对照,如果文件被替换,则与Tripwire数据库内相应数字签名不匹配。
实施
目标主机安装:Tripwire–redhat系统自带,需要安装epol源,Centos7上可以直接安装:
安装tripwire——yum install tripwire
秘钥文件
Tripwire使用2个关键文件。— Tripwire为了自身的安全,防止自身被篡改
- site-key:它用于保护Tripwire配置。 因此,除非我们再次生成配置,否则对tripwire配置所做的任何更改都不会生效,我们会提示您输入“site-key”密码。
- local-key:它用于验证tripwire二进制文件。 当我们想要更新tripwire系统数据库时,我们需要运行tripwire命令,并且会提示我们输入’local-key’的密码。
维护策略文件和配置文件
安全起见,安装完tripwire后配置完毕后会可以删除明文的twcfg.txt和twpol.txt,但是如果用两个秘钥文件有加密过报告则需要恢复此两个文件:
twadmin --print-cfgfile > twcfg.txt
twadmin --print-polfile > twpol.txt
恢复完毕后再init初始化数据库即可。
读取报告
#twprint --print-report --twrfile /var/lib/report/report.twr
#输出到当前屏幕
#twprint --print-report --twrfile /var/lib/report/report.twr - >myreport.txt
#输出到本文文件–考虑发送此文本文件给邮件接受者,已达到监控审计目的
#twprint --print-report --report-level 4 --twrfile /var/lib/report/report.twr
#根据指定报个等级输出
生产报告并发送邮件
默认tripwire使用postfix或者sendmail发送邮件,首先确定服务器上安装并运行了此软件:
在twpol.txt配置文件中新增check目录,然后配置要发送的邮件地址:
例如:
(
rulename = “nginx data”,
severity = $(SIG_HI),
emailto = XXX@163.com
)
{
/opt/nginx -> $(SEC_CRIT) ;
}
备注:tripwiremore默认check的目录一般centos不可能都全部包括,借鉴下脚本排查下需要检查的目录:
代码片
.
for i in $(grep -i filename none.txt |cut -f2 -d:);do
sed -i.bak "s|\($i\) |#\\1|g" /etc/tripwire/twpol.txt;done
以上脚本生产none.txt文件
然后检查不包括none.txt文件内的文件:
tripwire --check |grep -i filename > none.txt