Solusi 1:
Secara keseluruhan, dokumentasi yang tersedia untuk Logwatch tidak memiliki penjelasan yang memadai dan seringkali terlalu kabur. Saya menggabungkan beberapa contoh berguna, dan telah mengurangi kebisingan Logwatch hingga lebih dari 95%.
Inilah yang saya temukan.
Ingatlah bahwa Anda dapat menemukan beberapa dokumentasi Logwatch di /usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch
, dan berisi beberapa contoh berguna.
-
Pada RHEL/CentOS/SL, konfigurasi logwatch default berada di bawah
/usr/share/logwatch/default.conf/logwatch.conf
Setelan ini dapat diganti dengan menempatkan konfigurasi lokal Anda di bawah
/etc/logwatch/conf/logwatch.conf
. Tempatkan yang berikut di file itu untuk memberi tahu logwatch untuk sepenuhnya mengabaikan layanan seperti 'httpd' dan pemeriksaan penggunaan disk harian:# Don't spam about the following Services Service = "-http" Service = "-zz-disk_space"
-
Kadang-kadang saya tidak ingin sepenuhnya menonaktifkan logwatch untuk layanan tertentu, saya hanya ingin menyempurnakan hasilnya agar tidak terlalu berisik.
/usr/share/logwatch/default.conf/services/*.conf
berisi konfigurasi default untuk layanan. Parameter ini dapat diganti dengan menempatkan konfigurasi lokal Anda di bawah/etc/logwatch/conf/services/$SERVICE.conf
. Sayangnya, kemampuan logwatch di sini terbatas, dan banyak dari executable logwatch penuh dengan Perl yang tidak berdokumen. Pilihan Anda adalah mengganti yang dapat dieksekusi dengan yang lain, atau mencoba mengganti beberapa pengaturan menggunakan/etc/logwatch/conf/services
.Misalnya, saya memiliki pemindai keamanan yang menjalankan pemindaian di seluruh jaringan. Saat pengujian berjalan, pemindai keamanan menghasilkan banyak pesan kesalahan di log aplikasi. Saya ingin logwatch mengabaikan kesalahan dari pemindai keamanan saya, tetapi tetap memberi tahu saya tentang serangan dari host lain. Ini dibahas lebih detail di Logwatch:Abaikan IP tertentu untuk pemeriksaan SSH &PAM?. Untuk melakukan ini, saya menempatkan yang berikut di bawah
/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.*
"
-
logwatch juga memungkinkan Anda menghapus output dari email logwatch dengan menempatkan ekspresi reguler di
/etc/logwatch/conf/ignore.conf
. HOWTO-Customize-LogWatch berkata:abaikan.conf:File ini menetapkan ekspresi reguler yang, ketika dicocokkan dengan keluaran logwatch, akan menekan baris yang cocok, terlepas dari layanan mana yang dijalankan.
Namun, saya belum terlalu beruntung dengan ini. Persyaratan saya memerlukan pernyataan bersyarat, yang kira-kira seperti 'Jika ada peringatan keamanan karena pemindai keamanan saya, maka jangan cetak hasilnya. Tetapi jika ada peringatan keamanan dari pemindai keamanan saya dan dari beberapa orang jahat, lalu cetak bagian yang berguna-- Header yang mengatakan "Login gagal dari:", IP host jahat, tetapi bukan IP pemindai.'
-
Gigit di sumbernya (Seperti yang disarankan oleh @ user48838). Pesan-pesan ini dibuat oleh beberapa aplikasi, dan kemudian Logwatch dengan senang hati memuntahkan hasilnya kepada Anda. Dalam kasus ini, Anda dapat memodifikasi aplikasi agar mencatat lebih sedikit.
Ini tidak selalu diinginkan, karena kadang-kadang Anda ingin log lengkap dikirim ke suatu tempat (ke server syslog pusat, server IDS pusat, Splunk, Nagios, dll.), tetapi Anda tidak ingin logwatch mengirimi Anda email tentang ini dari setiap server, setiap hari.
Solusi 2:
Ya - jam tangan seringkali terlalu berisik. Anda telah menyebutkan penonaktifan pemeriksaan sepenuhnya.
Jika Anda tidak ingin melakukan itu, Anda harus mencegah munculnya peristiwa tertentu. Misalnya - tidak menarik jika nagios terhubung melalui ssh ke sistem DMZ. Namun yang menarik adalah jika ada login lain melalui ssh.
Kami menggunakan rsyslog alih-alih ksyslogd (instal dulu rsyslog, lalu hapus ksyslogd). Dengan rsyslog Anda dapat menyempurnakan apa yang masuk ke log dan apa yang tidak (mis. membangun ekspresi yang menghapus pesan dari sshd cointaining "nagios connected"). Dengan begitu, logwatch hanya akan melaporkan informasi yang berguna.
Kasus lain mungkin xinetd - Saya tidak ingin mendapat informasi tentang koneksi yang berhasil - ini dapat dikonfigurasi di xinetd itu sendiri - tanpa menonaktifkan pemeriksaan logwatch untuk xinetd.
Solusi 3:
Sebagai tujuan, saya mengikuti opsi 2 dari jawaban Stefan Lasiewski tetapi untuk tujuan saya, saya hanya ingin menyertakan baris tertentu daripada mengecualikan semua kebisingan yang tidak saya inginkan.
Saya sedang mengonfigurasi vsftpd jadi saya membuat /etc/logwatch/conf/services/vsftpd.conf
dan alih-alih menggunakan sesuatu seperti *Remove = testuser
yang menghapus baris yang menyertakan teks testuser
Saya menggunakan baris *OnlyContains = "testuser"
yang hanya mengembalikan baris termasuk teks itu.
Kedua skrip ini pada dasarnya bekerja dengan menggunakan grep
dan grep -v
.
Perbedaannya adalah Anda dapat menggunakan *Remove
sebanyak yang Anda inginkan tetapi dengan *OnlyContains
Anda harus menggunakannya sekali jika Anda menginginkan sesuatu atau sesuatu yang lain atau sesuatu yang lain. Jadi untuk banyak nilai, Anda melakukan *OnlyContains = "testuser|testuser2|testuser3"