iptables: kein log?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

iptables: kein log?

Beitrag von burnersk » 12.01.2009 20:25:27

Hallo,

hier ein Ausschnitt aus meiner iptables config

Code: Alles auswählen

# Firewallregeln loeschen
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# eigene Chains erstellen
iptables -N MYDROP
iptables -N MYACCEPT

# Loopback-Kommunikation
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Stateful Inspection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j MYDROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# eigene Chains MYDROP und MYACCEPT konfigurieren
iptables -A MYDROP -j LOG --log-tcp-options --log-ip-options --log-prefix "FW-DROP: "
iptables -A MYDROP -j DROP
iptables -A MYACCEPT -j LOG --log-tcp-options --log-ip-options --log-prefix "FW-ACCEPT: "
iptables -A MYACCEPT -j ACCEPT

# Saemtlichen anderen traffic verbieten
iptables -A INPUT -j MYDROP
iptables -A OUTPUT -j MYDROP
Nach meinem Verständnis müsste
1) er hier doch alles dropen; und zwar nach MYDROP
2) MYDROP den Vorfall loggen

Aber:
*) kein Vorkommen in /var/log/daemon.log
*) kein Vorkommen in /var/log/kern.log
*) kein Vorkommen in /var/log/messages
*) kein Vorkommen in /var/log/syslog

Code: Alles auswählen

#  /etc/syslog.conf     Configuration file for syslogd.
auth,authpriv.*          -/var/logauth.log
*.*;auth,authpriv.none          -/var/log/syslog
daemon.*                        -/var/log/daemon.log
kern.*                          -/var/log/kern.log
lpr.*                           -/var/log/lpr.log
mail.*                          -/var/log/mail.log
user.*                          -/var/log/user.log
uucp.*                   -/var/loguucp.log
mail.info                       -/var/log/mail.info
mail.warn                       -/var/log/mail.warn
mail.err                 -/var/logmail.err
news.crit                -/var/lognews/news.crit
news.err                 -/var/lognews/news.err
news.notice                     -/var/log/news/news.notice
*.=debug;\
        auth,authpriv.none;\
        news.none;mail.none     -/var/log/debug
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages
*.emerg                         *
daemon.*;mail.*;\
        news.crit;news.err;news.notice;\
        *.=debug;*.=info;\
        *.=notice;*.=warn       |/dev/xconsole

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables: kein log?

Beitrag von Danielx » 12.01.2009 22:41:42

burnersk hat geschrieben:hier ein Ausschnitt aus meiner iptables config
Bei iptables ist es nicht sinnvoll nur Ausschnitte zu posten.
burnersk hat geschrieben:Aber:
*) kein Vorkommen in /var/log/daemon.log
*) kein Vorkommen in /var/log/kern.log
*) kein Vorkommen in /var/log/messages
*) kein Vorkommen in /var/log/syslog
Durchsuche mal alle Logs im Verzeichnis /var/log/ und zwar so:

Code: Alles auswählen

grep -r "FW-" /var/log/
Dann weißt du wo die Meldungen landen.
burnersk hat geschrieben:1) er hier doch alles dropen; und zwar nach MYDROP
Es werden nicht alle Pakete verworfen, schon aufgebaute Verbindungen sind weiterhin erlaubt, siehe diese Regeln:

Code: Alles auswählen

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
burnersk hat geschrieben:2) MYDROP den Vorfall loggen
Ja, Pakete mit dem Target "MYDROP" werden geloggt.

Gruß,
Daniel
Zuletzt geändert von Danielx am 12.01.2009 22:48:10, insgesamt 1-mal geändert.

Benutzeravatar
Profbunny
Beiträge: 595
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: iptables: kein log?

Beitrag von Profbunny » 12.01.2009 22:47:28

aus der jacke würde ich sagen das du mit
iptables -t filter -A MYDROP -j LOG --log-tcp-options --log-ip-options --log-prefix "FW-DROP: "


zum erfolg kommen solltest die man erklärt es recht gut. evtl mal über ein limit der logs nachdenken.
da du den loglevel nicht in deinem script änderst, wird der standard angewandt.

übrigens ist die filterung über den sysklogd ein gräul, ulog ist die antwort.

hth
Rechner / Server Debian sid

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables: kein log?

Beitrag von Danielx » 12.01.2009 23:00:02

Profbunny hat geschrieben:aus der jacke würde ich sagen das du mit
iptables -t filter -A MYDROP -j LOG --log-tcp-options --log-ip-options --log-prefix "FW-DROP: "

zum erfolg kommen solltest die man erklärt es recht gut.
Warum denn das?
Die Angabe "-t filter" ist unnötig, denn wenn keine Angabe erfolgt, wird "filter" als Tabelle genommen, siehe "man iptables":
filter:
This is the default table (if no -t option is passed).
Und einen anderen Unterschied gibt es offensichtlich zu der von burnersk verwendeten Regel nicht:
burnersk hat geschrieben:

Code: Alles auswählen

iptables -A MYDROP -j LOG --log-tcp-options --log-ip-options --log-prefix "FW-DROP: "
Gruß,
Daniel

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables: kein log?

Beitrag von burnersk » 13.01.2009 11:03:39

Danielx hat geschrieben:Bei iptables ist es nicht sinnvoll nur Ausschnitte zu posten.
Stimmt, das einzige was da zu testzwecken noch drin ist, ist die SSH IN/OUT Regel.

Danielx hat geschrieben:Durchsuche mal alle Logs im Verzeichnis /var/log/ und zwar so:

Code: Alles auswählen

grep -r "FW-" /var/log/
Leider nix :cry:

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables: kein log?

Beitrag von Danielx » 13.01.2009 11:26:52

burnersk hat geschrieben:Stimmt, das einzige was da zu testzwecken noch drin ist, ist die SSH IN/OUT Regel.
Ok. :-)
Danielx hat geschrieben:Leider nix :cry:
Nun gut, ich habe eben mal deine obigen iptables-Regeln auf einem Debian Etch getestet und die "FW-"-Meldungen werden schön in der /var/log/syslog aufgezeichnet, sie funktionieren also.

Deine /etc/syslog.conf scheint allerdings kaputt zu sein, z.B. fehlt bei den folgenden Zeilen jeweils nach dem /var/log ein / :
burnersk hat geschrieben:

Code: Alles auswählen

auth,authpriv.*          -/var/logauth.log
uucp.*                   -/var/loguucp.log
mail.err                 -/var/logmail.err
news.crit                -/var/lognews/news.crit
news.err                 -/var/lognews/news.err
Läuft bei dir überhaupt der syslogd, bitte Ausgabe des folgenden Befehls posten:

Code: Alles auswählen

ps -fA | grep syslogd
Gruß,
Daniel

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables: kein log?

Beitrag von burnersk » 13.01.2009 12:15:32

Danielx hat geschrieben:Deine /etc/syslog.conf scheint allerdings kaputt zu sein
Behoben und /etc/init.d/sysklogd restart
Danielx hat geschrieben:Läuft bei dir überhaupt der syslogd, bitte Ausgabe des folgenden Befehls posten
Ja:

Code: Alles auswählen

root      6082     1  0 Jan12 ?        00:00:00 /sbin/syslogd
Keine Veränderung im Logverhalten :(

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables: kein log?

Beitrag von Danielx » 13.01.2009 12:23:37

Ich sehe da auf den ersten Blick zwar keinen wesentlichen Unterschied, aber hier mal die Datei aus meinem Etch, mit der es bei mir funktioniert:
http://nopaste.debianforum.de/18068

Liefert dmesg irgendwelche hilfreichen Hinweise?

Gruß,
Daniel

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables: kein log?

Beitrag von burnersk » 15.01.2009 15:01:57

In dmesg stehen die logs drin. Aber wo kann ich das als Datei bekommen und alle Einträge?

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables: kein log?

Beitrag von Danielx » 16.01.2009 01:22:10

burnersk hat geschrieben:In dmesg stehen die logs drin.
Bei dir sind in /var/log/messages die iptables-Meldungen zu finden?
burnersk hat geschrieben:Aber wo kann ich das als Datei bekommen und alle Einträge?
Du kannst die Logdatei nach den iptables-Meldungen filtern (als root):

Code: Alles auswählen

grep "FW-" /var/log/messages
Oder auch "live" beobachten, welche iptables-Einträge gerade geschrieben werden (als root):

Code: Alles auswählen

tail -f -n0 /var/log/messages | grep "FW-"
Gruß,
Daniel

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables: kein log?

Beitrag von burnersk » 16.01.2009 08:50:24

burnersk hat geschrieben:Aber:
*) kein Vorkommen in /var/log/daemon.log
*) kein Vorkommen in /var/log/kern.log
*) kein Vorkommen in /var/log/messages
*) kein Vorkommen in /var/log/syslog
burnersk hat geschrieben:
Danielx hat geschrieben:Durchsuche mal alle Logs im Verzeichnis /var/log/ und zwar so:

Code: Alles auswählen

grep -r "FW-" /var/log/
Leider nix :cry:

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables: kein log?

Beitrag von Duff » 16.01.2009 08:57:28

Werden denn die Ausgaben des iptables-Scripts auf die Konsole (stdout) ausgegeben?

Sonst mal in /etc/default/klogd die vorhandene Variable um -c4 ergäzen.

Code: Alles auswählen

KLOGD="-x -c 4"
Dann sollte der klogd (Kernel-Message-Daemon) erst ab Level 4 Meuldungen auf der Konsole ausgeben. Alles andere sollte in /var/log/syslog geloggt werden.

Natürlich nach der Konfigänderung noch den klogd restarten.

Code: Alles auswählen

/etc/init.d/klogd restart
Oh, yeah!

burnersk
Beiträge: 125
Registriert: 22.10.2008 21:32:16
Lizenz eigener Beiträge: MIT Lizenz

Re: iptables: kein log?

Beitrag von burnersk » 17.01.2009 09:59:33

Hi,
Duff hat geschrieben:Sonst mal in /etc/default/klogd die vorhandene Variable um -c4 ergäzen.
daran hat es gelegen. Vielen Dank.

Nur noch eine Frage... ich kenne es so, von der Firma in der ich arbeite, dass die iptables Logs in die Datei firewall.log geschrieben werden.
Geht das unter Debian auch oder nur über den Trick mit dem Loglevel (wo dann auch *falsche* Logeinträge in der firewall.log wären)?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables: kein log?

Beitrag von Duff » 17.01.2009 12:01:08

Das müsste doch über die /etc/syslog.conf zu steuern sein.

Aber mit ein paar grep-Befehlen kannst du die entsprechenden Loginformationen so raus filtern.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables: kein log?

Beitrag von Duff » 17.01.2009 12:04:05

Das müsste doch über die /etc/syslog.conf zu steuern sein.

Aber mit ein paar grep-Befehlen kannst du die entsprechenden Loginformationen so raus filtern.
Oh, yeah!

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: iptables: kein log?

Beitrag von Danielx » 17.01.2009 15:06:27

burnersk hat geschrieben:Nur noch eine Frage... ich kenne es so, von der Firma in der ich arbeite, dass die iptables Logs in die Datei firewall.log geschrieben werden.
Geht das unter Debian auch oder nur über den Trick mit dem Loglevel (wo dann auch *falsche* Logeinträge in der firewall.log wären)?
Das geht mit syslog-ng oder ulogd.
Duff hat geschrieben:Das müsste doch über die /etc/syslog.conf zu steuern sein.
Jein, nur über einen Trick:
iptables-Einträge auf Log-Level "debug" setzen und dann alle debug-Einträge in eine eigene Datei schreiben lassen (siehe /etc/syslog.conf).
Sollte ein anderes Programm aber seine Meldungen auch mit dem Log-Level "debug" ausgeben (was aber so gut wie kein Programm standardmäßig macht), würden diese allerdings auch in der Datei landen.

Gruß,
Daniel

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: iptables: kein log?

Beitrag von Duff » 17.01.2009 17:11:57

Danielx hat geschrieben: Jein, nur über einen Trick:
iptables-Einträge auf Log-Level "debug" setzen und dann alle debug-Einträge in eine eigene Datei schreiben lassen (siehe /etc/syslog.conf).
Sollte ein anderes Programm aber seine Meldungen auch mit dem Log-Level "debug" ausgeben (was aber so gut wie kein Programm standardmäßig macht), würden diese allerdings auch in der Datei landen.
Dann kann man doch besser alles in der syslog-Datei loggen lassen und per grep die gewünschten Einträge rausfiltern.
Oh, yeah!

Antworten