#format wiki #language en Tripwire is a tool that keeps a database of information about files on the server. It performs regular checks and reports about files that have been changed, deleted, created, or renamed. == Automatic Check == Cron runs `/etc/cron.daily/tripwire` once a day. This invokes tripwire as `/usr/sbin/tripwire --check --quiet`. The meaning of the parameters: * `--check` causes the program to compare the current files in the system with the recorded attributes in the database, save a signed binary report file, and print a text report to stdout (which is mailed by cron) * `--quiet` tells it not to print a lot of stuff while it is working == Configuration Files `/etc/tripwire` == * `fyodor.hcoop.net-local.key` is a cryptographic key used to sign the database and reports * `site.key` is a cryptographic key used to sign the configuration and policy files * `tw.cfg` is a signed binary file that holds configuration information * `twcfg.txt` is the text source of tw.cfg * `tw.pol` is a signed binary file that holds the logging and reporting policy information * `twpol.txt` is the text source of tw.pol == Data Files `/var/lib/tripwire` == * `fyodor.hcoop.net.twd` is the signed tripwire database, storing information about every monitored file * `reports/` holds the signed binary reports == Updating the Database == The check operation creates a signed binary report file every time it runs. This report is like a "diff" of the database and the current file system. The database is updated by "patching" it with the report. Here is the procedure: 1. The command is `tripwire --update` 1. If it complains that the file could not be opened then you must specify the report file with the `-r` option. Choose the file with the most recent timestamp. The timestamp is included in the filename so use tab-completion. Example: `tripwire --update -r /var/lib/tripwire/report/fyodor.hcoop.net-20051023-065438.twr` 1. This will open a selection file in the `pico` editor. Look through the file and clear the `[x]` for any line that should not be saved to the database. The process is essentially certifying that each filesystem change is valid and proper. 1. Save the file with ^O (Control-Oh) 1. Quit with ^X (Control-x) 1. Now you will be prompted for the local passphrase. == Changing the Policy == 1. First follow the instructions to Update the Database 1. change to `/etc/tripwire` 1. edit the policy in `twpol.txt` 1. create the signed binary tw.pol file with `tripwire --update-policy --secure-mode low twpol.txt` 1. you will be prompted for the site and local passphrases == Updating the Configuration == 1. change to `/etc/tripwire` 1. edit the configuration in `twcfg.txt` 1. run `twadmin --create-cfgfile -S site.key -c tw.cfg twcfg.txt` to create the signed binary tw.cfg file 1. you will be prompted for the site passphrase == Passphrases == MichaelLeonhard generated the passphrases. To obtain them, save your public key to /root/$(USER).pubkey. Then send Michael an email about it. He will encrypt the passphrases and email them to you. The security of Tripwire depends on these passphrases. DO NOT store your private key or decrypt the passphrases on Fyodor. Here is the procedure: 1. Download the latest version of [[http://www.gnupg.org/|GnuPG]] to your personal computer 1. Check the signature of the downloaded file 1. Install GnuPG onto your personal computer 1. On your personal computer, create a public/private key pair with `gpg --gen-key`, use a good passphrase 1. Export an ASCII version of your public key with `gpg --export -a >> public.key` 1. Copy your public key to your home directory on Fyodor with `scp public.key username@fyodor.hcoop.net:` 1. SSH into Fyodor and demonstrate your administrative priveleges by copying the public key to a secure location, `cp ~/public.key /root/username.pubkey` (where username is your username) 1. Email MichaelLeonhard (username leonhard) to request a copy of the passphrases 1. Decrypt the passphrase: * Read Michael's email on your personal computer, copy the PGP MESSAGE section to the clipboard * Open a terminal (or cmd prompt) on your personal computer and run `gpg` on your personal computer * Paste the GPG message block into the terminal * Type your secret passphrase, hit enter, then type ^Z (CTRL-Z) * Write down the passphrases that are printed out * Close the terminal Please note how "your personal computer" appears throughout these instructions. Your private key and the decrypted passphrases should only exist on your personal computer. Thanks for caring about security. --MichaelLeonhard ---- CategorySystemAdministration