Di iptables saya, saya memiliki aturan yang mencatat paket yang dijatuhkan:
-A INPUT -i eth0 -j LOG --log-prefix "FW: " --log-level 7
-A INPUT -i eth0 -j DROP
Dan /etc/rsyslog.conf
, saya punya aturan lain yang mengirim log ini ke file khusus /var/log/firewall.log
.
:msg, contains, "FW: " -/var/log/firewall.log
& ~
The & ~
menghapus log segera, sehingga mereka tidak banjir syslog
atau file log lainnya.
Ini bekerja dengan baik, kecuali bahwa ia membanjiri dmesg
log-log firewall itu (tidak /var/log/dmesg
hanya output dari perintah dmesg
).
Apakah ada cara untuk mencegah agar log ini tidak ditampilkan dmesg
?
dmesg
banjir, bukan tentang aturan firewall.ulogd2
. Begitulah cara saya memecahkan masalah.Jawaban:
Anda bisa menggunakan
NFLOG
target alih-alihLOG
:Yang Anda perlukan hanyalah
nfnetlink_log
program logging yang mumpuni. Pesan akan pergi ke sana dan proses userspace akan memutuskan apakah akan mencatat paket atau tidak.Hal lain yang bisa Anda coba adalah membatasi
LOG
aturan ke ambang tertentu:Ini akan rata-rata mencatat 10 paket per menit. Anda tentu saja dapat menyesuaikan ini dengan kebutuhan Anda.
sumber
rsyslog
keNFLOG
paket log . Saya perlu beberapa solusi yang akan berhasilrsyslog
.Ini mungkin terkait dengan tingkat log yang Anda gunakan di iptables. Seperti yang saya mengerti dari tingkat log dokumentasi rsyslog adalah: "Prioritas adalah salah satu kata kunci berikut, dalam urutan naik: debug, info, pemberitahuan, peringatan, peringatan (sama seperti peringatan), err, kesalahan (sama seperti err), kritik, waspada, muncul, panik (sama seperti muncul). " Bagaimana dengan mencoba menentukan level log di iptables dengan menggunakan namanya, yaitu 'pemberitahuan'. Baik melayani saya untuk memposting tanpa memeriksa karena sekarang saya pikir itu bukan masalah sama sekali. Saya menerapkan skema serupa dengan yang diuraikan di atas dan saya mendapatkan masalah yang sama. Kernel centos 7 saya adalah v3.10.0 dan tampaknya sejak v3.5 tampaknya logging kernel dilakukan menggunakan / dev / kmsg dan saya kira dmesg entah bagaimana mendapatkan inputnya dari sana.
sumber
Ketika Anda telah mengatur level log ke 7 dengan perintah:
Kemudian Anda cukup memfilter pesan-pesan ini dengan mengirimkan ambang batas level ke dmesg:
sumber
Kenapa kamu peduli?
dmesg
adalah alat tingkat rendah untuk mencetak pesan-pesan kernel terbaru, dan Anda memang meminta kernel untuk mencatat paket yang dijatuhkan.Konfigurasikan sistem syslog sistem Anda untuk mencatat pesan iptables dalam file log terpisah dari pesan kernel lainnya, dan gunakan file log yang ditulisnya
dmesg
.sumber