Proxy Transparente

1. Proxy Transparente

Gideão Marreiros
gmarreiros

(usa Debian)

Enviado em 24/02/2010 - 17:22h

Pessoal,

Estou com um problema para configurar um proxy transparente.
Só funciona se configurar o proxy no browser. quero a opção de não precisar ir de maquina a maquina para configurar.
Estou usando Ubuntu 9.04, squid 2.7
Rede: eth0=wan, eth1=lan
segue squid.conf
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
#
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/24 # RFC1918 possible internal network
#
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
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 1025-65535 # unregistered ports
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 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
#
http_access allow localhost

# And finally deny all other access to this proxy
http_access allow all

icp_access allow localnet
icp_access deny all

http_port 3128 transparent
http_port 3128 transparent

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid/access.log squid

#Suggested default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
upgrade_http0.9 deny shoutcast

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

error_directory /usr/share/squid/errors/Portuguese

hosts_file /etc/hosts

coredump_dir /var/spool/squid

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

Não vai de jeito maneira.


  


2. Re: Proxy Transparente

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 24/02/2010 - 17:29h

O http_port deve ficar na primeira linha do seu arquivo.


3. Proxy Transparente

Gideão Marreiros
gmarreiros

(usa Debian)

Enviado em 24/02/2010 - 17:50h

Não deu certo.


4. Re: Proxy Transparente

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 24/02/2010 - 17:57h

Deveria funcionar. Pra garantir, digite:

# echo 1 > /proc/sys/net/ipv4/ip_forward




5. Proxy Transparente

Gideão Marreiros
gmarreiros

(usa Debian)

Enviado em 24/02/2010 - 18:06h

já fiz isso.
Até agora não entendo porque isso não dá certo. já procurei com todo cuidado onde está o erro, mas não acho.
Renato vc tem squid funcionado assim?


6. Re: Proxy Transparente

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 24/02/2010 - 18:18h

Talvez já tenha alguma regra de iptables anterior a sua que permita o acesso. tente trocar o -A por -I

Ainda, veja que proxy transparente não funciona para HTTPS, ok?

Se não funcionar, veja se:

a) Com o proxy no ar não funciona. Mas não funciona no sentido de não navegar? Que tipo de erro dá no navegador?

b) tens DNS para teus clientes funcionando?


7. Proxy Transparente

Fabiano Salvi
fbsalvi

(usa Outra)

Enviado em 25/02/2010 - 14:05h


Ola amigo nao sei como esta o seus confs completos... mas dentro do squid.conf, vc colocou visible_hostname <nome...>? tem um postrouting no seu firewal apos o redirect, para fazer o mascaramento?

Abraços

Fabiano.


8. Proxy Transparente

Gideão Marreiros
gmarreiros

(usa Debian)

Enviado em 26/02/2010 - 09:49h

Não sei se tem o postrouting, como faço para corrigir/verificar isso?


9. Re: Proxy Transparente

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/02/2010 - 09:52h

Pra verificar se já existe regras:

# iptables -nL
# iptables -t nat -nL

O primeiro comando verifica se há regras d filter e a segunda regras de NAT.


10. Proxy Transparente

Gideão Marreiros
gmarreiros

(usa Debian)

Enviado em 26/02/2010 - 15:47h

root@firewall:~# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128



11. Proxy Transparente

Fabiano Salvi
fbsalvi

(usa Outra)

Enviado em 26/02/2010 - 17:25h


Ola amigo entao, primeiro verifique se no seu squid.conf a opcao visible_hostname esta habilitada, visible_hostname <nome>, por exemplo assim visible_hostname filtroweb, na versao 2.7 do squid para proxuy transparent, vc deve colcoar transparent na frente do
http_port pelo visto vc fez isto.. bom..

agora no seu firewall: (iptables)

coloque nessa ordem:

iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.0/24 -p tcp --dport 80 REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

lembrando eth1= iface interna
eth0 = iface ip valido (internet)
192.168.0.0/24 = sua rede (se for essa)

Abraços

Fabiano.


12. Re: Proxy Transparente

Carlos Henrique Oliveira Silva
carlos.riq

(usa Outra)

Enviado em 27/05/2010 - 14:48h

FBsalvi,

sua ajuda foi certeira...

estava com dificuldade para configurar o modo transparent e fiz conforme o que vc orientou de deu tudo certo...

Valew






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts