Tripwire Tutorial
Tripwire Tutorial
com/2008/12/tripwire-tutorial-linux-host-based-intrusion-detection-system/
1. Download Tripwire
Download the latest tripwire open source version from tripwire sourceforget project website. Extract the tripwire source code to the /usr/src directory as shown below.
# cd /usr/src # wget http://internap.dl.sourceforge.net/sourceforge/tripwire/tripwire2.4.1.2-src.tar.bz2 # bzip2 -d tripwire-2.4.1.2-src.tar.bz2 # tar xvf tripwire-2.4.1.2-src.tar
2. Install Tripwire
Use the prefix option as shown below to specify the installation directory. In this example, Ive installed tripwire under /opt/tripwire. During make install, it will prompt you for various user inputs, that are highlighted in red below.
# cd tripwire-2.4.1.2-src # ./configure --prefix=/opt/tripwire # make # make install make[3]: Entering directory `/usr/src/tripwire-2.4.1.2-src' prefix="/opt/tripwire" sysconfdir="/opt/tripwire/etc" \
path_to_vi="/bin/vi" path_to_sendmail="/usr/sbin/sendmail" \ ./install/install.sh Installer program for: Tripwire(R) 2.4 Open Source LICENSE AGREEMENT for Tripwire(R) 2.4 Open Source Please read the following license agreement. You must accept the agreement to continue installing Tripwire. Press ENTER to view the License Agreement. [Note: Press enter key as instructed to view the license] Please type "accept" to indicate your acceptance of this license agreement. [do not accept] accept [Note: Type accept to accept the license] This program will copy Tripwire files to the following directories: TWBIN: /opt/tripwire/sbin TWMAN: /opt/tripwire/man TWPOLICY: /opt/tripwire/etc TWREPORT: /opt/tripwire/lib/tripwire/report TWDB: /opt/tripwire/lib/tripwire TWSITEKEYDIR: /opt/tripwire/etc TWLOCALKEYDIR: /opt/tripwire/etc CLOBBER is false. Continue with installation? [y/n] y [Note: Press y to continue the installation] The Tripwire site and local passphrases are used to sign a variety of files, such as the configuration, policy, and database files. (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: [Note: Assign a passphrase for site keyfile.] Generating key (this may take several minutes)...Key generation complete. (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 local keyfile passphrase: Verify the local keyfile passphrase: [Note: Assign a passphrase for local keyfile.] Creating signed configuration file... Please enter your site passphrase: Wrote configuration file: /opt/tripwire/etc/tw.cfg [Note: Enter the site passphrase.] Creating signed policy file... Please enter your site passphrase: Wrote policy file: /opt/tripwire/etc/tw.pol [Note: Enter the site passphrase] The installation succeeded.
Site passphrase will secure the tw.cfg tripwire configuration file and tw.pol tripwire policy file. You have to assign a site passphrase even for a single instance tripwire. Local passphrase will protect tripwire database and report files.
/mnt
-> $(Dynamic) ;
Using the tripwire policy files you can define the directories and files that needs to be monitored for the changes. You can also be more granular and specify the file attributes that should be either monitored or ignored. Following are some of the UNIX system properties that are monitored by tripwire.
File addition, deletion and modification File permissions and properties Access timestamp Modification timestamp File type and file size User id of owner and group id of owner Hash checking: CRC-32, POSIX 1003.2 compliant 32-bit Cyclic Redundancy Check; MD5, the RSA Security Message Digest Algorithm; SHA, part of the SHS/SHA algorithm; HAVAL, a strong 128-bit signature algorithm
Note: if any files has been modified from the time youve done the tripwire initialization until the tripwire update policy, they will be listed under the Step 1: Gathering information for the new policy output of the above command.
### Warning: Policy Update Changed Object. ### An object has been changed since the database was last updated. ### Object name: Conflicting properties for object ### /u01/app/oracle/oradata/dbfiles/prod01.dbf ### > Modify Time
6. Check for any changes to the files and update tripwire database.
Once the tripwire setup is completed, you should regularly perform checks to find out what files where added or modified from the last time the tripwire database was updated. You can perform this check interactively from command line as shown below.
# ./tripwire --check --interactive Parsing policy file: /opt/tripwire/etc/tw.pol *** Processing Unix File System *** Performing integrity check... Wrote report file: /opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr
This will automatically open the following tripwire report file in the vi, where you can review all the files that has been added or modified to the system. As shown below, the Added and Modified files will have a check mark in front of them, indicating that you are accepting these changes to be updated to the tripwire database.
======================================================================= ======== Report Summary: ======================================================================= ======== Host name: prod-db-srv Host IP address: 192.168.1.10 Host ID: None Policy file used: /opt/tripwire/etc/tw.pol Configuration file used: /opt/tripwire/etc/tw.cfg Database file used: /opt/tripwire/lib/tripwire/prod-db-srv.twd Command line used: ./tripwire --check --interactive Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Added: [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc" [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trm" Modified: [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_CONFIG.ams" [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_INFO.ams"
Added object name: /u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc Property: ------------* Object Type * Device Number * Inode Number * Mode * Num Links * UID * GID * Size * Modify Time 10:01:51 AM PST * Blocks * CRC32 * MD5 AXSkOul8R/np0fQP4q3QLv Expected ----------------------------------Observed ----------Regular File 2049 12026017 -rw-r----1 oracle (1082) oinstall (1083) 837 Sat 06 Dec 2008 8 AYxMeo
Modified object name: /u01/app/oracle/diag/tnslsnr/proddb/listener/trace/listener.log Property: ------------Object Type Device Number Inode Number Mode Num Links UID GID * Size * Modify Time Expected ----------Regular File 2049 2295281 -rw-r----1 oracle (1082) oinstall (1083) 5851880 Sat 06 Dec 2008 09:58:53 AM Observed ----------Regular File 2049 2295281 -rw-r----1 oracle (1082) oinstall (1083) 5858608 PST Sat 06 Dec 2008 11472 CK+bWM
Please enter your local passphrase: Incorrect local passphrase. Please enter your local passphrase: Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd
/tmp/readable-output.txt
Use twadmin to get information about all the tripwire configuration files as shown below.
# ./twadmin --print-cfgfile ROOT =/opt/tripwire/sbin POLFILE =/opt/tripwire/etc/tw.pol DBFILE =/opt/tripwire/lib/tripwire/$(HOSTNAME).twd REPORTFILE =/opt/tripwire/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr SITEKEYFILE =/opt/tripwire/etc/site.key LOCALKEYFILE =/opt/tripwire/etc/prod-db-srv-local.key EDITOR =/bin/vi LATEPROMPTING =false LOOSEDIRECTORYCHECKING =false MAILNOVIOLATIONS =true EMAILREPORTLEVEL =3 REPORTLEVEL =3 MAILMETHOD =SENDMAIL SYSLOGREPORTING =false MAILPROGRAM =/usr/sbin/sendmail -oi -t