[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