Tripwire è un sistema di rilevamento delle intrusioni (IDS) gratuito e open source. È uno strumento di sicurezza per il monitoraggio e l'avviso di modifiche ai file nel sistema. Tripwire è un potente IDS che protegge il tuo sistema da modifiche indesiderate. Puoi usarlo per monitorare i file di sistema, inclusi i file del sito Web, quindi quando si verifica una modifica indesiderata di file, Tripwire controllerà il tuo sistema e, se impostato correttamente, ti avviserà via e-mail.
In questo tutorial, ti mostreremo come monitorare e rilevare eventuali modifiche nei file di sistema utilizzando Tripwire sul sistema CentOS 7. Ti mostreremo come installare e configurare Tripwire su CentOS 7, come generare file chiave di Tripwire, configurare e aggiungere criteri di tripwire, controllare il sistema e abilitare le notifiche e-mail per la configurazione di tripwire e cron.
Cosa faremo
- Installa Tripwire su CentOS 7
- Configura i criteri di Tripwire per CentOS 7
- Verifica della configurazione di Tripwire
- Aggiungi una nuova regola alla politica di Tripwire
- Imposta la notifica e-mail di Tripwire e Cron
Prerequisiti
- Sistema CentOS 7
- privilegi radice
Passaggio 1:installa Tripwire su CentOS 7
Il primo passo che dobbiamo fare è installare Tripwire sul sistema. Per impostazione predefinita, tripwire è disponibile nel repository CentOS 7.
Accedi al tuo server e aggiorna tutti i pacchetti.
ssh [email protected]
sudo yum update -y
Ora installa Tripwire usando yum.
yum -y install tripwire
Dopo l'installazione, dobbiamo generare nuovi file chiave.
Tripwire funziona con 2 file chiave.
- chiave del sito:viene utilizzata per proteggere la configurazione di Tripwire. Pertanto, qualsiasi modifica alla configurazione di tripwire non verrà applicata fino a quando non avremo generato nuovamente la configurazione e per questo ci verrà richiesta la passphrase 'site-key'.
- chiave locale:viene utilizzata per verificare il binario di tripwire. Quando vogliamo aggiornare il database del sistema tripwire, dobbiamo eseguire il comando tripwire e ci verrà richiesta la passphrase per 'local-key'.
Generiamo nuovi file di chiavi tripwire (chiavi sito e locali) utilizzando il comando seguente.
sudo tripwire-setup-keyfiles
Il comando genererà due file chiave 'site-key' e 'local-key' e ti verrà richiesta la passphrase per ciascuno di essi.
Digita la tua 'chiave del sito ' passphrase e premi Invio.
Digita la tua 'chiave locale ' passphrase e premi nuovamente Invio.
Quindi, firma la configurazione di tripwire utilizzando la 'site-key'.
Digita la tua 'chiave del sito ' passphrase.
E ora per firmare per la politica di Tripwire, digita la tua 'chiave locale ' passphrase.
Tripwire è stato installato su CentOS 7 e la nuova configurazione e le chiavi di tripwire si trovano nella directory '/etc/tripwire'.
Passaggio 2:configurazione dei criteri di Tripwire per CentOS 7
Dopo l'installazione di tripwire di cui abbiamo parlato nel primo passaggio, dobbiamo inizializzare il database di tripwire e assicurarci che non ci siano errori.
Inizializza il database di tripwire usando il comando tripwire di seguito.
sudo tripwire --init
Ti verrà chiesto della passphrase "chiave locale" e probabilmente riceverai il messaggio di errore "nessuna directory del genere" come di seguito.
Otteniamo l'errore perché il sistema non ha una directory e file che sono già definiti nella configurazione di tripwire. Per risolvere questo errore, dobbiamo modificare la configurazione di tripwire 'twpol.txt' e firmare nuovamente la configurazione di tripwire.
Ora genera l'errore di registro da tripwire usando il comando seguente.
sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
Tutte le directory e i file che non esistono sul sistema CentOS 7 sono elencati nel file 'mo-directory.txt'
cat no-directory.txt
Modifica la configurazione di tripwire 'twpol.txt' utilizzando il seguente script bash:esegui questo script sul tuo terminale.
for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do
sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt
done
Dopo tutto questo, dobbiamo rigenerare e firmare nuovamente la configurazione di tripwire usando il comando twadmin come mostrato di seguito.
sudo twadmin -m P /etc/tripwire/twpol.txt
Digita la passphrase "chiave del sito".
Reinizializza nuovamente il database di tripwire e assicurati di non ricevere errori.
sudo tripwire --init
Reinizializza il database di tripwire senza alcun errore.
Fase 3 - Verifica della configurazione di Tripwire e verifica del sistema
Per verificare la configurazione di tripwire, possiamo eseguire il comando di verifica del sistema come di seguito.
sudo tripwire --check
E dovresti ottenere un risultato simile al seguente.
Ciò significa che non sono stati rilevati errori e violazioni di sistema nel nostro sistema.
Ora proveremo ad aggiungere un nuovo file nella home directory principale e ricontrolleremo usando tripwire.
Vai alla home directory principale e crea un nuovo file 'hakase-labs.txt'.
cd ~/
touch hakase-labs.txt
Ora ricontrolla il sistema usando il comando tripwire.
sudo tripwire --check
E otterrai il risultato della nuova violazione sul sistema con gravità 100 come di seguito.
A questo punto, Tripwire è installato e configurato per il sistema CentOS 7.
Passaggio 4:aggiungi una nuova regola alla politica di Tripwire
In questo passaggio, ti mostreremo come aggiungere una nuova regola alla configurazione della politica di tripwire 'twpol.txt'.
Per eseguire questo lavoro, è necessario definire il nome della regola, la gravità, la directory per il monitoraggio e il tipo di file. In questo passaggio, creeremo una nuova regola denominata 'Dati WordPress' per la nostra installazione di WordPress nella directory '/var/www/', con gravità 'HIGH/SIG_HI', e tutti i file in quella directory sono critici (entrambi di proprietà così come il codice sorgente non può essere modificato).
Vai alla directory di configurazione di tripwire '/etc/tripwire' e modifica il file di configurazione 'twpol.txt' usando vim.
cd /etc/tripwire/
vim twpol.txt
Vai alla fine della riga e incolla lì la seguente regola di WordPress.
# Ruleset for Wordpress
(
rulename = "Wordpress Data",
severity= $(SIG_HI)
)
{
/var/www -> $(SEC_CRIT);
}
Salva ed esci.
Rigenera e firma nuovamente la configurazione utilizzando il comando twadmin come di seguito.
sudo twadmin -m P /etc/tripwire/twpol.txt
Digita la passphrase "chiave del sito".
Ora dobbiamo rigenerare nuovamente il database di tripwire.
sudo tripwire --init
Digita la passphrase "chiave locale".
Un nuovo set di regole è stato aggiunto e applicato alla configurazione dei criteri di Tripwire.
Controlla il tuo sistema usando il comando tripwire qui sotto.
sudo tripwire --check
E dovresti ottenere il risultato dicendo senza errori e violazioni.
Ora vai nella directory '/var/www/' e crea un nuovo file al suo interno.
cd /var/www/
touch hakase-labs.php
Esegui nuovamente il controllo del sistema utilizzando tripwire.
sudo tripwire --check
E otterrai il risultato che dice violazione del sistema nella directory '/var/www/' con livello di sicurezza Alto 100.
Una nuova regola è stata aggiunta e applicata alla configurazione della politica di Tripwire.
Passaggio 5 - Impostazione della notifica e-mail di Tripwire e Cron
In questo passaggio, configureremo le notifiche per specifici criteri di set di regole di tripwire e configureremo un cronjob per il controllo automatico del sistema. Invieremo una segnalazione per qualsiasi violazione della regola "Dati WordPress" all'indirizzo email "[email protected]".
Per la notifica via e-mail, tripwire fornisce una funzione 'e-mailto' nella configurazione. E per impostazione predefinita, tripwire utilizza Postfix o Sendmail per inviare il rapporto via e-mail.
Prima di configurare le notifiche e-mail, testare la funzionalità di notifica di tripwire utilizzando il comando seguente.
sudo tripwire --test --email [email protected]
Controlla la tua e-mail e dovresti ricevere il rapporto e-mail dal tuo server come di seguito.
Ora vai nella directory '/etc/tripwire' e modifica la configurazione 'twpol.txt'.
cd /etc/tripwire/
vim twpol.txt
Aggiungi una nuova riga 'emailto' all'interno della regola 'Dati WordPress' come mostrato di seguito.
# Ruleset for Wordpress
(
rulename = "Wordpress Data",
severity= $(SIG_HI),
emailto = [email protected]
)
{
/var/www -> $(SEC_CRIT);
}
Salva ed esci.
Rigenera e firma la configurazione utilizzando il comando twadmin.
sudo twadmin -m P /etc/tripwire/twpol.txt
Digita la passphrase "chiave del sito".
E rigenera il database di tripwire.
sudo tripwire --init
Digita la passphrase "chiave locale" di Tripwire.
La configurazione per la notifica e-mail di Tripwire è stata completata.
Ora fai qualche prova creando di nuovo un nuovo file nella directory '/var/www/'.
cd /var/www/
touch hakase.txt
Controlla di nuovo il tuo sistema usando il comando qui sotto.
sudo tripwire --check --email-report
Nota:
- --email-report: Invia report del sistema all'indirizzo email definito in ciascuna regola.
Controlla la tua e-mail e dovresti ottenere il risultato come di seguito sulla tua e-mail.
La notifica e-mail per Tripwire è stata abilitata e applicata.
Successivamente, abiliteremo il controllo automatico del sistema Tripwire utilizzando l'impostazione cron. Per questo, crea un nuovo script cron sotto l'utente root usando il comando crontab di seguito.
sudo crontab -e -u root
Incolla la seguente configurazione cron.
0 0 * * * tripwire --check --email-report
Salva ed esci.
Nota:
- - Lo script cron eseguirà il controllo del sistema tripwire su base giornaliera.
Ora riavvia il servizio crond su CentOS 7.
systemctl restart crond
Ora riceverai quotidianamente la notifica del rapporto di tripwire sulla tua e-mail.
Tripwire è stato installato e configurato per il sistema CentOS 7.