Jak wyłączyć niepotrzebne wpisy dziennika „sukces audytu” w dmesg


11

Krótka wersja: Jak wyłączyć wiadomości kontrolne (dmesg) w systemie Fedora?


System Fedora ciągle rejestruje komunikaty „audyt: sukces” w dmesg - w tak ekstremalny sposób, że dmesg stał się bezużyteczny, ponieważ jest wypełniony tymi wiadomościami ( dmesg | grep -v auditjest pusty). Te wiadomości są całkowicie bezużyteczne, ponieważ oczywiście chcą poinformować użytkownika, że ​​niektóre codzienne procesy wewnętrzne zakończyły się powodzeniem (co może być interesujące podczas debugowania czegoś, ale w tym przypadku jest to po prostu szum).

Nawet interfejs wiersza poleceń (podczas przełączania na tty inne niż X za pomocą Ctrl+ Alt+ F2) stał się bezużyteczny, ponieważ zawsze jest zaśmiecony tymi komunikatami audytu, niemożliwe jest odczytanie danych wyjściowych poleceń, które są faktycznie uruchamiane przez użytkownika. Na przykład po wprowadzeniu nazwy użytkownika (loginu) wysyła się komunikat kontrolny (najwyraźniej informujący użytkownika, że ​​coś zostało sformatowane / wydrukowane pomyślnie):

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" nazwa hosta =? addr =? terminal =? res = sukces ”

Wygląda na to, że większość z tych komunikatów oznacza „sukces”, jednak istnieje również wiele komunikatów z audytu, które nie zawierają tego słowa kluczowego. Uruchomienie Chromium uruchamia setki z nich:

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

Inne wiadomości obejmują:

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" nazwa hosta =? addr =? terminal =? res = sukces ”

audit: type = 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 "nazwa hosta =? addr =? terminal = cron res = sukces ”

Zasadniczo większość ostatnich komunikatów kontrolnych (w momencie pisania) zawiera słowo kluczowe „ NetworkManager ” lub „ chrome ”.

Jak można całkowicie wyłączyć te wiadomości?


Dodatkowe punkty:

  • Na wypadek, gdyby ktoś pomyślał „powinieneś przeczytać i przeanalizować te wiadomości z audytu, nie wyłączać ich, mogą one być ważne”, nie, nie są one ważne, są to prawie wyłącznie wiadomości o „sukcesie”. Nikt nie musi być informowany, że coś, co powinno działać, faktycznie działało. Jeśli jednak zarejestrowana zostanie jedna naprawdę znacząca wiadomość, nigdy nie zostanie zauważona podczas burzy tysięcy nieistotnych wiadomości. W każdym razie nie jest wymagane rejestrowanie audytu w tym konkretnym systemie (i tak działa on w kontrolowanym środowisku).
  • Najwyraźniej coś musi być bardzo źle skonfigurowane w tym systemie. Jednak była to kiedyś domyślna instalacja Fedory, która była aktualizowana za każdym razem, gdy pojawiała się nowa wersja. Być może jest to tylko proste ustawienie, które należy zmienić, ale ponieważ nie zdarzyło się ręcznie zmienić konfiguracji systemu (celowo), to pytanie stackexchange.com pomoże innym osobom, które zdarzyły się mieć ten sam stan.
  • Teraz jest to system Fedora 22 z systemem Linux 4.0.6 (systemd 219).
  • Jest to standardowa instalacja Fedory na pulpicie, obecnie działająca w KDE.
  • SELinux jest wyłączony (/ etc / selinux / config jest ustawiony na „disabled”).

Aktualizacja : Po aktualizacji do Fedory 23 (jądro 4.2.5, systemd 222), jest mniej komunikatów kontrolnych niż wcześniej.


Czy zamiast wyłączać kontrolę, która uniemożliwia zapisywanie komunikatów kontroli w dziennikach, które można przeglądać audit2allow, czy zastanawiałeś się nad modyfikacją wartości kernel.printk, która jest istotna przy drukowaniu komunikatów jądra na konsoli? W Fedorze domyślnie jest to „7 4 1 7”, bardziej sensowną wartością jest „3 4 1 7”.
Bob

Odpowiedzi:


12

Po pierwsze, na fedorze zarówno auditd, jak i auditctl pochodzą z tego samego pakietu (niepomyślnie nazwany audit). Więc jeśli nie masz audctl, coś innego jest nie tak. Spróbuj tego:

rpm -ql audit |grep ctl

Jeśli to nic nie da, oznacza to, że pakiet audytu nie jest wcale zainstalowany.

Po drugie, pierwsza linia „ludzka” w wymienionym pliku grub.cfg mówi „NIE EDYTUJ” w moim systemie. Jest to wskazówka, że ​​wszelkie ręczne zmiany w pliku mogą zostać utracone.

Poprawnym miejscem do edycji konfiguracji gruba w systemie fedora / redhat jest plik, który specjalnie zasugerowałeś jako niepotrzebny do zmiany (/ etc / default / grub). W rzeczywistości jest to jedyny „bezpieczny” sposób na wprowadzenie proponowanej zmiany i przetrwanie aktualizacji jądra. Jest tak, ponieważ jest on używany jako część konfiguracji źródła podczas aktualizacji jądra, aby zregenerować działający plik grub.cfg. Wyszukaj polecenie grub2-mkconfig (i jego znajomych). Szczegóły są tutaj: https://fedoraproject.org/wiki/GRUB_2

Twoja odpowiedź nie jest zła, ale uznałem ją za nieco mylącą. Nienawidzę wiersza poleceń grub, a IMHO każdy, kto może przegapić dodanie spacji w wierszu poleceń jądra, prawdopodobnie nie podziękowałby nikomu za to, że został poprowadzony tą drogą. Mimo to niektórzy ludzie lubią uczyć się w trudny sposób, jaki znam.

Wszystkie poniższe polecenia muszą być uruchamiane jako root (co samo w sobie jest niebezpieczną rzeczą do zasugerowania).

W przypadku działającego systemu:

auditctl -e 0

Jeśli nie możesz znaleźć audctl, sprawdź ŚCIEŻKĘ i rozważ także:

dnf install audit

Powinno to przynajmniej zmniejszyć, jeśli nie wyłączyć wiadomości, do czasu ponownego uruchomienia komputera.

Aby pozostać poza restartem, edytuj / etc / default / grub i zmień wiersz GRUB_CMDLINE_LINUX, aby dodać „audit = 0” na końcu, a następnie użyj grub2-mkconfig, aby zregenerować grub.cfg. Ten ostatni krok nakłada również warstwę sprawdzania poprawności między zmianą a działającym systemem.


Dziękujemy za zwrócenie uwagi na to /etc/default/grubi grub2-mkconfignależy go wykorzystać. Dodałem poprawkę do mojej odpowiedzi.
basic6

6

Możesz szybko tymczasowo wyłączyć kontrolę za pomocą

sudo auditctl -e 0

i tymczasowo usuń wszystkie reguły za pomocą

sudo auditctl -D

W przypadku przyszłych butów możesz spróbować wyłączyć jego start

 sudo systemctl disable auditd

3

Nie ma usługi audytującej, która mogłaby zostać wyłączona podczas działania systemu, ale okazuje się, że dodanie opcji rozruchu audit=0wydaje się wyłączać wszystkie te komunikaty. System jest ponownie użyteczny, nawet w wierszu poleceń bez uruchomionego X.

Tę opcję można ustawić tymczasowo (zmiana nie przetrwa ponownego uruchomienia):

  1. Gdy pojawi się menu rozruchu Grub (tuż po włączeniu zasilania), trafić edo e dit parametrów startowych. To pokaże ogromne pole tekstowe.
  2. Przewiń w dół do linii rozpoczynającej się od „linux”. Naciśnij Endklawisz, aby przesunąć kursor na koniec linii.
  3. Wpisz biały znak, aby nie złamać ostatniej opcji, a następnie dołącz audit=0. Na przykład ... LANG=en_US.UTF-8 audit=0( ...UTF-8audit=0oczywiście nie).
  4. Uważaj, aby nie zmieniać niczego innego. Jeśli przypadkowo zmodyfikowałeś inną opcję, napraw ją lub uruchom ponownie i zacznij od nowa.
  5. Naciśnij, F10aby uruchomić system.

Oczywiście ta zmiana będzie obowiązywać tylko podczas działania systemu. Powódź kontroli powróci po ponownym uruchomieniu. Aby ta zmiana była trwała, konfiguracja rozruchu musi zostać trwale zmieniona. W Fedorze wystarczy po prostu zmodyfikować, /boot/grub2/grub.cfgponieważ po zainstalowaniu nowego jądra (aktualizacja systemu) grubby powinien skopiować opcje najnowszego jądra do nowo zainstalowanego jądra. Oznacza to, audit=0że należy dołączyć do pierwszego linuxwiersza (pierwszej menuentrysekcji) w tym pliku. Zmiana nie powinna być konieczna/etc/default/grub .
Korekta: Właściwie poprawnym i najbardziej niezawodnym podejściem jest edycja /etc/default/grubi regeneracja konfiguracji Grub przy użyciu grub2-mkconfig -o /boot/grub2/grub.cfg, dziękuję KnightLordAndMaster za zwrócenie na to uwagi .


Dodatkowa uwaga na temat dzienników kontroli w plikach dziennika:

Na marginesie, następujący wiersz powinien uniemożliwić dziennikom kontroli wylądowanie w plikach dziennika, ale nadal zaśmiecałyby dmesg i konsolę, więc samo to nie jest rozwiązaniem. Ta linia byłaby umieszczona jako pierwsza reguła w /etc/rsyslog.conf:

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

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

...

Powoduje to wyświetlenie następującego ostrzeżenia:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.