[FUG-BR] Fwd: Re: [Off-topic] pf não redireciona com route-to

spiderslack spiderslack em yahoo.com.br
Quinta Novembro 6 16:05:59 BRST 2014



  >Certo, então na minha opinião você deveria usar uma regra de rdr pra fazer esse redirect, e tem que lembrar de negar o IP do proxy, seria algo mais ou menos assim:

>rdr pass on re1 inet proto tcp from re1:network to ! IP_DO_PROXY port 80 -> IP_DO_PROXY port 80

--
Obrigado por responder Renato, Mas não funciona o redirecioamento até funciona,porém ele muda o destino do pacote vai com destino ao mara cache e nao ao site o site vai no header htttp

Eu acho que descobri a razão do problema, mas e apenas uma teoria. Imaginemos que um cliente faz um request na porta 80 com destino ao google

O mara cache fica em modo transparente ou seja como o modulo tproxy funciona,
Quando o request passa pelo meu freebsd com destino ao google e porta de destino a 80 ele usa o "route-to" redireciona para o mara cache porque o destino do pacote NÃO está diretamente conectado.
O mara cache faz o spoofing do ip do google e fecha o three way handshake com o cliente.
A partir dai o Mara cache não possuir o objeto em cache abre uma nova conexão para o google para buscar este objeto.
O mara cache envia um SYN para o google com origem no ip do cliente não no seu proprio IP(isso para quando o pacote voltar com destino ao cliente e não ter um unico ip acessando a internet)
O google responde com um SYN/ACK para o ip cliente "spoofado" pelo mara cache.
Quando esse SYN/ACK chega no freeBSD ele possue a regra para o retorno devolver ao mara cache conforme abaixo.

pass in log quick on re0    route-to (alc0 200.1.1.1) proto tcp from any port 80 to $rede_lan

A minha teoria e aqui meu freebsd esta diretamente conectado ao cliente então nao usa o "route-to", o "route-to" somente seria usado para destino não diretamente conectado(estou preparando um ambiente para testar isso, assim que tiver resposta retorno) e o pacote SYN/ACK chega ao cliente(chega porque monitorei via tcpdump).
E o cliente recebe um pacote fora de contexto/ordem tipo ele anteriormente fechou o three way handshake com o google spoofado pelo mara cache e ai chega outro SYN/ACK ai ele Reseta a conexão.

Tudo que eu descrevi acima eu constatei olhando os logs do tcpdump. E na interface onde esta o proxy mara cache vejo varios pacotes SYN saindo e os SYN/ACK indo direto para o cliente.

Nao uso o rdr porque não tenho nat nesse freebsd somente ip's válidos. Se alguém tiver alguma dica ou passou por algo parecido desde já agradeço.

Att.






Mais detalhes sobre a lista de discussão freebsd