[tproxy] Problem with redirection from 80 to 8080 with -j TPROXY redirect

Pranav Desai pranavadesai at gmail.com
Mon Mar 2 21:16:01 CET 2009


Hello All,

I am having some trouble redirecting port 80 traffic to 8080 using
tproxy for transparent proxying.
The SYNs come in but there is no SYN-ACK going out. the iptables -L do
show the rules being matched.

tcpdump output
--------------------
# tcpdump -nn -i eth1 port 8080 or port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes

12:12:30.973583 IP 13.1.1.1.34879 > 172.16.55.205.80: S
2941026950:2941026950(0) win 5840 <mss 1460,sackOK,timestamp
3948186312 0,nop,wscale 7>
12:12:33.974329 IP 13.1.1.1.34879 > 172.16.55.205.80: S
2941026950:2941026950(0) win 5840 <mss 1460,sackOK,timestamp
3948189312 0,nop,wscale 7>

Kernel (with tproxy enabled) and Iptables Version
--------------------------------------------------------------
# iptables -V
iptables v1.4.3-rc1
# uname -a
Linux dev 2.6.28.3 #1 SMP Sun Mar 1 23:13:20 PST 2009 x86_64 x86_64
x86_64 GNU/Linux


I am only trying to get the first step of redirection working.

Are these instructions in the README enough, or do I need any thing else ?
<instructions>
    iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY
--on-port <proxyport>  --tproxy-mark 0x1/0x1

    ip rule add fwmark 1 lookup 100
    ip route add local 0.0.0.0/0 dev lo table 100
</instructions>

I do have 2 interfaces, does that have anything to do with the problem ?

I have even tried with the other mangle rules (the rules for socket
match) given in the README, but still no difference. I have given some
details below, but let me know if you need any other details.

Thanks
-- Pranav


mangle table (nat and filter table are empty)
--------------------------------------------------------
Chain PREROUTING (policy ACCEPT 31132 packets, 2279K bytes)
 pkts bytes target     prot opt in     out     source
destination
    3   180 TPROXY     tcp  --  *      *       0.0.0.0/0
0.0.0.0/0           tcp dpt:80 TPROXY redirect 0.0.0.0:8080 mark
0x1/0x1

Chain INPUT (policy ACCEPT 33779 packets, 2304K 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 36335 packets, 35M bytes)
 pkts bytes target     prot opt in     out     source
destination

Chain POSTROUTING (policy ACCEPT 36355 packets, 35M bytes)
 pkts bytes target     prot opt in     out     source
destination

Chain DIVERT (0 references)
 pkts bytes target     prot opt in     out     source
destination


Here are my ip rule and route setting
---------------------------------------------
# ip rule ls
0:      from all lookup 255
32765:  from all fwmark 0x1 lookup 100
32766:  from all lookup main
32767:  from all lookup default

# ip route ls table 100
local default dev lo  scope host


Here are my modules.
---------------------------
# lsmod | egrep "xt|nf"
[root at vcadev httpd]# ip rule ls
xt_TPROXY               2944  1
xt_socket               3264  0
nf_tproxy_core          3200  2 xt_TPROXY,xt_socket,[permanent]
xt_MARK                 3456  0
nf_nat                 18580  2 ipt_REDIRECT,iptable_nat
nf_conntrack_ipv4      14680  3 iptable_nat,nf_nat
nf_conntrack           58984  4 xt_socket,iptable_nat,nf_nat,nf_conntrack_ipv4
nf_defrag_ipv4          2560  3 xt_TPROXY,xt_socket,nf_conntrack_ipv4


More information about the tproxy mailing list