Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Aug 2007 17:40:06 +0200
From:      Mel <fbsd.questions@rachie.is-a-geek.net>
To:        freebsd-questions@freebsd.org
Subject:   Re: pf rdr + netsed : reinject loop...
Message-ID:  <200708311740.07360.fbsd.questions@rachie.is-a-geek.net>
In-Reply-To: <20070831231015.29fa7b07@localhost>
References:  <20070831202729.7e4c0f7a@localhost> <20070831113353.GA30807@insomnia.benzedrine.cx> <20070831231015.29fa7b07@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 31 August 2007 15:10:15 Norberto Meijome wrote:
> On Fri, 31 Aug 2007 13:33:53 +0200
>
> Daniel Hartmeier <daniel@benzedrine.cx> wrote:
> > On Fri, Aug 31, 2007 at 08:27:29PM +1000, Norberto Meijome wrote:
> > > rdr on $int_if proto tcp from 172.16.82.81 to any -> 127.0.0.1 port
> > > 10101 netsed tcp 10101 0 0 s/FOO/BAR
> > >
> > > The traffic from XP gets redirected just fine to netsed, which replaces
> > > the bytes just fine. BUT the changed packets (the output of netsed) get
> > > reinjected somewhere so that the rdr hits them again, sending them back
> > > to netsed ad infinitum. ( yes, i managed to hit a load of 700+ without
> > > anything ever leaving BSD ...quite cool)
> >
> > I'm pretty sure the endless loop you describe does not pass through pf,
> > except for the first iteration. In the first iteration, pf replaces the
> > destination address with 127.0.0.1, and the packet goes to netsed.
> > netsed changes the payload, but leaves the destination address
> > (127.0.0.1 now). It sends the packet out, and since the destination
> > address is 127.0.0.1, it sends it to itself. Hence the loop, which does
> > not involve pf any further (i.e. there's no 'redirecting again' or such,
> > AFAICT).
>
> I was just reaching the same conclusion after some strong coffee
>
> netsed's output is (part ) :
> ---
> Script started on Fri Aug 31 07:52:12 2007
> [root@localhost /usr/home/luser]# netsed tcp 10101 0 0  s/FOO/BAR
> netsed 0.01b by Michal Zalewski <lcamtuf@ids.pl>
> [*] Parsing rule s/FOO/BAR ...
> [+] Loaded 1 rules...
> [+] Listening on port 10101/tcp.
> [+] Using dynamic (transparent proxy) forwarding.
>
> [+] Got incoming connection from 172.16.82.81:1178 to 127.0.0.1:10101
> [*] Forwarding connection to 127.0.0.1:10101
> [+] Got incoming connection from 127.0.0.1:51337 to 127.0.0.1:10101
> [*] Forwarding connection to 127.0.0.1:10101
> [+] Caught client -> server packet.

I think you need to figure out what this 'transparent proxy mode' of netsed 
does, cause it should under no circumstances forward to itself...

-- 
Mel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708311740.07360.fbsd.questions>