[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