[FUG-BR] bridge + proxy transparente
Edival Mittelstad
edivalmittelstad em gmail.com
Sexta Agosto 13 14:37:10 BRT 2010
Resolvido
Acabei resolvendo o problema com o PF.
############## Regras do PF
rdr on fxp0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 3128
pass in quick on fxp0 route-to lo0 inet proto tcp from any to
127.0.0.1 port 3128 keep state
############## Squid
http_port 3128 transparent
############## Kernel
device pf
device pflog
device pfsync
device if_bridge
options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP
options DEVICE_POLLING
options SHMSEG=16
options SHMMNI=32
options SHMMAX=2097152
options SHMALL=4096
options MAXFILES=16384
Em 12 de agosto de 2010 17:09, Rogério Moura <rogerpop em gmail.com> escreveu:
>
> Usa PF que funciona!
>
> Em 12 de agosto de 2010 11:35, Patrick Tracanelli <
> eksffa em freebsdbrasil.com.br> escreveu:
>
> >
> > Em 12/08/2010, às 11:28, Edival Mittelstad escreveu:
> >
> > > Olá a todos da lista,
> > >
> > > Estou tentando fazer um proxy transparente sobre uma bridge com IP e
> > estou
> > > tendo dificuldades.
> > >
> > > Tenho o seguinte senário...
> > >
> > > +------------+ +----------+ +------------------+
> > > +-----------------+
> > > | Rede Local |----------| Firewall |-----------| Proxy com Bridge
> > > |----------| Router Internet |
> > > +------------+ +----------+ +------------------+
> > > +-----------------+
> > >
> > > Rede local : 10.1.1.0/24
> > >
> > > Firewall : fxp0(Interna) -> 10.1.1.254
> > > fxp1(Externa) -> 200.x.x.250
> > >
> > > Proxy Bridge: bge0
> > > fxp0
> > > bridge0(bge0 , fxp0) --> 200.x.x.249
> > >
> > > Router Internet: 200.x.x.254
> > >
> > > Estou tentando colocar o lusca nesta bridge, mas os pacotes parecem não
> > > estar sendo redirecionados para o lusca.
> > > O Firewall faz nat para as máquinas da rede interna.
> > >
> > > O LUSCA esta funcionando corretamente pois quando configuro no navegador
> > > para utiliza-lo, funciona tranquilamente.
> > > - Configuração de transparente do LUSCA:
> > > http_port 200.x.x.249:3128 transparent
> > >
> > >
> > > - O IPFW esta aberto e com apenas uma regra
> > > /sbin/ipfw -q add 100 fwd 200.x.x.249,3128 tcp from 10.1.1.0/24 to any
> > 80
> > >
> > > Teoricamente os pacotes estão passando pela regra, mas não estão chegando
> > no
> > > lusca.
> > > Os pacotes estão sendo liberados pela regra geral.
> > > No teste que fiz a maquina navegou mas não passou pelo LUSCA, .
> > > # ipfw show
> > > 00100 11960 2703700 fwd 200.x.x.249,3128 tcp from 10.1.1.0/24 to any
> > > dst-port 80
> > > 65535 554025 51797101 allow ip from any to any
> > >
> > > Com o tcpdump vejo os pacote passando na porta 80 mas não redirecionando
> > > para 3218.
> > >
> > > Alterações do kernel.
> > > options HZ=6000
> > > options MROUTING
> > > options IPSTEALTH
> > > options IPFIREWALL
> > > options IPFIREWALL_VERBOSE
> > > options IPFIREWALL_VERBOSE_LIMIT=100
> > > options IPFIREWALL_DEFAULT_TO_ACCEPT
> > > options IPFIREWALL_FORWARD
> > > options IPFIREWALL_NAT
> > > options ACCEPT_FILTER_DATA
> > > options ACCEPT_FILTER_HTTP
> > > options DEVICE_POLLING
> > > options LIBALIAS
> > >
> > > ###
> > > options SHMSEG=16
> > > options SHMMNI=32
> > > options SHMMAX=2097152
> > > options SHMALL=4096
> > > options MAXFILES=16384
> > >
> > > ##################################################
> > > SYSCTL.CONF
> > > net.link.bridge.ipfw=1
> > > net.link.bridge.log_stp=1
> > > net.link.bridge.ipfw_arp=1
> > > net.inet.ip.forwarding=1
> > > net.link.bridge.pfil_local_phys=1
> > > net.link.bridge.pfil_member=1
> > > net.link.bridge.pfil_bridge=1
> > > net.link.bridge.pfil_onlyip=1
> > > net.inet.ip.fastforwarding=1
> > >
> > > ##################################################
> > > RC.CONF
> > > cloned_interfaces="bridge0"
> > > ifconfig_bge0="up"
> > > ifconfig_fxp0="up"
> > > ifconfig_bridge0="inet 200.x.x.249 netmask 255.255.255.0 addm fxp0 addm
> > bge0
> > > up"
> > > defaultrouter="200.x.x.254"
> > >
> > > Alguém tem alguma ideia porque os pacotes não estão indo para o LUSCA?
> > > -------------------------
> > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
> >
> > Cara, o Luiz Souza estava investigando uma forma de fazer proxy
> > transparente (incluindo tproxy) em bridge. Não sei se ele já conseguiu -
> > Luiz, se você ler nos posicione ai :D - mas enquanto o Luiz ou outra pessoa
> > não completar esse objetivo não adianta você tentar, o fwd não funciona em
> > pacotes na camada 2 (e portanto em bridge).
> >
> > O comportamento é documentado, veja como esta na seção referente ao fwd na
> > "man ipfw":
> >
> > A fwd rule will not match layer-2 packets (those received on
> > ether_input, ether_output, or bridged).
> >
> >
> > --
> > 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
> >
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
Mais detalhes sobre a lista de discussão freebsd