[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