Come disabilitare inutili voci di registro "verifica riuscita" in dmesg


11

Versione breve: come disabilitare i messaggi di controllo (dmesg) su un sistema Fedora?


Un sistema Fedora registra i messaggi "audit: success" in dmesg, in modo tale che dmesg è diventato inutilizzabile perché riempito da questi messaggi ( dmesg | grep -v auditè vuoto). Questi messaggi sono completamente inutili perché ovviamente vogliono informare l'utente che qualche processo interno di ogni giorno è riuscito (il che potrebbe essere di interesse quando si esegue il debug di qualcosa, ma in questo caso è solo rumore).

Anche l'interfaccia della riga di comando (quando si passa a una non X tty con Ctrl+ Alt+ F2) è diventata inutilizzabile poiché è sempre ingombra di questi messaggi di controllo, è impossibile leggere l'output dei comandi che vengono effettivamente eseguiti dall'utente. Ad esempio, dopo aver inserito il nome utente (login), viene emesso un messaggio di controllo (apparentemente dicendo all'utente che qualcosa è stato formattato / stampato correttamente):

audit: type = 1131 audit (1446913801.945: 10129): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'unit = fprintd comm = "systemd" exe = "/ usr / lib / systemd / systemd" nomehost =? addr =? = Terminali? res = successo

Sembra che la maggior parte di questi messaggi indichi "successo", tuttavia ci sono anche molti messaggi di controllo che non contengono questa parola chiave. L'esecuzione di Chromium attiva centinaia di questi:

audit: tipo = 1326 audit (1446932349.568: 10307): auid = 500 uid = 500 gid = 500 ses = 2 pid = 1593 comm = "chrome" exe = "/ usr / lib64 / chromium / chrome" sig = 0 arch = c000003e syscall = 273 compat = 0 ip = 0x7f9a1d0a34f4 codice = 0x50000

Altri messaggi includono:

audit: type = 1131 audit (1446934361.948: 10327): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'unit = NetworkManager-dispatcher comm = "systemd" exe = "/ usr / lib / systemd / systemd" nomehost =? addr =? = Terminali? res = successo

audit: tipo = 1103 audit (1446926401.821: 10253): pid = 28148 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'op = PAM: setcred grantors = p am_env, pam_unix acct = "user" exe = "/ usr / sbin / crond "nomehost =? addr =? terminal = cron res = success '

Generalmente, la maggior parte dei messaggi di controllo recenti (al momento della scrittura) contiene la parola chiave " NetworkManager " o " chrome ".

Come si possono disabilitare completamente questi messaggi?


Punti aggiuntivi:

  • Nel caso in cui qualcuno stia pensando "dovresti leggere e analizzare questi messaggi di controllo, non disabilitarli, potrebbero essere importanti", no non sono importanti, sono quasi esclusivamente messaggi di "successo". Nessuno ha bisogno di sapere che qualcosa che dovrebbe funzionare ha funzionato. Tuttavia, se un messaggio realmente significativo venisse registrato, non verrebbe mai notato nella tempesta di migliaia di messaggi insignificanti. In ogni caso, non è richiesta alcuna registrazione di controllo su questo particolare sistema (è comunque in esecuzione in un ambiente controllato).
  • Chiaramente, qualcosa deve essere molto configurato male su questo sistema. Tuttavia, una volta era un'installazione Fedora predefinita che veniva aggiornata ogni volta che veniva rilasciata una nuova versione. Forse è solo una semplice impostazione che deve essere cambiata, ma poiché non è accaduto cambiando manualmente la configurazione del sistema (apposta), questa domanda su stackexchange.com aiuterà speriamo che altri che hanno ottenuto il loro sistema nello stesso stato.
  • Ora è un sistema Fedora 22, con Linux 4.0.6 (systemd 219).
  • È un'installazione desktop Fedora standard, attualmente in esecuzione KDE.
  • SELinux è disabilitato (/ etc / selinux / config è impostato su "disabled").

Aggiornamento : dopo l'aggiornamento a Fedora 23 (kernel 4.2.5, systemd 222), ci sono meno messaggi di controllo rispetto a prima.


Invece di disabilitare il controllo, che disabilita la scrittura dei messaggi di controllo nei registri con cui è possibile visualizzare audit2allow, hai considerato semplicemente la modifica del valore kernel.printk che è rilevante per la stampa dei messaggi del kernel sulla console? Su Fedora di default è "7 4 1 7", un valore più sensato è "3 4 1 7".
Bob,

Risposte:


12

In primo luogo, su fedora, sia auditd che auditctl provengono dallo stesso pacchetto (audit chiamato in modo non confuso). Quindi, se non si dispone di auditctl, qualcos'altro non va. Prova questo:

rpm -ql audit |grep ctl

Se ciò non ti dà nulla, non hai affatto installato il pacchetto di controllo.

In secondo luogo, la prima riga del linguaggio "umano" nel file grub.cfg che hai citato dice "NON MODIFICARE" sul mio sistema. Questo è un indizio che qualsiasi modifica manuale al file può andare persa.

Il posto corretto per modificare la configurazione di grub su un sistema fedora / redhat è l'unico file che hai specificamente suggerito di non essere necessario modificare (/ etc / default / grub). In realtà, questo è l'unico modo "sicuro" per apportare le modifiche proposte e sopravvivere agli aggiornamenti del kernel. Questo perché viene utilizzato come parte della configurazione del sorgente durante gli aggiornamenti del kernel, per rigenerare un grub.cfg funzionante. Cerca il comando grub2-mkconfig (ed è suo amico). I dettagli sono qui: https://fedoraproject.org/wiki/GRUB_2

La tua risposta non è sbagliata, ma l'ho trovata un po 'confusa. Odio la riga di comando di grub, e IMHO chiunque probabilmente mancherà di aggiungere un carattere di spazio bianco su una riga di comando del kernel probabilmente non ringrazierebbe nessuno per essere stato guidato su quella strada. Tuttavia, ad alcune persone piace imparare nel modo più duro che conosco.

Tutti i comandi seguenti devono essere eseguiti come root (che è di per sé una cosa pericolosa da suggerire).

Per un sistema in esecuzione:

auditctl -e 0

Se non riesci a trovare auditctl, controlla il PERCORSO e considera anche:

dnf install audit

Questo dovrebbe almeno ridurre se non disabilitare i messaggi fino al momento in cui è possibile riavviare.

Per continuare oltre i riavvii, modifica / etc / default / grub e cambia la riga GRUB_CMDLINE_LINUX per aggiungere "audit = 0" alla fine, quindi usa grub2-mkconfig per rigenerare grub.cfg. Questo passaggio finale inserisce anche un livello di convalida tra la modifica e il sistema in esecuzione.


Grazie per averlo sottolineato /etc/default/grube grub2-mkconfigdovrebbe essere usato. Ho aggiunto una correzione alla mia risposta.
basic6

6

È possibile disabilitare rapidamente l'audit temporaneamente con

sudo auditctl -e 0

e rimuovere temporaneamente tutte le regole con

sudo auditctl -D

Per gli stivali futuri potresti provare a disabilitarne l'inizio

 sudo systemctl disable auditd

3

Non esiste un servizio auditd che possa essere disabilitato mentre il sistema è in esecuzione, ma risulta che l'aggiunta dell'opzione di avvio audit=0sembra disabilitare tutti questi messaggi. Il sistema è nuovamente utilizzabile, anche sulla riga di comando senza X in esecuzione.

Questa opzione può essere impostata temporaneamente (la modifica non sopravviverà al riavvio):

  1. Quando gli viene visualizzato il menu di avvio di GRUB (subito dopo l'accensione), ha colpito eper le e dit i parametri di avvio. Questo mostrerà un'enorme casella di testo.
  2. Scorri verso il basso fino alla riga che inizia con "linux". Premi il Endtasto per spostare il cursore alla fine della riga.
  3. Inserisci un carattere di spazio vuoto in modo da non rompere l'ultima opzione, quindi aggiungi audit=0. Ad esempio ... LANG=en_US.UTF-8 audit=0(no ...UTF-8audit=0, ovviamente).
  4. Fai attenzione a non cambiare nient'altro. Se hai modificato accidentalmente un'altra opzione, correggila o riavvia e ricomincia.
  5. Premi F10per avviare il sistema.

Ovviamente, questa modifica sarà effettiva solo mentre il sistema è in esecuzione. L'alluvione dell'audit tornerà dopo un riavvio. Per rendere permanente questa modifica, è necessario modificare in modo permanente la configurazione di avvio. Su Fedora, dovrebbe essere sufficiente modificare semplicemente /boot/grub2/grub.cfgperché quando viene installato un nuovo kernel (aggiornamento del sistema), grubby dovrebbe copiare le opzioni dell'ultimo kernel nel kernel appena installato. Ciò significa che audit=0deve essere aggiunto alla prima linuxriga (prima menuentrysezione) in questo file. Non dovrebbe essere necessario cambiare/etc/default/grub .
Correzione: in realtà, l'approccio corretto e più affidabile è quello di modificare /etc/default/grube rigenerare la configurazione di Grub utilizzando grub2-mkconfig -o /boot/grub2/grub.cfg, grazie KnightLordAndMaster per averlo segnalato .


Nota aggiuntiva sui log di controllo nei file di registro:

Come nota a margine, la seguente riga dovrebbe impedire che i log di controllo finiscano nei file di log, ma continuerebbero a ingombrare dmesg e la console, quindi questa non è una soluzione in sé. Questa riga verrebbe inserita come prima regola in /etc/rsyslog.conf:

...
#### RULES ####

# no audit
:programname, isequal, "audit" ~

...

Ciò comporta ora il seguente avviso:

 rsyslogd[xxxx]: warning: ~ action is deprecated, consider using the 'stop' statement instead [v8.35.0 try http://www.rsyslog.com/e/2307]

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.