Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. INTRODUO
A Internet trouxe consigo uma enorme gama de recursos, benefcios e facilidades para o usurio,
assim sua popularidade e aceitao pelo pblico tm crescido e aumentado significativamente, impactando
com isso um salto considervel em relao gerao de trfego de dados na rede mundial de computadores.
Tais contedos so servios como o streaming de vdeos (populares Netflix e YouTube), alm de imagens,
sons, softwares e aplicaes de mais variadas plataformas e a partir destes, formam o denominado WWW
(World Wide Web) ou simplesmente Web, um sistema de documentos dispostos na Internet que permitem o
acesso a informaes apresentadas na forma de hipertexto (textos exibidos em formato digital, informaes
em formato de imagem, udio entre outros, alm do contedo principal da web: o texto). Neste contexto, o
1
Artigo baseado em Trabalho de Concluso de Curso (TCC) desenvolvido em cumprimento exigncia curricular do Curso Superior de
Tecnologia em Segurana em Sistemas de Informao da Faculdade de Tecnologia de Americana, depositado no 1 semestre de 2013.
2
Tecnlogo em Segurana em Sistema de Informao da Faculdade de Tecnologia de Americana Centro Estadual de Educao
Tecnolgica Paula Souza ; Contato: ycy.andre@hotmail.com
3
Prof. Me. Fatec Americana Graduao em Cincias de Computao, Mestrado em Cincia da Computao; Contato:
gabrielfedel@gmail.com
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
12
12
nmero de usurios que se conectam rede cresce de forma muita rpida e acentuada, sendo que
atualmente mais de 2/3 do trfego da Internet gerado pela Web segundo Watanabe (2000). Alm disso,
estudos recentes revelam que at 2015, o trfego na Internet deve aumentar sete vezes em relao ao
volume registrado em 2010, passando dos 183 mil petabytes anuais para 1,3 milho de petabytes anuais em
2015, segundo estimativas feitas por Cottle (2011), e, desta vez, o grande propulsor ser o vdeo.
Segundo Watanabe (2000), a respeito do cenrio atual, afirma que o desempenho nos acessos
Internet tem cado consideravelmente, aumentando as latncias e os tempos de resposta. Diante desta
questo, perceptvel a necessidade de se minimizar tais consequncias, sendo que alguns mtodos
adotados geralmente so a atualizao dos recursos: servidores mais rpidos, a troca de switches, o aumento
da banda, entre outros. No entanto, esta no seria a soluo ideal, uma vez que no economicamente
vivel, devido aos altos custos dos equipamentos conforme o autor. Alternativas so o espelhamento de
arquivos e a utilizao de servidores de cache e proxy que realizam caching de contedos e objetos Web, que
ajudam a agilizar e reduzir os tempos de espera pelo usurio. Tais mtodos so os mais utilizados para
minimizar os gargalos existentes na rede (WATANABE, 2000).
Este trabalho tem como objetivo fazer um estudo sobre servidores proxy com foco na melhora do
desempenho do acesso web, atravs do mtodo denominado Cache de contedos Web ou simplesmente
Cache Web. Aspecto como acelerao no ambiente da Internet so o ponto relevante a ser tratado com
ateno. Para tal objetivo o software escolhido o Squid, software livre para implementao de servios de
cache e proxy, sendo considerado um dos proxy mais utilizados no universo da rea de Tecnologia da
Informao (TI) (SQUID SOFTWARE FOUNDATION, 2011).
O trabalho ser dividido da seguinte maneira, o segundo captulo apresenta uma reviso bibliogrfica
sobre os conceitos e definies fundamentais, tambm dos trabalhos relacionados. O terceiro captulo
destina-se s questes de desempenho Web Caching, enfatizando os requisitos de hardware como servidor
proxy cache. No quarto captulo, o foco especfico sobre o Squid, apresentando os recursos e
funcionalidades que dispe. Finalmente, apresenta-se um projeto de estudo prtico utilizando o Squid e a
concluso do trabalho.
2. REVISO BIBLIOGRFICA
Neste captulo, so descritos os conceitos e as definies das ferramentas apresentadas neste
trabalho, fazendo parte de forma direta ou indireta ao decorrer dos captulos, alm de uma pesquisa de
trabalhos com temas correlatos ao do trabalho.
2.1.
Redes locais
Redes locais, tambm chamadas de LAN (Local Area Network), so redes privadas existentes em um
campus universitrio ou edifcio, em raios de at alguns quilmetros de extenso. As redes locais possuem
trs caractersticas que as diferenciam de outros tipos de redes: o tamanho, a tecnologia de transmisso e a
topologia.
No aspecto do tamanho, so consideradas restritas por serem limitadas a ambientes internos, uma
empresa de mdio porte por exemplo. Sua tecnologia de transmisso consiste em um cabo, no qual todas as
mquinas esto conectadas, podendo operar a velocidades que vo desde 10 Mbps a 10 Gbps esta ltima
para as LANs mais modernas. Amplamente utilizadas para conectar computadores e estaes de trabalho,
permitem realizar trocas de informaes (por exemplo, dados, imagens, softwares) e o compartilhamento de
recursos, como impressoras. Tratando da topologia, admitem diversos modelos, isto , tipo de sistema de
difuso, tais como uma rede de barramento (cabo linear) ou uma rede em anel (TANENBAUM, 2003; p.
18-19).
2.1.1.
Americana
v.2
n.1
p. 12 34
13
13
pacotes, ele apenas envia uma resposta quando recebe um pacote, tornando-o eficiente no quesito para
testes (CHESHIRE; 2006).
2.1.2.
Largura de banda
Segundo o CERT.br (2012), largura de banda a quantidade de dados que pode ser transmitida em
um canal de comunicao, em um determinado intervalo de tempo. um aspecto crucial quando se trata de
velocidade e desempenho de rede, pois est relacionada com o trfego e fluidez do canal para transferncia
de contedos, alm de impactar diretamente na experincia do usurio no uso da rede.
2.2.
4
Hit rate: taxa de acerto do cache, porcentagem de sucesso em que um determinado contedo obtido a partir do cache ao invs de
acessar o contedo original, num servidor externo. Disponvel em:
<http://www.marcosmonteiro.com.br/mm/Cursos/Organizacao_de_Computadores/CACHE.pdf>. Acesso em 5 set. 2013.
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
14
14
locais e as repassa a outros computadores fora da rede local, retornando as respostas aos computadores
que as solicitaram.
Com isso permite agilizar o processo de acesso s pginas da Internet, reduzindo assim o tempo
mdio de espera para acessar um determinado contedo, atravs do mtodo conhecido como cache de
contedos Web, citado anteriormente.
E sobre a viso de Zanoni (2007):
O objetivo principal de um servidor proxy possibilitar que mquinas de uma rede privada possam acessar
uma rede pblica, como a Internet, sem que para isto tenham uma ligao direta com esta. O servidor proxy
costuma ser instalado em uma mquina que tenha acesso direto Internet, sendo que as demais efetuam
as solicitaes atravs desta. Justamente por isto este tipo chamado de proxy, pois um procurador, ou
seja, sistema que faz solicitaes em nome de outros.
Fonte: http://www.hardware.com.br/
De acordo com Pontes, Hirata e Honrio (2008), o proxy/cache colabora com trs dos maiores
desafios dos clientes, sendo eles:
Acelerao de aplicaes e contedo Web: o proxy/cache reduz a latncia, utilizao de banda e
sobrecarga nos servidores, aumentando a distribuio do contedo Web e aplicaes baseadas em Web
como sistemas de CRM (Customer Relationship Management) e ERP (Enterprise Resource Planning);
Segurana na Internet: pode-se implementar processos de segurana, incluindo proxy, caching,
controle de acesso, filtragem de contedo, anti-virus web, scanning SSL (Secure Sockets Layer), bloqueio
de Instant message (msn messenger, AOL Instant Messenger) e P2P (peer to peer conection), antispam e
relatrios; e,
Distribuio de vdeo: O proxy/cache melhora a qualidade dos treinamentos online, vdeos
executivos e servios de vdeo sob demanda.
2.4.
Modelos de proxy
O proxy possui diversas formas de implementao e operao, cada um possui caractersticas e
objetivos especficos que melhor atendem aos requisitos dos clientes para um determinado do tipo de rede,
empresas ou instituies de ensino, sendo eles:
Web proxy:
Tambm denominado de Web proxy/cache, o tipo mais comum de proxy existente, realiza o caching
de pginas web e arquivos que esto localizadas nos servidores Web externos, possibilitando que os usurios
da rede local (LAN) tenham um acesso mais rpido e confivel aos contedos da Internet por eles
requisitados, atravs do armazenamento em cache dos recursos Web, tais como contedos estticos como
figuras e grficos (PONTES; HIRATA; HONRIO, 2008).
Proxy reverso:
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
15
15
Como o prprio nome diz, o proxy reverso funciona ao contrrio do proxy. No modelo convencional de
proxy se faz a interceptao das requisies dos clientes que esto localizados na rede local (LAN) com
destino Internet. Enquanto que no proxy reverso a operao inversa, interceptando requisies vindas da
Internet com destino rede local. Em suma, ambos so responsveis em garantir que o cliente no tenha uma
conexo direta com o servidor que armazena o contedo requisitado, a fim de garantir o anonimato das
estaes clientes (SABOCINSKI NETO, 2009).
Conforme Silva (2011), os benefcios de utilizar proxy reverso os seguintes aspectos:
Segurana: como o proxy a nica interface externa da rede, ele esconde os demais servidores;
Criptografia: a criptografia SSL pode ser delegada ao proxy ao invs dos servidores internos;
Balanceamento de carga: o servidor pode distribuir a carga para vrios servidores da rede;
Cache: assim como o web proxy, o proxy reverso pode manter em cache o contedo esttico das
requisies realizadas, ajudando assim a diminuir a carga dos servidores web; e,
Compresso: o proxy reverso pode tornar o acesso mais rpido atravs da compresso do
contedo acessado.
Proxy transparente:
Segundo Pontes, Hirata e Honrio (2008), conhecido tambm como transproxy, o tipo de proxy onde
no necessrio fazer configuraes adicionais nas estaes clientes (nos navegadores dos computadores,
por exemplo), visto que ele combina NAT (Net Address Translation) com o servidor proxy, facilitando assim o
uso dele em instituies de ensino e empresas, reforando as polticas de uso da rede. Em casos onde no se
utiliza este mtodo, numa configurao manual, por exemplo, h ento a necessidade de especificar
manualmente nos navegadores o endereo IP (Internet Protocol) do proxy bem como a porta de operao.
Como benefcios de sua utilizao, destaca-se o protocolo de roteamento de contedo Web Cache
Communication Protocol (WCCP), desenvolvido pela Cisco Systems em 1997; criado com mecanismos de
balanceamento de carga, redundncia, tolerncia a falhas e garantia de servio (failsafe). Presente nos
roteadores Cisco, ele permite redirecionar o fluxo de trfego de rede em tempo real.
Quando se utiliza roteadores com o protoloco WCCP implementado junto com o servidor proxy
transparente, eles permitem atuar como intermedirio entre a rede local e a internet, provendo uma
distribuio inteligente de caches de rede para maximizar o desempenho de download e disponibilidade de
contedo, reduzindo e otimizando assim a utilizao do link de Internet (CISCO DOCWIKI, 2012).
2.5.
Atualmente, o Squid vem sendo amplamente utilizado por empresas dos mais variados ramos e
portes, indo desde simples casas domsticas at as complexas grandes corporaes. E cada vez mais
implementado em arquiteturas de distribuio de contedo a fim de proporcionar a entrega de contedos
dinmicos, estticos e streaming de vdeo/udio para os milhes de usurios da rede mundial de
computadores (a Internet) com melhor eficincia e racionalizao do uso do canal de comunicao (SQUID
SOFTWARE FOUNDATION, 2011).
Alm de atuar simplesmente como intermediador para o acesso Internet, o Squid possui muitos
outros recursos plausveis e excelentes que proporcionam melhor uso da rede e reduo da utilizao de
banda de Internet. De acordo com Pinheiro (2006), dentre esses recursos, destacam-se:
Cache - atravs desse recurso o Squid armazena em cache o contedo acessado, de forma que se
algum host fizer novamente uma requisio ao mesmo contedo, que j se encontra armazenado, ele recebe
diretamente do cache, sem a necessidade de efetuar uma nova busca dos dados na Internet. O uso desse
recurso pode trazer rapidez maior ao acesso Internet, pois provavelmente o link do host com o proxy bem
mais rpido do que deste com a Internet;
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
16
16
Americana
v.2
n.1
p. 12 34
17
17
processo de Caching, no qual temos as polticas de reposio cache, que mostram os diferentes tipos de
algoritmos que podem ser utilizados para determinar a limpeza do cache, a fim de garantir um fluxo
harmonioso dos objetos em cache.
Essas polticas, por sua vez, norteiam o funcionamento do proxy/cache, pois este opera de acordo
com o tipo de poltica que programado e configurado nele, gerando assim um impacto direto na rede,
dependendo do algoritmo escolhido.
A seguir sero abordadas questes relacionadas ao desempenho, sobre o que influncia e o que
impacta, na viso e perspectiva dos requisitos de hardware para performance de um servidor proxy/cache.
3.1 Requisitos de hardware
Sistemas de Cache Web (caching) certamente exigem muito do desempenho dos subsistemas de
hardware, estressando-os ao ponto mximo. A chave para o bom desempenho cache est ligada diretamente
performance geral do sistema (overall system performance), tendo maior impacto os seguintes aspectos,
listado por ordem decrescente de importncia do mais crtico ao menos crtico:
Tempo de busca aleatria (disco rgido);
Quantidade de memria RAM do sistema;
Taxa de transferncia do disco (throughput); e,
Poder de processamento da CPU, de acordo com Pearson (2012).
Ressalta-se que ao reduzir ou comprometer drasticamente a performance de qualquer um dos
subsistemas de hardware acima mencionados, o desempenho ser prejudicado.
certo que para determinar o hardware necessrio e suficiente (potncia do cache) uma tarefa
bastante difcil, ento a coleta de estatsticas sobre o uso da Internet do local em questo algo para ser feito,
segundo Pearson (2012).
Segundo o autor, para decidir a potncia do cache, muitos fatores precisam ser levados em conta. A
princpio, deve-se ter uma ideia, uma base de quanto ser a carga que o servidor proxy/cache ir sustentar, a
partir do nmero mximo de requisies por minuto. Esta por sua vez indica o nmero de objetos baixados em
um minuto pelos clientes, o que pode ser utilizado para se ter uma ideia estimada do quanto ser a carga do
cache.
Em casos onde no se possuem muitos dados estatsticos sobre o uso da Internet, recorre-se ento a
instalao de mquinas testes (como montar um servidor de cache teste) a fim de estimar ndices para as
tomadas de deciso quanto ao hardware mais adepto e que atenda s necessidades da rede.
Nas sees seguintes, sero explorados itens relacionados aos requisitos de hardware como disco
rgido, memria RAM e CPU (processador).
3.1.1.
Disco rgido
Segundo Pearson (2012), o disco rgido (Hard Disk HD) representa um componente que impacta em
muito no desempenho quando se trata da execuo dos processos de caching, uma vez que os objetos so
armazenados nele. Conforme o autor, dois pontos importantes a serem levados em conta quando se pretende
mensur-los ou para adquir novos HDs so: a velocidade do disco e espao em disco necessrio.
Velocidade do disco: para armazenamento eficaz de objetos no cache, no so necessrios
discos rpidos que retm pequena quantia de dados, mas sim de discos que permitem armazenar uma grande
quantidade de dados baixados e que sejam rpidos o suficiente para no retardar o cache em operaes de
busca/rastreamento.
Um dos pontos mais importantes a serem levados em conta quando se pretende utilizar o Cache em
disco o tempo de busca aleatria. Que o tempo mdio que as cabeas do disco demoram para passar de
uma faixa aleatria para outra, medidas em milissegundos (ms), sendo melhor quando este valor menor.
Espao em disco necessrio: determinar o espao em disco necessrio para o cache (do Squid
por exemplo) depende de vrios fatores, o mais importante prever em quanto tempo o espao disponvel
alocado em disco ir encher ser preenchido pelos objetos Web, normalmente medidos em dias.
Para ter uma noo base, o mtodo mais eficaz se baseando na taxa de transferncia mxima
terica da largura de banda da Internet, o link de Internet, por exemplo:
Para um link de 1mb/s (megabytes por segundo), transfere-se cerca de 125.000 bytes por segundo.
Caso todos os clientes sejam configurados para acessarem o cache, o uso do disco seria de
aproximadamente 125k por segundo, e que significa uma mdia de 450 megabytes por hora. Para um dia
inteiro, ento, o valor ser cerca de 3,6 gigabytes (GB) transferidos por dia.
A partir disso, infere-se que para manter todos os dados para um dia, o HD dever ter 3,6 GB de
espao disponvel para o cache, a fim de conseguir armazenar todos os contedos cacheados.
Sobre a viabilidade do esquema de caching, se este vivel ou no, recorre-se a um valor mnimo,
que exige a taxa de pelos menos dois ou mais usurios visitem a mesma pgina, dentro do perodo de tempo
quando o objeto ainda estiver disponvel no cache. Para os sites maiores, sendo mais populares e mais
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
18
18
acessados, esta meta pode ser facilmente alcanada, como os motores de busca e sites de streaming de
vdeos, google e youtube respectivamente. No entanto, para os sites e pginas menores que so menos
solicitados, o valor dificilmente ser atingido.
Quanto ao tempo que os objetos (pginas) ficam no cache, deve-se ter como basear no nmero de
usurios que as solicitam, com maior prioridade queles requisitados com maior frequncia.
Diante de tais aspectos, a deciso de quanto espao em disco alocar para o cache depender,
prioritamente, da largura de banda disponvel.
3.1.2
Memria RAM
Segundo Pearson (2012), os proxy/cache mantm na memria RAM uma tabela de objetos, devido ao
fato deste realizar buscas e verificaes sobre objetos armazenados no cache da RAM, com isso, um acesso
rpido tabela muito importante e crucial.
Havendo partes da tabela situadas na SWAP (memria virtual, usada para cache de armazenamento
secundrio como paginao e swapping/troca), o desempenho sofre drsticas diminuies. Uma vez que o
tamanho do processo Squid grande, utilizar swapping pode ser algo ruim, pois afeta muito na fluidez do
mesmo.
Para ter noo, cada objeto armazenado no disco ocupa cerca de 75 bytes de RAM para guardar o
ndice (index).
O tamanho mdio de um objeto da Internet de cerca de 13kb (kilobytes), segundo (PEARSON,
2012). Ento, se tiver disponvel um gigabyte de espao em disco, provvel que consiga armazenar 80.000
objetos aproximadamente.
Seguindo a lgica, para os 75 bytes de RAM necessrios por objeto, 80.000 objetos requerem em
torno de seis megabytes de RAM. E supondo que tenha 8 GB de espao em disco, 48 MB de RAM sero
necessrias apenas para guardar os ndices de objeto (index), sem levar em conta (excluindo) a memria
utilizada para o sistema operacional, o binrio do Squid, alm de programas, servios e processos em
execuo (PEARSON, 2012).
3.1.3
CPU
Geralmente o proxy/cache no exerce uma carga intensa CPU, somente durante o processo de
inicializao do mesmo (startup), quando utiliza boa parte do poder de seu processamento. O uso de uma
CPU lenta retardaria o acesso ao cache durante os primeiros minutos ps inicializao.
Mquinas multiprocessadoras geralmente no proporcionam grande aumento de velocidade, apenas
segmentam partes do cdigo do programa, e no ajudam a reduzir os tempos de espera. O que realmente
beneficia e ajuda so: mais memria (para cache de dados) e mais discos rgidos (PEARSON, 2012).
4. O SERVIDOR DE PROXY E CACHE SQUID
Americana
v.2
n.1
p. 12 34
19
19
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
20
20
3) ACLs de horrio so muitos teis pois permitem configurar e programar para liberar o acesso a
determinados contedos, por exemplo, redes sociais e sites de entretenimento nos horrios fora do
expediente, horrios de descanso ou almoo. Exemplo de uso para criar uma ACL chamada hora_almoco,
tendo como intervalo de tempo o horrio 12:30 s 13:30: ACL hora_almoco time 12:30 13:30.
Abaixo temos uma lista dos mais variados tipos de ACL que podem ser utilizados, sendo comumente
os descritos abaixo, conforme a explicao de Pinheiro (2006):
src: faz parte das ACLs de origem, um tipo utilizado para indicar endereos IP de origem. Por
exemplo, para especificar uma determinada faixa ou endereo de rede, tal como: acl rede_adm src
192.168.16.0/24, pode ser tambm endereo de um computador especfico, como acl pc1 src
192.168.16.10/24 ou uma faixa de endereos, como: acl redetotal 192.168.16.10-192.168.16.20/24;
dst: tipo ACL de destino. semelhante ao tipo anterior, mas est relacionado ao endereo de destino,
pode-se utiliz-lo para especificar um determinado endereo IP de destino;
proxy_auth: uma opo muito til quando se pretende implementar autenticao de usurios no
Squid proxy. A autenticao feita com uso de softwares externos. Podem ser passados os nomes dos
usurios ou usada a opo REQUIRED para que seja autenticado qualquer usurio vlido. Exemplo para criar
uma ACL chamada user_passwords e especificar o arquivo que contm os dados necessrios para o
processo de autenticao, localizado em /tmp/user_passwds: acl user_passwords proxy_auth
/tmp/user_passwds;
srcdomain: tipo ACL de origem. Indicado para verificar o domnio da mquina cliente. Os domnios
sero obtidos por resoluo reversa de IP, o que pode causar atrasos para a resposta da requisio. A
definio do domnio deve ser feita da seguinte forma: .meudominio.com.br, no podendo ser esquecido o .
(ponto) no incio. Por exemplo para verificar um determinado domnio de origem:
acl origemdom srcdomain .linuxdebian.br;
dstdomain: tipo ACL de destino. usado da mesma forma que srcdomain, entretanto com relao ao
destino. Exemplo para especificar um determinado domnio de destino:
acl destinodom srcdomain .linuxdebian.br;
srcdom_regex: tipo ACL de origem. Avalia o domnio usando expresses regulares. Seu uso
semelhante as duas anteriores, acrescentando a flexibilidade do uso da expresso regular;
dstdom_regex. tipo ACL de destino. Usado da mesma forma que srcdom_regex, entretanto com
relao ao destino;
time: tipo ACL de horrio. Permite ser utilizado para especificar dias da semana e horrios. Os dias da
semana so definidos atravs de letras que os representam, e os horrios atravs de intervalos na forma
hora:minuto_inicio-hora:minuto_final. Os dias da semana so especificados assim: S - Sunday (domingo), M Monday (segunda-feira), T - Tuesday (tera-feira), W - Wednesday (quarta-feira), H - Thursday (quinta-feira), F
- Friday (sexta-feira) e A - Saturday (sbado);
url_regex: este tipo percorre a URL a procura da expresso regular especificada. Deve ser observado
que a expresso case-sensitive, para que seja case-insensitive deve ser usada a opo -i. o tipo mais
comum de ACL dada a flexibilidade proporcionada pelo uso de expresses regulares. Abaixo um exemplo
para se criar uma ACL chamada PornSites com a finalidade para controle de contedos imprpios, tendo
como base o arquivo pornlist: acl PornSites url_regex "/usr/local/squid/etc/pornlist";
urpath_regex: tipo semelhante a url_regex, mas procura a expresso regular na URL sem levar em
conta o nome do servidor e o protocolo, isto quer dizer que a procura vai ser feita apenas na parte da URL
aps o nome do servidor, como por exemplo, na URL http://www.servidor.com.br/pasta/sexo.html a procura
ser realizada apenas na parte /pasta/sexo.html. Ela tambm case-sensitive, para que seja case-insensitive
deve ser usada a opo -i;
arp: tipo usado para construir lista de acesso baseada no MAC Address da interface de rede do
cliente, ou seja, em vez de utilizar endereo IP da placa, usa-se o seu endereo MAC;
port: permite realizar o controle pela porta de destino do servidor, neste tipo deve ser especificado o
nmero da porta. Exemplo para especificar portas seguras: acl Safe_ports port 80 21 443 563 70 210
1025-65535;
proto: este serve para especificar o protocolo de transferncia (HTTP, FTP entre outros, por exemplo);
maxconn - especifica um limite de conexes vindas de um determinado cliente, interessante para uso
com outras ACLs de forma a limitar quantidades de conexes para determinados endereos especficos.
Exemplo para determinar um limite mximo de cinco conexes por cliente: acl 5conexoes maxconn 5; e,
method: especifica o tipo de mtodo usado para requisies HTTP, como por exemplo GET,
CONNECT ou POST. Exemplo para determinar a utilizao do mtodo CONNECT: acl conectar method
CONNECT.
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
21
21
Para maiores detalhes e informaes sobre o funcionamento de cada delas possvel consultar o site
5
oficial do Squid a respeito das ACLs, disponibilizado pelo Squid FAQ .
4.4 Arquivo de configurao squid.conf
O arquivo de configurao do Squid, squid.conf, nos permite elaborar uma estratgia de controle e
operacionalizao do servidor proxy Squid que melhor se adapta ao ambiente que este est inserido. Por
padro, este arquivo composto por mais de 3.000 linhas, sendo a maior parte deles constitudas de
comentrios sobre as funes de cada TAG (opo) e como devem ser utilizados.
Segundo Pinheiro (2006), a princpio para ter um servidor configurado e funcional preciso de apenas
30 linhas aproximadamente no arquivo, pois se deve considerar que boa parte das opes j definidas no
squid.conf no necessitam ser modificadas, uma vez que representam a configurao mais adequada. Alguns
dos pontos mais importantes e necessrios para ter um proxy cache Squid em funcionamento bsico so as
opes descritas abaixo, conforme o autor:
cache_dir ufs /var/cache/squid 300 64 64: esta opo determina onde e como ser feito o cache
no disco rgido, neste caso o diretrio de cache /var/cache/squid, com o tamanho de 300 MB, tendo 64
diretrios e, dentro de cada um deles, com mais 64 sub-diretrios, necessrios para a operacionalizao do
cache Squid.
Segundo Costa (2013) o fato de deixar estes valores muito pequenos ou muito grandes podem trazer
resultado e impactos diferentes, podendo aumentar ou diminuir consideravelmente a velocidade de
navegao para o usurio final, alm de fatores como desperdio de espao em disco caso configurado
valores mal calculados;
cache_mem 64 MB: opo que define o tamanho, a quantidade de memria RAM que o Squid ir
usar para os objetos em trnsito, isto , a memria que ser utilizada apenas para manipulao dos seus
objetos e no ao total de memria consumida por ele, que pode ser duas ou trs vezes maior. Este valor
geralmente calculado baseando-se no tamanho que ocupado o cache (cache_dir), podendo variar
dependendo do tamanho alocado para o cache e da arquitetura do sistema operacional (SO), sendo diferente
em sistemas 32 bits e 64 bits.
Segundo Costa (2013) um detalhe muito importante que se deve lembrar e ser levado em conta para
efeitos de clculo, que em sistemas 32 bits, para cada GB de HD destinado ao cache, o Squid consome 10
MB de memria RAM e para sistemas 64 bits, para cada GB de HD destinado ao cache, o Squid consome 16
MB de memria RAM.
hierarchy_stoplist cgi-bin ?: opo que vem habilitada por padro, seu uso recomendado pois
responsvel por comunicar ao Squid que este deve buscar os dados diretamente na origem, sem passar
pelos vizinhos na hierarquia (de servidores proxy/cache). Esta configurao se refere a contedo dinmico,
portanto se a URL contm o padro aqui especificado, ser tomada a deciso de buscar diretamente o
contedo no servidor de origem;
Esta ACL diz ao Squid para no armazenar em cache o contedo dos CGIs, pois obviamente no
interessante por tratar-se de contedo dinmico;
As opes acima so definidas por padro pelo Squid pois configuram como so tratados os tempos
de vida de cada um dos objetos armazenados no cache, ou seja, o Squid utiliza estes valores para verificar se
os objetos em cache so os mais recentes ou se esto obsoletos, necessitando assim atualiz-los;
Americana
v.2
n.1
p. 12 34
22
22
23
23
As ACLs acima fazem parte da configurao padro do Squid, sendo o mnimo recomendvel para
utiliz-los. Cada um faz referncia a determinadas porta de conexo ou portas seguras (atravs da acl
SSL_ports e acl Safe_ports), como porta 443 que diz respeito ao HTTPS (conexo segura/criptografada) e
porta 21 ao FTP (protocolo de transferncia de arquivos), por exemplo.
Outras funcionam para especificar determinadas faixas de rede alm da mscara dessa rede,
atravs de ACLs como: acl localhost e acl to_localhost;
Fazem parte da seo em que so configuradas e definidas as ACLs criadas pelo usurio
(administrador de rede), a fim de especificar listas que podem conter endereos IP, sites ou determinadas
palavras-chave que so permitidos o acesso ou negados, como acontece nas ACLs: acl NAO_PORNO e acl
PORNO. Tambm permitido especificar qual rede que se pretende controlar, administrar ou filtar, graas
acl seguinte: acl MINHA_REDE src 192.168.16.0/24;
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
24
24
Esta parte refere-se definio do que ser permitido (allow) ou negado (deny) a passagem/o acesso,
isto , o trfego de dados e informaes. So as regras de acesso referentes s ACLs da parte da
configurao padro do Squid citadas acima. Por exemplo, permitido a passagem de tudo que referente
acl localhost, atravs da linha: http_access allow localhost ;
Semelhante anterior, mas esta faz referncia para controlar as ACLs criadas pelo usurio
(administrador de rede), e tambm especifica do que ser permitido (allow) ou negado (deny) a passagem/o
acesso, isto , o trfego de dados e informaes. Por exemplo, permitida a passagem de tudo que
referente s ACLs USUARIOS, NAO_PORNO e MINHA_REDE concomitantemente, ou seja, tm de
satisfazer as trs ao mesmo tempo, atravs da linha: http_access allow USUARIOS NAO_PORNO
MINHA_REDE;
Seguem mais alguns exemplos de regras:
http_access deny all: esta regra de acesso recomendada para uso como ltima regra da lista
define o acesso ao proxy. Ela diz ao Squid que se nenhuma das regras anteriores for aplicada o acesso ser
ento negado, portanto seu uso vai impedir acessos indesejados ao proxy;
icp_access allow all: permite o acesso a porta icp de acordo com a configurao feita na ACL all,
que no nosso caso representa qualquer origem. Est porta usada para troca de informaes entre
servidores proxy;
error_directory /usr/share/squid/errors/Portuguese: ao usar esta opo pode-se determinar em qual
linguagem sero apresentadas as mensagens de erro, neste caso na lngua portuguesa;
visible_hostname www.meu_seite.com.br: esta opo permite mostrar o nome do servidor
configurado nas mensagens de erro, caso contrrio o Squid ir tentar descobrir o nome; e,
cache_mgr email_administrador: opo para configurao do e-mail do administrador do proxy
que vai aparecer nas mensagens de erro. Isto importante para que os usurios tenham informaes de
como interagir com o responsvel pelo servidor em caso de problemas, como por exemplo um acesso
bloqueado de forma errada.
Por fim, em ocasies onde se utiliza o proxy transparente, h opes que fazem com que o Squid se
comporte como um servidor Web, de forma que o cliente no perceba que est interagindo com um
proxy/cache, apresentadas abaixo:
httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Americana
v.2
n.1
p. 12 34
eficincia do Squid como servidor de cache e proxy para otimizar o uso da banda de Internet, alm de permitir
o controle de acesso a determinados contedos previamente configurados no squid.conf e verificar
caractersticas como o uso de recursos pelo Squid no servidor proxy.
Figura 2: Ilustrao do ambiente de testes utilizando Squid
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
25
25
Componentes notebook
26
26
Especificaes
Intel Celeron(R) Dual-Core CPU T3300 64 bits
Processador
Sistema Operacional
Memria RAM
Disco rgido
Chipset
NVIDIA MCP75L
Qualcomm Atheros AR9285 Wireless Network
Placa de rede
Placa grfica
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
Como foco de teste para o estudo prtico, prope-se o download do software Mozilla Firefox verso
24.0 pt-br (Portugus Brasil), um navegador Web gratuito com tamanho de arquivo 21.6 MB, atravs da
6
pgina oficial da Mozilla Foundation , a desenvolvedora e mantenedora do browser. Com a finalidade de
mostrar a diferena do tempo necessrio para descarregar o arquivo alm da otimizao do uso do link de
Internet, nos dois cenrios acima propostos.
Para cada mquina cliente (duas) ser realizado o download de cinco vezes repetidas e contnuas a
fim de obter uma mdia do tempo total gasto para baixar o arquivo em questo, em ambos os cenrios, com
cache OFF e tambm com cache ON. Totalizando 20 downloads, sendo 10 para os dois clientes no cenrio de
cache OFF e 10 para os mesmos clientes, mas no ambiente cache ON, conforme ilustra na Tabela 2.
Tabela 2: Nmero de repeties download nos dois cenrios propostos
Mtodo de medio
registrado
CPU
Memria
Rede
Mozilla Foundation: Firefox projeto. Disponvel em: <http://www.mozilla.org/firefox/>. Acesso em: 17 out. 2013.
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
27
27
28
28
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
A seguir, mostrado o arquivo de configurao utilizado para o proxy Squid, sendo comentadas as
principais opes utilizadas e do que se tratam cada uma delas:
### Inicio squid.conf ###
http_port 3128 transparent
visible_hostname YOU
error_directory /usr/share/squid3/errors/Portuguese
#dir. de erro em PT
cache_mem 64 MB
#definicao tamanho cache na memoria RAM
maximum_object_size_in_memory 32 KB
#tamanho max do objeto na RAM
maximum_object_size 1024 MB
#tamanho max do objeto no disco
minimum_object_size 0 KB
#tamanho min do objeto no disco
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 100 16 256
#aponta o dir. do cache
access_log /var/log/squid3/access.log squid
#dir dos logs de acessos
acl manager proto cache_object
acl localhost src 127.0.0.1
Americana
v.2
n.1
p. 12 34
29
29
#esta opcao permite negar acesso a sites que possuam como dominio o .com.pt:
http_access deny dominios_compt
30
30
#esta opcao permite negar o acesso a paginas que contenham a palavra bol:
http_access deny blockpalavra1
#nega as duas acls ao mesmo tempo palavrablock E ipblock:
http_access deny palavrablock ipblock
#opcao que libera acesso as maquinas vindos da rede interna:
http_access allow rede_interna
#Opcao final que nega tudo o que nao tiver definido nas opcoes acima:
http_access deny all
#Configuracoes finais mantidas
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
### Fim squid.conf ###
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
31
31
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
2. Enquanto com o cache OFF, a quantidade de consumo se mostrou relativamente menor em ambos
os clientes, com utilizao de 89,24 MB no Debian e 91,26 MB no XP, uma economia de entorno de 35 39
MB de RAM em relao ao cenrio cache ON de ambos clientes.
Consumo: conforme Tabela 5 acima, no quesito de consumo e utilizao das interfaces de rede do
servidor, com o trfego gerado, conclui-se o seguinte:
1. Na interface eth0, que possui conexo com a Internet via NAT com a mquina fsica notebook,
mostrou que o uso da banda, do link significativamente maior quando esta opera no cenrio de cache OFF,
para ambos os clientes, com valores de utilizao do trfego de rede que atingem, em Kbps (kilobits por
segundo), 828,20 Kbps quando o cliente Debian fazia o download do navegador Firefox e 863,60 Kbps para o
cliente XP, realizando a mesma tarefa;
Em modo cache ON, tal valor se mostrou relativamente muito menor, algo plausvel devido ao recurso
Web cache, mas em contrapartida, consome uma quantidade maior de RAM. Com valores de utilizao de
trfego em 237,20 Kbps (cliente Debian) e 176,50 Kbps (cliente XP), uma diferena de aproximadamente
591687 Kbps a menos de uso da rede eth0 de ambos clientes; e,
2. Na interface eth1, que opera no modo rede interna para comunicao somente com as mquinas
clientes, percebe-se que o uso relativamente muito maior quando o Squid est configurado no modo cache
ON, tendo 6896,90 Kbps de trfego alavancado pelo Debian e 7338,30 Kbps pelo XP.
Fato este explicado pelo cache Squid, uma vez que ambos os clientes solicitam o arquivo a partir do
cache, consumindo assim mais recursos da rede local, reduzindo o uso do eth0 (internet via NAT).
Realizando-se uma anlise em mbito geral, comparando-se todos os resultados obtidos neste
projeto prtico utilizando Squid, pode-se afirmar que a implantao de um proxy cache Squid realmente algo
muito interessante e plausvel. Os resultados obtidos nos testes mostraram ser muito satisfatrios, com
ganhos (em benefcio dos clientes) no quesito reduo do tempo necessrio para download entre o cenrio
cache OFF e cache ON em 32,63% (Debian) e 30,40% (XP). Os testes tambm mostraram consumir poucos
recursos da mquina servidor Squid, com taxas de utilizao em nveis razoavelmente aceitveis, em termos
de CPU, memria RAM e das interfaces de rede.
Outro aspecto a ser levado em considerao, justificando o uso do Squid em relao ao seu recurso
de Cache Web, um servio muito til e eficiente quando se tem mais de um usurio da rede local requisitando
um mesmo objeto ou contedo. Neste contexto, a partir do segundo acesso a um determinado contedo, o
proxy disponibilizar tal objeto solicitado diretamente a partir de seu cache, sem precisar de um novo acesso a
um servidor externo, reduzindo assim a utilizao da banda de Internet, do link disponvel.
6. CONSIDERAES FINAIS
O aumento da demanda do uso da Internet, impulsionado pelos mais diversos usos, como usurios
finais, empresas instituies de ensino e pesquisa, rgo pblicos e governamentais entre outros, tem
deixado o acesso Internet insatisfatrio e lento, devido as altas latncias e tempos de resposta. Em vista
deste cenrio, a utilizao de servidores de proxy e cache, em especial o Squid, uma das solues e
alternativas melhor propostas para minimizar o problema.
A partir do desenvolvimento deste trabalho, com a apresentao e anlise sobre servidores proxy
cache, e consequentemente do Squid, observa-se que o recurso que realiza cache de contedos da Web,
conhecido como Cache Web, disponibilizado pelo proxy cache Squid realmente muito til, obtendo
resultados positivos no estudo prtico realizado neste trabalho, pois reduz a utilizao da banda de Internet, o
tempo necessrio para realizar download de arquivos, alm de permitir, como recursos adicionais, o controle
de acesso determinadas pginas e contedos considerado inapropriados para certos horrios expedientes e
nos ambientes acadmicos para os perodos de aula, e outras em ocasies para negar o acesso a sites com
teor imprprio.
Acelerar o acesso Internet, dos contedos que ela dispe, melhorar o desempenho e garantir um
melhor fluxo de funcionamento da rede como um todo, a implantao do Squid certamente uma soluo
muito vivel, tanto em fatores de obteno de benefcios operacionais s instituies dos mais diversos tipos
como para questes de custo, no exigindo grandes investimentos financeiros da organizao que utilizar,
por ser um software livre e gratuito, licenciado nos termos da General Public License (GPL) tendo seu
cdigo-fonte com livre acesso, uso e modificao. Em contrapartida, necessrio lembrar que existe um custo
complementar, muita vezes importante e requerido, a fim de saber como administrar e operar o Squid da
forma mais adequada, eficiente e eficaz, uma vez que isso exige um certo tempo para aprendizado e
configurao do mesmo.
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
32
32
Como proposta de trabalhos futuros, sugere-se o teste e implantao do Squid em um ambiente real,
com a utilizao de computadores fsicos, pois os valores obtidos, o desempenho e a performance em mbito
geral seriam melhor mensurados e aproveitados.
REFERNCIAS BIBLIOGRFICAS
AGUADO, A. G. Tutorial proxy Squid e Sarg verso 3. 2013. Disponvel em: <http:
//www.fatec.edu.br/moodle/pluginfile.php/2869/mod_resource/content/0/Encontros%20-%20Squid%20-%20V
1.pdf>. Acesso em: 18 abr. 2013.
ARLITT, M.; FRIEDRICH, R.; JIN, T. Performance evaluation of web proxy cache replacement policies.
California: Editora Springer Science, 1998.
CARDOSO, J. Usando o comando wget no Windows. 2010. Disponvel em:
<http://www.oficinadanet.com.br/artigo/windows/usando_o_comando_wget_no_windows>. Acesso em: 17
out. 2013.
CERT.br. Cartilha de segurana para internet. Disponvel em: <http://cartilha.cert
.br/>. Acesso em: 02 set. 2013.
CHESHIRE, S. Latency and the quest for interactivity. Disponvel em: <http://
www.stuartcheshire.org/papers/LatencyQuest.html>. Acesso em: 20 ago. 2013.
CISCO DOCWIKI. WCCP network caching. 2012. Disponvel em: <http://docwiki.
cisco.com/wiki/Network_Caching_Technologies#WCCP_Network_Caching>. Acesso em: 27 ago. 2013.
COSTA, J. R. Squid: Calculando cache_dir e cache_mem. Disponvel em: <http://
www.vivaolinux.com.br/dica/Squid-Calculando-cache-dir-e-cache-mem>. Acesso em: 03 nov. 2013.
COTTLE, G. New report reveals shifting trends in global Internet traffic. Disponvel em:
<http://blogs.informatandm.com/2172/press-release-new-report-reveals-shifting-trends-in-global-internet-traffic
/>. Acesso em: 24 ago. 2013.
FERNANDES, A. R.; SERRO JUNIOR, C. C. Implementao de um servidor proxy-cache Squid em
ambiente de redes corporativa. 2010. Disponvel em:
<http://www3.iesam-pa.edu.br/ojs/index.php/sistemas/article/view/555>. Acesso em: 30 jul. 2013.
FREE SOFTWARE FOUNDATION. GNU Wget. 2012. Disponvel em: <http://www.
gnu.org/software/wget/>. Acesso em: 17 out. 2013.
PEARSON, O. Squid user guide. Disponvel em: <http://www.deckle.co.uk/squid-users-guide/>. Acesso em:
30 set. 2013.
PINHEIRO, A. C. S. Uso e configurao do Squid. Disponvel em: <http://www.
squid-cache.org.br/index.php?option=com_content&task=view&id=81&Itemid=27>. Acesso em: 13 set. 2013.
PONTES, E.; HIRATA, S.; HONRIO, S. Segurana e acelerao de internet: Utilizao de proxy servers
para manuteno de web caches. Disponvel em: <http://www.pontes.inf.br/docs/proxy.pdf>. Acesso em: 11
ago. 2013.
SABOCINSKI NETO, A. Proxy reverso? O que danado isso?. Disponvel em:
<http://alfredosabo.blogspot.com.br/2009/05/proxy-reverso-o-que-danado-e-isso.html>. Acesso em: 28 ago.
2013.
SILVA, A. Q. Implantao de servidor proxy utilizando o Squid em modo no autenticado, junto com o
DansGuardiam para controle de contedo na instituio de ensino. 2010. Disponvel em:
<http://www.ginux.ufla.br/node/317>. Acesso em: 30 jul. 2013.
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
33
33
R.Tec.FatecAM
Americana
v.2
n.1
p. 12 34
34
34