Tripwire 主要功能是將檔案製作指紋資料庫,當發現某檔案的指紋被變更時才有辦法即時知道。
環境:
- CentOS release 5.8 i386 (Final)
- 目前無法使用 yum安裝,必須到 http://sourceforge.net/projects/tripwire/files/ 下載 rpm 自行安裝。
- 進入 / tripwire-rpms / centos5 / 2.4.2.2 / 目錄,依照系統(32/64 bits)選擇需要的安裝檔。
- # rpm -i tripwire-2.4.2.2-1.el5.i386.rpm
目錄架構:
- 主目錄:/etc/tripwire
- twcfg.txt:可用來設定 tripwire 的工作環境,可依照你的習慣來調整。
- twpol.txt:指定 tripwire 對哪些檔案的哪些項目進行監控。
- twcfg.txtROOT =/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 =/bin/vi
 LATEPROMPTING =false
 LOOSEDIRECTORYCHECKING =false
 MAILNOVIOLATIONS =true
 EMAILREPORTLEVEL =3
 REPORTLEVEL =3
 MAILMETHOD =SENDMAIL
 SYSLOGREPORTING =false
 MAILPROGRAM =/usr/sbin/sendmail -oi -tGLOBALEMAIL ="root@localhost,root@192.168.1.25"
- DBFILE 為指紋資料庫之檔名
- REPORTFILE 為檢測報告檔之檔名。
- twpol.txt
 內容太多了,省略....
 重點在於 rulename、severity 群組內的設定。( 
 rulename = "Invariant Directories",
 severity = $(SIG_MED)
 )
 {
 / -> $(SEC_INVARIANT) (recurse = 0) ;
 /home -> $(SEC_INVARIANT) (recurse = 0) ;
 /etc -> $(SEC_INVARIANT) (recurse = 0) ;
 }
- 基本上可以直接套用預設值。
- 也可以另外自己創造新的群組,例如我要監控 /var/www 內的網頁資料。
 (
 rulename = "WWW",
 severity = 100
 )
 {
 /var/www/html -> $(SEC_CRIT) ;
 }
- 設定密碼:- # tripwire-setup-keyfiles
- 執行過程中會要求你設定兩個密碼(pass phrase):
- site pass phrase :加密 twpol.txt 及 twcfg.txt 時用。
- local pass phrase:加密指紋資料庫時用。
 
- 從twcfg.txt生成加密配置文件tw.cfg
 # twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
 此時會提示「Please enter your site passphrase」
- 用twadmin對策略文件進行語法檢查
 # twadmin -m P /etc/tripwire/twpol.txt
 此時會提示「Please enter your site passphrase」
- tripwire數據庫初始化
 # tripwire --init
 會跑1-3分鐘。
- 測試email電子郵件通知功能
 # tripwire -m c | mail -s “Tripwire Daily Report from {$HOSTNAME}” root@localhost ((打上自己的email)
- 定時檢查- 在 /etc/cron.daily/ 下新增 script: (tw-check)
 #!/bin/bash
 /usr/sbin/tripwire -m c | mail -s “Tripwire Daily Report from {$HOSTNAME}” root@localhost
 
- 在 /etc/cron.daily/ 下新增 script: (tw-check)
- 第一次執行 # tripwire -m c | mail -s “Tripwire Daily Report from {$HOSTNAME}”  root@localhost   時:
 Parsing policy file: /etc/tripwire/tw.pol
 *** Processing Unix File System ***
 Performing integrity check...
 Wrote report file: /var/lib/tripwire/report/202-3-168-16-static.unigate.net. tw-20130205-013834.twr 
 Open Source Tripwire(R) 2.4.2.2 Integrity Check Report
 Report generated by: root
 Report created on: 西元2013年02月05日 (週二) 01時38分34秒
 Database last updated on: Never
 ============================================================ 
 Report Summary:
 ============================================================ 
 Host name: oooooooo
 Host IP address: Unknown IP
 Host ID: None
 Policy file used: /etc/tripwire/tw.pol
 Configuration file used: /etc/tripwire/tw.cfg
 Database file used: /var/lib/tripwire/oooooooo.twd
 Command line used: tripwire -m c
 ============================================================ 
 Rule Summary:
 ============================================================ 
 ------------------------------------------------------------ ------------------- 
 Section: Unix File System
 ------------------------------------------------------------ ------------------- 
 Rule Name Severity Level Added Removed Modified
 --------- -------------- ----- ------- --------
 Invariant Directories 66 0 0 0
 Temporary directories 33 0 0 0
 * Tripwire Data Files 100 1 0 0
 Critical devices 100 0 0 0
 User binaries 66 0 0 0
 Tripwire Binaries 100 0 0 0
 Critical configuration files 100 0 0 0
 Libraries 66 0 0 0
 Operating System Utilities 100 0 0 0
 Critical system boot files 100 0 0 0
 File System and Disk Administraton Programs
 100 0 0 0
 Kernel Administration Programs 100 0 0 0
 Networking Programs 100 0 0 0
 System Administration Programs 100 0 0 0
 Hardware and Device Control Programs
 100 0 0 0
 System Information Programs 100 0 0 0
 Application Information Programs
 100 0 0 0
 Shell Related Programs 100 0 0 0
 Critical Utility Sym-Links 100 0 0 0
 Shell Binaries 100 0 0 0
 System boot changes 100 0 0 0
 WWW 100 0 0 0
 (/var/www/html)
 OS executables and libraries 100 0 0 0
 Security Control 100 0 0 0
 Login Scripts 100 0 0 0
 Root config files 100 0 0 0
 Total objects scanned: 18817
 Total violations found: 1
 ============================================================ 
 Object Summary:
 ============================================================ 
 ------------------------------------------------------------ ------------------- 
 # Section: Unix File System
 ------------------------------------------------------------ ------------------- 
 ------------------------------------------------------------ ------------------- 
 Rule Name: Tripwire Data Files (/var/lib/tripwire)
 Severity Level: 100
 ------------------------------------------------------------ ------------------- 
 Added:
 "/var/lib/tripwire/oooooooo.bak" 
 ============================================================ 
 Error Report:
 ============================================================ 
 ------------------------------------------------------------ ------------------- 
 Section: Unix File System
 ------------------------------------------------------------ ------------------- 
 1. File system error.
 Filename: /dev/kmem
 \xe6\xb2\x92\xe6\x9c\x89\xe6\xad\xa4\xe4\xb8\x80\xe6\xaa\ x94\xe6\xa1\x88\xe6\x88\x96\ xe7\x9b\xae\xe9\x8c\x84 
 2. File system error.
 Filename: /proc/ksyms
 \xe6\xb2\x92\xe6\x9c\x89\xe6\xad\xa4\xe4\xb8\x80\xe6\xaa\ x94\xe6\xa1\x88\xe6\x88\x96\ xe7\x9b\xae\xe9\x8c\x84 ====略====------------------------------ ------------------- 
 *** End of report ***
 Open Source Tripwire 2.4 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered
 trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY;
 for details use --version. This is free software which may be redistributed
 or modified only under certain conditions; see COPYING for details.
 All rights reserved.
 Integrity check complete.
- 修改 /var/www/html/index.php 之後
 Open Source Tripwire(R) 2.4.2.2 Integrity Check Report
 Report generated by: root
 Report created on: 西元2013年02月05日 (週二) 01時49分02秒
 ------------------------------ ------------------- 
 Rule Name: WWW (/var/www/html)
 Severity Level: 100
 ------------------------------------------------------------ ------------------- 
 Modified:
 "/var/www/html"
 "/var/www/html/index.php"
 ------------------------------------------------------------ ------------------- 
 Rule Name: Root config files (/root)
 Severity Level: 100
 ------------------------------------------------------------ ------------------- 
 Modified:
 "/root"
 "/root/.viminfo"
