Squid Transparent Centos [RESOLVIDO]

1. Squid Transparent Centos [RESOLVIDO]

Edilson
ehs171

(usa Ubuntu)

Enviado em 12/11/2009 - 09:06h

Bom dia pessoal, o seguinte estou tentando colocar o meu squid em modo transparent mas o mesmo nao funciona, será que alguem poderia me dar uma ajudinha?
Bom tenho o seguinte ambiente:
Centos 5.4
Squid 2.6
Lá no squid eu defini:
http_port 3128 transparent
Já tentei com estes iptables, usando cada 1 de uma vez:
iptables -t nat -A PREROUTING -s 10.0.0.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to 3128

Informando que Eth0 = Rede Interna;
Eth1 = Rede Externa(Internet);

O squid funciona perfeitamente se especifico no navegador o proxy, mas quando retiro pra ele roda em modo transparente da erro..
Conf da placa de rede.
Eth1:
IP = 10.0.0.233
MS = 255.0.0.0
Gateway = 10.0.0.254
DNS = 200.175.5.139

ETH0 = 192.168.0.254
MS = 255.255.255.0
DNS = 200.175.5.139
Gateway = 192.168.0.254


  


2. Re: Squid Transparent Centos [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 12/11/2009 - 09:21h

Qual a versão que esta usando?

Se não me engano a 3.0 é diferente.

Esta com autenticação?


3. Re: Squid Transparent Centos [RESOLVIDO]

Edilson
ehs171

(usa Ubuntu)

Enviado em 12/11/2009 - 09:32h

Bom dia, a versão do Squid: 2.6 stable 21,
e a versao do linux: Centos 5.4

Ele não tem autenticação não, somente tem bloqueios por IP, por URL, e por palavras, e futuramente vou colocar um bloqueio por horario.


4. Re: Squid Transparent Centos [RESOLVIDO]

Julian Castaman
maninhx

(usa Slackware)

Enviado em 12/11/2009 - 13:34h

sem ser no modo transparente ele funciona?

tanta usar essa regra
iptables -t nat -A PREROUTING -s 0/0 -p tcp --dport 80 -j REDIRECT --to-port 3128


5. Re: Squid Transparent Centos [RESOLVIDO]

Edilson
ehs171

(usa Ubuntu)

Enviado em 12/11/2009 - 14:02h

exatamente sem ser no modo transparente ele funciona...vou tentar esta.


6. Re: Squid Transparent Centos [RESOLVIDO]

Edilson
ehs171

(usa Ubuntu)

Enviado em 12/11/2009 - 15:32h

Boa tarde, com esta regra tambem não funcionou
iptables -t nat -A PREROUTING -s 0/0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Usei da maneira que está ai alguma alternativa?

pessoal para limpar as regra ip tables uso:
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle

esta certo?

Bom mas voltando alguem tem outra dica para deixar o squid em modo transparent?


7. Re: Squid Transparent Centos [RESOLVIDO]

Derci Santos Lima
dercilima

(usa Debian)

Enviado em 12/11/2009 - 16:38h

tenta essa regra aki, soh que onde esta eth0 ... voce coloca a sua placa de rede interna.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

e coloca la no squid.conf
http_port 3128 transparent

blza?? posta o resultado aii ..


8. Re: Squid Transparent Centos [RESOLVIDO]

Derci Santos Lima
dercilima

(usa Debian)

Enviado em 12/11/2009 - 16:42h

mas vc disse q ta usando a versao 2.6..
se eu fosse voce ... eu migraria rapidamento para a versao .. 3.0
eu uso ela .. e eh otima ..
essa 2.6 eh cheia de bugs ..



configuração do proxy transparente

O Squid permite compartilhar a conexão entre vários micros, servindo como um intermediário entre eles e a internet. Usar um proxy é diferente de simplesmente compartilhar a conexão diretamente, via NAT.

Ao compartilhar via NAT, os micros da rede acessam a internet diretamente, sem restrições. O servidor apenas repassa as requisições recebidas, como um garoto de recados. O proxy é como um burocrata que não se limita a repassar as requisições: ele analisa todo o tráfego de dados, separando o que pode ou não pode passar e guardando informações para uso posterior.

Um dos principais problemas de usar um proxy é que você precisa configurar manualmente cada micro da rede para utilizá-lo, o que é um trabalho cansativo e tedioso, sobretudo em grandes redes.

O Squid responde a este desafio com a possibilidade de criar um proxy transparente, onde o proxy se integra a uma rede já existente, acelerando a conexão, mas sem precisar de qualquer configuração nos clientes.

Ao usar um proxy transparente, você tem basicamente uma conexão compartilhada via NAT, com a mesma configuração básica nos clientes. O proxy entra na história como um adicional. Uma regra de firewall envia as requisições recebidas na porta 80 do servidor para o proxy, que se encarrega de responder aos clientes. Toda a navegação passa a ser feita automaticamente através do proxy (incluindo o cache dos arquivos do Windows update, downloads diversos e os pacotes instalados através do apt-get), sem que você precise fazer nenhuma configuração adicional nos clientes :).

Mesmo que alguém tente desabilitar o proxy manualmente nas configurações do navegador, ele continuará sendo usado. Basta usar o endereço IP do servidor rodando o proxy como gateway da rede.

Lembre-se de que, para usar o proxy transparente, você já deve estar compartilhando a conexão no servidor via NAT e, naturalmente, já deve estar com um servidor Squid configurado.

Você aprende a configurar o Squid em detalhes no capítulo 5 do livro Redes e Servidores Linux 2ed. Você pode também ler meu tutorial antigo, disponível no: http://www.guiadohardware.net/tutoriais/090/.



Para ativar o proxy transparente, rode o comando abaixo. Ele direciona as requisições recebidas na porta 80 para o Squid:

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

O "eth0" no comando indica a placa da rede local, onde o proxy recebe as requisições dos outros micros da rede e o "3128" indica a porta usada pelo Squid. Adicione o comando junto com os 4 comandos que compartilham a conexão no final do arquivo "/etc/rc.d/rc.local" ou "/etc/init.d/bootmisc.sh" (no Debian) para que eles sejam executados durante o boot.Finalmente, você precisa ativar o suporte ao modo transparente dentro do arquivo "/etc/squid/squid.conf" e reiniciar o serviço.

É aqui que entra a parte principal desta dica. A partir do Squid 2.6 a configuração de proxy transparente mudou, tornando desatualizados a maioria dos tutoriais e dicas antigos. Se você está usando uma versão recente, do Squid 2.6 em diante, a configuração de proxy transparente é feita com uma única linha. Basta substituir a linha "http_port 3128" no início do arquivo por:

http_port 3128 transparent

Ou seja, na verdade você precisa apenas adicionar o "transparent", para que o Squid passe a entender as requisições redirecionadas pela regra do firewall.

No caso das versões mais antigas, anteriores à 2.6 (como a usada no Debian Sarge e no Ubuntu 5.10), você usa a receita antiga, onde é necessário adicionar as quatro linhas abaixo, no final do arquivo "/etc/squid/squid.conf" (neste caso, sem alterar a linha "http_port 3128"):
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Em qualquer um dos dois casos, você precisa reiniciar o serviço para que a alteração entre em vigor:

# /etc/init.d/squid restart

Em caso de dúvida sobre qual versão do Squid está instalada, use o comando "squid -v", que além de reportar a versão, informa todas as opções que foram usadas durante a compilação:

# squid -v

Squid Cache: Version 2.6.STABLE2configure options: '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,diskd,null' '--enable-linux-netfilter' '--enable-linux-proxy' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm' '--enable-carp' '--with-large-files' 'i386-debian-linux' 'build_alias=i386-debian-linux' 'host_alias=i386-debian-linux' 'target_alias=i386-debian-linux'

Em resumo, você vai ter a conexão compartilhada via NAT no servidor e configurará os clientes para acessar através dela, colocando o servidor como gateway da rede. Ao ativar o proxy transparente, a configuração dos clientes continua igual, a única diferença é que agora (graças à nova regra do Iptables) todo o tráfego da porta 80 passará, obrigatoriamente, pelo servidor Squid. Isso permite que você se beneficie do log dos acessos e do cache feito pelo proxy, sem ter que se sujeitar às desvantagens de usar um proxy, como ter que configurar manualmente cada estação.

Uma observação importante é que esta configuração de proxy transparente não funciona em conjunto com o sistema de autenticação incluso no Squid. Ao usar o proxy transparente a autenticação deixa de funcionar, fazendo com que você precise escolher entre as duas coisas. Caso você precise combinar o uso de autenticação com o proxy transparente, você precisará utilizar outra solução, como o NatACL ou o NoCatAuth, que você encontra nos links: http://www.hostname.org/proxy_auth/ e http://nocat.net/.


9. Re: Squid Transparent Centos [RESOLVIDO]

Edilson
ehs171

(usa Ubuntu)

Enviado em 12/11/2009 - 16:55h

Acabei de testar:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Tambem nao funcionou?

Bom migrar para o 3.0?
axo que em tese é somente eu fazer a instalacao..mudaria alguma coisa na configuracao?

valew


10. Re: Squid Transparent Centos [RESOLVIDO]

kleber galucio
klebrr

(usa Linux Mint)

Enviado em 12/11/2009 - 19:02h

#
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.20.30.40:3128

Substitua o valor 10.20.30.40 pelo ip do seu proxy

Aqui funciona com o squid verão: 2.6, 2.7 e 3.0
ah, não esqueça de colocar "transparent" no /etc/squid/squid.conf
na linha:
http_port 3128 transparent

e aplicar essas alterações com o comando:
# squid -k reconfigure



11. Re: Squid Transparent Centos [RESOLVIDO]

Ricardo Libanio
riesdra

(usa Debian)

Enviado em 12/11/2009 - 19:50h

nas versões >= 2.6 do squid não é mais necessário rodar, [iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128].

aqui em casa hoje não uso mais, mas eu usava somente a linha "http_port 3128 transparent" no arquivo de configuração do squid.



12. Re: Squid Transparent Centos [RESOLVIDO]

Edilson
ehs171

(usa Ubuntu)

Enviado em 12/11/2009 - 20:02h

Boa noiet klebrr testei sua regra de ip tables mas nao obtive sucesso:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128

Alguem teria alguma outra dica? eu preciso configurar algo extra alem do squid.conf e da regra iptables?

Meu squid.conf

# Lembrar Muito importante desabilitar firewal e SELinux! da zica!
# Porta e modo de opercao do squid
# http_port 3128 transparent
#http_port 3128 transparent
http_port 192.168.0.254:3128 transparent

# Quandidade de memira para o cahce do squid
# cache_mem 256 mb

# define o tipo de armazenamento do cache = ufs
# define o espaco em disco que é utilizado
# cache_dir ufs /home/squid/cache 1000 16 256

# Log de Acesso
# Mostra quem acessou o que, dia e hora
# access_log /home/squid/logs/access.log
# cache_access_log /home/squid/logs/access.log

# inicio testes cahce -------------------------------------------------------------------------
# Configuracoes de cache, dono, logs, errors
cache_effective_user squid
cache_effective_group squid
cache_mem 128 MB

# cache_dir ufs /etc/squid/cache 1000 16 256
cache_dir diskd /home/squid/cache 10000 32 256 Q1=64 Q2=72
# cache_dir diskd /etc/squid/cache 10000 32 256 Q1=64 Q2=72
cache_access_log /home/squid/logs/access.log
cache_log /home/squid/logs/cache.log
cache_store_log /home/squid/logs/store.log

# Atualização do cache
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
auth_param basic children 5
auth_param basic realm PMJ-BA Proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#fim testes Cache ----------------------------------------------------------------------------

# Log de erros do squid
# cache_log /home/squid/logs/cache.log

# Detalha objeto da web armazenado
# cache_store_log /home/squid/logs/store.log

# Nome do Proxy
visible_hostname Proxy.unimake

# Mostra quem eh o usuario e o grupo do squid
# cache_effective_user squid
# cache_effective_group squid

# INICIO DAS REGRAS DE BLOQUEIO -------------------------------------------------------------
# http_access = permine ou proibe o acesso
# Lembre: deny = bloqueio | allow = liberar

# FIM DAS REGRAS DE BLOQUEIO ----------------------------------------------------------------

# define a sua rede para o squid
acl rede_interna src 192.168.0.0/24
acl all src 0.0.0.0/0.0.0.0

# ACL portas
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/255.255.255.255
acl Safe_ports port 10000 # webmin
acl Safe_ports port 631 # cups
acl Safe_ports port 901 # samba
acl SSL_ports port 443 563 1834 1863 4242 # SSL
acl Safe_ports port 80 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 CONNECT method CONNECT

# validacao das redes!
http_access deny all !rede_interna
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
#http_access allow Safe_ports
http_access deny CONNECT !SSL_ports
http_reply_access deny all !rede_interna
icp_access deny all !rede_interna

# Altera a Menssagen de erro para o portugues!
error_directory /usr/share/squid/errors/Portuguese



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts