Proxy Squid - Parte 1

Olá a todos, podem me chamar de Brody. Sou especialista na área de data center, também fanboy do mundo linux pelo simples fato de facilitar minha vida e trabalho. Pense nisso!

Deste ponto em diante, tratarei "você" de uma forma mais impessoal, com mais confiança. Meus tutoriais não serão apenas sobre a instalação de um serviço e agora, darei a você todo o conhecimento e as ferramentas necessárias para você aproveitar ao máximo os recursos de cada recurso de um aplicativo, qualquer dúvida envia uma mensagem para a caixa de entrada

O Squid não é apenas um serviço de proxy e cache, ele pode fazer muito mais: gerenciar acl (listas de acesso), filtrar conteúdo, ele pode até mesmo fazer a filtragem SSL mesmo em modo transparente (método proxy - sem ter que configurar nas configurações de proxy de seus navegadores, é como um homem no meio, ninguém sabe que está lá). Portanto, normalmente vejo como todo o potencial desse aplicativo é desperdiçado por não saber como configurar cada uma de suas partes.

Mas primeiro, vamos olhar para o recurso de procuração.

Instalar:

aptitude instalar squid3

Edite o arquivo de configuração:

vi /etc/squid3/squid.conf

  • http_port ip: porta

Um exemplo seria http_porta 172.16.128.50:3128  O serviço será fornecido pelo IP e porta especificados, principalmente, não recomendo deixar a porta 3128 por padrão em um ambiente de produção.

  • acl localnet src ip / máscara

Um exemplo seria acl rede local src 172.168.128.0/24 a lista de acesso geral (o mais macro possível) que terá acesso ao referido serviço. localnet é como o acl é chamado, mas você pode colocar qualquer nome que quiser lá.

  • http_access permitir rede local

sencillo http_access permitir rede local o mesmo nome que você colocou no item anterior, aqui permitimos que esta rede navegue e use os serviços do squid

  • quick_abort_min 0 KB
  • quick_abort_max 0 KB

Momento em que abortamos uma solicitação. Vou explicar com mais detalhes: quando um usuário está navegando em seu proxy e cancela uma solicitação ou download, você tem 3 opções, se o download for menor que quick_abort_min 80 KB então o Squid irá baixá-lo, se o download estiver faltando mais de quick_abort_max 150 KB será então cancelado imediatamente, se ambos estiverem configurados para 0 KB como é o caso, o download termina assim que o usuário cancelar.

  • read_timeout 5 minutos

Este é o momento em que uma sessão de servidor será aberta, desde que não haja nova leitura, por exemplo em uma página estática, um valor muito alto não é necessário, mas em páginas dinâmicas como o Facebook este é um valor aceitável

  • request_timeout 3 minutos

Esse valor pode ser bem menor, depende da qualidade da conexão wan do seu servidor e da quantidade de clientes que você possui. Este parâmetro refere-se ao tempo máximo de espera pelos cabeçalhos http de uma solicitação, após o estabelecimento da conexão.

  • half_closed_clients desligado

Impede conexões fechadas pela metade devido a erros de comunicação. Você não quer desperdiçar os recursos do servidor em nenhuma circunstância.

  • shutdown_lifetime 15 segundos

Esta tag permite diminuir o tempo de espera para fechar os processos do squid ao fazer um SIGTERM ou SIGHUP

  • log_icp_queries desativado

Deixo isso a seu critério, por padrão ele vem ligado, e é para logar cada consulta feita ao cache do proxy.

  • servidores de nomes_dns 8.8.4.4 8 8.8.8.8

As consultas DNS serão feitas a estes ip's separados por espaço, se nenhum for definido, o DNS do seu sistema é usado por padrão

  • dns_v4_first ativado

Bom depende do país ou das configurações do seu ambiente, mas no meu caso não tenho DNS IPv6, então define por default que tudo seja consultado primeiro no ipv4

  • ipcache_size 2048

Número máximo de entradas no cache DNS do squid

  • ipcache_low 90

O menor tamanho das entradas de cache dns.

  • fqdncache_size 4096

Número máximo de entradas FQDN no cache

  • memory_pools desativados

Desativamos que a memória RAM é reservada para futuros processos squid, se for um recurso muito escasso em seu servidor

  • encaminhado_para fora

Se você quiser evitar que eles vejam seu ip privado do wan, as solicitações chegarão com um desconhecido, ou nesse caso ru ip wan

nós iniciamos o cache

lula3 -z

Reiniciamos o serviço

reiniciar o serviço squid3

Para finalizar basta colocar no seu navegador, nas opções de proxy o ip e a porta, pronto você deve estar navegando

Isso tudo é para essa ocasião, você sabe que com isso você terá um squid muito robusto, em posts futuros iremos cache com o squid


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Eng. José Albert dito

    Excelente tutorial passo a passo. o que mais gostei foi a explicação opção por opção do repertório de configuração.

    O que mais gostei foi a opção de:

    quick_abort_min 0 KB
    quick_abort_max 0 KB

    Acho que isso é extremamente importante porque muitas vezes um usuário pode perder (cancelar) devido à situação X, um download que está para terminar e este parâmetro bem estimado de acordo com os recursos do nosso computador pode nos permitir continuar com o referido download, já que possivelmente tanto quanto o mesmo usuário ou outro poderia tentar em um curto período de tempo repetir o download do mesmo item, economizando tráfego para a internet.

    Corrija-me se eu estiver errado, BrodyDalle?

    1.    Brody Dalle dito

      Sim e não, vou explicar.

      De fato, o download terminará com sucesso mesmo que o usuário o tenha cancelado, somente então quando o mesmo usuário ou outro tentar baixar o aplicativo ou página da web, o squid entregará uma cópia que já possui no cache e não irá para a Internet para baixar os dados novamente. Agora atenção aqui, o efeito de retomar é apenas um gerenciador de download que armazena os dados no cache da sua máquina por um tempo pré-determinado e permite retomar um download cancelado ou interrompido, não é o squid.

      Em tutoriais futuros darei o squid como um cache completamente, para que você não desperdice os recursos WAN (Internet) de sua rede

  2.   Javier Espinoza dito

    excelente artigo estou aprendendo sobre o squid e sua implementação, muito obrigado, ele vem a calhar

    1.    Brody Dalle dito

      Obrigado, note que em tutoriais futuros irei dar squid como um cache completamente, para que você não desperdice os recursos WAN (Internet) de sua rede

  3.   Henry Servita dito

    ótimo tutorial é sempre bom para expandir o conhecimento. Felicidades

  4.   Miguel Abacaxi dito

    Olá, antes de mais obrigado pelo tópico, pelas explicações e pelos conhecimentos que nos são disponibilizados. Tenho mais a comentar, uma pergunta. Trago para a mesa um problema que aconteceu exatamente comigo com o squid3 no Debian, acontece que um belo dia, meses atrás, atualizei o sistema e junto com essa atualização veio uma nova versão do squid, 3.5, de lá o proxy saiu passar todas as conexões HTTPS, ou seja, do bom ao primeiro já não abriu https // www.google.com.cu, https://www.facebook.com e qualquer coisa que use o protocolo HTTPS seguro. Investigando um pouco, descobri que o problema estava no manuseio do SSL, algo que o Debian parou de empacotar com o squid3 por razões legais e filosóficas. NÃO tenho que dizer o desconforto que existia na entidade nos dias que tentei resolver esse "problema" que no final não consegui resolver, mas voltei para a versão anterior do Squid3 e guardei o pacote com aptitude para evitar que ele fosse atualizado novamente. No site onde os bugs do squid são relatados, ele falou de um bug chamado "squid-in-the-middle", e avisou que todos os squid da versão 3.4.8 em diante eram vulneráveis, então eles recomendaram a atualização para a versão mais recente e compilar o squid com SSL + configurado para gerar os certificados manualmente…. POR FAVOR! Se alguém já se deparou com essa situação e resolveu, gostaria de ser gentil e me dar uma luz sobre esse assunto e se não, pelo menos comentar que aconteceu a mesma coisa ... e qual foi a solução aplicada. Obrigado.

    1.    Brody Dalle dito

      Atualmente no Debian, Jessie está disponível apenas até a versão 3.4.8-6 + deb8u1… No entanto, posso dizer que você pode usar ssl bump se usar o squid no modo transparente. http://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit… Não questiono sua contribuição, então em breve irei instalar a versão mais recente de seu site oficial

  5.   Antonio A. dito

    Bom Dia,

    Em termos de desempenho, valeria a pena instalar em um Raspberry Pi 2?

    Agradecemos antecipadamente, saudações.

  6.   Antonio A. dito

    Olá,

    Belo tutorial, mas tenho uma dúvida: em termos de desempenho, valeria a pena instalar em um Raspberry Pi 2?

    Saudações.

    1.    Brody Dalle dito

      A resposta curta é Não ... você pode fazer isso, mas certos recursos como interface de rede, processador, disco são muitos dos seus gargalos. Agora, se você ainda precisa agir como um proxy, acho que tinyproxy é melhor

      Obrigado pela sua participação

  7.   tabris dito

    Você tem experiência com o Squid no pfSense?

    1.    Brody Dalle dito

      sim o que você precisa saber? para ver se posso te ajudar.

  8.   acontreras90 dito

    Bom tutorial, já muito bom momento. Não sei muito sobre isso, no momento estou instalando o proxy na minha empresa com o squid.conf de uma versão anterior e há coisas que mudaram a sintaxe. Isso me serviu muito. Vou continuar esperando pela parte 2.
    Muito Obrigado

    1.    Brody Dalle dito

      Obrigado pelo seu comentário, enquanto a segunda parte do squid sobre como armazenar em cache estará disponível em breve.

  9.   ramses dito

    Excelente, há muito tempo implementei um servidor ubuntu com squid e funcionou muito bem agora estou desconectado do linux há algum tempo e gostaria de retornar à questão dos servidores em cache para dar melhor performance aos problemas do wisp, obrigado pela sua contribuição Brody!

  10.   rodrigoarielpizarro dito

    Olá, sua ajuda é muito boa, acabei de entrar no problema de IPV6 com DNS e estou tendo problemas aí. Quando nenhum site aparece com IPV6 ele estaria funcionando para mim, então eu preciso saber se a configuração dns_v4_first on precisa ser ativada antes de quando o squid for compilado, porque em 3.3.8 ele não estaria funcionando.

  11.   Jocampo dito

    Bom Dia.
    Para começar, este tutorial foi muito útil. Agora apresento o meu caso, pois não sei se com o squid consigo resolver a minha necessidade ou devo procurar outra alternativa.
    Tenho uma aplicação configurada em uma instância AWS EC2, que deve fazer requisições para uma API amazon, o problema surge quando essas requisições são massivas, então amazon reconhece o ip e rejeita essas requisições por um tempo, gerando problemas no aplicativo que tenho. Para resolver isso, utilizamos o serviço Proxymesh, que pega a requisição e envia de um de seus ip's, evitando assim o referido bloqueio, o fato é que para isso, ao fazermos a requisição para amazon, fazemos através de curl no php, dando como uma opção para se conectar ao proxymesh. Agora estou procurando a possibilidade de que seja a partir da instância configurável que, quando as solicitações são feitas à API amazon, elas vão diretamente para o serviço proxymesh para que seja o encarregado de enviar a solicitação ao destino final. É possível fazer esse redirecionamento com o squid ou você recomenda outra alternativa?
    Muito obrigado.

  12.   janho dito

    Alguém tentou vários esquemas de autenticação no squid? Eu instalei a versão 3.5.22 no debian e embora eu tenha tentado diferentes variantes, ela não funciona, minha situação é que eu preciso que os usuários do meu AD e outros usuários externos sejam capazes de logar, se eles trabalharem separadamente para mim ou ntml para usuários do domínio conectado e básico (ncsa) para externo, mas não ambos ao mesmo tempo. qualquer ajuda será útil. desde já, obrigado

  13.   Vontade dito

    Caro, não sei porque, instalei o squid sem problemas, mas quando o atualizei para a versão 3.5 o arquivo access.log começou a ficar vazio, ele não armazena mais dados antes. Não sei se tenho que ver e implementar o WPAD para não usar mais a configuração transparente, bem como remover o redirecionamento da porta 80 para 3128 como normalmente é feito, já que com o wpad essa regra não é mais necessária.

    é por isso que o access.log agora não registra mais atividades?

    Felicidades !!

  14.   Cristian dito

    Bom guia muito bom!

    Estou usando o squid há um tempo como proxy da web, mas ultimamente estou percebendo que demoro muito para pesquisar ou abrir páginas ... será que preciso limpar o cache?

    Alguém configurou o squid com mkt, como funciona para eles?

    lembranças

  15.   banheiro dito

    Muito boa informação, desculpe como consegui juntar o squid com diretório ativo para que na hora de entrar em uma página bloqueada ele me peça o nome de usuário e senha de uma conta do diretório ativo e se esse usuário tiver permissão para entrar na página eu lhe darei acesso.

  16.   Carlos dito

    Olá,
    excelente guia, enfim e você pode me orientar já que eu simplesmente não dou, tenho uma internet de fibra de 20MB e um squid 3.1 montado em centos 6.9 e atendo aproximadamente 300 usuários antes tinha um link de 4MB e um squid 3.1 e mesmo número de Os usuários e obviamente tudo super lento e citado para o admin (I) culparam o link, finalmente consegui trocar e a internet está tão lenta, reinstalei o SO, configurei o squid 3.1 e nada mais não acelera eu faço a medição velocidade de um cliente squid e isso me dá de 18 a 20 MB, mas sempre sou mencionado porque o serviço é tão lento

    Se você ou alguém que já passou por um problema semelhante pudesse me iluminar, agradecerei infinitamente.

  17.   Luis dito

    O que acontece com os endereços, eles são alterados para o próprio endereço de rede ou os que você está usando são usados.

  18.   irwing dito

    Estou aprendendo sobre squid debian e sua implementação, muito obrigado, vem a calhar. mas está me dando problemas com a conexão e verifico se dá erro e aparentemente está tudo funcionando bem.