Essa regra tenta fazer com que as requisições que vierem da rede interna para acesso web (no caso eth1 na porta 80) sejam redirecionadas para a porta 3128 usada pelo Squid. Porém mesmo o Squid estando configurado como proxy transparente, essa regra não o ativava.
Mas se você usar esta regra aqui ao invés da regra de cima, tudo irá funcionar "normalmente", pelo menos o proxy transparente irá!
A única diferença é que ao invés de especificar "-i eth1" você declara "-s SUA_REDE_LOCAL/MASCARA". O proxy transparente funcionará de forma correta!
Obs.: Todos que relataram ter problemas com o uso do iptables e Squid transparente solucionariam seus problemas facilmente com essa observação. Todos usavam a regra que não funciona (a que você usa a interface e não a rede).
[1] Comentário enviado por irado em 30/10/2008 - 08:16h
embora essa (nova) regra aja corretamente, fiquei curioso e fui conferir as minhas: funcionam com a primeira delas (indicação de NIC, não da rede); então, fica a duvida no ar: funciona com alguns, e não com todos? ou (eventualmente) é o CONJUNTO de regras que define o bom ou mau funcionamento do redirecionamento?
[2] Comentário enviado por matux em 30/10/2008 - 10:18h
Fala irado!! blz?
Foi muito bom vc ter comentado isso.
A versão do squid que eu usei para esse trabalho foi a 2.6 stable. E o slack foi a versão 11.
Em outras distros e outras versões dos squid não testei. Mas de ante-mão como já tinha dito: todos que usaram a definição do NIC e não da rede tiveram que setar manualmente no navegador o endereço do proxy, retirando assim sua característica de uso transparente.
Pois o squid não usa definição da placa de rede, ele faz o controle sobre os endereços do host ou da rede.
[3] Comentário enviado por afdominguez em 28/12/2008 - 18:05h
Bom dia Colegas
Fiz um teste aqui em ksa, e com nenhuma das duas opções esta funcionando a regra citada acima. segue me rc.local
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
Pelo que entendi, esta regra acima deveria redirecionar o trafico tcp da porta 80 para a porta 3128, mas nao esta fazendo isso, preciso ir la no IE e setar o proxy manualmente. Oque pode estar acontecendo?
[10] Comentário enviado por wasleyalmeida em 15/06/2012 - 19:39h
Seu artigo funcionou!!! mas estou tentou problemas relacionado a minha estrutura, tenho algumas maquinas na qual utilizo NAT, sou seja navegam na internet sem passarem pelas restrições de proxy, entretanto ao aplicar o proxy transparente as maquinas que eram para navegar pela NAT estou saindo pelo porta 3128 (porta do squid) ou seja estão navegando pelo proxy.
Veja as regras que criei para disponibilizar o serviço, e por favor me digam onde estou errando ou me deem um luz:
# Regra Nat p maquina diretor
iptables -t nat -A POSTROUTING -s 192.168.0.2\324 -o ppp0 -j MASQUERADE
[11] Comentário enviado por matux em 18/06/2012 - 12:27h
Wasleyalmeida,
Quando você habilita o proxy transparente e o firewall na mesma máquina, todos os hosts da rede vão passar pelo proxy, por padrão. A menos que você crie uma regra no proxy para não criar restrições para determinados IPs, MAC ou Usuários (depende da configuração do proxy que vc esteja usando).
Outra opção seria você usar uma regra como esta, antes da regra de Redirecionamento para o squid.
[12] Comentário enviado por vinicius311068 em 01/10/2013 - 01:51h
ja apanhei por anos com esse proxy transparente e espero que esta
nova regra realmente funcione com o centos 5.9 pois ja tentei com o centos 5.4, 5.5, 5.8 e 5.9
[13] Comentário enviado por luafeitosa em 23/12/2016 - 14:07h
ola !!
bom dia pessoal
estou um uma dificulda de deixar meu proxy transparente no debia 7
Squid Cache: Version 3.1.20
esta e minha configuracao
minha rede eth0 esta como dhcp pegando a rede interna do meu roteador
e a eth1 esta com ip static 172.16.0.1/24
# Porta do Squid
http_port 172.16.0.1:3128 intercept
# Nome do servidor
visible_hostname debian
# Cache
cache_mem 64 MB
maximum_object_size_in_memory 128 KB
maximum_object_size 512 MB # guarda em disco
minimum_object_size 0 KB # guarda em disco
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 100 16 256
# Logs de acesso
access_log /var/log/squid3/access.log squid
#coloque seu email
cache_mgr lua_feitosa@hotmail.com
# Regras acl padrão
acl manager proto cache_object
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl CONNECT method CONNECT # site seguranca
acl redelocal src 172.16.0.0/24 # permissao rede ocal
a pergunda e o seguindo quando vou no navegador e retiro o proxy ele deixa passar tudo gostaria muito da ajuda de voces onde esta o meu erro desde já agradeco a todos