Wie kann ich /etc/syslog.conf
konfigurieren Datei, um Protokollinformationen über iptables
zu speichern in einer bestimmten Datei.
Ich möchte diese Informationen separat speichern, damit ich das Gewünschte einfach und schnell extrahieren kann.
Akzeptierte Antwort:
syslog
Werfen Sie einen Blick in die Manpage für iptables
. Es zeigt ein Ziel namens LOG
der kann, was du willst.
Beispiel
-
Legen Sie die Protokollierungsstufe für
LOG
fest bis 4.# DROP everything and Log it iptables -A INPUT -j LOG --log-level 4 iptables -A INPUT -j DROP
-
Konfigurieren Sie
syslog.conf
um diese Nachrichten in eine separate Datei zu schreiben.# /etc/syslog.conf kern.warning /var/log/iptables.log
-
Starten Sie syslogd neu.
Debian/Ubuntu
$ sudo /etc/init.d/sysklogd restart
Fedora/CentOS/RHEL
$ sudo /etc/init.d/syslog restart
HINWEIS: Diese Protokollierungsmethode wird als feste Priorität bezeichnet. Sie sind entweder Zahlen oder Namen (1,2,3,4,..) oder (DEBUG, WARN, INFO, etc.).
rsyslog
Wenn Sie zufällig rsyslog
verwenden , können Sie einen eigenschaftsbasierten Filter wie folgt erstellen:
# /etc/rsyslog.conf
:msg, contains, "NETFILTER" /var/log/iptables.log
:msg, contains, "NETFILTER" ~
Fügen Sie dann diesen Schalter zu Ihren iptables-Regeln hinzu, die Sie protokollieren möchten:
–log-prefix NETFILTER
Alternativ können Sie die Meldungen auch mit diesem Eigenschaftsfilter protokollieren:
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^[ *[0-9]*.[0-9]*] iptables: " -/var/log/iptables.log
& ~
HINWEIS: Diese zweite Methode erfordert keine Änderungen an iptables
.
Referenzen
- Zwingen Sie iptables, Nachrichten in einer anderen Protokolldatei zu protokollieren
- IPtables-Meldungen mit rsyslog protokollieren