• Linux下文件完整性监控工具Tripwire详解


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

    软件特点

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

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

    Tripwire原理

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

    Tripwire的基本操作

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

    tripwire

    当第一次运行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
  • 相关阅读:
    一个比较日期大小的javascript函数
    导出Excel(利用xml标记)
    Oracle 数据库的备份与恢复
    总是浮在页面底部的广告DIV
    实用批处理文件 (IP设置.bat, 清理系统垃圾.bat, atc.)
    【转:来源不详】几家IT公司面试全揭秘
    二级联动(javascript Array)
    JS实现定时循环上翻
    ORACLE函数大全 [转]
    C#中Timer类与线程
  • 原文地址:https://www.cnblogs.com/xiami2046/p/12664740.html
Copyright © 2020-2023  润新知