Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。

软件特点

监视和检查系统发生的变化能够及时地帮助你发现攻击者的入侵,它们能够很好地提供系统完整性的检查。

用Tripwire建立数据完整性监测系统。虽然它不能抵御黑客攻击以及黑客对一些重要文件的修改,但是可以监测文件是否被修改过以及哪些文件被修改过,从而在被攻击后有的放矢的策划出解决办法。

Tripwire原理

Tripwire的原理是Tripwire被安装、配置后,将当前的系统数据状态建立成数据库,随着文件的添加、删除和修改等等变化,通过系统数据现状与不断更新的数据库进行比较,来判定哪些文件被添加、删除和修改过。正因为初始的数据库是在Tripwire本体被安装、配置后建立的原因,我们务必应该在服务器开放前,或者说操作系统刚被安装后用Tripwire构建数据完整性监测系统。

Tripwire的基本操作

一个配置文件(tw.config)描述监测哪些目录和文件,还有一个基线签名数据库产生一个有关改动的详细报告。

当第一次运行Tripwire时,程序创建一个签名的基线数据库。下一次运行时,它使用tw. config文件产生一个新的签名数据库。然后,它比较两个数据库,实施用户定义的任何选项屏蔽(排除经常更改的文件),最后通过电子邮件或显示器来为用户在终端上输出一个可读的报告。

Tripwire有四种操作模式:数据库生成、完整性检查、数据库更新或交互式更新。

数据库生成模式产生一个基线数据库,为未来的比较打下基础。

完整性检查是Tripwire的主要模式,把当前文件签名和基线数据库进行比较来进行检查。

有两种更新模式允许用户调整Tripwire数据库以消除不感兴趣的结果以及应付正常的系统变化。例如当用户帐号正常增加或删除时,不希望Tripwire重复报告/etc/passwd文件被改动了。

默认支持报告方式

Syslog
Mail

注意事项

有一点要注意,上述保障机制的重点在于数据库内的数字签名,如果数据库是不可靠的,则一切工作都丧失意义。所以在Tripwire生成数据库后,这个库文件的安全极为重要。比较常见的做法是将数据库文件, Tripwire二进制文件,配置文件单独保留到"可拿走并锁起来"的质上,如光盘,将上述文件复制到光盘后,关闭写保护口,锁到保险柜中。这样即使侵入者拿到盘也无计可施。除这种办法外,利用PGP等加密工具对上述关键文件进行数字签名也是一个很好的选择。

当然,当管理员自身对某些文件更动时, Tripwire的数据库必然是需要随之更新的, Tripwire考虑到了这一点,它有四种工作模式:数据库生成,完整性检查,数据库更新。交互更新。当管理员更动文件后,可运行数据库更新模式来产生新的数据库文件。

Tripwire只支持英文系统

单文件大于3G的时候执行tripwire –check 会出错,具体原因不明。

Tripwire Install

OS:CentOS

# http://sourceforge.net/projects/tripwire/
# install sendmail, wget
yum -y install gcc gcc-c++
cd /home
wget http://jaist.dl.sourceforge.net/project/tripwire/tripwire-src/tripwire-2.4.2.2/tripwire-2.4.2.2-src.tar.bz2
tar -xf tripwire-2.4.2.2-src.tar.bz2
cd tripwire-2.4.2.2-src
./configure --prefix=/home/tripwire

#在make install 期间,需要手动键入ENTER,阅读前言然后输入accept,接下来需要手动设置3组密匙口令 (建议:可以3组选同一个密码,请设置一个强力的口令,然后请牢记)

make && make install

# create database

/home/tripwire/sbin/tripwire --init

# 执行检查

/home/tripwire/sbin/tripwire --check

#设置 crontab

crontab -e
00 10 * * * su /home/tripwire/sbin/tripwire --check|mail -s "tripwire report" example@xiaomi.com

后续扩展:

收集多台tripwire报告,集中处理告警信息发送邮件通知相关人员,并按照每天的报告进行存档,方便日后查看。

最后相关人员收到的邮件如下:

标题:Tripwire Report
HI,All
文件完整性监控状态
hostname1    正常
hostname2 正常
hostname3 正常
hostname4 异常
hostname5 正常
hostname6 异常 异常的服务器请拷贝主机名,访问下面URL进行搜索查看详细信息。
http://tripwire.report.xiaomi.com/tripwire_2013-12-4.txt

最新文章

  1. Sqoop切分数据的思想概况
  2. SVN命令模式批量更新多个项目
  3. 魔改——MFC MDI程序 定制 文档模板 运行时全部打开 禁用关闭按钮
  4. JVM-内存分配与回收策略
  5. 开启MySQL慢查询日志
  6. "Principles of Reactive Programming" 之<Actors are Distributed> (3)
  7. h5标签canvas关于getImageData跨域的问题
  8. css两列布局,一边固定宽度,另一边自适应
  9. javascript遍历select下拉框判断其中值是否与指定值相等
  10. lda 主题模型--TOPIC MODEL--Gibbslda++结果分析
  11. [河南省ACM省赛-第三届] AMAZING AUCTION (nyoj 251)
  12. Linux: bash script
  13. Jquery之isPlainObject源码分析
  14. 好程序员web前端分享想要学习前端需要学那些课程
  15. ccf 201503-5 最小花费 这题交上去只有10分嗨!求大佬的题解啊
  16. nginx问题集锦
  17. lambda创建匿名函数
  18. 记录下pytorch代码从0.3版本迁移到0.4版本要做的一些更改。
  19. springJdbc(jdbcTemplate)事物拦截失效问题解决
  20. 3分钟学会git命令的基础使用

热门文章

  1. 微信小程序H5预览页面框架
  2. 树状数组模板--Color the ball
  3. 【python实现卷积神经网络】padding2D层实现
  4. JS生成随机颜色(rgb)
  5. 吾八哥学k8s(二):golang服务部署到kubernetes
  6. \r\n的意思
  7. Salesforce Admin考题解析 | 流程自动化考题与知识点拓展
  8. Python-元组tuple、列表list、字典dict
  9. 8行代码帮你python建立UDP通信
  10. Java SE —— 专栏总集篇