Buscar

18 Servidor Proxy

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Servidor Proxy
Administração de Sistemas Abertos
Professor:
Anderson Costa
anderson@ifpb.edu.br
2
Proxies: Visão Geral
 Proxy significa dar poder a alguém para agir em seu 
nome: Procuração
 Proxy é um conceito genérico em redes de 
computadores
– É empregado em diversos campos
 Proxy atua como um intermediário entre os clientes
do serviço e os provedores do serviço
 O intermediário pode prover serviços aos clientes
3
Web Proxy
 Clientes: Browsers
 Provedores: Servidores Web
 Funcionamento
Requisição de
Objeto e Caching
Nova requisição do
Objeto, Cache responde
4
Web Proxy: Serviços oferecidos
 Caching
– Armazenamento dinâmico de objetos
– Racionalização do uso do link para internet
– Menor tempo de resposta para os usuários
 Controle de Acesso
– Permite implementar políticas administrativas de acesso à 
internet
– Pode ser baseado em: Horário, Tipo do conteúdo (filtros)
 Logs
– Caches mantêm registros de acessos aos objetos
– Podem ser levantadas estatísticas de uso
5
Squid
 O SQUID é um servidor proxy 
 Realiza Cache de objetos FTP e páginas da web
– Isto inclui Updates do Windows e pacotes do APT
– Mantém os objetos mais utilizados na memória RAM
 Realiza Cache de procuras DNS
– Acelera a procura de máquinas
 Grande quantidade de documentação e estudos de 
caso sobre o mesmo
– Inclusive em português
6
Instalando o Squid
 Instalação
– apt-get install squid3
 Para controlar o serviço
– /etc/init.d/squid3 start
– /etc/init.d/squid3 restart
– /etc/init.d/squid3 stop
– /etc/init.d/squid3 force-reload
 Configuração
– Único arquivo de configuração
– /etc/squid/squid.conf
– Arquivo original é extenso
 Diversas configurações muito bem documentadas
7
Configuração Inicial
 Uma configuração funcional
– Opção http_port indica a porta em que o proxy atenderá 
requisições
– Opção visible_hostname indica o nome da máquina
– Terceira linha define uma ACL (Access Control List) 
indicando todos os endereços IPs possíveis
 Nome: all; Conteúdo: src 0.0.0.0/0.0.0.0
– Opção http_access controla a ação sobre a ACL 
especificada
 Permitir (allow) ou Negar (deny)
http_port 3128
visible_hostname ifpbcg
acl all src 0.0.0.0/0.0.0.0
http_access allow all
8
Controle de Acesso (1)
 Permissões de IP
– Requisições locais e da rede local são encaminhadas
 Outros IPs são negados
– Atenção para a ordem das regras de permissão/negação
 Caso uma requisição case com a regra a regra será disparada
 Regras mais gerais devem vir por último
http_port 3128
visible_hostname ifpbcg
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all
9
Controle de Acesso (2)
 Permissões de Porta
– Somente requisições HTTP e HTTPS são aceitas.
 Outras requisições serão descartadas
http_port 3128
visible_hostname ifpbcg
acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port 80
acl Safe_ports port 443
acl localhost src 127.0.0.1/255.255.255.255
acl redelocal src 192.168.1.0/24
http_access deny !Safe_ports
http_access allow localhost
http_access allow redelocal
http_access deny all
10
Configurando o Cache (1)
 Squid possui dois tipos de cache
– Cache rápido em memória RAM
 Ideal para armazenar pequenos objetos 
 Ex: páginas html, imagens...
– Cache mais lento feito em HD
 Armazena arquivos maiores
 Ex: Atualizações, programas, pacotes...
 É possível configurar 
– A quantidade de memória utilizada para cada cache
– O tamanho máximo/mínimo dos arquivos em cada cache
 Boas configurações permitirão melhor desempenho 
para cada número de usuários e tipo de tráfego
11
Configurando o Cache (2)
 Cache rápido em memória RAM
– Dois parâmetros importantes
– Em cache_mem indica-se o uso de 1/3 ou mesmo metade 
da memória RAM
 O valor real depende do consumo de memória de outros 
serviços e do próprio Linux
 Ferramentas free e vmstat podem ser úteis
– O segundo parâmetro indica o tamanho máximo dos 
objetos armazenados na RAM
 Arquivos que execederem este tamanho não serão 
armazenados na RAM
cache_mem 64 MB
maximum_object_size_in_memory 64 KB
12
Configurando o Cache (3)
 Cache mais lento em HD
– Quatro parâmetros importantes
– Os dois primeiros parâmetros indicam o tamanho máximo e 
minimo dos objetos armazenados no HD
 Útil para downloads grandes: pacotes, atualizações etc
– Os outros dois parâmetros indicam o percentual de 
utilização da cache de disco a partir dos quais o squid 
começará a substituir arquivos antigos
 Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
 Acima do high (95%): Squid ativa uma política de substituição 
mais agressiva de modo a retornar aos 90% ou inferior a isso
maximum_object_size 512 KB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
13
Configurando o Cache (4)
 Funcionamento de cache_swap_low e cache_swap_high
– Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
– Acima do high (95%): Squid ativa uma política de 
substituição mais agressiva de modo a retornar aos 90% ou 
inferior a isso
10%
10%
10%
10%
10%
10%
10%
10%
30%
20%
20%
80%
5%
Novo Arquivo
no Cache
14
Configurando o Cache (5)
 Funcionamento de cache_swap_low e cache_swap_high
– Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
– Acima do high (95%): Squid ativa uma política de 
substituição mais agressiva de modo a retornar aos 90% ou 
inferior a isso
10%
10%
10%
10%
10%
10%
10%
10%
30%
20%
20%
10%
10%
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
80%
85%
8%
Novo Arquivo
no Cache
15
Configurando o Cache (6)
 Funcionamento de cache_swap_low e cache_swap_high
– Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
– Acima do high (95%): Squid ativa uma política de 
substituição mais agressiva de modo a retornar aos 90% ou 
inferior a isso
10%
10%
10%
10%
10%
10%
10%
10%
30%
20%
20%
10%
10%
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
80%
85%
10%
10%
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
93%
8%
Ativa 
substituição 
de objetos
16
Configurando o Cache (7)
 Funcionamento de cache_swap_low e cache_swap_high
– Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
– Acima do high (95%): Squid ativa uma política de 
substituição mais agressiva de modo a retornar aos 90% ou 
inferior a isso
10%
10%
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
93%
8%
Objeto 
Descartado
5%
Novo Arquivo
no Cache
17
Configurando o Cache (8)
 Funcionamento de cache_swap_low e cache_swap_high
– Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
– Acima do high (95%): Squid ativa uma política de 
substituição mais agressiva de modo a retornar aos 90% ou 
inferior a isso
10%
10%
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
93%
8%
Objeto 
Descartado
5%
Novo Arquivo
no Cache
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
88%
8%
5%
10%
Novo Arquivo
no Cache
18
Configurando o Cache (9)
 Funcionamento de cache_swap_low e cache_swap_high– Acima do low (90%): Squid ativa a substituição de modo a 
manter em 90% ou inferior a isso
– Acima do high (95%): Squid ativa uma política de 
substituição mais agressiva de modo a retornar aos 90% ou 
inferior a isso
10%
10%
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
93%
8%
Objeto 
Descartado
5%
Novo Arquivo
no Cache
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
88%
8%
5%
10%
Novo Arquivo
no Cache
10%
10%
10%
10%
10%
10%
5%
30%
20%
20%
98%
8%
5%
10%
Ocorrerá uma 
substituição
mais 
agressiva!!!
19
Políticas de acesso (1)
 Com o squid é possível filtrar requisições
– Por URL ou palavra na URL
– Por IP, 
– Por horário etc...
 Por URL ou palavra na URL
– Palavras ou URLs contidas no arquivo bloqueados não 
serão acessíveis
– Útil para impedir acesso de sites específicos
– Lista de palavras deve ser mantida
 Para listas de palavras mais completas é recomendável 
utilizar um filtro específico como DansGuardian
acl bloquear url_regex –i “/etc/squid/bloqueados”
http_access deny bloquear
20
Políticas de acesso (2)
 Por IP
– Negando o acesso à sites específicos utilizando os IPs
 Por horário
– É possível determinar horários em que o serviço poderá ser 
utilizado
– No exemplo, os usuários poderiam acessar as páginas 
bloqueadas no horário de almoço, mas em outros horários 
seria proibido
acl ips-bloqueados dst 200.234.21.23 200.212.15.45
http_access deny ips-bloqueados
acl bloquear url_regex –i “/etc/squid/bloqueados”
acl almoco time 12:00-14:00
http_access allow almoco
http_access deny bloquear
21
Autenticação (1)
 Pode-se adicionar uma camada extra de segurança 
através da autenticação
– Permite controle do acesso
– Permite a auditoria dos acessos, por usuário
 Para configurar autenticação é preciso o uso do 
htpasswd
– Instalado através do pacote apache2-utils
 Crie o arquivo /etc/squid/passwd
 Cadastre os logins usando o comando
– htpasswd /etc/squid/passwd asa
 Configure o Squid
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl autenticados proxy_auth REQUIRED
http_access allow autenticados
22
Autenticação (2)
 Pode-se criar políticas por usuário
– Suponha que os usuários asa e test terão acesso irrestrito. 
O usuário lamb terá acesso somente pela manhã, os 
demais logados terão acesso durante o almoço, e os 
usuários não logados não terão qualquer acesso.
http_port 3128
visible_hostname ifpbcg
acl all src 0.0.0.0/0.0.0.0
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl autenticados proxy_auth REQUIRED
acl permitido proxy_auth asa test
acl restrito proxy_auth lamb
acl manha time 08:00-12:00
acl almoco time 12:00-14:00
http_access allow permitido
http_access allow restrito manha
http_access allow autenticados almoco
http_access deny all
23
Proxy Transparente (1)
 Configurado o proxy, deve-se configurar os 
browsers dos usuários
– Navegadores podem ser desconfigurados
– Para resolver isto utiliza-se o Proxy transparente
 Conexões dirigidas à Internet são redirecionadas ao 
proxy
24
Proxy Transparente (2)
 Para ativação do proxy transparente iremos precisar do SQUID 
e do IPTABLES
 No arquivo squid.conf altere a opção http_port por:
 No Linux executa-se o comando
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 
-j REDIRECT --to-port 3128
– Redireciona as requisições dirigidas à interface eth0 na porta 80
para a porta 3128
– OBS: este comando deve ser executado em uma linha só!
http_port 3128 transparent
25
Proxy Transparente (3)
 Nos clientes
– Deve-se apenas configurar corretamente o gateway
– O gateway pode ser ou a própria máquina em que roda o 
Squid ou 
– Um roteador que possua uma regra para redirecionar 
tráfego HTTP para a máquina em que roda o squid
 Desvantagem do Proxy transparente
– Não trabalha com autenticação 
– Existem soluções que permitem isso
 A maioria proprietárias
 Soluções livres: 
– NatACL: http://natacl.sourceforge.net/
– NoCatAuth: http://nocat.net/
26
Outras configurações
 Quando um usuário tem seu acesso negado
– O Squid retorna uma página de erro em inglês
– É possível mudar a página de erro para português
– As páginas deste diretório podem ainda ser personalizadas
 Basta substituir as páginas no diretório
error_directory /usr/share/squid/errors/Portuguese
27
Exemplo: arquivo de configuração
http_port 5060
visible_hostname ifpbcg
error_directory /usr/share/squid/errors/Portuguese
cache_mem 256 MB
maximum_object_size_in_memory 128 KB
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl autenticados proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
acl almoco time 12:00-14:00
acl Safe_ports port 80
acl Safe_ports port 443
acl localhost src 127.0.0.1/255.0.0.0
acl redelocal src 192.168.1.0/24
acl permitido proxy_auth asa
http_access allow localhost
http_access deny !Safe_ports
http_access allow permitido redelocal
http_access allow autenticados redelocal almoco
http_access deny all
28
Relatórios de acesso
 O Squid pode manter um registro de todos acessos
– Permite auditoria
 Estes registros são salvos em um arquivo de log que 
deve ser indicado através do parâmetro abaixo
 Este é um arquivo texto que pode ser lido com 
qualquer ferramenta
 Existem ferramentas que geram relatórios de acesso
– Squid Analysis Report Generator (SARG)
access_log /var/log/squid/access.log squid
29
SARG (1)
 Instalando o SARG
– apt-get install sarg
 SARG gera relatórios em formato de páginas web
– Precisa do Apache para funcionar
 SARG cria scripts em
– /etc/cron.daily
– /etc/cron.weekly
– /etc/cron.monthly
 Para gerar os relatórios iniciais basta executar o 
comando sarg como root
 Os relatórios gerados são acessados através de um 
browser pela URL http://<IP>/squid-reports
30
SARG (2)
31
SARG (3)
Servidor Proxy
Administração de Sistemas Abertos
Professor:
Anderson Costa
anderson@ifpb.edu.br

Outros materiais