Proxy reverso HTTP com Squid (versão 2.6 ou superior)
by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>
Artigo criado em: 24 de novembro de 2008.
Última atualização: veja o rodapé desta página.
Tiny URL ou bit.ly: http://tiny.cc/proxy_reverso_squid
Os proxies
Proxies são elementos intermediários entre clientes e servidores, utilizados para evitar o contato direto entre estes. Há proxies para todos os serviços da camada de aplicação (modelos OSI e TCP/IP). Há dois tipos de proxies: forward e reverso.
Um proxy de forward é utilizado para permitir que um cliente possa acessar vários servidores. Geralmente isso ocorre de dentro para fora da rede, quando temos um cliente querendo acessar vários sites diferentes. Assim, um cliente poderá acessar o site do Terra, do UOL, do Banco do Brasil etc. Esse é o caso mais comum de utilização de proxies.
Um proxy reverso é utilizado para permitir que vários clientes acessem um servidor. Isso ocorre quando temos, por exemplo, um site sendo acessado por vários usuários do mundo inteiro.
Apesar de todos os exemplos terem se referido a sites (protocolo HTTP), existem proxies reversos para quase todos os serviços, como e-mail, DNS etc. |
A necessidade de um proxy reverso
Um proxy reverso tem como objetivo principal prover segurança ao servidor, evitando que os clientes tenham contato direto com ele. Todo servidor deve ter um proxy reverso à sua frente.
Configurando o Squid para ser proxy reverso HTTP
As configurações mostradas aqui servirão para o Squid 2.6 ou superior. Para o Squid 2.5, a configuração é totalmente diferente. |
A seguir, um exemplo básico de configuração de proxy reverso com o Squid (apenas as partes mais relevantes - arquivo /etc/squid/squid.conf):
# Squid normally listens to port 3128 http_port 172.16.0.21:80 vhost vport ... cache_peer 172.17.0.1 parent 80 0 originserver default ... acl valid_dst dstdomain .teste.dominio1.com.br .dominio2.org.br ... # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS http_access allow valid_dst ... httpd_suppress_version_string on
A linha http_port abre o socket 172.16.0.21:80 para escuta. Em outras palavras, a máquina proxy irá criar uma porta 80 que ficará disponível na interface que possui o IP 172.16.0.21. A linha seguinte, cache_peer diz que o servidor de páginas onde o proxy deverá buscar os sites é o 172.17.0.1 e que ele estará disponível pela porta 80. As linhas acl valid_dst e http_access determinam que haverá permissão de acesso para os domínios listados. Por fim, a linha suppress version evita que o proxy informe que é um Squid e também a sua versão.
Outras opções interessantes do arquivo de configuração do Squid poderão ser utilizadas. No entanto, as configurações mostradas estarão diretamente ligadas ao nosso objetivo.
Outros proxies reversos
No Debian GNU/Linux é possível achar uma infinidade de proxies reversos com o comando # apt-cache search proxy. É óbvio que você deverá fazer uma análise para encontrar os pacotes que realmente representam proxies reversos.
Comentários, sugestões e controle de acessos
Por favor, deixe os seus comentários e sugestões sobre este artigo no meu Blog Técnico. Para isto, clique aqui.
<absHTML>
<a href="http://www4.clustrmaps.com/user/a854d718"><img src="http://www4.clustrmaps.com/stats/maps-no_clusters/www.eriberto.pro.br-wiki-index.php-title=proxyreversohttp-thumb.jpg" alt="Locations of visitors to this page" /> </a>
</absHTML>