GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:logwatch(8) è troppo rumoroso. Come posso controllare il livello di rumore?

Soluzione 1:

Nel complesso, la documentazione disponibile per Logwatch manca di spiegazioni adeguate ed è spesso troppo vaga. Ho messo insieme alcuni esempi utili e ho ridotto il rumore del Logwatch di oltre il 95%.

Ecco cosa ho trovato.

Tieni presente che puoi trovare della documentazione di Logwatch su /usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch e contiene alcuni esempi utili.

  1. Su RHEL/CentOS/SL, la configurazione di logwatch predefinita è in /usr/share/logwatch/default.conf/logwatch.conf

    Queste impostazioni possono essere sovrascritte posizionando la configurazione locale in /etc/logwatch/conf/logwatch.conf . Inserisci quanto segue in quel file per dire a logwatch di ignorare completamente servizi come "httpd" e i controlli giornalieri sull'utilizzo del disco:

    # Don't spam about the following Services
    Service = "-http"
    Service = "-zz-disk_space"
    
  2. A volte non voglio disabilitare completamente il logwatch per un servizio specifico, voglio solo mettere a punto i risultati per renderli meno rumorosi. /usr/share/logwatch/default.conf/services/*.conf contiene la configurazione predefinita per i servizi. Questi parametri possono essere sovrascritti inserendo la configurazione locale in /etc/logwatch/conf/services/$SERVICE.conf . Sfortunatamente, le capacità di logwatch qui sono limitate e molti degli eseguibili di logwatch sono pieni di Perl non documentato. La tua scelta è sostituire l'eseguibile con qualcos'altro o provare a sovrascrivere alcune impostazioni usando /etc/logwatch/conf/services .

    Ad esempio, ho uno scanner di sicurezza che esegue scansioni attraverso la rete. Durante l'esecuzione dei test, lo scanner di sicurezza genera molti messaggi di errore nei registri dell'applicazione. Vorrei che logwatch ignorasse gli errori dei miei scanner di sicurezza, ma mi informasse comunque degli attacchi di altri host. Questo è trattato in modo più dettagliato in Logwatch:Ignora determinati IP per i controlli SSH e PAM?. Per fare ciò, metto quanto segue sotto /etc/logwatch/conf/services/sshd.conf :

    # Ignore these hosts
    *Remove = 192.168.100.1
    *Remove = X.Y.123.123
    # Ignore these usernames
    *Remove = testuser
    # Ignore other noise. Note that we need to escape the ()
    *Remove = "pam_succeed_if\(sshd:auth\): error retrieving information about user netscan.*
    

    "

  3. logwatch ti consente anche di eliminare l'output dalle email di logwatch inserendo espressioni regolari in /etc/logwatch/conf/ignore.conf . HOWTO-Customize-LogWatch dice:

    ignore.conf:questo file specifica le espressioni regolari che, se abbinate all'output di logwatch, sopprimeranno la riga corrispondente, indipendentemente dal servizio in esecuzione.

    Tuttavia, non ho avuto molta fortuna con questo. I miei requisiti richiedono un'istruzione condizionale, che è qualcosa del tipo "Se ci sono avvisi di sicurezza dovuti al mio scanner di sicurezza, non stampare l'output". Ma se ci sono avvisi di sicurezza dal mio scanner di sicurezza e da alcuni malintenzionati, quindi stampa le parti utili:l'intestazione che dice "Accessi non riusciti da:", gli IP degli host malintenzionati, ma non gli IP degli scanner.'

  4. Stroncare alla fonte (come suggerito da @ user48838). Questi messaggi vengono generati da alcune applicazioni e quindi Logwatch ti invia felicemente i risultati. In questi casi, è possibile modificare l'applicazione per registrare meno.

    Questo non è sempre desiderabile, perché a volte vuoi che i log completi vengano inviati da qualche parte (a un server syslog centrale, server IDS centrale, Splunk, Nagios, ecc.), ma non vuoi che logwatch ti invii un'e-mail su questo da ogni server, ogni giorno.

Soluzione 2:

Sì, il logwatch è spesso troppo rumoroso. Hai già menzionato la disabilitazione completa dei controlli.

Se non vuoi farlo, devi impedire che determinati eventi appaiano. Ad esempio, non è interessante se nagios si connette tramite ssh a un sistema DMZ. Ma è interessante se ci sono altri accessi tramite ssh.

Usiamo rsyslog invece di ksyslogd (prima installa rsyslog, quindi rimuovi ksyslogd). Con rsyslog puoi mettere a punto cosa va ai log e cosa no (ad esempio, crea un'espressione che elimina i messaggi da sshd che contengono "nagios connected"). In questo modo logwatch riporterà solo informazioni utili.

Un altro caso potrebbe essere xinetd - non voglio essere informato sulle connessioni riuscite - questo può essere configurato in xinetd stesso - senza disabilitare il logwatch-check per xinetd.

Soluzione 3:

Come punto di interesse ho seguito l'opzione 2 dalla risposta di Stefan Lasiewski, ma per i miei scopi volevo includere solo righe specifiche piuttosto che escludere tutto il rumore che non volevo.

Stavo configurando vsftpd quindi ho creato /etc/logwatch/conf/services/vsftpd.conf e invece di usare qualcosa come *Remove = testuser che rimuove le righe che includono il testo testuser Ho usato la riga *OnlyContains = "testuser" che restituisce solo le righe che includono quel testo.

Questi 2 script funzionano in modo molto semplice utilizzando grep e grep -v .

La differenza è che puoi usare *Remove quante volte vuoi ma con *OnlyContains devi usarlo una volta se vuoi qualcosa o qualcos'altro o qualcos'altro. Quindi per più valori fai *OnlyContains = "testuser|testuser2|testuser3"


Linux
  1. Come puoi identificare il chipset di un dispositivo USB in Linux?

  2. Come posso vedere la dimensione dei file e delle directory in Linux?

  3. Come posso trovare il numero di utenti online in Linux?

  4. Come posso contare il numero di cartelle in un'unità utilizzando Linux?

  5. Come si specifica la posizione delle librerie in un file binario? (linux)

Come posso trovare i file di intestazione del linguaggio di programmazione C in Linux?

Come aggirare il limite di Linux Too Many Arguments

Come posso copiare una cartella dalla riga di comando di Linux?

Come posso riservare un blocco di memoria dal kernel Linux?

Come posso trovare il modello hardware in Linux?

Come funziona una GUI Linux al livello più basso?