geändertes Verhalten von iptables zwischen 2.6.8-2 und 2.6.13-4
Andreas Koch
andreas.koch at fh-luh.de
Fri Oct 21 17:25:19 CEST 2005
Hi,
da ich gerade krank zuhause liege habe ich die Zeit genutzt um auf meinem
Server einen neuen Kernel (2.6.13.4) zu backen da ich später ipp2p und
trafic shaping ausprobieren wollte. Seit dem läuft aber irgend etwas an meiner
firewall nicht mehr so wie es sollte. Der server, auf dem die firewall läuft,
hängt an einem DSL/WLAN-Box per Kabel und ist default Gateway und DNS-Server
für alle Rechner im Heim-Netz. Für Rechner die über das WLAN mit der
DSL/WLAN-Box verbunden sind gehen daher alle Pakete ins Internet über den
Server (default GW) und alle Pakete aus dem Internet direkt an den Rechner da
die DSL-Box als Switch die Pakete ja direkt an das WLan schickt. Die firewall
regel sieht so aus:
iptables -L FORWARD -v:
[...]
0 0 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 eth1 anywhere anywhere state NEW,RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 wlan0 anywhere anywhere state NEW,RELATED,ESTABLISHED
0 0 ACCEPT all -- wlan0 eth1 anywhere anywhere state NEW,RELATED,ESTABLISHED
2 112 ACCEPT all -- eth1 eth1 anywhere anywhere state NEW,RELATED,ESTABLISHED
10 3394 LOG all -- any any anywhere anywhere LOG level warning prefix
`900_LOG_AND_DROP_FORWARD
| `
Mit dem alten Kernel (2.6.8-2-686 Debian Sarge) funktionierte das Forwarding
für das WLAN (eth1->eth1). Mit dem neuen Kernel nicht:
/etc/var/log/messages:
[...]
Oct 21 16:30:32 localhost kernel: 900_LOG_AND_DROP_FORWARD | IN=eth1 OUT=eth1
SRC=192.168.20.101 DST=66.96.26.214 LEN=64 TOS=0x00 PREC=0x00 TTL=63
ID=49028 DF PROTO=TCP SPT=38777 DPT=80 WINDOW=1460 RES=0x00 ACK
URGP=0
Oct 21 16:30:37 localhost kernel: 900_LOG_AND_DROP_FORWARD | IN=eth1 OUT=eth1
SRC=192.168.20.101 DST=66.96.26.214 LEN=527 TOS=0x00 PREC=0x00 TTL=63
ID=49030 DF PROTO=TCP SPT=38777 DPT=80 WINDOW=1460 RES=0x00 ACK PSH FIN
URGP=0
[...]
Das der Server nur einen Teil des TCP Handshakes sieht (SYN,...,ACK) hat den
alten Kernel nicht daran gehindert die Verbindung als solche zu erkennen und
durchzulassen. Der neue Kernel erkennt anscheinend ohne das SYN-ACK Paket das
ACK meines Browsers nicht mehr als Teil der Verbindung.
Ich habe jetzt die Regel von iptables -A FORWARD -o $DSL -i $DSL -m state
--state NEW,ESTABLISHED,RELATED -j ACCEPT auf iptables -A FORWARD -o
$DSL -i $DSL -j ACCEPT gesetzt aber mich würde ja schon interessieren welches
Verhalten von iptables denn jetzt richtig ist.
Eine andere Möglichkeit währe die DSL-Box dazu bekomme alle Pakete über den
Server zu schicken. ARP-Spoofing ist mir hier als einzigstes eingefallen.
Andreas
--
Dipl.-Ing. Andreas Koch
Hydrology and Water Resources Management
Fachhochschule Lippe und Hoexter
University of Applied Sciences
An der Wilhelmshoehe 44, 37671 Hoexter, Germany
Phone : (+49) 5271 / 687 - 177
Fax : (+49) 5271 / 687 - 245
e-mail : Andreas.Koch at fh-luh.de
More information about the Linux
mailing list