[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: rinetd



Prezado Junior

Depois que eu removi o software rinet e acrescentei as duas linhas na firewall o redirecionamento esta sendo feito.

O squid esta apresentando um problema, mensagem de erro "The request or reply is too large.", mas vou dar uma pesquisada na internet sobre essa mensagem. 

Desde já, obrigado pela ajuda !!

caio abreu ferreira

2013/1/30 Linux - Junior Polegato <linux@juniorpolegato.com.br>
Em 30-01-2013 17:03, Caio Ferreira escreveu:
Prezado Junior

Novas informações, e parecem ser animadoras.
Instalei o firefox na estação (192.168.0.200) e alterei a configuração de conexão três vezes.
1 - apontando o browser da estação para o proxy, 192.168.0.2 e porta 3128
Consegui navegar normalmente e os arquivos de log do squid foram alterados.
2 - apontando o browser da estação para o gateway, 192.168.0.1 e porta 80
Consegui navegar normalmente e os arquivos de log do squid foram alterados.
Consegui navegar normalmente e o arquivos de log do rinetd foi alterado.
3 - não apontei o browser da estação para o gateway(no-proxy)
Consegui navegar normalmente e os arquivos de log do squid NÃO foram alterados.
Consegui navegar normalmente e o arquivos de log do rinetd NÃO foi alterado.
Será que o problema esta no squid?

Ahhhhh! Agora entendi o que você quer fazer, o rinetd não serve para isso, vai ter que usar iptables mesmo.

O rinetd somente "desvia" o fluxo se você acessar o 192.168.0.1 na porta 80 diretamente, se colocar qualquer outro site, não vai rolar.

O propósito do rinetd foi motivado para quando você tem um servidor web, por exemplo, em 200.200.200.100 e você muda ele para 200.200.200.200, aí até os servidores de DNS se atualizarem com o novo IP, muita requisição ainda vai chegar no 200.200.200.100, então você usa o rinetd no 200.200.200.100 para redirecionar todas as requisições que chegam a este servidor para o servidor novo, entendeu?

O que você quer é que qualquer requisição para qualquer IP na porta de destino 80 que chegue ao firewall (192.168.0.1), seja direcionada para o squid, porta 3128, no IP 192.168.0.2, correto? O rinetd não faz isso, só iptables mesmo.

Retire o rinetd do seu firewall e crie a regra:

(1) iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i ethX -p tcp --dport 80 -j DNAT --to 192.168.0.2:3128

Onde ethX é a interface que está com IP 192.168.0.1, ligada na rede interna, traduzindo:

(1) Todo pacote IP antes de ser roteado com IP de origem pertencente à rede 192.168.0.0/24 e chegou pela interface ethX, protocolo TCP e cuja porta de destino for 80, não importando o IP de destino, redireciona este pacote para o IP 192.168.0.2 e porta 3128.

Somente (1) pode não ser suficiente pois os pacotes vão para 192.168.0.2 com IP de origem da mesma rede e vai responder diretamente para o IP da rede, contudo este IP esterava uma resposta do IP (servidor web) externo, o que a flag transparent do squid pode resolver. No caso de não funcionar, precisa de uma segunda regra:

(2) iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.2 -o ethX -p tcp --dport 3128 -j SNAT --to 192.168.0.1

Esta diz que todo pacote IP que sair com IP de origem da rede 192.168.0.0/24 e destino 192.168.0.2, tcp e porta 3128, deve ir com IP 192.168.0.1, assim o squid responde para o 192.168.0.1 que responde para a estação. 

[]'s
Junior Polegato

Reply to: