Quale configurazione automatizzata di notifica / rilevamento delle intrusioni è adatta all'uso del desktop di casa?


27

Uso Linux da un po 'di tempo ormai e sento sempre la necessità di avere una configurazione passiva di software / script che possa avvisarmi di qualsiasi attività di rete sospetta come scansioni, tentativi di accesso falliti, ecc. Al volo via e-mail o tramite notifiche visive / audio.

So come cercare tra i registri e le cose, ma per la maggior parte è un processo manuale, che richiede tempo. Sto cercando qualcosa che sia semi / completamente automatizzato con alcune buone capacità di analisi dei log.

Sono a conoscenza di sistemi IDS per il monitoraggio di reti come Snort, ecc., Ma sono eccessivi per l'utente medio di casa e un processo doloroso per iniziare a funzionare.

Qual è una buona opzione per me come utente domestico?


Come definisci "passivo"? Come in, qualcosa che corri una volta ogni tanto per vedere se qualcosa di sospetto stava succedendo?
Nanne,

Risposte:


15

Una soluzione generale semplice ed efficace è utilizzare il logcheck .

sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]

logcheck esegue periodicamente la scansione di tutti i log in modo efficiente (iniziando da dove era stata interrotta l'ultima volta), filtra ciò che vede per eliminare qualsiasi cosa considerata normale e facoltativamente invia e-mail di avviso con tutto ciò che non corrisponde ai modelli normali / di routine.

L'idea principale è quello di guardare-out per l'aspetto di tutte le voci gravi nei file di log, tutti loro, per tutto il tempo, in modo da voi non dovete.

logcheck è altamente configurabile (man logcheck). Puoi configurare tutto, incluso:

  • frequenza dei controlli
  • quali file di registro sono controllati
  • ciò che è considerato normale vs no
  • dove inviare via e-mail gli avvisi (eventi anomali)

e altro ancora I tuoi schemi ignore (normali / di routine) risiedono in più file in /etc/logcheck/ignore.d.* e puoi personalizzarli in base alle tue esigenze; principalmente potresti voler aggiungere i tuoi schemi da ignorare. Il pacchetto Ubuntu predefinito viene fornito con un ampio set di file con modelli di ignore per molti servizi già, quindi non c'è molto da aggiungere a meno che il tuo sistema non sia insolito in ciò che esegue. Esistono 3 set di profili di file ignorati preconfigurati: ignore.d.workstation , ignore.d.server e ignore.d.paranoid che è possibile selezionare.

L'idea principale dietro logcheck è che i vari servizi in esecuzione su un sistema registrano già eventi anomali. Ad esempio sshd o pam registrano già errori di autenticazione. Quindi i principali componenti mancanti sono:

  • filtrando ciò che è normale
  • Il servizio di allerta

Entrambi sono forniti da logcheck in un pacchetto conveniente. È possibile combinare il controllo del registro con qualsiasi altra registrazione. Ad esempio iptables può essere configurato per syslog qualsiasi tentativo di connessione di rete che non sia esplicitamente consentito aggiungendo le regole:

 iptables -A input -j LOG
 iptables -A input -j DROP

subito dopo tutte le regole di autorizzazione.

Trovo che logcheck sia molto più utile di logwatch (suggerito in altre risposte) perché è preconfezionato con un numero molto elevato di regole per ignorare ciò che è considerato attività normale. Il risultato è un rapporto segnale / rumore molto più elevato negli avvisi che invia. YMMV.

Un altro vantaggio di logcheck è che è ortogonale a qualsiasi servizio che registra, quindi non c'è duplicazione di funzioni. Ogni volta che aggiungi un nuovo servizio che utilizza syslogper registrare eventi, anormali o meno, in qualsiasi file sotto di /var/logte inizi a ricevere automaticamente avvisi per esso.

COME:

Poiché logcheckgià viene preconfigurato, due righe all'inizio di questa risposta coprono essenzialmente tutto ciò che serve per iniziare. Basta installarlo e andare sul file di configurazione principale: /etc/logcheck/logcheck.confper cambiare il tuo indirizzo e-mail in modo da logcheckricevere avvisi via e- mail.

Ecco un riferimento amichevole andando oltre il secondo passo in modo più dettagliato . Poiché Ubuntu si basa su Debian, anche queste istruzioni dovrebbero funzionare su Ubuntu. Ecco un altro buon riferimento .

Una volta installato, inizia il processo di miglioramento continuo. Nel corso del tempo, perfezionerai le tue regole per ignorare tutto ciò che già conosci e che ritieni non debba destare preoccupazione. Questo processo di perfezionamento è semplice come aggiungere righe di testo a un file nel tuo editor di testo preferito.

Ogni riga in un file ignore è un'espressione regolare estesa (vedere man 7 regex), ma è possibile utilizzare stringhe semplici purché corrispondano alla riga di registro che si desidera ignorare. Basta ricordare che personaggi come *, ?, '+', [], ()sono speciali in un'espressione regolare, quindi se appaiono in realtà nelle linee di registro, si dovrebbe sfuggire loro con un backslash \nella ignorare i file.

In altre parole: se ricevi un avviso che non desideri ricevere, osserva la riga di registro che ti è stata inviata per e-mail e aggiungi un modello che lo corrisponda, come una riga a qualsiasi file ignorato di tua scelta. Suggerisco di utilizzare /etc/logcheck/ignore.d.<yourloglevel>/my-ignorescome file personale da ignorare. Dov'è <yourloglevel>uno di paranoid, servero workstation((come hai già selezionato nel file di configurazione principale:) /etc/logcheck/logcheck.conf. Guarda gli esempi in altri file ignorati per vedere come tenere conto del testo che cambia continuamente come ID processo o timestamp. Ci sono molti esempi esistenti da cui imparare.

Un ultimo consiglio: logcheckviene fornito con una piccola utility utile logcheck-testche è molto utile per testare nuove regole. man logcheck-testper dettagli.


Ciao, mi piace l'idea dietro logcheck ... puoi indicarmi una guida approfondita per questo? Grazie :)
irenicus09

1
@ irenicus09: appena aggiunta la sezione howto con un link opzionale per riferimento.
arielf

Congratulazioni per aver vinto la taglia, uomo molto ben scritto. Grazie :)
irenicus09

3

Se non hai molti sistemi sulla tua rete, impostare un IDS come Snort è probabilmente eccessivo (specialmente se non hai servizi di rete sul tuo computer). Suggerisco di iniziare configurando logwatch per inviarti un rapporto su cosa sta succedendo sul tuo sistema. Una volta che lo hai fatto, configura il tuo syslog in modo da ottenere quante più informazioni possibili possibili.


Ciao, mi piace la tua risposta ... ma potresti per favore condividere qualche dettaglio in più su come farlo. Fare confusione con le configurazioni può essere piuttosto complicato, specialmente per un utente inesperto. Ma apprezzerei se potessi indicarmi una guida approfondita per questo. Grazie.
irenicus09,

@ irenicus09 Penso che questo dovrebbe essere sufficiente: come impostare Logwatch su sistemi basati su Ubuntu
AndrewX192

grazie per la guida, ho installato logwatch con successo e mi piace. Per il port scan monitor ho anche installato portentry e proverò altri strumenti e cose prima di finalizzare quale è il migliore per me :)
irenicus09

1

Il rilevamento delle intrusioni è necessario quando si eseguono servizi (ftp, web, nfs, ssh ecc.) Nella propria rete. Questo perché sono esposti su Internet e dovuti a:

  • miss-configurazione
  • vulnerabilità del software

hanno bisogno del monitoraggio quotidiano da parte di un amministratore di rete esperto. Se esegui questi servizi, probabilmente hai già le conoscenze minime su come evitare questi problemi.

Se non si esegue nessuno di questi servizi, il firewall del router Internet ha già bloccato qualsiasi connessione in entrata sulle porte. Per scansionare il tuo router di rete

Se sei tutto verde, allora sei tutto buono.

Ultimo ma non meno importante, probabilmente il tuo router ha un sistema di rilevamento delle intrusioni incorporato (perché il 99% di tutti i router esegue un server Linux con striping). Per questo, è necessario controllare il manuale del produttore del router.


Ciao, grazie per la tua risposta. È abbastanza penetrante e sono consapevole di tutto ciò di cui stai parlando. Ma il mio punto è che diciamo che sto eseguendo vari servizi sul mio sistema, come faccio a monitorare esattamente le attività dal punto di vista della sicurezza. Ho bisogno di una soluzione semplice e facile da usare come utente domestico e penso che tu abbia evitato quella parte :)
irenicus09
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.