PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : netfilter/iptables: Verständnisproblem mit --tcp-flags



maceis
20.10.07, 19:42
Hallo zusammen,

Ich habe auf meinem Gateway netfilter/iptables v1.3.7 laufen und habe ein Verständnisproblem mit --tcp-flags

Hier mal eben meine FORWARD Chain [verkürzt]:

# iptables -vL FORWARD --line-numbers
Chain FORWARD (policy DROP 537 packets, 27568 bytes)
num pkts bytes target prot opt in out source destination
1 1808 296K ACCEPT 0 -- eth0 dsl anywhere anywhere
2 577 148K ACCEPT 0 -- dsl eth0 anywhere anywhere state RELATED,ESTABLISHED
3 0 0 ACCEPT udp -- dsl eth0 anywhere anywhere udp spt:53
4 0 0 ACCEPT tcp -- dsl eth0 anywhere anywhere tcp flags:ACK/FIN
5 0 0 ACCEPT tcp -- dsl eth0 anywhere anywhere tcp flags:ACK/PSH
6 0 0 ACCEPT tcp -- dsl eth0 anywhere anywhere tcp flags:ACK/FIN,PSH
[...]
12 537 27568 LOG 0 -- any any anywhere anywhere LOG level warning prefix `FORWARD dropped: '

Nun bin ich der Ansicht, dass schon aufgrund der Regel Nr. 2, beim Aufruf von Webseiten oder abrufen von Mail keinerlei Probleme auftreten sollten.
Tatsächlich erhalte ich aber im log jede Menge gedroppter Pakete. Die Webseiten werden zwar dennoch angezeigt, aber beim Abruf von manchen Mailkonten (POP) hängen Clients.

Hier mal einen reduzierten Auschnitt aus dem Log. Solche Pakete und welche mit ähnlichen Flags (fettgedruckt) werden jede Menge gedropped:

FORWARD dropped: IN=dsl OUT=eth0 SRC=xxx DST=192.168.100.11 PROTO=TCP SPT=80 DPT=50484 ACK URGP=0
FORWARD dropped: IN=dsl OUT=eth0 SRC=xxx DST=192.168.100.38 PROTO=TCP SPT=110 DPT=1049 ACK FIN URGP=0
FORWARD dropped: IN=dsl OUT=eth0 SRC=xxx DST=192.168.100.38 PROTO=TCP SPT=110 DPT=1050 ACK PSH FIN URGP=0

Mehrere Dinge sind mir nicht klar:
1. Warum werden diese Pakete nicht von der Regel Nr. 2 erlaubt?
2. Warum greifen die Regeln 4-6 nicht.
3. Wie muss eine Regel aussehen, damit die Pakete anhand der -tcp-flags erlaubt werden?
4. ... noch mehr ;).

Ich hab schon diverse andere Kombinationen von flags probiert, leider immer ohne Erfolg. Auch in diversen Tutorials bin ich nicht wirklich weiter gekommen und hoffe jetzt auf Eure Hilfe.

[Edit:] 2 und 3 habe ich jetzt, glaube ich, verstanden. Ich hatte die manpage in diesem Punkt nicht richtig interpretiert.
Testen kann ich leider erste morgen wieder richtig.

Vielen Dank im Voraus
Gruß
maceis

maceis
21.10.07, 11:20
Guten Morgen,

ich bin jetzt insofern etwas weitergekommen, als es mir jetzt möglich ist, Pakete mit beliebigen tcp-flags zu steuern. Bei Problemen wie dem meinen, kann ich den Einsatz von tcpdump oder ähnlichen Werkzeugen sehr empfehlen ;).

Email scheint jetzt problemlos zu funktionieren.
Im Augenblick werden beim Aufruf von Webseiten aufgrund meines derzeitigen Regelwerks (vergleichbar mit oben) Pakete mit dem RST Flag gedropped.

Die grundsätzliche Frage bleibt nach wie vor bestehen:
Warum werden diese Pakete nicht von der Regel
ACCEPT dsl (in) eth0 (out) state RELATED,ESTABLISHED
erlaubt. Die gehören doch zu einer eingetragenen Verbindung.