Search squid archive

Re: Tproxy4+squid: ebtables wiki

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

 



On Tue, 10 Nov 2009 05:05:02 +0700, Irvan Adrian K
<irvan@xxxxxxxxxxxxxxxxx> wrote:
> Wow, thanks for the sharing, Dan..  it's very informative for me to know

> that..  because i have been working for 2 weeks till know, very 
> desperated.. i have been using Debian 5 Lenny and Ubuntu 9.04 and 9.10, 
> and so far nothing work :(, ..  all the configuration i have tried, and 
> i have been recompile many kernel from 2.6.20 - 2.6.25, 2.6.29. 2.6.31, 
> and so far there was no solution at all..
> 
> Same to me, i have been using Debian and Ubuntu server for all my server

> since a long time, and so hard for me to change different distro, but 
> learning from you, i have to try Fedora or may be CentOS, for TPROXY..
> 
> Thanks,
> 
> Irvan Adrian
> 

Lenny too? rats.
Okay, well and truly time for a bug report to the Debian kernel guys.

Amos


> Dan wrote:
>> To throw in my 2 cents.  I have tried to using both ubuntu server 9.04 
>> and 9.10 neither of them I could get to work. I experienced the same 
>> problem. So to make sure it wasn't me making a mistake somewhere I 
>> tried the same config and setup on Fedora and that worked fine.  So 
>> being lazy I just went with that.  I am very interested in getting 
>> TPROXY to work with ubuntu server as I prefer it as my server OS.
>>
>> Roth, Joe wrote:
>>> 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
>>>>>
>>>>>
>>>>>
>>>>>       
>>>>     
>>>
>>>   
>>
>>

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux