Wer das Problem hat, dass bei iptables-Rules wie der folgenden keine (oder nur vereinzelt) Verbindungen nach draußen zustande kommen hat das gleiche Problem wie ich es hatte:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -o pppoe0 -j ACCEPT
Die Regel besagt, alles von „Drinnen“ (eth1) nach „Draußen“ (pppoe0) zuzulassen und alle Pakete der Verbindungstatus als ESTABLISHED oder RELATED erkannt wird zuzulassen. Kurz: eine StateFull-Firewall die alles von drinnen nach draußen routet aber von draußen nur angefragtes rein lässt.
Wer auf etwas „stabilere“ (oder ältere) Software setzt (in Worten: debian squeeze) ist noch mit einem 2.6er Kernel unterwegs. Bei diesem sind die Module fürs ConnectionTracking wohl noch etwas schärfer/unbrauchbarer.
Erst mit folgendem Befehl verhält sich das ConnectionTracking wie man es erwarten würde:
echo 1 > /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal
Ab Kernel 2.6.22 ist dies nicht mehr notwendig.