Installare Tripwire su Ubuntu 16.04

Tripwire è un IDS basato su host (open source) che monitora l’integrità dei file e invia notifiche in caso di modifiche non autorizzate. Questa guida passo‑passo mostra come installare Tripwire su Ubuntu 16.04, generare chiavi, personalizzare la policy, aggiungere regole per siti web (es. /var/www), attivare notifiche via email e pianificare controlli automatici con cron.
Importante: mantenere al sicuro le passphrase di site-key e local-key; senza di esse non potrai rigenerare la policy né re‑inizializzare il database.
Che cos’è Tripwire
Tripwire è un sistema di rilevamento delle intrusioni (Host Based IDS) focalizzato sull’integrità dei file. Confronta lo stato corrente dei file con uno snapshot cifrato (database) e segnala aggiunte, modifiche o cancellazioni. Definizione breve: Tripwire = controllo dell’integrità + alerting.
Vantaggi principali
- Individua modifiche ai file di sistema, script e pagine web.
- Funziona offline e produce report leggibili.
- Integrazione con mail (Postfix) per notifiche.
Svantaggi e limiti (quando non basta)
- Non sostituisce un IDS di rete o un firewall applicativo.
- Può generare falsi positivi se la policy è troppo rigida.
- Richiede gestione delle chiavi e aggiornamento della policy per aggiornamenti legittimi.
Cosa faremo
- Installare Tripwire
- Configurare la policy per Ubuntu 16.04
- Verificare la configurazione e controllare l’integrità
- Aggiungere una regola per siti web (es. WordPress)
- Abilitare notifiche via email e creare un cron per controlli automatici
Prerequisiti
- Server Ubuntu 16.04 (accesso root o sudo)
- Connessione Internet per installare pacchetti
- Familiarità minima con vim/nano e con la shell
Passo 1 — Installare Tripwire
Aggiorna i repository e installa Tripwire dal repository ufficiale:
sudo apt update
sudo apt install -y tripwire
Durante l’installazione ti verrà chiesto di configurare Postfix. Se vuoi che il server invii email locali scegli “Internet Site” e conferma con “OK” quando richiesto.
Per il nome del sistema di posta lascia il valore di default e premi “OK”.
Tripwire installerà e poi ti chiederà di creare le chiavi:
- Genera la site-key (chiave di site) — rispondi Yes.
- Genera la local-key (chiave locale) — rispondi Yes.
Ti verrà chiesto di ricostruire la configurazione e la policy; rispondi Yes a entrambe le richieste.
Infine inserisci le passphrase per site-key e local-key (le digiti due volte ciascuna).
Al termine Tripwire è installato.
Passo 2 — Configurare la policy Tripwire per Ubuntu
Tutte le configurazioni Tripwire si trovano in /etc/tripwire. Dopo l’installazione è necessario inizializzare il database locale:
sudo tripwire --init
Ti verrà chiesta la passphrase local-key. Se ottieni un errore del tipo “No such directory” significa che la policy include path non esistenti sul sistema e va adattata.
Per trovare i path mancanti esegui:
sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
cat no-directory.txt
Apri il file di policy in /etc/tripwire/twpol.txt e modifica le regole che fanno riferimento a directory o file non presenti sul server.
cd /etc/tripwire/
sudo vim twpol.txt
Esempi di modifiche suggerite (commentare righe problematiche):
- Boot Scripts: commenta riferimenti a rc.boot se non esistono
(
rulename = "Boot Scripts",
severity = $(SIG_HI)
)
{
/etc/init.d -> $(SEC_BIN) ;
#/etc/rc.boot -> $(SEC_BIN) ;
/etc/rcS.d -> $(SEC_BIN) ;
- System Boot Changes: commenta /var/run o /var/lock se il tuo sistema non li usa nello stesso modo
(
rulename = "System boot changes",
severity = $(SIG_HI)
)
{
#/var/lock -> $(SEC_CONFIG) ;
#/var/run -> $(SEC_CONFIG) ; # daemon PIDs
/var/log -> $(SEC_CONFIG) ;
- Root config files: mantieni solo i file che vuoi realmente monitorare per evitare falsi positivi
(
rulename = "Root config files",
severity = 100
)
{
/root -> $(SEC_CRIT) ; # Catch all additions to /root
#/root/mail -> $(SEC_CONFIG) ;
/root/.bashrc -> $(SEC_CONFIG) ;
/root/.bash_history -> $(SEC_CONFIG) ;
- Device & Kernel information: molti entry in /proc sono dinamici; commenta quelli che causano problemi. Esempio:
(
rulename = "Devices & Kernel information",
severity = $(SIG_HI),
)
{
/dev -> $(Device) ;
/dev/pts -> $(Device);
/dev/shm -> $(Device);
/dev/hugepages -> $(Device);
/dev/mqueue -> $(Device);
#/proc -> $(Device) ;
/proc/devices -> $(Device) ;
/proc/net -> $(Device) ;
/proc/tty -> $(Device) ;
/proc/cpuinfo -> $(Device) ;
/proc/modules -> $(Device) ;
/proc/mounts -> $(Device) ;
/proc/dma -> $(Device) ;
/proc/filesystems -> $(Device) ;
/proc/interrupts -> $(Device) ;
/proc/ioports -> $(Device) ;
/proc/scsi -> $(Device) ;
/proc/kcore -> $(Device) ;
/proc/self -> $(Device) ;
/proc/kmsg -> $(Device) ;
/proc/stat -> $(Device) ;
/proc/loadavg -> $(Device) ;
/proc/uptime -> $(Device) ;
/proc/locks -> $(Device) ;
/proc/meminfo -> $(Device) ;
/proc/misc -> $(Device) ;
}
Dopo aver salvato le modifiche ricrea la policy cifrata con twadmin:
sudo twadmin -m P /etc/tripwire/twpol.txt
Ti verrà chiesta la passphrase site-key. Poi reinizializza il database:
sudo tripwire --init
Inserisci la passphrase local-key; se tutto è corretto non dovresti vedere l’errore precedente.
Nota: ogni volta che modifichi twpol.txt è necessario ricreare la policy e re-inizializzare il database.
Passo 3 — Controllare l’integrità dei file di sistema
Esegui una scansione manuale:
sudo tripwire --check
Output atteso: “No Violation” e “No Error” se non ci sono modifiche rilevate.
Per provare il rilevamento crea un file nel tuo home e riesegui la scansione:
cd ~/
touch hakase-labs.txt
sudo tripwire --check
Dovresti vedere una violazione che segnala l’aggiunta del file e la modifica della directory contenente.
Consigli per il debug
- Se vedi molti falsi positivi, rivedi la policy e commenta file temporanei o dinamici.
- Per risultati più leggibili, usa opzioni di reportistica o esporta su file.
Passo 4 — Aggiungere una nuova regola Tripwire
Per monitorare siti web (es. WordPress) aggiungi una regola per /var/www con severità alta.
Apri twpol.txt:
cd /etc/tripwire/
sudo vim twpol.txt
Aggiungi un blocco simile a questo alla fine della policy:
# Ruleset for Wordpress
(
rulename = "Wordpress Ruleset",
severity= $(SIG_HI)
)
{
/var/www -> $(SEC_CRIT);
}
Salva, rigenera la policy e reinizializza il database:
sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init
Esegui una modifica di prova sotto /var/www per verificare l’alert:
cd /var/www/
touch hakase-labs.txt
echo " Hakase-labs Tutorial
" > html/index.nginx-debian.html
sudo tripwire --check
Dovresti ricevere una violazione con livello di sicurezza 100 per modifiche critiche.
Suggerimenti
- Usa $(SEC_CRIT) per contenuti che non devono cambiare (file core).
- Per contenuti dinamici (uploads, cache) definisci regole separate con severity minore.
Passo 5 — Notifiche via email e automatizzare con cron
Tripwire supporta la direttiva emailto nella policy. Prima di tutto prova l’invio di test:
tripwire --test --email [email protected]
Controlla la tua casella di posta per il messaggio di prova.
Per inviare notifiche quando una regola viene violata, modifica twpol.txt e aggiungi emailto alla regola Wordpress:
# Rules for Web-app
(
rulename = "Wordpress Rule",
severity = $(SIG_HI),
emailto = [email protected]
)
Rigenera la policy e reinizializza il DB:
sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init
Per inviare manualmente il report via email dopo la verifica:
sudo tripwire --check --email-report
Dovresti ricevere un report nella casella indicata.
Per eseguire i controlli automaticamente ogni giorno crea una crontab per root:
sudo crontab -e -u root
Aggiungi la riga:
0 0 * * * tripwire --check --email-report
Salva, poi riavvia il servizio cron:
systemctl restart cron
Ora il sistema eseguirà un controllo giornaliero e invierà un report in caso di violazioni della regola Wordpress.
Controlli di sicurezza e hardening
- Proteggi le chiavi: limita i permessi su /etc/tripwire e sui file delle chiavi (600 o 640).
- Backup della site-key: conserva una copia offline sicura (non in chiaro su server).
- Aggiorna la policy dopo aggiornamenti di sistema e deployment di app.
- Audita l’accesso a /etc/tripwire: usa auditd se serve per tracciare modifiche amministrative.
Comandi utili per permessi:
sudo chown root:root /etc/tripwire/*
sudo chmod 600 /etc/tripwire/*.key
Nota: se il backup delle chiavi viene compromesso, rigenera le chiavi e ricrea la policy.
Diagnosi rapida: problemi comuni e soluzioni
- Errore “No such directory” durante –init: rimuovi/commenta path non esistenti in twpol.txt e rigenera la policy.
- Troppi falsi positivi: rilassa la policy per path dinamici (/proc, /var/run, cache).
- Nessuna email ricevuta: verifica Postfix (systemctl status postfix), controlla /var/log/mail.log.
- Permessi negati su /etc/tripwire: assicurati che root possieda i file e che le passphrase siano corrette.
Comando diagnostico per mail:
sudo systemctl status postfix
sudo tail -n 200 /var/log/mail.log
Alternative e approcci complementari
- AIDE: alternativa popolare per il controllo dell’integrità dei file.
- OSSEC / Wazuh: per rilevamento host con funzionalità HIDS + log analysis.
- Auditd + syslog: per tracciare eventi di sistema a livello kernel.
Quando preferire Tripwire
- Hai bisogno di report di integrità dei file ben formattati.
- Vuoi una soluzione leggera con gestione delle policy cifrate.
Quando preferire altro
- Se serve correlazione eventi su più host e regole centralizzate, valuti OSSEC/Wazuh.
Playbook di risposta a un alert Tripwire (runbook)
- Ricevuta la notifica, classificare l’alert (severity).
- Se severity alta, isolare la macchina dalla rete (se sospetti compromissione).
- Eseguire backup forense: copia del disco, snapshot, log.
- Confrontare il report Tripwire con l’ultimo deployment/aggiornamento conosciuto.
- Se cambiamento legittimo, aggiornare la policy e rigenerare il database.
- Se malevolo, rimuovere compromissione, ripristinare da backup sicuro e cambiare credenziali.
Checklist rapida per l’analista
- Quali file sono stati modificati?
- Quando è avvenuta la modifica?
- Chi ha eseguito il comando (controllare audit/log)?
- È presente attività di rete sospetta?
Test di accettazione e casi di prova
Casi di test minimi per validare l’installazione:
- Test di inizializzazione: sudo tripwire –init -> nessun errore.
- Test di controllo clean: sudo tripwire –check -> No Violation.
- Test di rilevamento aggiunta file: creare file in /tmp e verificare violazione per path monitorati.
- Test di regola WordPress: modificare /var/www/index.* e verificare alert email.
- Test cron: attendere esecuzione pianificata e verificare invio report.
Criteri di accettazione
- Tripwire rileva e segnala modifiche previste.
- Le notifiche email vengono recapitate correttamente.
- Le policy aggiornate possono essere rigenerate e applicate senza errori.
Maturità: livelli di adozione della protezione con Tripwire
- Base: installazione e scansione manuale.
- Intermedio: regole specifiche per applicazioni critiche, notifiche email, scansioni automatiche.
- Avanzato: integrazione con SIEM, processi di risposta agli incidenti documentati, cifratura e backup sicuro delle chiavi.
Modelli mentali e best practice
- Tratta la policy come codice: versionala, revisiona le modifiche e testale in ambiente di staging.
- Differenzia tra file statici (core) e dinamici (cache) per minimizzare falsi positivi.
- Automazione: usa cron o orchestration per scansioni regolari e integrazione con sistemi di ticketing.
Decision tree: scegliere Tripwire o altro (Mermaid)
flowchart TD
A[Hai bisogno di controllo dell'integrità dei file?] -->|Sì| B{Hai più host e vuoi centralizzare}
B -->|No| C[Tripwire o AIDE locale]
B -->|Sì| D[Wazuh/OSSEC + server centrale]
A -->|No| E[Valuta firewall o NIDS]
Tabelle e template utili
Template crontab (root):
# Esegui Tripwire ogni giorno a mezzanotte
0 0 * * * /usr/bin/tripwire --check --email-report
Snippet per proteggere chiavi:
sudo chown root:root /etc/tripwire/*
sudo chmod 600 /etc/tripwire/*.key
Esempio di regola con email e severità moderata:
(
rulename = "Uploads Rule",
severity = $(SIG_MED),
emailto = [email protected]
)
{
/var/www/uploads -> $(SEC_CONFIG);
}
Privacy e note GDPR
- I report Tripwire contengono percorsi di file e metadati di sistema. Evita di inviare report contenenti dati personali a caselle non protette.
- Conserva i backup dei log con accesso limitato e policy di retention compatibili con i requisiti legali.
Compatibilità e migrazione
- Ubuntu 16.04 è una release più datata: valuta migrazione a LTS più recente (18.04, 20.04 o 22.04) per supporto a lungo termine e pacchetti aggiornati.
- In ambienti moderni potresti preferire soluzioni integrate con container/Orchestrator.
Riepilogo
- Tripwire fornisce controllo dell’integrità dei file e alerting utile per individuare modifiche non autorizzate.
- Installazione e configurazione su Ubuntu 16.04 includono generazione chiavi, adattamento della policy, rigenerazione con twadmin, e re-inizializzazione.
- Aggiungi regole dedicate per applicazioni (es. WordPress), abilita emailto per notifiche e automatizza con cron.
Note finali
- Mantieni le chiavi al sicuro.
- Rivedi regolarmente la policy per ridurre falsi positivi.
- Considera integrazioni con SIEM e piattaforme di orchestration per processi di sicurezza maturi.
Glossario in una riga
- site-key: chiave pubblica/privata usata per cifrare la policy.
- local-key: chiave privata locale per il database del sistema.
- twadmin: utility per gestire e compilare le policy.
- $(SEC_CRIT)/$(SIG_HI): macro Tripwire per livello di sicurezza e gravità.
Riferimenti
Materiali simili
Installare Apache Cassandra su CentOS 7

Trakkboard: client desktop per Google Analytics

Come installare file .sh su Linux

Tastiera iPad divisa: come ripristinare e prevenire

Giocare senza Internet: modalità e consigli
