Ich versuche, verworfene Pakete in einer benutzerdefinierten Datei zu protokollieren /var/log/messages
.
Um dies zu erreichen, habe ich diese beiden Zeilen am Ende meiner Konfigurationsdatei hinzugefügt:
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
-A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
Dies funktioniert, weil ich die INPUT- und OUTPUT-Ketten standardmäßig als DROP konfiguriert habe. Wenn das Paket also keine vorherige Regel erfüllt, wird es protokolliert und gelöscht.
Ich kann sie jedoch nicht in einer benutzerdefinierten Datei protokollieren. Sie melden sich erfolgreich an /var/log/messages
, aber ich möchte, dass sie angemeldet sind /var/log/iptables.log
. Ich habe die Datei /etc/rsyslog.d/iptables.conf
mit folgendem Inhalt erstellt:
:msg, contains, "IPTables-INPUT-Dropped: " - /var/log/iptables.log
& ~
Dann habe ich rsyslog neu gestartet /etc/init.d/rsyslog restart
und einige Pakete gesendet, von denen ich wusste, dass sie gelöscht werden würden. Sie sind jedoch nicht in iptables.log angemeldet, sondern werden immer noch angemeldet /var/log/messages
.
Welche Konfiguration fehlt?
Gelöst Das Problem ist, dass zwischen - und / kein Leerzeichen stehen sollte
/etc/rsyslog.conf
vor anderen Anweisungen, so dass die Nachricht gelöscht wird, bevor etwas anderes sie aufnimmt. Versuchen Sie das undkill -HUP `pidof rsyslogd`
. Verlieren Sie möglicherweise das Leerzeichen am Ende der angegebenen Zeichenfolge.