So it sounds like this is a problem with ubuntu 9.10 in general? I am running the server version as well, everything looks to be compiled properly, dmesg shows TPROXY starting, squid shoq IP spoofing to be starting as well. -----Original Message----- From: Irvan Adrian K [mailto:irvan@xxxxxxxxxxxxxxxxx] Sent: Monday, November 09, 2009 8:46 AM To: Amos Jeffries Cc: squid-users@xxxxxxxxxxxxxxx Subject: Re: Tproxy4+squid: ebtables wiki Dear Mr Amos, thanks for your respond, very helpfull.. Amos Jeffries wrote: > Irvan Adrian K wrote: >> So, What the solution for these threads ? because i'm in the same >> trouble to make TPROXY4 work in UBUNTU 9.10 Server >> > > Explicit "Server" release or normal? I have recently found that the > kernel for normal Ubuntu is missing some routing features needed on a > end box pretending to be a server. Server release distribution of UBUNTU 9.10, not desktop one.. as you know that UBUNTU have several type of distribution : server, desktop, etc.., and as we analyze that UBUNTU Server not differ than Debian, and have complete support for TPROXY built in, without recompile : xt_tcpudp 2780 2 nf_nat 17808 2 iptable_nat,ipt_REDIRECT nf_conntrack_ipv4 13352 3 iptable_nat,nf_nat xt_MARK 1884 2 xt_socket 2556 2 nf_conntrack 67608 4 iptable_nat,nf_nat,nf_conntrack_ipv4,xt_socket xt_TPROXY 1948 2 nf_defrag_ipv4 1756 3 nf_conntrack_ipv4,xt_socket,xt_TPROXY nf_tproxy_core 2428 2 xt_socket,xt_TPROXY,[permanent] x_tables 16544 10 ebt_redirect,ebt_ip,ebtables,xt_tcpudp,iptable_nat,ip_tables,ipt_REDIREC T,xt_MARK,xt_socket,xt_TPROXY >> I'm using Kernel 2.6.31, Squid 3.1.0.15, iptables 1.4.5, ebtables >> 2.0.9, and until now, following the manual in >> http://wiki.squid-cache.org, like this : >> >> ebtables -t broute -I BROUTING -p ipv4 --ip-proto tcp --ip-dport 80 >> -j redirect --redirect-target DROP >> ebtables -t broute -I BROUTING -p ipv4 --ip-proto tcp --ip-sport 80 -j >> redirect --redirect-target DROP >> >> cd /proc/sys/net/bridge/ >> for i in * >> do >> echo 0 > $i >> done >> unset i >> >> echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter >> echo 1 > /proc/sys/net/ipv4/ip_forward >> >> iptables are: >> iptables -t mangle -N DIVERT >> iptables -t mangle -A DIVERT -j MARK --set-mark 1 >> iptables -t mangle -A DIVERT -j ACCEPT >> iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT >> iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY >> --tproxy-mark 0x1/0x1 --on-port 3129 >> >> squid configuration is default, except >> acl allow all >> >> After following like above, the iptables counter was increasing >> redirecting to TPROXY, but there was nothing >> in the squid, i can't open anything.. >> >> But if i change the ebtables --redirect-target ACCEPT, the connection >> running, but the packet just bridged nothing came to Squid, just like >> nothing on there.. > > Yes. That is why they are "DROP". In BROUTING it means something like; > DROP off the bridge into the routing code, vs ACCEPT over the bridge. Yes, we look that, after adding --redirect-target DROP at ebtables, counter at iptables -j TPROXY increase, like this one : 12830 3896K DIVERT tcp -- * * 0.0.0.0/0 0.0.0.0/0 socket 1451 69360 TPROXY tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 TPROXY redirect 0.0.0.0:3129 mark 0x1/0x1 before DROP at ebtables, there was none packet come to iptables -j TPROXY > >> >> There some one can give the clue, thanks in advance.. >> >> R >> > > Did you build Squid with libcap2-dev installed on the system? UBUNTU prefer libcap-dev rather than libcap2-dev, apt-get install libcap2-dev Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting libcap-dev instead of libcap2-dev libcap-dev is already the newest version. > > > If you start Squid with the -X option is there anything about spoofing > or transparent mentioned? 2009/11/09 08:43:17.338| Processing: 'http_port 3128 ' 2009/11/09 08:43:17.338| http(s)_port: found Listen on Port: 3128 2009/11/09 08:43:17.338| http(s)_port: found Listen on wildcard address: [::]:3128 2009/11/09 08:43:17.338| Processing: 'http_port 3129 tproxy' 2009/11/09 08:43:17.338| http(s)_port: found Listen on Port: 3129 2009/11/09 08:43:17.338| http(s)_port: found Listen on wildcard address: [::]:3129 2009/11/09 08:43:17.338| Starting IP Spoofing on port [::]:3129 2009/11/09 08:43:17.338| Disabling Authentication on port [::]:3129 (IP spoofing enabled) 2009/11/09 08:43:17.338| Detect TPROXY support on port [::]:3129 2009/11/09 08:43:17.338| ...Probing for IPv6 TPROXY support. 2009/11/09 08:43:17.339| ...Probing for IPv4 TPROXY support. 2009/11/09 08:43:17.339| IPv4 TPROXY support detected. Using. Thanks, Irvan Adrian > > Amos > >> >> >> Kernel 2.6.30.8, Squid 3.1.0.14, iptables 1.4.3.1, ebtables 2.0.9 >> >> Marko Kotar wrote: >> >> Just curious which kernel version are u using? >> >> >> >> --- On Thu, 10/29/09, Dan <d...@xxxxxxxx> wrote: >> >> >> From: Dan <d...@xxxxxxxx> >> Subject: Re: Tproxy4+squid: ebtables wiki >> To: "Marko Kotar" <kotarma...@xxxxxxxxx> >> Cc: squid-users@xxxxxxxxxxxxxxx >> Date: Thursday, October 29, 2009, 5:24 PM >> Those are the same ebtable and >> >> iptable rules that I am using except that I use DROP. If it is >> working for you then that is great. :) As for why >> >> it works that way I don't know. When I use ACCEPT the >> traffic is bridged through and not redirected to squid. >> >> Thanks, >> >> Irvan Adrian >> >> Marko Kotar wrote: >> >> Ok >> My ebtable rules are(without -i option): >> ebtables -t broute -A BROUTING -p ipv4 --ip-proto tcp >> --ip-dport 80 -j redirect --redirect-target ACCEPT >> >> ebtables -t broute -A BROUTING -p ipv4 >> --ip-proto tcp --ip-sport 80 -j redirect --redirect-target >> ACCEPT >> >> This might be the different: >> Bridge is up and it is having an ip address. Ethernet >> interfaces are up but not having any ip address asigned. >> >> ifconfig eth0 up promisc >> ... >> bridge interface is configured with dhclient: >> dhclient3 br0 >> >> This rules are for the routing; >> ip rule add fwmark 1 lookup 100 >> ip route add local 0.0.0.0/0 dev lo table 100 >> And: >> echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter >> echo 1 > /proc/sys/net/ipv4/ip_forward >> >> iptables are: >> iptables -t mangle -N DIVERT >> iptables -t mangle -A DIVERT -j MARK --set-mark 1 >> iptables -t mangle -A DIVERT -j ACCEPT >> iptables -t mangle -A PREROUTING -p tcp -m socket -j >> DIVERT >> >> iptables -t mangle -A PREROUTING -p tcp --dport 80 -j >> TPROXY --tproxy-mark 0x1/0x1 --on-port 3129 >> >> squid configuration is default, except >> acl allow all >> and port is set to the same address as in iptables, >> and having TPROXY set. >> >> I am using: 2.6.28-16-server x86_64 ubuntu, default or >> compiled ebtables v2.0.9-1 (June 2009), compiled iptables >> v1.4.5, >> >> Squid Cache: Version 3.1.0.14 >> configure options: '--enable-linux-netfilter' >> --with-squid=/home/marko/src/squid-3.1.0.14 >> --enable-ltdl-convenience >> >> configured ony with additional linux-netfilter flag >> >> I've used various network configurations: >> -virtual computer using VmBox with virtual interface >> in the linux bridge on guest pc. >> >> -computer with two interfaces. >> -double bridged vmbox: two virtual machines: first >> having 2 virtual interfaces. birdged and having sqiud. >> second virtual pc being client with one virtual interface. >> one interface of first was bridged on guest computer to >> external interface, other two were bridged together. >> >> Drop didn't work in any of them, accept was tested >> only in first. >> >> i think thats all the settings i have. >> >> >> --- On Wed, 10/28/09, Dan <d...@xxxxxxxx> >> wrote: >> >> From: Dan <d...@xxxxxxxx> >> Subject: Re: Tproxy4+squid: ebtables >> wiki >> >> To: "Marko Kotar" <kotarma...@xxxxxxxxx>, >> squid-users@xxxxxxxxxxxxxxx >> >> Date: Wednesday, October 28, 2009, 9:21 PM >> Marko Kotar wrote: >> Thanks. >> >> "redirect >> >> The redirect target will change the MAC target >> address >> >> to that of the bridge device the frame arrived on. >> This >> >> target can only be used in the BROUTING chain of >> the broute >> >> table and the PREROUTING chain of the nat table. >> In the >> >> BROUTING chain, the MAC address of the bridge port >> is used >> >> as destination address, in the PREROUTING chain, >> the MAC >> >> address of the bridge is used. >> --redirect-target target >> >> Specifies the standard >> target. >> >> After doing the MAC redirect, the rule still has >> to give a >> >> standard target so ebtables knows what to do. The >> default >> >> target is ACCEPT. Making it CONTINUE could let you >> use >> >> multiple target extensions on the same frame. >> Making it DROP >> >> in the BROUTING chain will let the frames be >> routed. RETURN >> >> is also allowed. Note that using RETURN in a base >> chain is >> >> not allowed." >> >> I think: If accept is used it goes in the >> tproxy >> >> because dst mac is changed to bridge address. (So >> it goes up >> >> as it would if client had gateway configured >> to that >> >> machine?) But is also should drop work? >> I decided to test it. I changed my rule to ACCEPT >> and >> >> traffic passes but not through the proxy. >> My >> >> access.log shows no new traffic after changing >> the >> >> rule. DROP is what passes the frame off to >> iptables. Could you show all your >> rules? If >> >> squid is receiving the traffic the only thing I >> can think of >> >> is that maybe there is another rule further down >> the chain >> >> that cause the frame to be routed. >> >> I have tryed drop but it didn't work. I didn't >> get >> >> through any traffic. >> If i didn't use any of ebtable rules it went >> through. >> >> But accept works. --- On Wed, 10/28/09, >> Dan >> >> <d...@xxxxxxxx> >> wrote: >> From: Dan <d...@xxxxxxxx> >> Subject: Re: Tproxy4+squid: >> ebtables >> >> wiki >> To: "Marko Kotar" <kotarma...@xxxxxxxxx> >> Cc: squid-users@xxxxxxxxxxxxxxx >> Date: Wednesday, October 28, 2009, 1:03 >> AM >> >> Marko Kotar wrote: >> Hi, >> You have incorrect commands in squid >> wiki for >> >> tproxy4 >> ebtables: >> I figure out that it is not >> "--redirect-target >> >> DROP" >> but it is "--redirect-target ACCEPT" >> . >> >> With ebtables using broute ACCEPT and DROP >> have >> >> special >> meanings. DROP means route the frame >> and >> >> ACCEPT means bridge the frame. >> >> http://ebtables.sourceforge.net/misc/ebtables-man.html >> >> There is a "-j REDIRECT" >> which should >> be in >> >> lowercase >> letters "-j redirect". >> Thanks for guide. >> >> Marko >> >> >> >> Dan >> >> >> > >