Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia...
Transcript of Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia...
![Page 1: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/1.jpg)
Introdução ao SquidIntrodução ao Squid
Artur Martins David Riedel Florentino Bexiga
Departamento de Engenharia Electrónica e Informática16 de Abril de 2008
![Page 2: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/2.jpg)
Tópicos
Motivação O que foi instalado Requisitos Squid
Configuração Permissões necessárias Controlo do Serviço
SquidGuard Configuração
Relatórios Webalizer SARG Calamaris
Segurança Diagrama de rede
Antes Depois
Proxy Transparente Vantagens Desvantagens Conclusões/Observações
finais Referências
![Page 3: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/3.jpg)
Motivação
Filtragem de conteúdos;
Poupança de largura de banda;
Criação de relatório da utilização da web;
![Page 4: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/4.jpg)
O que foi instalado
Squid Squidguard Geradores de relatórios:
Webalizer SARG Calamaris
![Page 5: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/5.jpg)
Requisitos
Linux Debian
Apache
Perl (relatórios)
![Page 6: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/6.jpg)
Squid
Introdução O Squid é um servidor proxy e gestor de cache.
Tem vários utilidades como acelerar um servidor Web através do armazenamento das páginas mais procuradas na cache e ajudar na segurança e filtragem de tráfego.
Instalação Para instalar o Squid basta digitar:
aptitude install squid3
![Page 7: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/7.jpg)
Configuração do Squid: I
1. http_port 3128 transparent
2. icp_port 0
3. cache_mem 20 MB
4. cache_dir ufs /var/cache/squid3 512 16 256
Linha 1 - define a porta para o serviço http e a transparência da proxy.Linha 2 - define a porta do serviço internet cache protocol (0 para desactivar)Linha 3 - define a memória disponível para a cacheLinha 4 - define a directoria para onde irão os ficheiros da cache. Sintaxe: [sistema de ficheiros][directoria][espaço em disco máximo][nº de directorias de 1º nível][nº de directorias de 2º nível]
![Page 8: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/8.jpg)
Configuração do Squid: II
5. acl all src 0.0.0.0/0.0.0.0
6. acl manager proto cache_object
7. acl allowed_hosts src 10.10.0.0/255.255.0.0
8. acl deei_network src 10.10.0.0/16
9. acl localhost src 127.0.0.1/255.255.255.255
10. acl to_localhost dst 127.0.0.0/8
Linha 5 a 10 - as linhas acl definem nomes para intervalos de endereços IP ou outros objectos para facilitar a sua utilização. Exemplo: acl deei_network src 192.168.0.0/24 define que a string deei_network irá designar a gama de ips que se segue a sua frente
![Page 9: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/9.jpg)
Configuração do Squid: III
11. http_access allow manager localhost
12. cachemgr_passwd pass all
13. http_access allow deei_network
14. icp_access allow allowed_hosts
15. icp_access deny all
16. miss_access allow allowed_hosts
17. miss_access deny all
Linha 11 - define a permissão para o utilizador localhost aceder ao Cache ManagerLinha 12 - define para todos os utilizadores do Cache Manager a password passLinha 13 - define para os utilizadores previstos em deei_network o acesso ao serviço httpLinha 14 e 15 - define para os utilizadores previstos em allowed_hosts o acesso ao serviço icp e a linha seguinte nega para todos os restantesLinha 16 e 17 - define que possam ser passados objectos fora da cache para os utilizadores previstos em allowed_hosts mas nega a todos os outros
![Page 10: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/10.jpg)
Configuração do Squid: IV
18. cache_peer proxy1.si.ualg.pt parent 8080 0 no-query 19. acl internalSites dstdomain .ualg.pt 20. always_direct allow internalSites21. never_direct allow !internalSites22. never_direct allow all23. redirect_program /usr/bin/squidGuard –c
/etc/squid3/squidGuard.conf
Linha 18 - define (no caso de existir) qual é a proxy “pai” onde o Squid deve fazer os pedidos. No caso de ser transparente esta opção não é necessária.Linha 19 a 22 - no caso de se querer declarer um domínio local que não será necessário passar pela proxy quando requisitado, declara-se uma acl e indica-se através de uma linha always_direct ou never_direct o que deve redireccionar ou não.Linha 23 - define a directoria para onde irão os ficheiros com a informação sobre o sistema quando o programa crasha.Linha 24 - define que ao iniciar o Squid iniciará também o SquidGuard e redireccionará os pedidos feitos para ele também.
![Page 11: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/11.jpg)
Permissões necessárias
Para que o Squid consiga escrever nas directorias /var/log/squid3 e /var/cache/squid3 é necessário mudar o utilizador e o grupo das mesmas para proxy.proxy. Essa modificação é realizada através do seguinte comando:
chown -R proxy.proxy /var/log/squid3 /var/cache/squid3
![Page 12: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/12.jpg)
Controlo do Serviço
/etc/init.d/squid3 start #para iniciar o serviço
/etc/init.d/squid3 restart #para reiniciar o serviço
/etc/init.d/squid3 reload #para recarregar os ficheiros
/etc/init.d/squid3 stop #para parar o serviço
![Page 13: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/13.jpg)
SquidGuard
Introdução O SquidGuard é um filtro, redireccionador e controlador de
acesso web que é ligado ao Squid, actuando como um plugin.
Instalação Para instalar o SquidGuard digitar o comando
aptitude install squidGuard
![Page 14: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/14.jpg)
Configuração do SquidGuard: I
1. dbhome /var/lib/squidguard/db 2. logdir /var/log/squid3 3. src deei_network { 4. ip 10.10.0.0/16}5. time leisure { 6. weekly smtwhfa 17:30-09:00}
Linha 1 - indicação da directoria onde estão guardadas as blacklists/whitelistsLinha 2 - indicação da directoria onde estão os logs do squidGuard (squidGuard.log)Linha 3 e 4 - criação de grupos de utilizadores/ips para atribuir restriçõesLinha 5 a 6 - criação de intervalos de tempo para atribuir ou retirar determinadas permissões (pode ser usada a directiva weekly seguida dos dias da semana ou a directoria date.
![Page 15: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/15.jpg)
Configuração do SquidGuard: II
7. dest forbidden { 8. domainlist forbidden/domains9. urllist forbidden/urls10. expressionlist forbidden/expressions}
Linha 7 a 10 - criação da lista forbidden. Esta lista é chamada de blacklist e tem como função especificar a informação que é restrita aos utilizadores. Os ficheiros relativos a forbidden estão localizados na pasta /var/lib/squidguard/db/forbidden e são os seguintes:• domains (onde se podem colocar domínios), • urls (onde se podem colocar endereços específicos) • expressions (onde se podem colocar expressões comuns)
![Page 16: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/16.jpg)
Configuração do SquidGuard: III
11. dest white {12. domainlist white/domains13. urllist white/urls14. expressionlist white/expressions}
Linha 11 a 14 – criação da lista white. Esta lista é chamada de whitelist e tem como função especificar a informação que é autorizada aos utilizadores. Este tipo de lista é útil para especificar recursos que sejam permitidos o seu acesso uma vez que seriam barrados pelas blacklists. Ex: sexta-feira.
![Page 17: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/17.jpg)
Configuração do SquidGuard: IV
15. acl { 16. deei_network within leisure {17. pass all}18. else {19. pass !forbidden white all}20. default {21. pass none22. redirect http://localhost/block.php?site=
%u}23. }
Linha 15 a 23 - criação das restrições propriamente ditas. Neste caso está indicado que dentro do intervalo de tempo anteriormente feito, os utilizadores dentro da rede deei_network poderão aceder a tudo, caso contrário não poderão aceder ao que está indicado na pasta forbidden com excepção do que está indicado na pasta white. Os utilizadores que estão fora da rede não poderão aceder a nada. Todo utilizador que tentar aceder a conteúdo bloqueado será redireccionado para a página http://localhost/block.php?site=%u. (Nota: a directiva redirect é indispensável para que o SquidGuard funcione)
![Page 18: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/18.jpg)
Relatórios: Webalizer
Introdução O Webalizer é uma aplicação que gera páginas web de
estatísticas a partir dos logs de aplicações como o Apache ou o Squid. As estatísticas normalmente incluem: hits, visitas, referrers, país do visitante e quantidade de dados descarregados.
Instalação Para instalar basta digitar:
aptitude install webalizer
![Page 19: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/19.jpg)
Relatórios: Webalizer
![Page 20: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/20.jpg)
Relatórios: SARG
Introdução O SARG (Squid Analysis Report Generator) é uma
ferramenta que permite ver o que os utilizadores da rede estão a aceder na Internet através da análise do arquivo de log "access.log" do Squid. Permite ver informações como quais os sites que os utilizadores acederam, a que horas, quantos bytes foram descarregados, quantas conexões foram feitas, ver os sites mais acedidos, utilizadores que mais acedem, relatório de sites negados, falhas de autenticação, etc.
Instalação Para instalar basta digitar
aptitude install sarg.
![Page 21: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/21.jpg)
Relatórios: SARG
![Page 22: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/22.jpg)
Relatórios: Calamaris
Introdução O Calamaris é um software que gera relatórios bem
detalhados do uso da Internet usando os arquivos de logs de vários servidores proxy, como o Squid. Os relatórios gerados são simples na apresentação, no entanto, muito ricos em detalhes extraídos dos arquivos de logs, eles podem ser gerados no formato HTML ou mesmo em texto para ser
enviado via e-mail.
Instalação Para instalar o Calamaris basta digitar
aptitude install calamaris.
![Page 23: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/23.jpg)
Relatórios: Calamaris
![Page 24: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/24.jpg)
Segurança: I
Para proteger estes relatórios de olhares indesejados basta criar um ficheiro .htaccess na directoria onde se encontram introduzindo o seguinte código
1. AuthUserFile /var/www/reports/.htpasswd
2. AuthType Basic
3. AuthName “Reports”
4. Require valid-user
Linha 1 - indica a localização onde está a lista de utilizadores e passwordsLinha 2 – define o tipo de autentificação, neste caso será básicaLinha 3 – define o nome da autentificaçãoLinha 4 - indica que é necessário um utilizador qualquer presente em .htpasswd. Também é possível especificar utilizadores.
![Page 25: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/25.jpg)
Segurança: II
Em seguida é necessário criar utilizadores através do comando htpasswd -c .htpasswd username Automaticamente será questionada a password.
Para esta configuração funcionar correctamente é necessário também editar as opções do Apache definindo AllowOverride All, caso contrário o .htaccess será ignorado.
![Page 26: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/26.jpg)
Diagrama da rede: Antes
![Page 27: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/27.jpg)
Diagrama da rede: Depois
![Page 28: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/28.jpg)
Proxy Transparente
Configurar o router2 para interceptar todos os pedidos para as portas 21 (FTP), 80 (HTTP), 443 (HTTPS) e 8080 (proxy) através de iptables.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j REDIRECT --to-port 3128
![Page 29: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/29.jpg)
Vantagens
É suportado em vários sistemas operativos; Diminuição do uso de largura de banda; Rapidez de carregamento de páginas guardadas
na cache; Filtragem de conteúdos usando o SquidGuard; Possibilidade de verificar a utilização da rede
através dos geradores de relatórios;
![Page 30: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/30.jpg)
Desvantagens
Consome bastantes recursos; Demora no carregamento de páginas que não
estejam guardadas na cache; Configuração complexa; Optimização difícil;
![Page 31: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/31.jpg)
Conclusão/Observações finais
Proxy Server Open-source Fácil e rápido de instalar “Fine-tunning” complexo Filtragem de conteúdos (SquidGuard) Estatísticas (Calamaris, Sarg, Webalizer) Proxy Transparente (iptables – routing)
![Page 32: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/32.jpg)
Referências
Livros:
Squid: The Definitive Guide; WESSELS, Duane; O’Reilly
Web:
http://gentoo-wiki.com/HOWTO_setup_a_home-server
http://www.maynidea.com/squidguard/config.html
http://www.squidguard.org
http://www.cse.unsw.edu.au/faq/questions/www-htaccess.html
http://www.devin.com.br/eitch/webalizer
http://www.devin.com.br/eitch/sarg
http://cord.de/tools/squid/calamaris/Welcome.html.en
![Page 33: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/33.jpg)
Perguntas e Respostas
Questões? Sugestões?
![Page 34: Introdução ao Squid Artur Martins David Riedel Florentino Bexiga Departamento de Engenharia Electrónica e Informática 16 de Abril de 2008.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc15e497959413d8e5a7c/html5/thumbnails/34.jpg)