Tripwire是一个开源的功能强大的服务器文件完整性监测系统,利用各个文件的数字签名前后之间的对比 ,从而得出系统中的文件是否被人篡改过。Tripwire强大之处在于利用MD5和SNCFRN加密手段来生成文件的数字签名,任何文件改动的痕迹都能察觉。

如果你怀疑服务器遭到******过,在多数情况下,***可能对系统文件等等一些重要的文件进行修改,这时Tripwire就可以生成文件变动的详细报告了。同时,为了防止Tripwire自身的文件也被人动手脚,我们可以将Tripwire的数字签名数据库、Tripwire二进制文件、配置文件单独取出来。

总之,Tripwire虽然不能抵御服务器***,但是却是“***”背后一双明亮的“眼睛”,默默地记录着服务器上所有的一切,是我们保证服务器安全的一个重要工具。本文就来分享一下Tripwire的安装与使用方法。

一、Tripwire安装

1、Tripwire官网:

  • 1、官方网站:

  • http://nchc.dl.sourceforge.net/project/tripwire

2、Tripwire安装在VPS上只要执行以下命令:

[root@ipython ~]# wget http://nchc.dl.sourceforge.net/project/tripwire/tripwire-src/tripwire-2.4.2.2/tripwire-2.4.2.2-src.tar.bz2
[root@ipython ~]# tar jxf tripwire-2.4.2.2-src.tar.bz2 
[root@ipython ~]# cd tripwire-2.4.2.2-src
[root@ipython tripwire-2.4.2.2-src]#./configure --prefix=/software/tripwire
[root@ipython tripwire-2.4.2.2-src]# make 
[root@ipython tripwire-2.4.2.2-src]# make install

3、安装过程中,会要求你阅读使用协议,回车。

Tripwire阅读安装协议

4、空格是翻页,到最后输入“Accept”继续安装。

Tripwire继续安装

5、接着会要求你输入“site keyfile”口令和“local keyfile”口令,各两遍,完成确认。

Tripwire输入口令

6、最后安装Tripwire完成。

Tripwire安装完成

二、Tripwire配置

1、Tripwire相关文件目录是在/usr/local/tripwire中。主要是:

  • 1、配置文件:定义数据库、策略文件和Tripwire可执行文件的位置:/etc/tripwire/twcfg.txt

  • 2、策略:定义检测的对象及违规时采取的行为:/etc/tripwire/twpol.txt

  • 3、数据库:用于存放生成的快照:/var/lib/tripwire/$(HOSTNAME).twd

Tripwire配置目录

2、同时,Tripwire为了自身的安全,防止自身被篡改,也会对自身进行加密和签名处理。其中,包括两个密钥:

  • 1、site密钥:用于保护策略文件和配置文件,只要使用相同的策略和配置的机器,都可以使用相同的site密钥:/etc/tripwire/site.key

  • 2、local密钥:用户保护数据库和分析报告,不会重复:/etc/tripwire/$(HOSTNAME)-local.key

3、其中 /etc/twpol.txt中是控制对哪些目录进行检查,执行:vim /usr/local/tripwire/etc/twpol.txt 可以打开编辑此文件。

4、对于一些不存在的文件目录和文件或者不想让Tripwire监控的文件目录等可以用#号把它注释掉。

Tripwire控制监测目录

三、Tripwire使用

1、Tripwire第一次安装后,需要进行一次数据初始化,命令:

/usr/local/tripwire/sbin/tripwire --init

2、在检测服务器文件完整性时,对于不存在的目录或者文件Tripwire会报警,没有关系。当然你可以在twpol.txt 把这些目录或者文件给注释掉。

Tripwire警告报警

3、最后Tripwire会生成一个文件监控数据库,存放在/usr/local/tripwire/lib/tripwire 中。

Tripwire生成初始报告

4、Tripwire初始化完成后,就可以执行文件完整性检测了,默认的情况下Tripwire每天进入一次检查:

/etc/cron.daily/tripwire --check

5、手动检查的命令是,先进入到/usr/local/tripwire中 ,再执行命令:

./sbin/tripwire --check --interactive

Tripwire手动检测

6、后面加上interactive,是用于检测完成后自动打开文件完整性报告,这就是Tripwire的检测报告,任何文件属性的变动就可以在报告中看到。(点击放大)

Tripwire报告内容

四、Tripwire报告

1、Tripwire检测后生成的报告放在/usr/local/tripwire/lib/tripwire/report 中,文件是加密的。

Tripwire报告被加密

2、如果要查看的话,需要用到Tripwire的解密工具:twprint。依然是进入到/usr/local/tripwire 目录中,然后执行(注意:freehao123.XX.XX.twr 是报告文件名,你需要修改成你自己的):

./sbin/twprint --print-report --twrfile ./lib/tripwire/report/freehao123.cloud.mos.meituan.local-20140810-152548.twr >/tmp/tripwire_readable.txt
cat /tmp/tripwire_readable.txt

3、解密后的Tripwire报告可以下载到本地用文本编辑器打开查看,不过为了保密,查看后记得把这些解密后的文本文件删除。

Tripwire解密报告

4、如果你怀疑某一个文件有重大的问题,除用文本编辑器搜索功能查找外,还可以使用twprint提取工具:

./sbin/twprint -m d --print-dbfile /home/freehao123.js

Tripwire重点检测

五、更新Tripwire数据库和定时执行文件完整性检测

1、如果你修改过文件完整性监测项目控制文件twpol.txt,需要执行更新配置文件:

cd /usr/local/tripwire
./sbin/tripwire --update-policy --secure-mode low ./etc/twpol.txt

2、Tripwire以最开始生成的文件完整性的数据库作为对比基准,但如果有些文件是自己修改过的,并不希望Tripwire在每次检测时把它当成是异常,这时就需要找到原始的数据库文件,执行更新操作了。

tripwire --update --twrfile /usr/local/tripwire/lib/tripwire/report/freehao123.cloud.mos.meituan.local-20140810-152548.twr

备注:执行该命令之后,您就进入了一个编辑器。搜索所报告的文件名。所有侵害或更新都在文件名前面有一个 [x]。该演示中的查找模式如下:


[x] "/usr/local/bin/pwgen"

例如:

Rule Name: pwgen (/usr/local/bin/pwgen)
Severity Level: 0
-------------------------------------------------------------------------------

Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.

Modified:
[x] "/usr/local/bin/pwgen"

如果您希望接受这些更改为正当的,则只需保存并退出文件即可。Tripwire 不再报告此文件。如果您想要这个文件不被添加到数据库,那么请删除 'x'。

保存文件并退出编辑器时,若有数据库更新发生,会提示您输入密码以完成该过程。如果没有更新发生,那么 Tripwire 会通知您的,并且不需要输入密码。该演示中出现以下提示,因为数据库将被更新:

Please enter your local passphrase: master
Wrote database file: /var/lib/tripwire/rs6000.twd

我们也可以用 init 选项再次运行 Tripwire,对下次运行要比较的内容进行一次基本的扫描,如下所示:

 

# /usr/local/tripwire/sbin/tripwire --init


3、Tripwire设置定时检测任务。编辑定时任务:crontab -e,以下命令是表示每天凌晨4:00时开始自动执行文件完整性检测并生成报告 。

00 4 * * * /usr/local/tripwire/sbin/tripwire --check

六、Tripwire使用小结

1、管理员如果能够定制完整的策略和检查周期,Tripwire将可以实现对系统的完整监控,在遭遇服务器***时Tripwire将是帮助检测***痕迹的最有力工具。

2、为了防止Tripwire本身也遭遇篡改,我们需要做好Tripwire的备份工作,有兴趣的朋友还可以设置好Tripwire执行完检测任务后自动将检测报告发送到管理员邮箱,以便及时作出应对。