Servidor proxy Squid

3,253 views
3,169 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,253
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
319
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×