Re: Filter in POSTROUTING

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Claus et al,

It will not work correctly. Only the first packet in a stream passes
through the nat and mangle tables, hence consider this rule:

iptables -t nat -A POSTROUTING -p tcp --tcp-flags SYN,FIN,ACK ACK -j DROP

Stupid example perhaps, but still a valid one. Even more stupid if you
consider that an ACK packet will _never_ be the first packet in a stream
and will hence not do what you expected it to (probably).

Also, there are other considerations when doing work in the nat and mangle
tables. Anyways, this isn't to say that you should _never_ filter in the
nat and mangle table, just that you should think it through very carefully
before you actually do.

//Oskar

On Fri, 12 Sep 2003, Claus Regelmann wrote:

> Hello Daniel,
>
> for me this is not a question of style, but a question of functionallity
> -- will filtering work correctly in the PRE/POST-ROUTING chain.
> Nevertheless thanks for your prompt answer.
>
> Claus
> -------------------------------------------------------------
> Daniel Chemko wrote:
> >
> > It is against style to do anything like that in the NAT table. It is
> > preferable to do it in the filter table, but if you must be lazy about
> > it all, please use the mangle table instead, which does have a valid
> > reason to filter certain traffic at times.
> >
> > The -I is to make sure no matching rules get called before we check that
> > we want these packets at all. If you do the ordering yourself, then just
> > make sure they are all ordered properly.
> >
> > iptables -t mangle -I POSTROUTING -o ppp0 -p tcp --dport 137:139 -j DROP
> > iptables -t mangle -I POSTROUTING -o ppp0 -p udp --dport 137:139 -j DROP
> > iptables -t mangle -I PREROUTING -i ppp0 -p tcp --dport 137:139 -j DROP
> > iptables -t mangle -I PREROUTING -i ppp0 -p udp --dport 137:139 -j DROP
> >
> > -----Original Message-----
> > From: Claus Regelmann [mailto:claus.regelmann@xxxxxxx]
> > Sent: Thursday, September 11, 2003 2:03 PM
> > To: netfilter@xxxxxxxxxxxxxxxxxxx; blueflux@xxxxxxxxxxx
> > Subject: Filter in POSTROUTING
> >
> > Hello,
> >
> > There is a figure Oskar Andreassoons IPTABLES TUTORIAL (V1.1.19, chap.
> > 3.1, pg.19)
> > where both, the forwarded and the local output, join the postrouting
> > chain.
> >
> > Why shoudnt it be possible to filter all outgoing e.g. smb traffic from
> > a local
> > network at that place with a command like
> > >iptables -t nat -A POSTROUTING -o ppp0 -p tcp --dport 137:139 -j DROP
> > >iptables -t nat -A POSTROUTING -o ppp0 -p udp --dport 137:139 -j DROP
> > 
> > The same question applies to the PREROUTING chain for input
> > >iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 137:139 -j DROP
> > >iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 137:139 -j DROP
> >
> > Thanks
> > Claus
>
>
>

----
Oskar Andreasson
http://www.frozentux.net
http://iptables-tutorial.frozentux.net
http://ipsysctl-tutorial.frozentux.net
mailto:blueflux@xxxxxxxxxxx


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux