Proxy, do inglês, significa literalmente: procuração. Ou seja, o proxy trabalha por procuração e refere-se a um software que atua como gateway de aplicação entre o cliente e o serviço a ser acessado.
Ele trabalha como uma espécie de pequeno canal interpretando as requisições e tratando-as como se fosse uma aplicação e repassando-as ao servidor de destino, como se fosse um novo pedido de requisição.
Enquanto o IPtables (que é um filtro de pacotes, pois o conceito de firewall é bem mais amplo e envolve uma série de servidores) analisa individualmente os pacotes, à medida em que são transmitidos da Camada de Enlace (camada 2 do modelo ISO/OSI) para a Camada de Rede (camada 3 do modelo ISO/OSI), o Squid analisa as requisições, pacotes e tráfego na camada 7 (Camada de Aplicação do modelo ISO/OSI), porém, ambos baseiam-se, fundamentalmente, nas informações do cabeçalho dos protocolos da camada de transporte (camada 4).
A camada 7 é onde atuam as aplicações, sendo que os navegadores (browsers) são aplicações e é nos navegadores onde o Squid mais atua.
O Squid é um servidor proxy (ou webproxy e pode ser considerado como um servidor pertencente a um firewall) que suporta diversos protocolos, inclusive os da pilha TCP/IP (HTTP, HTTPS, FTP etc).
Ele melhora os tempos de resposta, fazendo cache de requisições frequentes de páginas Web numa rede de computadores. Pode ser usado para controle de banda, restrição de sites, usuários, entre outros serviços.
O gateway de aplicação (o popular proxy), ao receber as requisições de acesso dos usuários e realizar uma segunda conexão externa para receber estes dados, acaba por esconder a identidade dos usuários nas requisições externas, oferecendo uma proteção adicional contra a ações maldosas.
Para segurança maior, é altamente recomendável ter um filtro de pacotes e um servidor proxy protegendo a rede, no caso, IPtables e Squid.
Além de webproxy, o Squid fornece o serviço de cache. Cache significa a capacidade de um sistema de armazenar em memória (ou em áreas reservadas do disco rígido), o conteúdo mais frequentemente acessado com o objetivo de disponibilizá-lo de forma mais rápida e eficiente a quem o solicita.
Conceito de swapping
É uma técnica de troca de processos.
Todo sistema operacional armazena, em uma fila em disco, os processos de longo prazo. Quando há espaço na memória principal (RAM, por exemplo) os processos são movidos para ela para serem executados e retirados quando forem concluídos. Ou seja, quando você abre um aplicativo, um editor de texto, por exemplo, o sistema operacional aloca um espaço na memória RAM para executá-lo.
Se não há espaço na memória RAM, o sistema utiliza a SWAP (memória virtual - espaço em disco utilizado como memória RAM) e isso torna o sistema lento, pois o acesso do processador ao disco rígido é muito mais lento do que à memória RAM.
No Windows, a SWASP é chamada de "arquivo de paginação". Quando você fecha o aplicativo, o sistema desaloca esse espaço da memória (RAM ou swap).
A memória RAM é extremamente importante para a utilização de um cache proxy. O Squid mantém uma tabela na memória RAM onde guarda as informações sobre seus objetos.
Se uma parte dessa tabela sofrer swapping, o desempenho do Squid será bastante prejudicado. Como o Squid é um processo, então qualquer swapping tornará o programa mais lento. E como o sistema está constantemente fazendo swapping, é importante saber gerenciar o "cache_dir" e o "cache_mem" do Squid.
[20] Comentário enviado por arasouza em 27/03/2014 - 11:22h
Cara primeiro parabéns, pelas contribuições que são várias ao vivaolinux e a comunidade em geral, apenas uma dúvida eu estou tendo uns problemas de lentidão com meu squid de uns dias pra cá.. andei dando uma pesquisada e vi seu artigo (muito bom por sinal) e vi que vc tem uma sequência bem diferente do que estou acostumado, essa sequencia pode ser seguida, ou vc apenas está explanando, tipo eu não vou dar um copiar e colar dentro do meu squid.conf conforme o artigo pois teria que colocar os comandos na sequencia correta??? valeu pela ajuda.
[21] Comentário enviado por Buckminster em 31/03/2014 - 09:08h
[20] Comentário enviado por arasouza em 27/03/2014 - 11:22h:
Cara primeiro parabéns, pelas contribuições que são várias ao vivaolinux e a comunidade em geral, apenas uma dúvida eu estou tendo uns problemas de lentidão com meu squid de uns dias pra cá.. andei dando uma pesquisada e vi seu artigo (muito bom por sinal) e vi que vc tem uma sequência bem diferente do que estou acostumado, essa sequencia pode ser seguida, ou vc apenas está explanando, tipo eu não vou dar um copiar e colar dentro do meu squid.conf conforme o artigo pois teria que colocar os comandos na sequencia correta??? valeu pela ajuda.
Essa sequência do squid.conf do artigo é a sequência do squid.conf original. Eu procuro seguir ela sempre.
Quanto à lentidão do teu Squid, você deve primeiro verificar qual a causa dessa lentidão. Procure lembrar qual foi a última alteração que você fez antes dele ficar lento. E veja os logs do Squid, os logs geralmente apontam os prováveis erros.
Primeiro procure identificar a causa da lentidão antes de sair alterando o squid.conf.
[22] Comentário enviado por danilo.rcte em 09/10/2015 - 15:47h
Parabens pelo artigo !!! show de bola...
Cara gostaria de tirar uma duvida com vc... instalei um squid3 - nao transparente e sem autenticação, esta tudo funcionando... bloqueios de urls, bloqueios por ip, tudo.... porem ao testar o delay pools, percebi que ele não limita sites https.... ou seja... funciona perfeitamente com todos os sites http: (porta 80) , porem ao entrar em sites https... a limitação acaba... e o usuario navega em full banda.... a duvida é.... só o meu servidor squid faz isso... ou o squid em geral nao limita banda dos sites https???