[gelöst] syslog-ng und iptables Log-Meldungen filtern

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
chris99
Beiträge: 21
Registriert: 07.09.2014 10:46:27

[gelöst] syslog-ng und iptables Log-Meldungen filtern

Beitrag von chris99 » 17.09.2014 15:32:18

Ich habe auf meinem Deb7 System mit iptables FW-Regeln definiert. Über syslog-ng werden die Meldungen in die Dateien einsortiert. Derzeit werden die FW-Meldungen in syslog, message und kern.log parallel gespeichert. M.E. ist das eine ziemliche Verschwendung abgesehen von der schlechten Performance.

Hier zwei Beispielzeilen

Code: Alles auswählen

Sep 17 15:24:48 itex-d0 kernel: [17416.582391] IN=xenbr0 OUT= PHYSIN=eth0 MAC=6c:62:6d:58:b2:c2:00:26:88:75:ff:14:08:00 SRC=217.118.79.33 DST=x.x.x.x LEN=48 TOS=0x08 PREC=0x40 TTL=50 ID=20901 DF PROTO=TCP SPT=9741 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 
Sep 17 15:24:48 itex-d0 kernel: [17416.586788] IN=xenbr0 OUT= PHYSIN=eth0 MAC=6c:62:6d:58:b2:c2:00:26:88:75:ff:14:08:00 SRC=217.118.79.33 DST=x.x.x.x LEN=48 TOS=0x08 PREC=0x40 TTL=50 ID=20901 DF PROTO=TCP SPT=9741 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 
Nun möchte ich alle FW-Meldungen in einer Datei zusammengefasst haben.

Dazu habe ich folgende Zeilen in /etc/syslog-ng/syslog-ng.conf definiert:

Code: Alles auswählen

# FW log in eine extra datei
destination d_iptables { file("/var/log/firewall" perm(0640)); };
...
filter f_messages { level(info,notice,warn) and not filter (f_iptables) and
                    not facility(auth,authpriv,cron,daemon,mail,news); };
...
# Logs der FW
filter f_iptables { program ("iptables"); };
...
# fuer FW iptables
log { source(s_src); filter(f_iptables); destination(d_iptables); };
Nur, die Log-Zeilen werden immer noch in message, kern.log uns systlog gespeichert. Jetzt habe ich den Filter auf

Code: Alles auswählen

filter f_iptables { match ("IN=xenbr0"); };
gesetzt. Brachte aber keinen Erfolg. Irgendwo habe ich etwas übersehen, aber wo?
Zuletzt geändert von chris99 am 17.09.2014 21:18:07, insgesamt 1-mal geändert.

chris99
Beiträge: 21
Registriert: 07.09.2014 10:46:27

Re: syslog-ng und iptables Log-Meldungen filtern

Beitrag von chris99 » 17.09.2014 21:17:50

Die Einträge waren schon richtig. Das Problem war, es lief noch vermutlich eine Instanz von rsyslog. Dieses Paket hatte ich vorher installiert. Nach einem Reboot lief syslog-ng einwandfrei.

Hier noch die gesamte Lösung, um alle Meldungen von iptables nur in einer Logdatei zu sammeln:

Code: Alles auswählen

# First, set some global options.
options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
          owner("root"); group("adm"); perm(0640); stats_freq(0);
          bad_hostname("^gconfd$"); flush_lines (10);
};
...
# FW log in eine extra datei
destination d_iptables { file("/var/log/firewall"); };
...
filter f_messages { level(info,notice,warn) and not filter (f_iptables) and
                    not facility(auth,authpriv,cron,daemon,mail,news); };
filter f_kern { facility(kern) and not filter(f_debug) and
                not filter (f_iptables); };
filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug) and
                not filter (f_iptables); };
...
# Logs der FW
filter f_iptables { facility(kern) and match ("IN=xenbr0" value("MESSAGE")); };
...
# fuer FW iptables
log { source(s_src); filter(f_iptables); destination(d_iptables); };
flush_lines spart Performance und schreibt erst ins Log, wenn 10 Zeilen vorhanden sind.

Ist 'value("MESSAGE")' nicht vorhanden, wird das Fehlen von value von syslog-ng angemerkt.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: [gelöst] syslog-ng und iptables Log-Meldungen filtern

Beitrag von Cae » 17.09.2014 23:36:45

Wenn du auf IN=xenbr0 matchst, gehen dir irgendwann -i lo -j LOG-Pakete durch die Lappen (auch wenn's gerade keine entsprechende Logging-Regel gibt). Bei mir hat sich bewaehrt, zu jedem -j LOG denselben Anfang von --log-prefix zu verwenden, auf den man sicher matchen kann.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

chris99
Beiträge: 21
Registriert: 07.09.2014 10:46:27

Re: [gelöst] syslog-ng und iptables Log-Meldungen filtern

Beitrag von chris99 » 30.09.2014 12:05:25

Danke für den Tipp.
zu jedem -j LOG denselben Anfang von --log-prefix zu verwenden
werde ich einbauen.

Antworten