[tproxy] Problem with foreign connect using tproxy4
Pranav Desai
pranavadesai at gmail.com
Wed Oct 29 03:15:54 CET 2008
On Tue, Oct 28, 2008 at 6:54 PM, Pranav Desai <pranavadesai at gmail.com> wrote:
> Hello,
>
> I am trying to do a foreign connect with tproxy4.
>
> Here is what I have tried so far, seems like I have missed a few
> things since its not working for me.
>
> After applying the kernel patch for 2.6.24.7, I can get the pkts going
> out using a foreign address, I also see the syn ack pkts coming back
> from the server on the client machine, but client doesn't send an ack
> back. I am guessing that I missed something with the iptables rules ?
>
> The README suggests that I have to set the following rules and do the
> setsockopt for the foreign connect.
>
> iptables -t mangle -N DIVERT
> iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
> iptables -t mangle -A DIVERT -j MARK --set-xmark 0x1/0xffffffff
> iptables -t mangle -A DIVERT -j ACCEPT
>
> For me the --set-xmark fails with:
> iptables v1.4.0: Unknown arg `--set-xmark'
> Try `iptables -h' or 'iptables --help' for more information.
>
> I have applied the tproxy patch for iptables-1.4.0
>
> Here is my mangle table. The UNKNOWN match seems suspicious.
>
Update:
The UNKNOWN is because I was printing out the table with unpatched
iptables. Sorry about that.
Here is the correct mangle table output
Chain PREROUTING (policy ACCEPT 258K packets, 36M bytes)
pkts bytes target prot opt in out source
destination
395 29020 DIVERT tcp -- * * 0.0.0.0/0
0.0.0.0/0 socket
Chain INPUT (policy ACCEPT 76083 packets, 11M bytes)
pkts bytes target prot opt in out source
destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source
destination
Chain OUTPUT (policy ACCEPT 63346 packets, 12M bytes)
pkts bytes target prot opt in out source
destination
Chain POSTROUTING (policy ACCEPT 63346 packets, 12M bytes)
pkts bytes target prot opt in out source
destination
Chain DIVERT (1 references)
pkts bytes target prot opt in out source
destination
172 11704 MARK all -- * * 0.0.0.0/0
0.0.0.0/0 MARK set 0x1
117 7324 ACCEPT all -- * * 0.0.0.0/0
0.0.0.0/0
The --set-xmark command is still failing so I tried this:
iptables -t mangle -A DIVERT -j MARK --set-mark 0x1
But that didn't help. So any help is welcome.
-- Pranav
> Chain PREROUTING (policy ACCEPT 258K packets, 36M bytes)
> pkts bytes target prot opt in out source
> destination
> 138 11024 DIVERT tcp -- * * 0.0.0.0/0
> 0.0.0.0/0 UNKNOWN match `socket'
>
> Chain INPUT (policy ACCEPT 75192 packets, 11M bytes)
> pkts bytes target prot opt in out source
> destination
>
> Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
> pkts bytes target prot opt in out source
> destination
>
> Chain OUTPUT (policy ACCEPT 62722 packets, 11M bytes)
> pkts bytes target prot opt in out source
> destination
>
> Chain POSTROUTING (policy ACCEPT 62722 packets, 11M bytes)
> pkts bytes target prot opt in out source
> destination
>
> Chain DIVERT (1 references)
> pkts bytes target prot opt in out source
> destination
> 32 2096 ACCEPT all -- * * 0.0.0.0/0
> 0.0.0.0/0
>
> What am I missing here ? I would appreciate any help I can get.
>
> Also, are there any pointers explaining the different between tproxy2 and 4.
>
> Thanks
> -- Pranav
>
More information about the tproxy
mailing list