1.创建密钥和签名

在安装Tripwire之后,可以使用如下命令进行设置:

#./twinstall.sh

脚本twinstall.sh的作用在于执行下列任务:

2.编辑配置文件

首先打开文本格式的配置文件twcfg.txt,该文件的位置在前面所述安装过程后的/usr/local/etc目录下。然后根据需要修改配置文件,修改完毕后存盘。最后使用twadmin命令根据已编辑的文本文件生成一个加密的配置文件。

ROOT          =/usr/local/sbin
POLFILE       =/usr/local/etc/tw.pol
DBFILE        =/usr/local/lib/tripwire/$(HOSTNAME).twd
REPORTFILE    =/usr/local/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE   =/usr/local/etc/site.key
LOCALKEYFILE  =/usr/local/etc/localhost.localdomain-local.key
EDITOR        =/bin/vi
LATEPROMPTING =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS =true
EMAILREPORTLEVEL =3
REPORTLEVEL   =3
MAILMETHOD    =SENDMAIL
SYSLOGREPORTING =false
MAILPROGRAM   =/usr/sbin/sendmail -oi -t
 
#twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key twcfg.txt 

安装完毕后,该文件已存在,因此不必再重新创建。通常情况下,配置文件的内容不会发生变化,因此没有必要去修改它,使用Tripwire默认的就可以了。在此时我们应该测试一下Email报告功能是否起作用,以防以后遇到麻烦,输入以下命令进行测试。

#tripwire --test --mail user@domain.com 

3.编辑策略文件

首先打开文本格式的策略文件twpol.txt。该文件的位置在前面所述安装过程后的/usr/local/etc目录下。Tripwire在安装时已经在策略文件中写入了默认的检查规则。这些默认的规则主要检查重要的系统文件和Tripwire自身文件的完整性。

由于默认的配置就不能监视系统中的SUID和SGID文件,而这对于我们的系统安全是非常重要的,因此,我们需要修改配置加入对这个项目的监视。使用如下命令可以找出系统中的所有SUID文件:

#find / -type f -perm -4000 -print

以下命令可以找出系统中的所有SGID文件:

#find / -type f -perm -2000 -print

现在,我们需要把以上命令找出的SUID和SGID文件加入到Tripwire的/策略文件中去。除此之外,我们还要把所有用户home目录下的初始文件也纳入监视的范畴。主要包括以下文件:

在创建Tripwire的特征码数据库之前,还有一件事情要做,就是检查.netrc和.rhosts文件的权限是否是600。修改完策略文件后存盘。最后使用twadmin命令根据已编辑的文本文件生成一个加密的策略文件。最后,策略文件的文本文件要删除掉,否则该文件的内容易被察看。

#twadmin --create-polfile twpol.txt 

安装完毕后,该文件已存在,因此不必再重新创建。

4.生成基准数据库

配置文件和策略文件都编辑和生成好了之后,就应该根据配置文件的规则生成基准数据库。基准数据库在Tripwire安装完毕后生成一次即可。我们使用Tripwire命令来生成基准数据库。

#tripwire --init 

基准数据库生成时,Tripwire会提示输入local key,对其进行高强度的加密,以防止对文件内容的非法改变。

5.运行完整性检查

基准数据库生成完毕之后,我们可以使用tripwire命令随时进行完整性检查了:

#tripwire --check 

进行检查时可以指定检查报告的存贮位置:

#tripwire --check --twfile/var/lib/report/report.twr 

进行检查时也可发送Email报告结果:

#tripwire --check --email-report 

进行检查时指定使用Email进行发送的报告等级:

#tripwire --check --email-report --email-report-level 2 

使用指定严重性等级的规则进行检查:

#tripwire --check --severity 80 

使用指定的规则名进行检查:

#tripwire --check --rule-name rulename 

只检查指定的文件或目录:

#tripwire --check object1 object2 object3 … 

进行检查时忽略某些属性因为有些属性的检查比较耗费系统资源,比如Hash算法):

#tripwire --check --ignore "property, property, property, property" 

如果完整性检查完毕后,发现Email报告功能未生效,可以检查两个方面:一个是策略文件中规则的emailto属性必须填写妥当,另一个是运行tripwire命令时,--email-report选项必须被包含。

6.查阅报告

完整性检查进行完毕后,我们就可以查阅报告以发现有哪些文件遭到了改动,改动了什么。使用twprint命令可以输出报告,它有多种使用方式。

如下命令将加密的报告内容输出到显示器:

#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 

7.升级基准数据库文件

如果在报告中发现了一些违反策略的错误,而这些错误又是被认为正常的,那就要使用Tripwire命令更新基准数据库:

#tripwire --update --twrfile /var/lib/report/report.twr 

也可以在进行完整性检查之后立即自动进行更新:

#tripwire --check --interactive 

8.升级策略文件

随着系统的变化,原来的策略文件必然会不能满足需要,因此必须要不断的更新策略文件中的规则。更新和创建新的策略文件不同,因为如果为Tripwire创建了新的策略文件,那么就必须要重新生成基准数据库。更新时首先打开策略文件的文本文件:

#twadmin --print-profile > twpol.txt 

然后编辑该文件,完毕后存盘。最后使用Tripwire命令进行策略更新:

#tripwire --update-policy twpol.txt 

在此步骤中,Tripwire软件会要求输入site key。

9.改变site key和local key

sitekey和localkey是在安装时生成的,但是也可以随时修改。注意,如果已经用来加密的密钥文件被删除了或是被覆盖了,那么Tripwire加密过的文件都不能访问了。因此,我们要对这两个文件做备份。 很多时候会发现我们的口令可能不太安全,因此要改变口令。需执行以下命令即可:

#twadmin --generate-keys --local-keyfile /etc/tripwire/site.key
#twadmin --generate-keys --local-keyfile /etc/tripwire/local.key 

但是这么做的话,会造成使用以前密钥进行加密的文件无法打开的情况。我们要使用以前的策略文件、配置文件、数据库文件、报告文件的话,因此在改变口令之前,我们必须使用以下的命令把这些已加密的文件进行解密。

#twadmin --remove-encryption file1 file2 ... 

在生成新的密钥文件之后,我们还应该用新密钥对这些文件进行加密。配置文件和策略文件只能用site key加密,而数据库文件和报告文件只能用local key加密。

#twadmin --encrypt --site-keyfile /etc/tripwire/site.key file1 file2 file3 ...
#twadmin --encrypt --local-keyfile /etc/tripwire/local.key file1 file2 file3 ... 

以上就是Linux文件系统保护的实现步骤参考。Tripwire是一个非常不错的开源工具,可以说是系统运维们不可替代的工具,值得仔细研究学习。除了Linux文件系统保护之外,Linux系统的安全管理还包括用户管理、进程保护、日志管理等三个方面,这些将在之后的文章中进行讲解。


相关内容