Tripwire 是一款入侵检测软件,它通过为每个要监控的文件产生数字签名的方式来检测文件是否被篡改。
Tripwire 在 AUR 中,可以通过 yaourt 来安装
yaourt -S tripwire-git
安装好 tripwire 后,会新增4个命令:
安装完之后,还需要用 twadmin 生成 site-keyfile 和 local-keyfile
twadmin --generate-keys --local-keyfile tw.localkey --site-keyfile tw.sitekey
按照提示需要输入 sitekey 和 localkey 的 passphrase
[lujun9972@F31 ~]$ twadmin --generate-keys --local-keyfile tw.localkey --site-keyfile tw.sitekey
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.
[lujun9972@F31 ~]$
就会在当前目录生成两个 key 文件,分别为 tw.localkey 和 tw.sitekey
Tripwire 在安装时会在 /etc/tripwire/ 目录中生成两个文件 twcfg.txt 和 twpol.txt,为 tripwire 默认的配置文件和策略文件的模板,我们直接使用它的默认模板
在 twcfg.txt 中指定了 site keyfile 和 local keyfile 的地址:
[lujun9972@F31 tripwire]$ cat /etc/tripwire/twcfg.txt
ROOT =/usr/sbin
POLFILE =/etc/tripwire/tw.pol
DBFILE =/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE =/etc/tripwire/site.key
LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key
EDITOR =/usr/bin/vi
LATEPROMPTING =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS =true
EMAILREPORTLEVEL =3
REPORTLEVEL =3
MAILMETHOD =SENDMAIL
SYSLOGREPORTING =false
MAILPROGRAM =/usr/sbin/sendmail -oi -t
我们将上一步生成的 keyfile 拷贝成 SITEKEYFILE 和 LOCALKEYFILE 中指定的文件名
sudo cp tw.localkey /etc/tripwire/${HOSTNAME}-local.key
sudo cp tw.sitekey /etc/tripwire/site.key
然后使用 twadmin --create-cfgfile 生成配置文件:
sudo twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
再用 twadmin --create-polfile 生成策略文件:
sudo twadmin --create-polfile /etc/tripwire/twpol.txt
第一次运行 tripwire 时需要先初始化数据库
sudo tripwire --init
第一次初始化时可能会出现很多警告,但是可以不用管
[lujun9972@F31 tripwire]$ sudo tripwire --init
Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
Generating the database...
*** Processing Unix File System ***
### Warning: File system error.
### Filename: /usr/sbin/fixrmtab
### 没有那个文件或目录
### Continuing...
运行 tripwire --check 会就会生成检查报告了,检查报告存放的地址参见配置文件中 REPORTFILE 定义的位置,默认为 /var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
sudo tripwire --check
tripwire 生成的 .twr 文件是二进制的,无法直接查看,需要使用 twprint 来转换成可阅读的文本格式
注意:由于普通用户无法访问 /var/lib/tripwire 目录,因此这一步需要切换 root 用户来操作
sudo su - root
twprint --print-report --twrfile /var/lib/tripwire/report/F31-20180122-191715.twr >/tmp/report.txt
view /tmp/report.txt
可以通过 man twintro 来查看关于 tripwire 的介绍。
另外,tripwire的任意命令都支持 --help 参数,会输出关于该命令的简要说明。

