[FUG-BR] bridge + proxy transparente

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quinta Agosto 12 11:35:21 BRT 2010


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!"



Mais detalhes sobre a lista de discussão freebsd