Hallo Leute!
Ich logge mit iptables die abgelehnten Paketen:
/sbin/iptables -A INPUT ! -p icmp -j LOG --log-prefix IPv4 /sbin/iptables -A FORWARD ! -p icmp -j LOG --log-prefix IPv4FWD /sbin/ip6tables -A INPUT ! -p icmpv6 -j LOG --log-prefix IPv6 /sbin/ip6tables -A FORWARD ! -p icmpv6 -j LOG --log-prefix IPv6
Das funktioniert einwandfrei und ich sehe im /var/log/syslog Einträge wie:
Jul 3 08:40:48 gw kernel: [ 6387.635210] IPv4IN=printer0 OUT= MAC=00:01:80:7c:d7:b5:b8:27:eb:6c:1b:8c:08:00 SRC=192.168.5.7 DST=192.168.5.101 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=62970 DF PROTO=TCP SPT=44362 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
Nun möchte ich dass diese Meldungen in einer anderen Datei geschrieben werden, damit /var/log/syslog etwas sauberes bleibt. Ich habe dann eine Datei /etc/rsyslog.d/10-iptables.conf mit folgendem Inhalt angelegt:
:msg, startswith,"IPv" /var/log/firewall.log & ~
Leider funktioniert das nicht... :( Wenn ich statt "startswith" "contains" schreibe, dann geht es, allerdings werden auch andere Sachen in /var/log/firewall.log gespeichert, die dort nicht gehören... Das System ist Debian 10. Auf einem anderen System mit Debian 9 funktionierte es... Hat jemand eine Ahnung, was jetzt anderes ist?
Danke Luca Bertoncello (lucabert@lucabert.de)
Hi,
scheint ein gut abgehangenes Problem zu sein - z. B. findet man https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/479592 wo beschrieben wird, dass der Kernel-Timestamp zur Nachricht zählt (da er nach dem ":" kommt), und man den KeepKernelTimeStamp off wegmachen kann. Und dann kann es noch sein, dass das Leerzeichen am Anfang stört.
Entweder machst du den Timestamp weg und nimmst ggf. das Leerzeichen in deine Regeln auf, oder du nimmst regexp statt startswith (https://www.rsyslog.com/doc/v8-stable/configuration/filters.html?highlight=r...) und formulierst die regulären Ausdrücke so, dass Timestamp und Leerzeichen egal sind - langfristig vermutlich der stabilere Weg, kostet mehr CPU (sollte aber m. E. kaum relevant sein bei den zuhause typischerweise anfallenden Log-Mengen).
Carsten
Am 05.07.2020 um 22:01 schrieb Carsten Weber:
Hallo Carsten
scheint ein gut abgehangenes Problem zu sein - z. B. findet man https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/479592 wo beschrieben wird, dass der Kernel-Timestamp zur Nachricht zählt (da er nach dem ":" kommt), und man den KeepKernelTimeStamp off wegmachen kann. Und dann kann es noch sein, dass das Leerzeichen am Anfang stört.
Entweder machst du den Timestamp weg und nimmst ggf. das Leerzeichen in deine Regeln auf, oder du nimmst regexp statt startswith (https://www.rsyslog.com/doc/v8-stable/configuration/filters.html?highlight=r...) und formulierst die regulären Ausdrücke so, dass Timestamp und Leerzeichen egal sind - langfristig vermutlich der stabilere Weg, kostet mehr CPU (sollte aber m. E. kaum relevant sein bei den zuhause typischerweise anfallenden Log-Mengen).
Ich habe eine neue Syntax gefunden und die funktioniert:
if ( $msg contains 'IPv' and $msg contains 'IN=' and $msg contains 'OUT=' ) then { /var/log/firewall.log stop }
Grüße Luca Bertoncello (lucabert@lucabert.de)
lug-dd@mailman.schlittermann.de