proxy transparente com modem adsl roteado - (Resolvido)

Iniciado por andreotti, 01 de Outubro de 2006, 22:17

tópico anterior - próximo tópico

andreotti

estou tentando habilitar o squid com proxy transparente no ubuntu 6.06 versão servidor.

meu servidor possui duas placas de rede:
eth0 para o modem adsl roteador obtendo ip via dhcp do modem
eth1 para a rede interna via ip estático

já instalei o squid (versão anterior a 2.6), criei as regras para o squid.conf e habilitei o iptables conforme tutoriais que encontrei no forum e na internet (guia do hardware).

ocorre que quando configuro o navegador (IE) da minha maquina da rede (windows 98) para acessar o servidor via endereço do proxy, este funciona perfeitamente com as regras implantadas.

quando desbilito o endereço proxy do navegador e deixo apenas com as configurações de rede via gateway do servidor (eth1), este não funciona mais.

como poderei então fazer funcionar o proxy transparente ????????
T+

arlei

Para vc configurar o Squid como proxy transparente, nas regras do teu firewall (iptables) vc tem que redirecionar todos pacotes da porta 80 (HTTP) para a porta do Squid, que normalmente é a 3128.

Passa a regra que vc criou no firewall para fazer o proxy transparente para a gente dar uma olhada.

T+
Arlei

andreotti

lá vai:

no arquivo rc.local foi colocado antes do exit0:

# modprobe iptable_nat
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss 1400:1536 -j TCPMSS --clamp-mss-to pmtu

#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

no arquivo squid.conf foi colocado:

http_port 3128
visible_hostname ubuntu
....
....
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

arlei

Amigo,

só não entendi uma coisa. A linha que redireciona os pacotes da porta 80 para o Squid esta comentada mesmo, ou vc acrescentou o # para postar aqui?
Bem tive vendo e comparando com a que tenho em meu proxy transparente com Squid e tem umas diferenças que posto abaixo para vc verificar.

Minha regra no iptables:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-ports 3128

Onde no seu caso vc deve trocar eth0 por eth1 que é sua interface da rede interna.

T+
Arlei


andreotti

#4
amigo,

implantei a sua regra do iptable e ela funcionou (sou iniciante em linux) e portanto não entendi bem a difereca ainda (vou estudar mais).
Quanto aos comentários (#), estes foram inclusos para postar a linha da regra no fourum.
Agradeco a atenção.

T+
Andreotti
:D

arlei

Bem, não sou nenhum expert mais a regra é a seguinte:

-t nat -> Tabela usada para armazenar os chains e conjunto de regras, no caso a tabela nat que é usada para dados que geram outra conexão tipo configurar um proxy transparente como é o caso.

-A -> Opção utilizada para adiciona uma regra

PREROUTING -> Usado para qdo os pacotes precisam ser modificados logo que chegam ao servidor, como no caso para redirecionamento de pacotes.

-p (ou --protocol) tcp -> Especifica qual protocolo de comunicação que no caso sabemos que é o TCP.

-i eth1 --dport 80 -> Especifica que tudo que tiver destino a tua interface ETH1 na porta 80

-j REDIRECT --to-ports 3128 -> Redireciona para a porta 3128, no caso onde o Squid esta "escutando" para que o mesmo passe a gerenciar os pacotes de acordo com suas regras no arquivo squid.conf.

Se vc observar bem, as diferenças são minimas mais que na sintaxe de um comando podem representar muito.

T+
Arlei