How to Install and Use Tripwire on Debian 11
If you’ve ever found yourself staring at a freshly‑patched system wondering whether that one rogue file is safe, Tripwire can be your silent guardian. In this guide I’ll walk you through getting the open‑source version up and running on Debian 11, then show you how to use it so you’re not left guessing about what changed and when.
1. Install the Package
sudo apt update sudo apt install tripwire tripwire-doc
The tripwire meta‑package pulls in everything you need: the engine, a sample configuration, and the documentation that explains the options. On Debian 11 it’s already community‑grade, so no extra licensing steps.
2. Generate Your Keys
Tripwire relies on cryptographic signatures to prove that your baseline database hasn't been tampered with. Run:
sudo tripwire --initdb -s
You’ll be prompted to create a password for the database and to confirm it later. Keep that password safe—forgetting it means you can’t run checks again.
3. Configure Policy Files
The default config lives at /etc/tripwire/tw.cfg. Open it in your favorite editor:
sudo nano /etc/tripwire/tw.cfg
Look for the policy_file line and make sure it points to /etc/tripwire/policy.txt. That policy file dictates which files Tripwire will monitor, what attributes to check (size, permissions, timestamps), and how aggressively it flags changes. If you’re a power user, tweak the list to include your custom scripts or exclude temp directories that churn frequently.
4. Initialize the Database Again with Policy
Now that policy is in place, rebuild the baseline:
sudo tripwire --initdb -c /etc/tripwire/tw.cfg -s
This populates /var/lib/tripwire with a snapshot of your system as it exists right now. Think of it as a "snapshot before you start messing around." If you ever need to roll back, you’ll have this clean slate.
5. Run an Initial Check
sudo tripwire --check -c /etc/tripwire/tw.cfg
Tripwire will walk through each file listed in the policy and compare it against your database. The first run usually reports a bunch of “new” entries—everything that didn’t exist before the baseline was taken. If you see any unexpected changes, investigate immediately; those are the red flags Tripwire is meant to catch.
6. Automate with cron (Optional)
If you don’t want to remember to run checks manually, add a cron job:
sudo crontab -e
Insert:
0 3 * /usr/sbin/tripwire --check -c /etc/tripwire/tw.cfg >> /var/log/tripwire.log 2>&1
This runs Tripwire every night at three a.m., logging any anomalies to /var/log/tripwire.log. Adjust the schedule to match your maintenance window.
7. Interpreting Reports
Tripwire’s output is plain text, but it can be hard to read at a glance. The key columns are:
- Change type: + for new files, - for deletions, * for modifications.
- Checksum: Shows if the file content changed.
- Timestamp: When the change was detected.
If you see an entry like:
* /etc/ssh/sshd_config MD5: a1b2c3d4e5f6g7h8i9j0
That means something altered your SSH configuration. Check the file, compare it to a backup or the baseline snapshot, and decide whether you need to roll back or accept the change.
8. Resetting the Baseline After Legitimate Changes
When you intentionally modify files (e.g., updating sudoers), run:
sudo tripwire --update -s
This rewrites the database to reflect your current state, preventing false positives on future scans.
9. Real‑World Scenario: Driver Update Gone Wrong
I once upgraded a network driver and Tripwire flagged a slew of new binaries in /lib/modules. The report said + for each file—meaning they were untracked before. I checked the checksum list, found the driver package had been partially corrupted, and rolled back to the previous module set. Without Tripwire, that corruption would have sat there silently until the network went down.
10. Common Pitfalls
- Leaving the default policy untouched can lead to huge reports from temporary directories (/tmp, /var/tmp). Exclude them or use a more selective policy.
- Not rotating logs: Tripwire writes to its log file but doesn’t manage rotation. Set up logrotate if you plan long‑term use.
- Ignoring the “new” entries on the first check—these are normal, but any “modified” entries should be examined.
That’s it! With Tripwire installed and a baseline in place, you’ve added an extra layer of forensic visibility to your Debian 11 system. Now you can focus on what really matters—building great software—while knowing that if something slips through, you’ll have the evidence to back up your claim.