[FUG-BR] Lusca + bridge + tproxy

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quinta Setembro 8 10:22:36 BRT 2011


Vou assumir o seguinte cenário, que é o que tenho aqui:

- Lusca (último do ports) com TPROXY
- FreeBSD 8.2 com o patch do Loos que se encontra nesse e-mail/thread
- Regras de fwd como as desse e-mail/thread
- Lusca testado em modo roteado e com TPROXY funcional: fundamental pro seu debug passo-a-passo

Pergunta:

- Seu tráfego não http passa normalmente pela bridge?
- Seu tráfego http sai pela bridge corretamente? (confira com tcpdump no router)
- A resposta http volta pra bridge (confira com tcpdump na bridge freebsd)
- Ambos counters incrementam (saida/retorno) no ipfw show?
- O mesmo cenário em modo roteado (sem bridge) funciona? (a resposta tem que ser SIM, e testado de fato)

Voce não precisa modificar nada de comm_ips_freebsd.c e principalmente não use Squid.

Va de Lusca, FreeBSD 8.2 e teste primeiro o tproxy roteado.

Tem que funcionar, e precisa funcionar antes de voce dar o proximo passo.

Quando estiver OK aplique o patch do Loos, compile o kernel e adeque as regras.

Ai cole sua config da bridge, suas regras de firewall, seu squid.conf pra sabermos o que e como :-)




> 
> 
>> 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.
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd