[FUG-BR] Lusca + bridge + tproxy

Luiz Gustavo S. Costa luizgustavo em luizgustavo.pro.br
Quinta Setembro 8 11:43:59 BRT 2011


só um detalhe que deve estar ocorrendo no cenário do colega:

o patch deve ser aplicado no STABLE, 8.2-STABLE

no RELEASE não funciona.

eu to sem tempo, mas fiz umas correções no patch do loos pra funcionar
no RELEASE do 8.1 e 8.2, assim que der eu publico.

abraços

Em 8 de setembro de 2011 10:22, Patrick Tracanelli
<eksffa em freebsdbrasil.com.br> escreveu:
> 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!"
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>



-- 
  /\             Luiz Gustavo S. Costa
 /  \            Programmer at BSD Perimeter
/    \ /\/\/\    Visit the pfSense Project
/      \    \ \   http://www.pfsense.org
---------------------------------------------------------------------
BSD da serra carioca, Teresopolis (visite: http://miud.in/Inv)
Contatos: luizgustavo em luizgustavo.pro.br / lgcosta em pfsense.org
Blog: http://www.luizgustavo.pro.br


Mais detalhes sobre a lista de discussão freebsd