[FUG-BR] Lusca + bridge + tproxy

Eduardo Schoedler listas em esds.com.br
Quarta Setembro 7 19:45:50 BRT 2011


No man do ipfw tem alguns detalhes sobre filtrar em bridge.

--
Eduardo Schoedler
Enviado via iPhone


Em 07/09/2011, às 17:45, Wenderson Souza <wendersonsouza em gmail.com> escreveu:

> Nenhuma opinião?
> 
> Sei que a comunidade do FreeBSD não gosta de dar informações mais
> aprofundadas (dar o peixe e sim ensinar a pescar), mas já corri a trás
> o quanto eu pude, por isso estou perguntando aqui novamente.
> 
> Já formatei a máquina coloquei o FreeBSD-7.4-Release, apliquei os
> patch no kernel e no squid30 e estou com o mesmo problema.
> 
> Já reformatei a máquina e voltei para o FreeBSD-8.2-Release,
> modifiquei no lusca o comm_ips_freebsd.c, recompilei e a mesma coisa.
> 
> Creio que o meu problema esteja agora penas no filtro do ipfw. Com
> tudo rodando, bridge, lusca, etc.
> 
> Os filtros estão incrementando mas não estão "chegando" no lusca, pois
> não incrementa nada no access.log, store.log e nem no cache.log (nesse
> incrementa apenas quando inicio o lusca, mensagens padrões...).
> 
> Estou conseguindo acessar passando pela bridge, tudo normal. A bridge
> freebsd está com ip setado e acessando a internet, pingando e
> resolvendo nomes. Aparentemente tudo normal.
> 
> Estão setando o ip público do freebsd em qual interface? Interna,
> Externa ou na Bridge ?
> 
> 
> Atenciosamente,
> 
> Wenderson Souza
> e-mail: wendersonsouza em gmail.com
> msn: wendersonsouza em msn.com
> skype: wendersonsouza
> 
> 
> 
> Em 31 de agosto de 2011 13:49, Wenderson Souza
> <wendersonsouza em gmail.com> escreveu:
>> Olá todos,
>> 
>> Estou apanhando para fazer o tproxy funcionar no freebsd.
>> 
>> Alguém poderia me dar uma "Luz" ?
>> 
>> Meu cenário:
>> 
>> FreeBSD 8.2-RELEASE sem aplicar nenhum patch (conforme recomendado)
>> 
>> Lusca com o patch aplicado.
>> # squid -v
>> Squid Cache: Version LUSCA_HEAD-r14809
>> configure options:  '--enable-delay-pools' '--enable-removal-policies'
>> '--enable-snmp' '--enable-http-violations' '--bindir=/usr/local/sbin'
>> '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/lusca'
>> '--libexecdir=/usr/local/libexec/lusca' '--localstatedir=/var/lusca'
>> '--sysconfdir=/usr/local/etc/lusca' '--enable-removal-policies=lru
>> heap' '--disable-linux-netfilter' '--disable-linux-tproxy'
>> '--disable-epoll' '--enable-auth=basic digest negotiate ntlm'
>> '--enable-basic-auth-helpers=DB NCSA PAM MSNT SMB'
>> '--enable-digest-auth-helpers=password'
>> '--enable-external-acl-helpers=ip_user session unix_group
>> wbinfo_group' '--enable-ntlm-auth-helpers=SMB' '--enable-storeio=aufs
>> null' '--enable-wccp' '--enable-wccpv2' '--disable-ident-lookups'
>> '--disable-kqueue' '--with-large-files' '--enable-large-cache-files'
>> '--enable-err-languages=Portuguese'
>> '--enable-default-err-language=Portuguese' '--prefix=/usr/local'
>> '--mandir=/usr/local/man' '--infodir=/usr/local/info/'
>> '--enable-freebsd-tproxy' '--build=amd64-portbld-freebsd8.2'
>> 'build_alias=amd64-portbld-freebsd8.2' 'CC=cc' 'CFLAGS=-O2 -pipe
>> -fno-strict-aliasing' 'LDFLAGS=' 'CPPFLAGS=' 'CPP=cpp'
>> 
>> squid.conf - http_port 3128 transparent tproxy
>> 
>> 
>> Bridge ativa e com as interfaces setadas, ips externos (tenho mais de
>> um link) e internos setados (para controle interno) na bridge.
>> 
>> regras de firewall:
>> rl0 - interna
>> rl1 - externa
>> # redirect proxy
>> ipfw add 150 fwd 127.0.0.1,3128 tcp from 189.x.x.0/25 to any 80 via rl0
>> ipfw add 151 fwd 127.0.0.1 tcp from any 80 to 189.x.x.0/25 via rl1
>> 
>> Consigo acessar, com o ip publico setado na maquina atrás da bridge,
>> mas não está caindo no proxy.
>> 
>> Apesar de estar incrementando as regras do ipfw, conforme abaixo:
>> 00150    3152 649814 fwd 127.0.0.1,3128 tcp from any to any
>> dst-port 80 via rl0
>> 00151    3018   2283772 fwd 127.0.0.1 tcp from any 80 to any via rl1
>> 
>> Estou acompanhando o cache.log e o access.log e não há nenhum
>> incremento ou de erro (informação) ou de acesso.
>> 
>> Agradeço desde já a possível ajuda de todos.
>> 
>> 
>> Wenderson Souza
>> e-mail: wendersonsouza em gmail.com
>> msn: wendersonsouza em msn.com
>> skype: wendersonsouza
>> 
>> 
>> 
>> Em 27 de agosto de 2011 12:04, Wenderson Souza
>> <wendersonsouza em gmail.com> escreveu:
>>> Hum, entao só precisaria mexer no lusca?
>>> 
>>> Mas mesmo antes de aplicar o patch tentei compilar com IP_BINDANY e deu erro.
>>> 
>>> Vou retornar e testar.
>>> 
>>> Reporto aqui.
>>> 
>>> 
>>> Wenderson Souza
>>> e-mail: wendersonsouza em gmail.com
>>> msn: wendersonsouza em msn.com
>>> skype: wendersonsouza
>>> 
>>> 
>>> 
>>> Em 27 de agosto de 2011 11:39, Marcelo da Silva
>>> <marcelo em mginformatica.com> escreveu:
>>>> intaum.. aqui no manual:
>>>> 
>>>> FreeBSD 8 already support this, but you will need to change the
>>>> IP_NONLOCALOK to IP_BINDANY in src/comm.cc (or
>>>> libiapp/comm_ips_freebsd.c under lusca).
>>>> 
>>>> diz q no freebsd 8 ja tem o suporte, so precisa mexer no
>>>> libiapp/comm_ips_freebsd.c under lusca
>>>> 
>>>> 
>>>> 
>>>> On Sat, 27 Aug 2011 11:35:24 -0300, Wenderson Souza wrote:
>>>>> Tentei colocar o options IP_BINDANY conforme o
>>>>> http://tproxy.no-ip.org/ mas deu erro também.
>>>>> 
>>>>> O que fiz, apliquei o patch na unha (no código) e estou recompilando
>>>>> agora, assim que testar posto aqui.
>>>>> 
>>>>> 
>>>>> Wenderson Souza
>>>>> e-mail: wendersonsouza em gmail.com
>>>>> msn: wendersonsouza em msn.com
>>>>> skype: wendersonsouza
>>>>> 
>>>>> 
>>>>> 
>>>>> Em 27 de agosto de 2011 11:12, Marcelo da Silva
>>>>> <marcelo em mginformatica.com> escreveu:
>>>>>> no fBSD 8.x  o   IP_NONLOCALBIND    foi substituido pelo IP_BINDANY.
>>>>>> axo q nao precisa recompilar
>>>>>> 
>>>>>> http://tproxy.no-ip.org/
>>>>>> 
>>>>>> On Sat, 27 Aug 2011 10:17:52 -0300, Wenderson Souza wrote:
>>>>>>> Bom dia,
>>>>>>> 
>>>>>>> Ao tentar compilar o kernel recebi o erro abaixo:
>>>>>>> 
>>>>>>> /usr/src/sys/amd64/conf/PROXY: unknown option "IP_NONLOCALBIND"
>>>>>>> 
>>>>>>> Alguma luz?
>>>>>>> 
>>>>>>> 
>>>>>>> Wenderson Souza
>>>>>>> e-mail: wendersonsouza em gmail.com
>>>>>>> msn: wendersonsouza em msn.com
>>>>>>> skype: wendersonsouza
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Em 27 de agosto de 2011 09:42, Wenderson Souza
>>>>>>> <wendersonsouza em gmail.com> escreveu:
>>>>>>>> Precisa recompilar o kernel e o lusca posteriormente?
>>>>>>>> 
>>>>>>>> Pois o patch pelo que vi é aplicado no soucre do Kernel, não?
>>>>>>>> 
>>>>>>>> # uname -a
>>>>>>>> FreeBSD proxy.xxx.com.br 8.2-RELEASE FreeBSD 8.2-RELEASE #3: Thu
>>>>>>>> Aug
>>>>>>>> 25 22:43:06 BRT 2011
>>>>>>>> root em proxy.xxx.com.br:/usr/obj/usr/src/sys/PROXY  amd64
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Wenderson Souza
>>>>>>>> e-mail: wendersonsouza em gmail.com
>>>>>>>> msn: wendersonsouza em msn.com
>>>>>>>> skype: wendersonsouza
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Em 27 de julho de 2011 15:10, Hygor <hygor em vipway.com.br>
>>>>>>>> escreveu:
>>>>>>>>> Boa tarde,
>>>>>>>>>  O Lusca está marcando TOS com o patch aplicado?
>>>>>>>>> 
>>>>>>>>> Obrigado pela solução...
>>>>>>>>> 
>>>>>>>>> Hygor Cavalcante
>>>>>>>>> FSNETWORK CONSULTORIA
>>>>>>>>> Skype: hygorr
>>>>>>>>> MSN: hygor em bsd.com.br
>>>>>>>>> EMAIL: hygor em bsd.com.br
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Em 24 de julho de 2011 18:43, slp <slp em fsnet.com.br> escreveu:
>>>>>>>>> 
>>>>>>>>>> Ola,
>>>>>>>>>> 
>>>>>>>>>> Testei o patch e tambem funcionou para mim, mesmo cenario, Lusca
>>>>>>>>>> em
>>>>>>>>>> bridge entre os clientes e a net.
>>>>>>>>>> 
>>>>>>>>>> Obrigado pela solucao.
>>>>>>>>>> 
>>>>>>>>>> Sidnei
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Em 21/07/2011 23:58, Luiz Otavio O Souza escreveu:
>>>>>>>>>>> Hello folks,
>>>>>>>>>>> 
>>>>>>>>>>> Eu (finalmente) tenho o lusca funcionando em modo bridge com o
>>>>>>>>>> tproxy.
>>>>>>>>>> Antes que eu acredite que isso funcionou, alguem mais pode
>>>>>>>>>> testar
>>>>>>>>>> o patch
>>>>>>>>>> abaixo ?
>>>>>>>>>>> 
>>>>>>>>>>> http://loos.no-ip.org/lusca_tproxy.diff
>>>>>>>>>>> 
>>>>>>>>>>> No meu ambiente de teste eu tinha:
>>>>>>>>>>> 
>>>>>>>>>>> Clientes (192.168.0.0/24) ->  xl0 ->  bridge ->  vr0 ->
>>>>>>>>>>  internet
>>>>>>>>>>> 
>>>>>>>>>>> Então precisei criar duas regras para acomodar o vai-e-vem dos
>>>>>>>>>> pacotes:
>>>>>>>>>>> 
>>>>>>>>>>> # Direciona os pacotes da rede interna para o proxy
>>>>>>>>>>> ipfw add 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 via
>>>>>>>>>> xl0
>>>>>>>>>>> 
>>>>>>>>>>> # Direciona o retorno dos pacotes para o S.O.
>>>>>>>>>>> ipfw add 127.0.0.1 tcp from any 80 to 192.168.0.0/24 via vr0
>>>>>>>>>>> 
>>>>>>>>>>> Liguei o ipfw para os pacotes da bridge:
>>>>>>>>>>> 
>>>>>>>>>>> sysctl net.link.bridge.ipfw=1
>>>>>>>>>>> 
>>>>>>>>>>> e modifiquei o http_port do lusca para:
>>>>>>>>>>> 
>>>>>>>>>>> http_port 3128 tproxy transparent
>>>>>>>>>>> 
>>>>>>>>>>> Pronto, tudo funcionou :-) Alguem mais confirma ?
>>>>>>>>>>> 
>>>>>>>>>>> O patch em si é uma variação do outro patch que já fazia o lusca
>>>>>>>>>> funcionar no modo transparente também em bridge (mas ainda não
>>>>>>>>>> com o tproxy).
>>>>>>>>>>> 
>>>>>>>>>>> A idéia do patch (permitir checar os pacotes no ipfw não
>>>>>>>>>> apenas
>>>>>>>>>> na saída
>>>>>>>>>> mas também na entrada) foi dada pelo Patrick já faz algum tempo,
>>>>>>>>>> mas só
>>>>>>>>>> agora consegui colocar ela em prática (Patrick, mais uma vez
>>>>>>>>>> obrigado !).
>>>>>>>>>>> 
>>>>>>>>>>> Att.,
>>>>>>>>>>> Luiz
>>>>>>>>>>> 
>>>>>>>>>>> PS: esse patch inclui um segundo patch que faz o tproxy do
>>>>>>>>>> lusca
>>>>>>>>>> funcionar sem precisar de qualquer alteração (não precisa ser
>>>>>>>>>> executado como
>>>>>>>>>> root), talvez depois eu deixe ele separado para evitar
>>>>>>>>>> confusões.


Mais detalhes sobre a lista de discussão freebsd