Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Servidor proxy Squid

3,596 views

Published on

  • Be the first to comment

Servidor proxy Squid

  1. 1. Introdução ................................................................................................................................................3Conceito e Aplicações de um Servidor Proxy ............................................................................... 4Proxy e respectiva Cache de Acessos ...............................................................................................5Configuração Base ................................................................................................................................. 7Configuração Transparente .............................................................................................................. 12Activação do Squid e cache de acessos......................................................................................... 14Activação dos logs do squid .............................................................................................................. 18Gestão do Squid com o Webmin .................................................................................................... 19Criação de regras baseadas em IP e nomes de páginas ........................................................ 22Utilização de um browser para utilização do Squid ............................................................... 24Conclusão ............................................................................................................................................... 25Bibliografia ............................................................................................................................................ 26 1UFCD 0841 – Servidores Web e Acesso á Internet
  2. 2. Ilustração 1 - Ubuntu Squid ............................................................................................................... 4Ilustração 2 - Cache .............................................................................................................................. 6Ilustração 3 - Instalação Squid ........................................................................................................... 7Ilustração 4 - Backup do ficheiro squid.conf .................................................................................8Ilustração 5 - Ficheiro de configuração squid.conf ......................................................................8Ilustração 6 - Adicionar ACL, com o nome da rede e gama de IP ...................................... 9Ilustração 7 - Permitir o acesso à rede FF ..................................................................................... 9Ilustração 8 - Adicionar ACL´S sobre a lista de sites bloqueados e não bloqueados .....10Ilustração 9 - Reiniciar servidor Squid ............................................................................................ 11Ilustração 10 - Permitir ou restringir sites das listas .................................................................... 11Ilustração 11 - Configuração transparente.................................................................................... 12Ilustração 12 - Redireccionar o tráfego vindo pela porta para a porta 3128 através dofirewall via NAT .................................................................................................................................... 13Ilustração 13 - cache_mem 64MB ................................................................................................... 14Ilustração 14 - Determinar o tamanho máximo dos ficheiros que serão guardados nacache feito na memória RAM .......................................................................................................... 15Ilustração 15 - Definir a percentagem de uso da cache que fará o Squid começar adescartar os ficheiros mais antigos .................................................................................................. 16Ilustração 16 - Definir o máximo e mínimo do tamanho guardado em cache dosdownloads efectuados. ....................................................................................................................... 16Ilustração 17 - Opção cache_dir ....................................................................................................... 17Ilustração 18 - Ficheiro access.log ..................................................................................................... 18Ilustração 19 - Preparação do sistema .......................................................................................... 19Ilustração 20 - Instalação do Webmin .........................................................................................20Ilustração 21 - Download do Webmin ..........................................................................................20Ilustração 22 - Login Webmin .......................................................................................................... 21Ilustração 23 - Restrição por IP ....................................................................................................... 22Ilustração 24 - Painel de restrições do Webmin ........................................................................ 23 2UFCD 0841 – Servidores Web e Acesso á Internet
  3. 3. O Squid é uma aplicação bastante popular no âmbito da configuração de routers efirewall no Linux, para além das funcionalidades de qualquer proxy HTTP, o Squidpossibilita dispor de mecanismos de caching das páginas mais acedidas e demecanismos de controlo de acessos, suporta ainda a comunicação com outras proxiesna conjunção de hierarquias de caches.Este pode ser configurado no modo normal ou no modo transparente, por último, éindispensável dispor de funcionalidades do IPTables para o redireccionamento dasligações HTTP para o proxy, também será analisada a configuração do servidorSquid nos dois métodos acima referidos. 3UFCD 0841 – Servidores Web e Acesso á Internet
  4. 4. O Squid é uma aplicação servidora de armazenamento Web completa que forneceserviços de proxy e de armazenamento para Protocolo de Transporte de Hipertexto(HTTP), Protocolo de Transporte de Ficheiros (FTP), e outros protocolos de redepopulares. O Squid pode implementar armazenamento e execução de proxy depedidos de Camadas de Soquetes Seguros (SSL) e armazenamento de pesquisas aServidor de Nomes de Domínio (DNS), e executar armazenamento transparente. OSquid suporta ainda uma ampla variedade de protocolos de armazenamento, comoo Protocolo de Armazenamento da Internet, (ICP) o Protocolo de Armazenamentode Hipertexto, (HTCP) o Protocolo de Direccionamento de Tabelas deArmazenamento (CARP), e o Protocolo Coordenação de Armazenamento Web(WCCP). O servidor de armazenamento proxy Squi8d é uma excelente solução paravárias necessidades de armazenamento e proxy do servidor, e cresce desde uma redede um pequeno escritório até uma rede de nível empresarial, enquanto oferecemecanismos de acesso individualizado o monitorização de parâmetros críticos viaProtocolo de Gestão de Redes Simples, Simple Network Management Protocol(SNMP). Ao seleccionar um sistema para utilizar como servidor Squid dedicado, ouservidor de armazenamento temporário, assegure-se que esse sistema possui bastantememória RAM, dado que o Squid utiliza bastante para assegurar um desempenhomelhorado. Ilustração 1 - Ubuntu Squid 4UFCD 0841 – Servidores Web e Acesso á Internet
  5. 5. Os servidores de proxy cache são implementados na camada de aplicativo eprocessam protocolos Internet específicos, tais como http e FTP. São definidas regrasno servidor proxy para determinar como um pedido de estação de trabalho deve serprocessado.Uma das principais tarefas de um servidor proxy é armazenar temporariamentepáginas da Web e arquivos de FTP para clientes proxy. Esses tipos de servidores proxysão chamados de servidores de cache proxy. A cache aumenta o desempenho darede ao reduzir a quantidade de dados que são transferidos de fora da rede local.Para implementar o proxy caching, cada estação de trabalho da rede é configuradacomo um cliente proxy para um determinado serviço. Por exemplo, um cliente proxyWeb iria configurar seu navegador (browser) para reconhecer o servidor proxy.Quando um cliente fizer um pedido no navegador para baixar uma certa página, onavegador fará o pedido ao servidor proxy. O servidor proxy contém armazenadas aspáginas visitadas recentemente. Esta cache contém as páginas Web que as estaçõesde trabalho em toda a rede baixaram recentemente.O servidor proxy verifica o seu cache para ver se a página da está disponível. Se apágina estiver disponível na cache será enviada ao cliente a página armazenada. Sea página não estiver na cache, o servidor proxy baixará do site em questão,armazenará essa página no seu cache e a enviará à estação de trabalho.Para garantir que as páginas na cache não estejam desactualizadas, os dados dacache proxy expiram após um tempo pré-determinado. No Squid, esta configuraçãoé chamada de tempo de renovação de objeto (som, vídeo, arquivos texto, etc...).Este processo aumenta o desempenho da rede porque a página é baixadaimediatamente para o cliente a partir do servidor proxy, evitando ter de baixá-la daInternet. 5UFCD 0841 – Servidores Web e Acesso á Internet
  6. 6. Ilustração 2 - Cache 6UFCD 0841 – Servidores Web e Acesso á Internet
  7. 7. Antes de começar a configuração base, vamos primeiro instalar o Squid, para talutilizamos o comando “apt-get install squid squid-common”, vejamos: Ilustração 3 - Instalação SquidDepois de instalado, vamos para a directoria /etc/Squid, para procedermos então àconfiguração base.Esta configuração é realizada no ficheiro de configuração squid.conf, este ficheirodefine as configurações, tais como o número da porta HTTP em que o Squid irá ouviros pedidos HTTP, pedidos de entrada e saída, informações de time-out e dados deacesso à firewall. O ficheiro é criado durante a instalação do Squid.O ficheiro squid.conf é definido com as configurações padrão do Squid e pode serutilizado após várias modificações. É necessário realizar as alterações, pois porpadrão, o squid.conf nega o acesso a todos os navegadores. O Squid serácompletamente inútil até que façamos as alterações no ficheiro.Cada opção de configuração no squid.conf é identificada como uma tag. Cada tag éuma configuração do Squid. Por exemplo, a definição da porta de pedido do clienteHTTP é identificada pela tag http_port. Vamos então configurar o nosso ficheiro paraque o Squid funcione correctamente. 7UFCD 0841 – Servidores Web e Acesso á Internet
  8. 8. Antes de mais nada, nada melhor que salvaguardar o nosso ficheiro original, para issoprocedemos ao seu backup, utilizando o comando “cp squid.conf squid.conf.bkp”: Ilustração 4 - Backup do ficheiro squid.confDepois através do editor Gedit, vamos então começar a editar o nosso ficheiro deconfiguração “sudo gedit /etc/squid/squid.conf” Ilustração 5 - Ficheiro de configuração squid.conf 8UFCD 0841 – Servidores Web e Acesso á Internet
  9. 9. Toda a estrutura do Squid é baseada em ACLs (listas de acessos). Vamos agora criaruma lista de acesso básica para os utilizadores.A nossa rede é 10.0.0.0/8, então criamos as seguintes linhas no squid.conf, na seçãodas ACLs: “acl ff src 10.0.0.0/8” e “ http_access allow ff”: Ilustração 6 - Adicionar ACL, com o nome da rede e gama de IP Ilustração 7 - Permitir o acesso à rede FF 9UFCD 0841 – Servidores Web e Acesso á Internet
  10. 10. Com esta configuração acima, já conseguimos aceder à internet, mas, ainda não háfiltros, onde podemos bloquear os sites indesejados. Vamos ver agora adicionar duasACLs, onde vamos armazenar os sites bloqueados e os não bloqueados, antes deadicionarmos então as duas ACL´S acima referidas, antes vamos criar doisdocumentos de texto, um com a lista dos sites bloqueados e outro com a lista dos sitesnão bloqueados, para isso usamos os seguintes comandos “sudo touch/etc/squid/bloqueados.txt e sudo touch /etc/squid/nao_bloqueados.txt ”. Em seguidavamos ao Squid.conf e vamos adicionar mais duas ACL´S, “acl bloqueados url_regex -i "/etc/squid/bloqueados.txt e acl nao_bloqueados url_regex -i"/etc/squid/nao_bloqueados.txt”: Ilustração 8 - Adicionar ACL´S sobre a lista de sites bloqueados e não bloqueadosLogo a seguir as ACL´s adicionadas anteriormente colocamos as seguintes linhas:“http_access deny bloqueados e http_access allow nao_bloqueados”, estas duas linhasvão impedir o acesso dos sites contidos na lista do ficheiro bloqueados.txt e permitir oacesso da lista do ficheiro não_bloqueados.txt: 10UFCD 0841 – Servidores Web e Acesso á Internet
  11. 11. Ilustração 10 - Permitir ou restringir sites das listasPor fim da configuração base reiniciamos o Squid, através do comando “sudo servicesquid start” Ilustração 9 - Reiniciar servidor Squid 11UFCD 0841 – Servidores Web e Acesso á Internet
  12. 12. Para procedermos a configuração transparente, as alterações a efectuar serãorealizadas no ficheiro squid.conf, como podemos observar este ficheiro éimportantíssimo para as configurações do proxy.No ficheiro squid.conf procuramos por a linha “http_port 3128” e adicionamos apalavra transparent, ficando da seguinte forma “http_port 3128 transparent”: Ilustração 11 - Configuração transparenteO funcionamento do proxy transparente deve-se ao fato de redireccionarmos otráfego vindo pela porta para a porta 3128 através do firewall via NAT. Digitamos oseguinte comando, para fazer este redireccionamento “iptables -t nat -APREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128”: 12UFCD 0841 – Servidores Web e Acesso á Internet
  13. 13. Ilustração 12 - Redireccionar o tráfego vindo pela porta para a porta 3128 através do firewall via NAT 13UFCD 0841 – Servidores Web e Acesso á Internet
  14. 14. Uma das configurações mais importantes em relação ao desempenho do proxy e àoptimização do tráfego da rede é a configuração das caches, onde o Squid guarda aspáginas e ficheiros já acedidos de forma a fornecê-los rapidamente quandosolicitados novamente. O Squid trabalha com dois tipos de cache:  Cache rápida, feito usando parte da memória RAM do servidor;  Cache um pouco mais lento porém maior, feito no disco rígido.Esta configuração da cache é feita adicionando mais algumas linhas no arquivo deconfiguração, squid.conf, vejamos:A configuração da quantidade de memória RAM dedicada a cache é feitaadicionando a opção "cache_mem", mais a quantidade de memoria que queremosdedicar, neste caso 64MB: Ilustração 13 - cache_mem 64MB 14UFCD 0841 – Servidores Web e Acesso á Internet
  15. 15. Em seguida vamos determinar o tamanho máximo dos ficheiros que serão guardadosna cache feito na memória RAM, através do comando“maximum_object_size_in_memory 64 KB”: Ilustração 14 - Determinar o tamanho máximo dos ficheiros que serão guardados na cache feito na memória RAMEm seguida vem a configuração da cache em disco, que armazenará o grosso dosficheiros. Por defeito, o máximo de download é de 16 MB e o mínimo é zero, o que fazcom que mesmo as imagens e ficheiros pequenos sejam armazenados na cache.Quase sempre é mais rápido ler a partir da cache do que baixar de novo da web,mesmo que o ficheiro seja pequeno.Se fizermos downloads de ficheiros grandes com frequência e desejamos que estesfiquem armazenados na cache, aumentamos o valor usando a linha“maximum_object_size". Isso é especialmente útil para quem precisa baixar muitosficheiros através do apt-get ou até do Windows Update em muitos computadores darede. Se quisermos que a cache armazene arquivos de até 512 MB, ficaria o seguinte: 15UFCD 0841 – Servidores Web e Acesso á Internet
  16. 16. Ilustração 16 - Definir o máximo e mínimo do tamanho guardado em cache dos downloads efectuados.O próximo passo passa por definir a percentagem de uso da cache que fará o Squidcomeçar a descartar os ficheiros mais antigos. Por defeito, sempre que a cache atingir95% de uso, serão descartados os ficheiros mais antigos até que a percentagem voltepara um número abaixo de 90%: Ilustração 15 - Definir a percentagem de uso da cache que fará o Squid começar a descartar os ficheiros mais antigos 16UFCD 0841 – Servidores Web e Acesso á Internet
  17. 17. De seguida vem a opção "cache_dir", que é composta por quatro valores. O primeiro,(/var/spool/squid) indica a pasta onde o Squid armazena os ficheiros da cache,enquanto o segundo (2048) indica a quantidade de espaço no HD (em MB) que seráusada para acache. Aumentamos o valor para termos muito espaço em disco noservidor.Continuando, os números 16 e 256 indicam a quantidade de subpastas que serãocriadas dentro da directoria. Por defeito, temos 16 pastas com 256 subpastas cadauma. O número ideal de pastas e subpastas para um melhor desempenho varia deacordo com o sistema de ficheiros usado, mas esta configuração padrão é adequadapara a maioria das situações. Combinando as quatro opções, ficaria o seguinte: Ilustração 17 - Opção cache_dirAs alterações mais importantes para um bom funcionamento do squid foramefectuadas.A cache do squid foi configurada agora o nosso servidor esta muito mais rápido nocarregamento de páginas, devido ao aumento do tamanho da cache. 17UFCD 0841 – Servidores Web e Acesso á Internet
  18. 18. O Squid guarda o log de acesso no ficheiro "/var/log/squid/access.log”, ou seja o logssão todos guardados neste ficheiro, vejamos: Ilustração 18 - Ficheiro access.logA título de curiosidade, este ficheiro é usado pelo Sarg para gerar as páginas com asestatísticas de acesso, bem como outras opções referentes aos clientes squid na rede. 18UFCD 0841 – Servidores Web e Acesso á Internet
  19. 19. A gestão do squid remotamente, torna-se numa ferramenta muito importantedevido à facilidade de acesso, tanto ao proxy, bem como a outros serviços existente,por exemplo, SSH, HTTP, etc…Para tal vamos instalar o Webmin, depois de instalado podemos então gerir o squid,vejamos então como instalar. Vamos usar o seguinte comando “sudo aptitude installperl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perllibmd5-perl”: Ilustração 19 - Preparação do sistemaDe seguida vamos fazer o download do webmin através do comando “wgethttp://prdownloads.sourceforge.net/webadmin/webmin_1.510_all.deb”: 19UFCD 0841 – Servidores Web e Acesso á Internet
  20. 20. Ilustração 21 - Download do WebminO próximo passo é a instalação do pacote descarregado anteriormente, através docomando “ sudo dpkg -i webmin_1.540_all.deb”: Ilustração 20 - Instalação do WebminPronto o Webmin está instalado e pronto a ser utilizado: 20UFCD 0841 – Servidores Web e Acesso á Internet
  21. 21. Ilustração 22 - Login Webmin 21UFCD 0841 – Servidores Web e Acesso á Internet
  22. 22. Para a criação de regras baseadas em IP e nomes de páginas, vamos utilizar oWebmin, para criar uma ACL em que definimos a restrição a determinado IP, nestecaso o “10.0.2.2”, vejamos: Ilustração 23 - Restrição por IPNo painel de controlo de acessos do webmin podemos verificar que ficou definida anova regra: 22UFCD 0841 – Servidores Web e Acesso á Internet
  23. 23. Ilustração 24 - Painel de restrições do Webmin 23UFCD 0841 – Servidores Web e Acesso á Internet
  24. 24. Todas as configurações foram realizadas consoante as nossas necessidades, a imagemseguinte mostra como o nosso Proxy está a funcionar e mostra também a utilizaçãode um browser para a utilização do Squid: 24UFCD 0841 – Servidores Web e Acesso á Internet
  25. 25. No presente trabalho exploramos a utilização do Ubuntu server como um servidorProxy de uma rede informática, vimos igualmente que existem dois tipos deconfigurações, a configuração base e a transparente, que envolve a implementaçãodo IPTables, que consiste no redireccionamento do tráfego vindo pela porta para aporta 3128 através do firewall via NAT. Para cada uma delas necessitamos sempre doficheiro de configuração squid.conf, torna-se este o principal e mais importanteficheiro para a sua configuração, nele podemos definir o tipo de segurançapretendida, definir o tamanho da cache que o proxy vai utilizar e tornar assim onosso servidor mais rápido e fiável, além disso ainda temos a possibilidade dautilização de recursos escassos como a largura de banda disponível numa ligação àinternet.Um ponto muito importante visto neste trabalho foi o acesso remoto através doWebmin, torna-se assim muito fácil a configuração e gestão do servidor proxy. 25UFCD 0841 – Servidores Web e Acesso á Internet
  26. 26. Este trabalho teve como base os seguintes sites:  http://www.squid-cache.org/;  http://pt.wikipedia.org/wiki/Squid;  http://www.hardware.com.br/livros/servidores-linux/configurando-servidor- proxy-com-squid.html;  http://www.vivaolinux.com.br/artigo/Servidor-proxy-%28Squid%29/?pagina=1;  http://www.ubuntugeek.com/how-to-setup-transparent-squid-proxy-server- in-ubuntu.html;  https://help.ubuntu.com/community/Squid;  http://en.kioskea.net/faq/804-ubuntu-installing-an-http-proxy-server-squid;  http://wiki.ubuntu-br.org/Squid;  http://www.jordanielalves.com.br/linux/configurando-servidor-squid-no- ubuntu/;  http://www.vivaolinux.com.br/artigo/Controle-de-acesso-a-internet-com- Squid/?pagina=4;  http://ubuntuforum-pt.org/index.php?topic=44364.0;  http://www.mlaureano.org/guias_tutoriais/GuiaInstSquid.htm;  http://www.ubuntugeek.com/webmin-installation-and-configuration-in- ubuntu-linux.html;  http://pplware.sapo.pt/linux/webmin-1-510-controle-o-seu-linux-via-browser/;  http://www.kelvinwong.ca/2010/05/22/installing-webmin-on-ubuntu-server- 10-04-lts-lucid/. 26UFCD 0841 – Servidores Web e Acesso á Internet

×