Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Squid Cache/Proxy - Aula 2

1ᵃ Aula
by

Danilo Josino

on 22 May 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Squid Cache/Proxy - Aula 2

Squid Cache/Proxy - Instalação e Configuração Squid Cache/Proxy Atividades - Criação de ACLs
Métodos HTTP
Cabeçalho de Requisições
Controle por Cabeçalho das Requisições
Autenticação
Configuração básica do cache Squid Cache/Proxy - Instalação e Configuração Autenticação Requisições HTTP Funcionamento

O cliente envia uma mensagem de requisição de um recurso e o servidor envia uma mensagem de resposta ao cliente com a solicitação.

Uma mensagem, tanto de requisição quanto de resposta, pode ser composta zero ou mais linhas de cabeçalhos e por fim o corpo da mensagem, opcional em determinados casos. Iniciando com Cache Nessa sessão verificaremos alguns parametros para construção do cache no squid, com base nos valores padrões. Iniciando com Cache - Continuação O Squid fornece mecanismos para ser efetuado um controle por usuário, dessa forma cada usuário que deseje ter acesso à internet deverá antes de tudo se autenticar no proxy. Complementos SARG SQSTAT ARTICA Bloqueio por Parâmetros de Cabeçalho ## Bloqueio/Liberação de Métodos HTTP
acl Safe_method method CONNECT GET HEAD POST
http_access deny !Safe_method Danilo Josino BannerFilter / SquidGuard Revisão / Atividades # Criar uma regra de tempo para bloquear todo conteúdo
# Criar uma regra de tempo para liberar site da faculdade (www.flf.edu.br)
# Criar uma regra bloqueando uma subpágina do site da faculdade (www.flf.edu.br)
# Criar uma regra que libere tudo para um mac
# Criar uma regra que libere tudo para uma faixa de ips Squid Cache/Proxy - Instalação e Configuração http://www.squid-cache.org/Doc/config/ Prática "Boa Noite"
exit 0; acl horario_aula time MTWHF 18:30-22:00
http_access deny all horario_aula

acl flf dstdomain .flf.edu.br
http_access allow flf horario_aula

acl ouvidoria_flf url_regex -i .flf.edu.br/ouvidoria.php
http_access deny ouvidoria_flf horario_aula

acl mac arp 00:11:22:33:44:55
http_access allow mac

acl rede1 src 192.168.1.0/24
http_access allow rede1 Cabeçalho da Mensagem

O cabeçalho (header) é utilizado para transmitir informações adicionais entre o cliente e o servidor.
Existem quatro tipos de cabeçalhos que poderão ser incluídos na mensagem os quais são: general-header, requestheader, response-header e entity-header.

general-header: Os cabeçalhos são utilizados para enviar informações adicionais sobre a mensagem.
Ex: Cache-Control {max-age, no-cache, min-refresh}

request-header: Tipo de cabeçalho dos clientes que comunicam suas configurações e os formatos de documentos desejados como resposta.
Ex: Accept-Encoding, Accept-Language, Accept-Charset

responseheader: São utilizados pelo servidor ao retornar o recurso no qual foi requisitado pelo cliente, transmiti informações que descrevem as configurações do servidor e do recurso identificado pelo URI de requisição.
Ex: Location ( Indica uma nova URL que o servidor está instruindo o cliente para usar no lugar do um o cliente inicialmente solicitado. Este cabeçalho é normalmente utilizada quando o servidor redireciona uma solicitação do cliente para uma nova localização, utilizando uma resposta 301, 302 ou 307 )

entityheader: Aqui está localizada a forma com que o recurso será consultado no servidor, nesse cabeçalho é informado o método no qual será realizada a consulta.
Ex: HEAD, GET, POST, PUT, DELETE. ## Bloqueio/Liberação por dados do Cabeçalho
header_access Accept allow all
header_access Accept-Encoding allow all
header_access Accept-Language allow all
header_access Authorization allow all
header_access Cache-Control allow all
header_access Content-Disposition allow all
header_access Content-Encoding allow all
header_access Content-Length allow all
header_access Content-Location allow all
header_access Content-Range allow all
header_access Content-Type allow all
header_access Cookie allow all
header_access Expires allow all
header_access Host allow all
header_access If-Modified-Since allow all
header_access Location allow all
header_access Range allow all
header_access Referer allow all
header_access Set-Cookie allow all
header_access WWW-Authenticate allow all
header_access All deny all A autenticação poderá ser feita de várias maneiras, como por exemplo, no formato NCSA (geralmente associado ao utilitário htpasswd), ou através de um servidor LDAP, um PDC Windows NT/2000, ou módulos PAM, etc.

A maneira mais comum de realizar autenticação é com o uso do formato NCSA que usa o módulo ncsa_auth.

Vamos buscar (grosseiramente) as autenticações disponíveis no squid
# locate auth | grep squid Utilizaremos htpasswd para o cadastro dos usuários de acesso ao proxy.

O parametro -c é utilizado para criação de usuarios que ainda nao estejam cadastrados

# htpasswd -c arquivo_de_senhas usuario # TAG: auth_param
# Habilita suporte a autenticação
# Nela são realizadas as mudanças necessárias para que o esquema de autenticação comece a funcionar, já que por padrão ele não vem habilitado. # TAG: auth_param <aclname> program
# Definindo o módulo utilizado (ncsa_auth), e o arquivo com usuários e senhas auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd # TAG: auth_param <aclname> children
# Definindo quantos processos filhos do módulo de autenticação poderão existir
auth_param basic children 5 # TAG: auth_param <aclname> realm
# Definindo mensagem padrão ao cliente que tentar autenticar-se
auth_param basic realm Servidor Proxy Squid ARL # TAG: auth_param <aclname> credentialsttl
# Definindo tempo de vida máximo de validade da credencial
auth_param basic credentialsttl 2 hours # TAG: cache_mem
# Quantidade de memória RAM dedicada ao cache é feita adicionando a opção "cache_mem",
# que contém a quantidade de memória que será dedicada ao cache.
cache_mem 64 MB # TAG: maximum_object_size_in_memory
# Tamanho máximo dos arquivos que serão guardados no cache em memória RAM (o resto vai para o cache feito no HD)
maximum_object_size_in_memory 64 KB # TAG: maximum_object_size
# Tamanho máximo dos arquivos que serão guardados no cache do HD
maximum_object_size 512 MB # TAG: minimum_object_size
# Tamanho mínimo dos arquivos que serão guardados no cache do HD
minimum_object_size 0 KB # TAG: cache_swap_high / cache_swap_low
# Você pode definir ainda a percentagem de uso do cache que fará o Squid começar a descartar os arquivos mais antigos.
# Por padrão, sempre que o cache atingir 95% de uso, serão descartados arquivos antigos até que a percentagem volte para um número abaixo de 90%
cache_swap_low 90
cache_swap_high 95 # TAG: cache_dir
# Define onde os caches serão armazenados, seguindo os parametros de tamanho máximo, quantidade de diretórios e sub-diretórios
cache_dir ufs /var/spool/squid 2048 16 256 # TAG: cache_access_log
# Definição do arquivo de log de acesso
cache_access_log /var/log/squid3/access.log # TAG: refresh_pattern
# Para que o Squid entenda suas regras é necessário que pelo menos as regras para ^ftp, ^gopher e . estejam presentes, caso contrário ele ignora sua configuração e utiliza seu padrão
# Os números indicam o intervalo (em minutos) que o Squid irá aguardar antes de verificar se um item do cache (uma página, por exemplo) foi atualizado. Se no cabeçalho do objeto não houver data de expiração então:

Se o tempo de criação for inferior a 1440 min, será considerado novo

Senão e a criação for superior a 10080, será considerado obsoleto e receberá o novo arquivo do servidor para armazenar a nova copia

Senão e o tempo de criação estiver entre o valo mínimo e máximo, IM-FACTOR
que é a relação entre a criação no cache para o servidor origem como uma porcentagem. Então, se o objeto foi criado 10080 minutos atrás no servidor origem e no cache a 1800 minutos, o fator seria 1800/10000

Se o fator for menor que o padrão 20% o objeto é considerado novo, se maior o considera obsoleto e cria uma nova copia refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280 #acl danilo src 192.168.0.200/32
auth_param basic children 5
auth_param basic realm Digite sua Usuário e Senha
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
acl autenticacao proxy_auth REQUIRED
http_access allow autenticacao
Full transcript