Tripwire
Versioni Compatibili Tutte le versioni supportate di Debian |
Tripwire è un IDS (intrusion Detection System), cioè un software in grado di verificare l'integrità del sistema.
Nel caso di intrusioni a seguito di attacco e quindi di modifiche malevole e non autorizzate, esso è in grado di comunicare in tempo reale all'amministratore tutte quelle specifiche necessarie ad identificare il problema e a porvi rimedio.
Installazione
Per installare Tripwire:
# apt-get install tripwire
durante il processo di installazione verranno create le chiavi utili per la cifratura dei dati sensibili relativi a Tripwire
Il sistema richiederà l'inserimento della site key passphrase e della local keyfile passphrase che serviranno a "firmare" una serie di file sensibili come quelli di configurazione, quelli relativi alle policy, quelli relativi al database, etc.
Inizializzazione database
Al primo utilizzo (e solo in questa occasione) si deve inizializzare il database di Tripwire in modo da "fotografare" lo stato del sistema:
# tripwire --init Please enter your local passphrase:
inserita la passphrase scelta durante la fase di installazione, il sistema procederà all'inizializzazione del database (operazione che può anche risultare abbastanza lunga) e al termine visualizzerà un messaggio del tipo:
Wrote database file: /var/lib/tripwire/deb-server.twd The database was successfully generated.
Da questo momento in poi sarà possibile eseguire Tripwire per verificare l'integrità del sistema, non prima però di aver impostato i permessi corretti su alcuni file e directory:
# chmod 0600 /etc/tripwire/tw.cfg # chmod 0600 /etc/tripwire/tw.pol # chmod 0500 /usr/sbin/tripwire /usr/sbin/twprint /usr/sbin/siggen # chmod -R u=rwX,go-rwx /var/lib/tripwire
Anche questa, ovviamente, è un'operazione da compiere solamente una volta.
Controllo del sistema
Per avviare il controllo della verifica dell'integrità di sistema:
# tripwire --check
Al termine dell'esecuzione viene visualizzato il messaggio:
Integrity check complete.
Il report relativo al check effettuato sarà visualizzabile con il comando:
# twprint --print-report --twrfile /var/lib/tripwire/report/myvps-20111016-190643.twr
Notifiche all'amministratore di sistema
Per chi amministra uno o più sistemi risulta sicuramente utile ricevere via email i report dei controlli effettuati e gli avvisi in tempo reale in caso di problemi gravi piuttosto che loggarsi continuamente e controllare i report o i log "manualmente".
Per prima cosa impostiamo il servizio di posta che consentirà al sistema l'invio delle email all'amministratore:
# apt-get install ssmtp
modifichiamo opportunamente il file di configurazione per impostare i parametri necessari all'invio della corrispondenza modificando il file /etc/ssmtp/ssmtp.conf:
# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=postmaster # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=smtp.somedomain.org:port # Where will the mail seem to come from? #rewriteDomain= # The full hostname #hostname=deb-server # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address #FromLineOverride=YES UseSTARTTLS=YES AuthUser=nomeutente AuthPass=passwordutente FromLineOverride=YES
dove a smtp.somedomain.org:port sostituiremo i parametri relativi al server smtp e relativa porta che utilizzeremo per l'invio dei messaggi di posta e ad AuthUser e AuthPass le crdenziali dell'utente autorizzato agli invii.
Modifichiamo il file /etc/tripwire/twcfg.txt in modo da informare Tripwire riguardo al servizio di posta da utilizzare:
... ... MAILMETHOD =SENDMAIL MAILPROGRAM =/usr/lib/sendmail -oi -t ... ...
Ricreiamo il file tw.cfg:
# twadmin -m F -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt Please enter your site passphrase: Wrote configuration file: /etc/tripwire/tw.cfg
e verifichiamo infine il corretto funzionamento:
# tripwire --test --email amministratore@admindomain.com
Se tutto è andato bene, nella casella postale amministratore@admindomain.com sarà recapitata una email di Tripwire:
Date: Sun, 16 Oct 2011 19:15:17 +0000 From: "Open Soure Tripwire(R) 2.4.1.2" <someuser@somedomain.org> To: amministratore@admindomain.com Subject: Test email message from Tripwire If you receive this message, email notification from tripwire is working correctly.
Possiamo impostare cron in modo che giornalmente il sistema invii il report riguardante il check di Tripwire. Per far questo, dato il comando:
# crontab -e
aggiungeremo le righe:
MAILTO=amministratore@admindomain.com 00 05 * * * /usr/sbin/tripwire --check
e ogni giorno alle 5.00 AM verrà spedito il report relativo al controllo di integrità di sistema all'indirizzo specificato.
Un ulteriore tweak potrebbe essere quello relativo all'invio in tempo reale all'amministratore di un messaggio nel caso di violazione grave di una delle policy di sicurezza. In questo modo è possibile intervenire tempestivamente non appena ricevutane notizia.
Per ottenere questo modifichiamo il file delle policy /etc/tripwire/twpol.txt relativamente alle sezioni di nostro interesse in modo da ottenere qualcosa del genere:
... ... # # Tripwire Binaries # ( rulename = "Tripwire Binaries", severity = $(SIG_HI), emailto = amministratore@admindomain.com ) ... ...
Aggiorniamo le policy:
# tripwire --update-policy -Z low /etc/tripwire/twpol.txt Parsing policy file: /etc/tripwire/twpol.txt Please enter your local passphrase: Please enter your site passphrase: ... ... ======== Step 2: Updating the database with new objects. ======== Step 3: Pruning unneeded objects from the database. Wrote policy file: /etc/tripwire/tw.pol Wrote database file: /var/lib/tripwire/myvps.twd
In questo modo, non appena un file binario di Tripwire dovesse subire una modifica, una cancellazione, etc., verrà inviata immediata comunicazione all'amministratore.
Happy hardening!
Suggerimento Per favore se modifichi questa guida aggiungi nel box "NOTE" sottostante "Estesa da: mio_nome_utente", se invece l'hai semplicemente consultata, ma ne hai verificato personalmente la correttezza, aggiungi sempre nello stesso box "Verificata da: mio_nome_utente". In questo modo aiuti la comunità a tenere traccia della maturità della guida. |
NOTE Autore: pmate 22:39, 16 ott 2011 (CEST) |