40
Proxy/Cache Prof: Alberto Felipe Friderichs Barros

Serviços de Redes - albertofelipeblog.files.wordpress.com · Quando o cliente faz a requisição de uma página na Web, ... auth_param basic realm Digite sua senha auth_param basic

Embed Size (px)

Citation preview

Proxy/Cache

Prof: Alberto Felipe Friderichs Barros

Um proxy, em português procurador, é um servidor, um sistema ou umaaplicação que age como um intermediário para requisições de clientessolicitando recursos de outros servidores.

Proxy

Um cliente conecta-se ao servidor proxy, solicitando algum serviço, como umarquivo, conexão, página web e o proxy avalia a solicitação como um meio desimplificar e controlar sua complexidade.

Proxy

O servidor proxy surgiu da necessidade de conectar a rede local à Internetatravés de um computador da rede que compartilha sua conexão com as demaismáquinas. Geralmente, as máquinas da rede interna não possuem endereçosválidos na Internet e, portanto, não têm uma conexão direta com a mesma.

Proxy

• Transparente;

• Anônimo;

• Reverso;

• Caching;

• Web.

Tipos de Proxy

• Podemos dizer que o Proxy é parte fundamental da segurança da empresa.

• Deve-se também ter um Firewall.

• O Proxy não controla IMAP, POP e SMTP, pois ele é um Proxy Web.

Proxy

Um firewall, em português parede de fogo, é um dispositivo de uma rede decomputadores que tem por objetivo aplicar uma política de segurança a umdeterminado ponto da rede, bloqueando ou liberando acesso a recursos.

Firewall

Os firewalls do tipo filtro de pacotes, analisam individualmente cada pacote queatravessa a rede, verificando o cabeçalho das camadas de rede e de transporte.

Firewall

Com base no cabeçalho TCP/IP o firewall toma decisões com base: na porta,protocolo e IP de origem e destino.

Firewall

No entanto, o proxy vai além e complementa o firewall atuando na camada deaplicação, podendo implementar restrições de: URL, extensões, conteúdos,horários, usuários, etc.

Proxy

• Controle de sites com conteúdo indesejado;

• Restrições de acesso: com base no horário, login, etc;

• Diminuição do uso de largura de banda;

• Cache: arquivos de atualização.

• Controle de banda

• Logs

• Privacidade.

Vantagens

• É mais lento que os filtros de pacotes;

• Não aceita todos os serviços;

• Cada serviço requer o seu servidor proxy;

• Consome bastante recurso;

• Configuração complexa.

Desvantagens

Funcionamento

Quando o cliente faz a requisição de uma página na Web, o Proxy verifica se ela está

no cache. Senão, o Proxy procura na Web e guarda no cache. Quando outro cliente

acessar a mesma página, o Proxy verifica se ela foi alterada. Senão, o cliente recebe a

página que está no cache, mais rapidamente, melhorando a velocidade de acesso.

Funcionamento

O Squid é o serviço de Proxy/Cache mais utilizado no mundo. Ele possibilita um

controle sofisticado de acessos dos clientes, bem como diversas opções para melhorar

o acesso a internet. O Squid é open source, muito utilizado em escolas e empresas.

Funcionamento

O Servidor Proxy/Cache Squid escuta na porta 3128 do protocolo TCP, recebendo e

respondendo as solicitações de navegação dos clientes. O Squid pode atuar em modo

transparente, isto é, de forma automática sem necessidade de configuração dos

navegadores. No entanto este modo de operação não suporta autenticação de usuários.

Proxy transparente

Para ativar o proxy transparente, basta direcionar as requisições recebidas da porta 80

para a porta 3128 onde está rodando o squid, neste caso o servidor atuará como

gateway da rede, realizando o encaminhamento de pacotes de uma interface a outra.

# echo 1 > /proc/sys/net/ipv4/ip_forward

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Proxy

O Proxy não transparente, não atuará como gateway da rede, apenas irá tratar a

requisição de páginas. Este modo de operação, exige a configuração dos navegadores

dos clientes para passar pelo proxy.

Instalação no Debian

# apt-get install squid3

Observação: Será criado o diretório: /etc/squid3 onde ficarão os arquivos de

configuração

Configurações

• Habilitar a configuração básica;

• Habilitar para todos da rede interna saiam;

• Bloquear URL específica;

• Habilitar autenticação;

# Porta padrão e hostname

http_port 3128

visible_hostname IFSC

# Memória utilizada para objetos em trânsito

cache_mem 900 MB # memoria RAM utilizada para cache, geralmente 1/3 da RAM.

maximum_object_size_in_memory 1 MB # Tamanho máximo dos objetos armazenados na RAM.

maximum_object_size 10 MB # Tamanho máximo dos objetos armazenados no disco, downloads.

minimum_object_size 0 KB # Tamanho mínimo dos objetos armazenados no cache.

cache_swap_high 95 # A partir do momento em que o cache atingir 95%, serão descartados arquivos mais antigos.

cache_swap_low 90 # Os arquivos antigos serão descartados até que a porcentagem fique abaixo de 90%.

Squid.conf

# Página de Erros

error_directory /usr/share/squid3/errors/Portuguese

# Define o tamanho do cache em disco

cache_dir ufs /etc/squid3/cache 30000 16 256 # Tamanho máximo em MB, quantidade de pastas e subpastas.

# Logs de acesso

cache_access_log /var/log/squid3/access.log

Squid.conf

Com o squid é possível o bloqueio ou liberação de acesso a determinados sites, redes,

etc. Para operacionalizar esta função, primeiramente deve-se criar as chamadas ACLs

(Access Control List). As ACLs são criadas no seguinte modelo: acl nome_da_acl opções

acl redelocal src 192.168.1.0/24

ACL

acl all src 0.0.0.0/0.0.0.0

acl redelocal src 192.168.1.0/24

acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563

acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535

acl sites_proibidos url_regex -i “/etc/squid3/sites_proibidos”

acl redes_sociais dstdomain .facebook.com .youtube.com

acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3

acl horario_almoco time MTWHF 12:00-13:00

acl manager proto cache_object

acl purge method PURGE

acl CONNECT method CONNEC

Squid.conf - ACL

O Squid lê as regras de cima para baixo, então se quer bloquear algo, primeiro bloqueie o

o que deseja, depois libere o restante. Com a instrução deny, proibimos o acesso e com a

expressão allow liberamos o acesso.

http_access allow redelocal

Bloqueio e permissão

http_access allow manager localhost

http_access deny manager

http_access allow purge localhost

http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access deny sites_proibidos

http_access allow redes_sociais horário_almoço

http_access deny redes_sociais

http_access deny downloads_proibidos

http_access allow localhost

http_access allow redelocal

http_access deny all

Squid.conf – http_access

Você pode adicionar uma camada extra de segurança exigindo autenticação no proxy.

Este recurso pode ser usado para controlar quem tem acesso à internet e auditar os

acessos em caso de necessidade.

Autenticação

• Para ativar a autenticação Instale o pacote apache2-utils

• Crie o arquivo para armazenar as senhas: touch /etc/squid3/squid_passwd

• Cadastre os logins com o comando: htpasswd /etc/squid3/squid_passwd usuário

Autenticação

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd

auth_param basic children 5

auth_param basic realm Digite sua senha

auth_param basic credentialsttl 2 hours

auth_param basic casesensitive off

acl autenticados proxy_auth REQUIRED

http_access allow autenticados

Squid.conf – Autenticação

Deve-se configurar o proxy nos navegadores de

cada usuário. No Firefox, vá em Opções,

selecione Avançado > Rede e na guia Conexão,

clique em Configurações. Na janela que aparece,

marque a caixa Configuração manual do proxy.

No campo Proxy HTTP, digite o IP do servidor

Proxy ao qual você deseja se conectar e a porta.

Navegador

Relatórios de acesso

Uma das grandes vantagens do Squid é que ele cria o arquivo de log e registra todos os

acessos web. Pode-se analisar e verificar se alguém acessou sites impróprios, horários

de acesso, entre outros.

Sarg

O SARG (Squid Analysis Report Generator) é uma ferramenta que permite ver o que os

usuários da rede estão acessando na Internet através da análise do arquivo de log do

Squid. Ele é responsável por transcrever as informações de acesso existentes e

organizá-las de forma intuitiva para o administrador da rede.

Instalação no Debian

# apt-get install sarg

Arquivo de configuração: /etc/sarg/sarg.conf

Charset UTF-8 # acentuação

access_log /var/log/squid3/access.log # o caminho do arquivo de log do squid

output_dir /var/www/html/sarg # caminho que irá gerar os relatórios

Sarg.conf

Sarg

Para gerar o relatório basta digitar o comando: sarg

Para acessar o relatório basta abrir a URL: http://ipdoservidor/sarg

Controle de banda

Com o recurso de limite de banda no Squid você pode priorizar a banda para certo grupo

de usuários. Dessa forma não corremos o risco de um diretor da empresa estar

necessitando baixar um e-mail importantíssimo pelo link, enquanto um estagiário puxa o

último episódio de sua minissérie favorita.

Controle de banda

Este controle ocorre somente na navegação e download. Caso os usuários utilizem

algum outro software, via P2P, o Squid não controla.

acl chefes proxy_auth –i “/etc/squid3/chefes”# Cria outra acl com os usuários chefes.

delay_pools 2 # Significa que teremos dois controles de banda

delay_class 1 2 # Primeiro controle

delay_class 2 2 # Segundo controle

# -1/-1 significa que não teremos limites para a delay pool 1

delay_parameters 1 -1/-1 -1/-1

delay_access 1 allow chefes

# Limita a sua banda para +- 1024Kbits

delay_parameters 2 131072/131072 131072/131072

delay_access 2 allow autenticados

Squid.conf

O Squid trabalha com bytes;

Um link de 1 megabit (1024 kbits);

(valor em kbits / 8 ) * 1024 = valor em bytes

(1024/8) * 1024 = 131072 bytes

Cálculo

1. Crie um servidor proxy autenticado com controle de banda para downloadsde 128Kb/s para todos os usuários e bloqueie downloads de extensões dotipo executável.

2. Gere o relatório de acessos do usuário e realize um teste de conexão.

Exercícios

Proxy/Cache

Prof: Alberto Felipe Friderichs Barros