一、概述

     当服务器遭到黑客攻击时,在多数情况下,黑客可能对系统文件等等一些重要的文件进行修改。对此,我们用Tripwire建立数据完整性监测系统。虽然 它不能抵御黑客攻击以及黑客对一些重要文件的修改,但是可以监测文件是否被修改过以及哪些文件被修改过,从而在被攻击后有的放矢的策划出解决办法。
      Tripwire的原理是Tripwire被安装、配置后,将当前的系统数据状态建立成数据库,随着文件的添加、删除和修改等等变化,通过系统数据现 状与不断更新的数据库进行比较,来判定哪些文件被添加、删除和修改过。正因为初始的数据库是在Tripwire本体被安装、配置后建立的原因,我们务必应 该在服务器开放前,或者说操作系统刚被安装后用 Tripwire构建数据完整性监测系统。

    Tripwire可以对要求校验的系统文件进行类似md5的运行,而生成一个唯一的标识,即“快照”snapshot。当这些系统文件的大小、inode号、权限、时间等任意属性被修改后,再次运行Tripwire,其会进行前后属性的对比,并生成相关的详细报告。

下载地址:http://sourceforge.net/projects/tripwire/files/

环境:OS:Centos 6.2
软件:tripwire-2.4.2.2-src.tar.bz2

二、安装

1、解压

# tar -jxvf tripwire-2.4.2.2-src.tar.bz2
# cd tripwire-2.4.2.2-src

2、配置

#./configure --prefix=/opt/tripwire ←设置安装目录

注:如果出现这样的错误:

configure: error: C++ preprocessor "/lib/cpp" fails 
sanity checkSee `config.log' for more details.

解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行:

# yum install glibc-headers
# yum install gcc-c++

3、编译

# make                                

--过程省略--

4、安装过程

# make install  

--出现协议--

license agreement. [do not accept] accept ← 输入“accept”同意协议。

--过程省略--

Continue with installation? [y/n] y ← 键入y继续安装。

--过程省略--

Enter the site keyfile passphrase: ← 输入“site keyfile”口令(输入后不会显示),并且记住这个口令。
Verify the site keyfile passphrase: ← 再次确认“site keyfile”口令。

--过程省略--

Enter the local keyfile passphrase: ← 输入“local keyfile”口令(输入后不会显示),并且记住这个口令。
Verify the local keyfile passphrase: ← 再次确认“local keyfile”口令。

--过程省略--

Please enter your site passphrase: ← 输入“site keyfile”口令(输入后不会显示)第一次。

--过程省略--

Please enter your site passphrase: ← 输入“site keyfile”口令(输入后不会显示)第二次。

安装完成。

三、文件说明

(1)、配置文件:定义数据库、策略文件和Tripwire可执行文件的位置:

/opt/tripwire/etc/twcfg.txt

(2)、策略:定义检测的对象及违规时采取的行为:

/opt/tripwire/etc/twpol.txt

(3)、数据库:用于存放生成的快照:

/opt/tripwire/lib/tripwire/$(HOSTNAME).twd

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

(4.1)、site密钥:用于保护策略文件和配置文件,只要使用相同的策略和配置的机器,都可以使用相同的site密钥:

/usr/local/tripwire/etcsite.key

(4.2)、local密钥:用户保护数据库和分析报告,这肯定不会重复的:

/usr/local/tripwire/etc/$(HOSTNAME)-local.key

四、设置tripwire

4.1、编辑 twcfg.txt文件

vi /opt/tripwire/etc/twcfg.txt  ← 修改文本格式的Tripwire配置文件
LOOSEDIRECTORYCHECKING =false  ← 找到这一个行,将false的值变为true(不监测所属目录的数据完整性)
LOOSEDIRECTORYCHECKING =true   ← 变为此状态
REPORTLEVEL =3  ← 找到这一行,将3变为4(改变监测结果报告的等级)
REPORTLEVEL =4  ← 变为此状态
#wq ← 保存退出

4.2、建立加密格式

#cd /opt/tripwire/etc
#/opt/tripwire/sbin/twadmin --create-cfgfile -S site.key twcfg.txt ← 从文本配置文件建立加密格式配
Please enter your site passphrase: ← 输入“site keyfile”口令
Wrote configuration file: /usr/local/tripwire/etc/tw.cfg
完成。

五、初始化数据库

#/opt/tripwire/sbin/tripwire --init  ← 初始化数据库
Please enter your local passphrase: ← 输入“local keyfile”口令

 六、更新数据库

  当你更新了twpol.txt后需用此命令更新数据库

复制代码
#cd /opt/tripwire
#./sbin/tripwire --update-policy --secure-mode low /opt/tripwire/etc/twpol.txt

Please enter your local passphrase: ← 输入“local keyfile”口令
Please enter your site passphrase: ← 输入“site keyfile”口令

Wrote database file: /usr/local/tripwire/lib/tripwire/localhost.localdomain.twd
The database was successfully generated

复制代码

七、检查文件异动

安装完tripwire后你可以定期检查文件是否存在异动。加上interactive在当前显示结果。

./sbin/tripwire --check --interactive

八、查看报告

所有tripwire的报告以.twr后缀保存在lib/tripwire目录下,需要使用twprint命令来转化成文本格式。

#./sbin/twprint --print-report --twrfile /lib/tripwire/report/localhost.localdomain-20100225-164220.twr>/tmp/tripwire_readable.txt
#vi /tmp/tripwire_readable.txt
或直接查看
#./sbin/twprint --print-report --twrfile /lib/tripwire/report/localhost.localdomain-20100225-164220.twr

九、修改环境变量 

     需要注意的是,一般情况下,这仅仅对于普通用户适用,避免修改根用户的环境定义文件,因为那样可能会造成潜在的危险。 $vi .bash_profile #修改环境变量定义文件。 然后编辑你的PATH声明,其格式为: PATH=$PATH:/usr/local/tripwire/sbin/
执行命令使其立刻生效
$source .bash_profile
Tripwire的使用和维护都比较简单。但要实现对系统的监控,关键还是需要依靠管理员定制完整的策略和检查周期,以便及时发现问题。另外,Tripwire只能告诉您那些文件被修改,以及修改的属性。但判断和维护是依赖管理员操作的,Tripwire是一个“事后诸葛亮”的工具