Guida alle tecnologie

Installare Tripwire su Ubuntu 16.04

9 min read Sicurezza Aggiornato 21 Oct 2025
Installare Tripwire su Ubuntu 16.04
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

  1. Installare Tripwire
  2. Configurare la policy per Ubuntu 16.04
  3. Verificare la configurazione e controllare l’integrità
  4. Aggiungere una regola per siti web (es. WordPress)
  5. 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.

Schermata configurazione Postfix

Per il nome del sistema di posta lascia il valore di default e premi “OK”.

Schermata nome sistema mail

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.

Tripwire site key

Tripwire local-key

Ti verrà chiesto di ricostruire la configurazione e la policy; rispondi Yes a entrambe le richieste.

Rebuild tripwire configuration

Rebuild tripwire policy

Infine inserisci le passphrase per site-key e local-key (le digiti due volte ciascuna).

Inserire site-key

Ripetere site-key

Inserire local-key

Ripetere local-key

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.

Errore inizializzazione

Per trovare i path mancanti esegui:

sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
cat no-directory.txt

Mostra elenco no-directory

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.

Reinizializzazione DB Tripwire

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.

Eseguire scansione tripwire

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.

Risultato scansione tripwire

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.

Aggiungere regola Tripwire

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.

Ricevere notifiche Tripwire via email

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.

Report Tripwire via email

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

Configurare cron Tripwire

Ora il sistema eseguirà un controllo giornaliero e invierà un report in caso di violazioni della regola Wordpress.

Modifica crontab


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)

  1. Ricevuta la notifica, classificare l’alert (severity).
  2. Se severity alta, isolare la macchina dalla rete (se sospetti compromissione).
  3. Eseguire backup forense: copia del disco, snapshot, log.
  4. Confrontare il report Tripwire con l’ultimo deployment/aggiornamento conosciuto.
  5. Se cambiamento legittimo, aggiornare la policy e rigenerare il database.
  6. 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:

  1. Test di inizializzazione: sudo tripwire –init -> nessun errore.
  2. Test di controllo clean: sudo tripwire –check -> No Violation.
  3. Test di rilevamento aggiunta file: creare file in /tmp e verificare violazione per path monitorati.
  4. Test di regola WordPress: modificare /var/www/index.* e verificare alert email.
  5. 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

Autore
Redazione

Materiali simili

Installare Apache Cassandra su CentOS 7
Database

Installare Apache Cassandra su CentOS 7

Trakkboard: client desktop per Google Analytics
Web Analytics

Trakkboard: client desktop per Google Analytics

Come installare file .sh su Linux
Linux

Come installare file .sh su Linux

Tastiera iPad divisa: come ripristinare e prevenire
Guide iPad

Tastiera iPad divisa: come ripristinare e prevenire

Giocare senza Internet: modalità e consigli
Giochi

Giocare senza Internet: modalità e consigli

File CBS in Windows: visualizzare e cancellare
Windows

File CBS in Windows: visualizzare e cancellare