Cara menonaktifkan entri log "sukses audit" yang tidak berguna di dmesg

11

Versi singkat: Cara menonaktifkan pesan audit (dmesg) pada sistem Fedora?


Sistem Fedora terus mencatat pesan "audit: success" di dmesg - sedemikian ekstrim sehingga dmesg menjadi tidak dapat digunakan karena diisi oleh pesan-pesan ini ( dmesg | grep -v auditkosong). Pesan-pesan ini benar-benar tidak berguna karena mereka jelas ingin memberi tahu pengguna bahwa beberapa proses internal setiap hari telah berhasil (yang mungkin menarik ketika men-debug sesuatu, tetapi hanya berisik dalam kasus ini).

Bahkan antarmuka baris perintah (ketika beralih ke non-X tty dengan Ctrl+ Alt+ F2) telah menjadi tidak dapat digunakan karena selalu penuh dengan pesan audit ini, tidak mungkin untuk membaca output dari perintah yang sebenarnya dijalankan oleh pengguna. Misalnya, setelah memasukkan nama pengguna (login), sebuah pesan audit dimuntahkan (tampaknya memberi tahu pengguna bahwa sesuatu telah berhasil diformat / dicetak):

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" hostname =? addr =? terminal =? res = sukses '

Tampaknya sebagian besar pesan ini mengindikasikan "berhasil", namun ada juga banyak pesan audit yang tidak mengandung kata kunci ini. Menjalankan Chromium memicu ratusan dari ini:

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

Pesan lain termasuk:

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" hostname =? addr =? terminal =? res = sukses '

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 "hostname =? addr =? terminal = cron res = sukses '

Secara umum, sebagian besar pesan audit terbaru (pada saat penulisan) berisi kata kunci " NetworkManager " atau " chrome ".

Bagaimana pesan-pesan ini dinonaktifkan sepenuhnya?


Poin tambahan:

  • Jika ada orang yang berpikir "Anda harus membaca dan menganalisis pesan audit ini, bukan menonaktifkannya, mereka bisa menjadi penting", tidak, mereka tidak penting, mereka hampir secara eksklusif merupakan pesan "sukses". Tidak ada yang perlu diberitahu bahwa sesuatu yang seharusnya bekerja ternyata bekerja. Namun, jika satu pesan yang benar-benar signifikan sedang dicatat, itu tidak akan pernah terlihat dalam badai ribuan pesan yang tidak signifikan. Bagaimanapun, tidak ada logging audit yang diinginkan pada sistem khusus ini (itu tetap berjalan dalam lingkungan yang terkendali).
  • Jelas, sesuatu harus sangat tidak terkonfigurasi pada sistem ini. Namun, itu pernah menjadi instalasi Fedora default yang telah ditingkatkan setiap kali rilis baru keluar. Mungkin ini hanya pengaturan sederhana yang harus diubah, tetapi karena tidak terjadi perubahan konfigurasi sistem secara manual (sengaja), pertanyaan stackexchange.com ini semoga akan membantu orang lain yang mendapatkan sistem mereka dalam keadaan yang sama.
  • Sekarang sistem Fedora 22, menjalankan Linux 4.0.6 (systemd 219).
  • Ini adalah instalasi desktop Fedora standar, saat ini menjalankan KDE.
  • SELinux dinonaktifkan (/ etc / selinux / config diatur ke "nonaktif").

Pembaruan : Setelah memutakhirkan ke Fedora 23 (kernel 4.2.5, systemd 222), ada lebih sedikit pesan audit daripada sebelumnya.

basic6
sumber
Alih-alih menonaktifkan audit, yang menonaktifkan penulisan pesan audit ke log yang dapat Anda lihat audit2allow, apakah Anda mempertimbangkan untuk memodifikasi nilai kernel.printk yang relevan dengan mencetak pesan kernel ke konsol? Secara default pada Fedora adalah "7 4 1 7", nilai yang lebih masuk akal adalah "3 4 1 7".
Bob

Jawaban:

12

Pertama, pada fedora, baik auditd maupun auditctl berasal dari paket yang sama (tanpa nama bernama audit). Jadi, jika Anda tidak memiliki auditctl, ada hal lain yang salah. Coba ini:

rpm -ql audit |grep ctl

Jika itu tidak memberi Anda apa-apa, maka Anda tidak memiliki paket audit yang diinstal sama sekali.

Kedua, baris bahasa "manusia" pertama dalam file grub.cfg yang Anda sebutkan mengatakan "JANGAN EDIT" di sistem saya. Ini adalah petunjuk bahwa setiap perubahan manual pada file bisa hilang.

Tempat yang tepat untuk mengedit konfigurasi grub pada sistem fedora / redhat adalah satu file yang Anda sarankan tidak perlu diubah (/ etc / default / grub). Pada kenyataannya, ini adalah satu-satunya cara "aman" untuk membuat perubahan yang diusulkan dan selamat dari peningkatan kernel. Ini karena ia digunakan sebagai bagian dari konfigurasi sumber selama peningkatan kernel, untuk membuat kembali grub.cfg yang berfungsi. Cari perintah grub2-mkconfig (dan teman-temannya). Detailnya ada di sini: https://fedoraproject.org/wiki/GRUB_2

Jawaban Anda tidak salah, tetapi saya merasa sedikit membingungkan. Saya benci baris perintah grub, dan siapa pun IMHO yang kemungkinan akan melewatkan menambahkan spasi spasi pada baris perintah kernel mungkin tidak akan berterima kasih kepada siapa pun karena telah memimpin jalan itu. Namun, beberapa orang suka belajar dengan cara yang sulit saya tahu.

Semua perintah di bawah ini harus dijalankan sebagai root (yang dengan sendirinya berbahaya untuk disarankan).

Untuk sistem yang berjalan:

auditctl -e 0

Jika Anda tidak dapat menemukan auditctl, periksa PATH Anda dan pertimbangkan juga:

dnf install audit

Ini setidaknya harus mengurangi jika tidak menonaktifkan pesan sampai waktu Anda bisa reboot.

Untuk bertahan di luar reboot, edit / etc / default / grub dan ubah baris GRUB_CMDLINE_LINUX untuk menambahkan "audit = 0" sampai akhir, kemudian gunakan grub2-mkconfig untuk membuat ulang grub.cfg. Langkah terakhir ini juga menempatkan lapisan validasi antara perubahan Anda, dan sistem yang sedang berjalan.

KnightLordAndMaster
sumber
Terima kasih telah menunjukkan itu /etc/default/grubdan grub2-mkconfigharus digunakan. Saya telah menambahkan koreksi pada jawaban saya.
basic6
6

Anda dapat dengan cepat menonaktifkan audit untuk sementara waktu

sudo auditctl -e 0

dan untuk sementara hapus semua aturan dengan

sudo auditctl -D

Untuk boot selanjutnya, Anda dapat mencoba menonaktifkan dimulainya

 sudo systemctl disable auditd
meuh
sumber
3

Tidak ada layanan auditd yang dapat dinonaktifkan saat sistem sedang berjalan, tetapi ternyata menambahkan opsi boot audit=0tampaknya menonaktifkan semua pesan ini. Sistem dapat digunakan kembali, bahkan pada baris perintah tanpa X berjalan.

Opsi ini dapat diatur sementara (perubahan tidak akan selamat dari reboot):

  1. Ketika Grub muncul menu boot (setelah menyalakan power on), tekan eke e dit parameter boot. Ini akan menampilkan kotak teks besar.
  2. Gulir ke bawah ke baris yang dimulai dengan "linux". Tekan Endtombol untuk memindahkan kursor ke ujung garis.
  3. Masukkan karakter spasi sehingga Anda tidak merusak opsi terakhir, lalu tambahkan audit=0. Misalnya ... LANG=en_US.UTF-8 audit=0(tidak ...UTF-8audit=0, jelas).
  4. Berhati-hatilah untuk tidak mengubah apa pun. Jika Anda tidak sengaja memodifikasi beberapa opsi lain, perbaiki atau reboot dan mulai lagi dari awal.
  5. Hit F10untuk mem-boot sistem.

Tentu saja, perubahan ini hanya akan berlaku saat sistem berjalan. Banjir audit akan kembali setelah reboot. Untuk membuat perubahan ini permanen, konfigurasi boot harus diubah secara permanen. Di Fedora, itu harus cukup dengan hanya memodifikasi /boot/grub2/grub.cfgkarena ketika kernel baru diinstal (pembaruan sistem), kotor harus menyalin opsi dari kernel terbaru ke kernel yang baru diinstal. Ini berarti, audit=0harus ditambahkan ke linuxbaris pertama ( menuentrybagian pertama ) dalam file ini. Seharusnya tidak perlu berubah/etc/default/grub .
Koreksi: Sebenarnya, pendekatan yang benar dan paling dapat diandalkan adalah mengedit /etc/default/grubdan membuat ulang konfigurasi Grub menggunakan grub2-mkconfig -o /boot/grub2/grub.cfg, terima kasih KnightLordAndMaster untuk menunjukkan ini .


Catatan tambahan tentang log audit dalam file log:

Sebagai catatan tambahan, baris berikut harus mencegah log audit dari berakhir di file log, tetapi mereka masih akan mengacaukan dmesg dan konsol, jadi ini bukan solusi itu sendiri. Baris ini akan dimasukkan sebagai aturan pertama di /etc/rsyslog.conf:

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

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

...

Ini sekarang menghasilkan peringatan berikut:

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

basic6
sumber