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

Linux下文件完整性监控工具Tripwire详解的更多相关文章

  1. linux下文件打包、压缩详解

    Linux平台下,有如下几种常见的压缩工具: ========================================================================= 工 具 ...

  2. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  3. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

  4. 莱特币ltc在linux下的多种挖矿方案详解

    莱特币ltc在linux下的多种挖矿方案详解 4.0.1 Nvidia显卡Linux驱动Nvidia全部驱动:http://www.nvidia.cn/Download/index.aspx?lang ...

  5. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  6. Linux 下的dd命令使用详解(摘录)

    一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. ...

  7. Linux下的压缩解压缩命令详解

    linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o - ...

  8. Linux 下的dd命令使用详解(摘录)【转】

    转自:https://www.cnblogs.com/jikexianfeng/p/6103500.html 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意 ...

  9. Linux下的压缩解压缩命令详解及实例

    实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ====================== ...

随机推荐

  1. gcc/g++堆栈保护技术

      最近学习内存分布,通过gdb调试发现一些问题,栈空间变量地址应该是从高往低分布的,但是调试发现地址虽然是从高往低分布,但是变量地址的顺序是乱的,请教同事他说可能是gcc/g++默认启用了堆栈保护, ...

  2. matplotlib TransformNode类

    TransformNode 是所有参与变换的类和所有需要无效自己或祖先的类的基类 方法: __init__(shorthand_name=None): 参数 [shorthand_name]: 别名 ...

  3. CentOS 7 yum安装 k8s 创建Pod一直处于ContainerCreating状态 问题解决

    问题描述 使用CentOS7的 yum 包管理器安装了 Kubernetes 集群,使用 kubectl 创建服务成功后,执行 kubectl get pods,发现AGE虽然在不断增加,但状态始终不 ...

  4. Python 操作mysql数据库之 SQLAlchemy 案例详解

      前言: 字段声明类型中,最右边的是数据库中对应的字段,我们依然可以使用,其左边的的 SQLAchemy 则是其自身封装的自定义类型. 本篇不会讲太多的理论知识,因为这个实用性更强,所以通篇全部都是 ...

  5. AQS系列(七)- 终篇:AQS总结

    前言 本文是对之前AQS系列文章的一个小结,首先看看以下几个问题: 1.ReentrantLock和ReentrantReadWriteLock的可重入特性是如何实现的? 2.哪个变量控制着锁是否被占 ...

  6. Salesforce Admin考题解析 | 流程自动化考题与知识点拓展

    [题目1] A record is modified on 1/1/2008. It meets criteria for a time-based workflow rule; this rule ...

  7. 如何批量修改文件后缀名,python来帮你

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  8. python批量爬取动漫免费看!!

    实现效果 运行环境 IDE VS2019 Python3.7 Chrome.ChromeDriver Chrome和ChromeDriver的版本需要相互对应 先上代码,代码非常简短,包含空行也才50 ...

  9. A - Chat Group Gym-101775A

    题目连接:https://codeforces.com/gym/101775/problem/A 题解:就是累加组合数 但是直接由K累加到N肯定会TLE ,所以我们不妨判断不能组成group的情况,即 ...

  10. Project configuration is not up-to-date with pom.xml.错误

    完整错误信息:Description Resource Path Location TypeProject configuration is not up-to-date with pom.xml. ...