Você está na página 1de 27

Introdução ................................................................................................................................................

Conceito e Aplicações de um Servidor Proxy ............................................................................... 4

Proxy e respectiva Cache de Acessos ...............................................................................................5

Configuração Base ................................................................................................................................. 7

Configuração Transparente .............................................................................................................. 12

Activação do Squid e cache de acessos......................................................................................... 14

Activação dos logs do squid .............................................................................................................. 18

Gestão do Squid com o Webmin .................................................................................................... 19

Criação de regras baseadas em IP e nomes de páginas ........................................................ 22

Utilização de um browser para utilização do Squid ............................................................... 24

Conclusão ............................................................................................................................................... 25

Bibliografia ............................................................................................................................................ 26

1
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 1 - Ubuntu Squid ............................................................................................................... 4
Ilustração 2 - Cache .............................................................................................................................. 6
Ilustração 3 - Instalação Squid ........................................................................................................... 7
Ilustração 4 - Backup do ficheiro squid.conf .................................................................................8
Ilustração 5 - Ficheiro de configuração squid.conf ......................................................................8
Ilustração 6 - Adicionar ACL, com o nome da rede e gama de IP ...................................... 9
Ilustração 7 - Permitir o acesso à rede FF ..................................................................................... 9
Ilustração 8 - Adicionar ACL´S sobre a lista de sites bloqueados e não bloqueados .....10
Ilustração 9 - Reiniciar servidor Squid ............................................................................................ 11
Ilustração 10 - Permitir ou restringir sites das listas .................................................................... 11
Ilustração 11 - Configuração transparente.................................................................................... 12
Ilustração 12 - Redireccionar o tráfego vindo pela porta para a porta 3128 através do
firewall via NAT .................................................................................................................................... 13
Ilustração 13 - cache_mem 64MB ................................................................................................... 14
Ilustração 14 - Determinar o tamanho máximo dos ficheiros que serão guardados na
cache feito na memória RAM .......................................................................................................... 15
Ilustração 15 - Definir a percentagem de uso da cache que fará o Squid começar a
descartar os ficheiros mais antigos .................................................................................................. 16
Ilustração 16 - Definir o máximo e mínimo do tamanho guardado em cache dos
downloads efectuados. ....................................................................................................................... 16
Ilustração 17 - Opção cache_dir ....................................................................................................... 17
Ilustração 18 - Ficheiro access.log ..................................................................................................... 18
Ilustração 19 - Preparação do sistema .......................................................................................... 19
Ilustração 20 - Instalação do Webmin .........................................................................................20
Ilustração 21 - Download do Webmin ..........................................................................................20
Ilustração 22 - Login Webmin .......................................................................................................... 21
Ilustração 23 - Restrição por IP ....................................................................................................... 22
Ilustração 24 - Painel de restrições do Webmin ........................................................................ 23

2
UFCD 0841 – Servidores Web e Acesso á Internet
O Squid é uma aplicação bastante popular no âmbito da configuração de routers e
firewall no Linux, para além das funcionalidades de qualquer proxy HTTP, o Squid
possibilita dispor de mecanismos de caching das páginas mais acedidas e de
mecanismos de controlo de acessos, suporta ainda a comunicação com outras proxies
na conjunção de hierarquias de caches.

Este pode ser configurado no modo normal ou no modo transparente, por último, é
indispensável dispor de funcionalidades do IPTables para o redireccionamento das
ligações HTTP para o proxy, também será analisada a configuração do servidor
Squid nos dois métodos acima referidos.

3
UFCD 0841 – Servidores Web e Acesso á Internet
O Squid é uma aplicação servidora de armazenamento Web completa que fornece
serviços de proxy e de armazenamento para Protocolo de Transporte de Hipertexto
(HTTP), Protocolo de Transporte de Ficheiros (FTP), e outros protocolos de rede
populares. O Squid pode implementar armazenamento e execução de proxy de
pedidos de Camadas de Soquetes Seguros (SSL) e armazenamento de pesquisas a
Servidor de Nomes de Domínio (DNS), e executar armazenamento transparente. O
Squid suporta ainda uma ampla variedade de protocolos de armazenamento, como
o Protocolo de Armazenamento da Internet, (ICP) o Protocolo de Armazenamento
de Hipertexto, (HTCP) o Protocolo de Direccionamento de Tabelas de
Armazenamento (CARP), e o Protocolo Coordenação de Armazenamento Web
(WCCP). O servidor de armazenamento proxy Squi8d é uma excelente solução para
várias necessidades de armazenamento e proxy do servidor, e cresce desde uma rede
de um pequeno escritório até uma rede de nível empresarial, enquanto oferece
mecanismos de acesso individualizado o monitorização de parâmetros críticos via
Protocolo de Gestão de Redes Simples, Simple Network Management Protocol
(SNMP). Ao seleccionar um sistema para utilizar como servidor Squid dedicado, ou
servidor de armazenamento temporário, assegure-se que esse sistema possui bastante
memória RAM, dado que o Squid utiliza bastante para assegurar um desempenho
melhorado.

Ilustração 1 - Ubuntu Squid


4
UFCD 0841 – Servidores Web e Acesso á Internet
Os servidores de proxy cache são implementados na camada de aplicativo e
processam protocolos Internet específicos, tais como http e FTP. São definidas regras
no servidor proxy para determinar como um pedido de estação de trabalho deve ser
processado.

Uma das principais tarefas de um servidor proxy é armazenar temporariamente


páginas da Web e arquivos de FTP para clientes proxy. Esses tipos de servidores proxy
são chamados de servidores de cache proxy. A cache aumenta o desempenho da
rede ao reduzir a quantidade de dados que são transferidos de fora da rede local.

Para implementar o proxy caching, cada estação de trabalho da rede é configurada


como um cliente proxy para um determinado serviço. Por exemplo, um cliente proxy
Web iria configurar seu navegador (browser) para reconhecer o servidor proxy.
Quando um cliente fizer um pedido no navegador para baixar uma certa página, o
navegador fará o pedido ao servidor proxy. O servidor proxy contém armazenadas as
páginas visitadas recentemente. Esta cache contém as páginas Web que as estações
de trabalho em toda a rede baixaram recentemente.

O servidor proxy verifica o seu cache para ver se a página da está disponível. Se a
página estiver disponível na cache será enviada ao cliente a página armazenada. Se
a página não estiver na cache, o servidor proxy baixará do site em questão,
armazenará essa página no seu cache e a enviará à estação de trabalho.

Para garantir que as páginas na cache não estejam desactualizadas, os dados da


cache proxy expiram após um tempo pré-determinado. No Squid, esta configuração
é chamada de tempo de renovação de objeto (som, vídeo, arquivos texto, etc...).

Este processo aumenta o desempenho da rede porque a página é baixada


imediatamente para o cliente a partir do servidor proxy, evitando ter de baixá-la da
Internet.

5
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 2 - Cache

6
UFCD 0841 – Servidores Web e Acesso á Internet
Antes de começar a configuração base, vamos primeiro instalar o Squid, para tal
utilizamos o comando “apt-get install squid squid-common”, vejamos:

Ilustração 3 - Instalação Squid

Depois de instalado, vamos para a directoria /etc/Squid, para procedermos então à


configuração base.

Esta configuração é realizada no ficheiro de configuração squid.conf, este ficheiro


define as configurações, tais como o número da porta HTTP em que o Squid irá ouvir
os pedidos HTTP, pedidos de entrada e saída, informações de time-out e dados de
acesso à firewall. O ficheiro é criado durante a instalação do Squid.

O ficheiro squid.conf é definido com as configurações padrão do Squid e pode ser


utilizado após várias modificações. É necessário realizar as alterações, pois por
padrão, o squid.conf nega o acesso a todos os navegadores. O Squid será
completamente inútil até que façamos as alterações no ficheiro.

Cada opção de configuração no squid.conf é identificada como uma tag. Cada tag é
uma configuração do Squid. Por exemplo, a definição da porta de pedido do cliente
HTTP é identificada pela tag http_port. Vamos então configurar o nosso ficheiro para
que o Squid funcione correctamente.

7
UFCD 0841 – Servidores Web e Acesso á Internet
Antes de mais nada, nada melhor que salvaguardar o nosso ficheiro original, para isso
procedemos ao seu backup, utilizando o comando “cp squid.conf squid.conf.bkp”:

Ilustração 4 - Backup do ficheiro squid.conf

Depois através do editor Gedit, vamos então começar a editar o nosso ficheiro de
configuração “sudo gedit /etc/squid/squid.conf”

Ilustração 5 - Ficheiro de configuração squid.conf

8
UFCD 0841 – Servidores Web e Acesso á Internet
Toda a estrutura do Squid é baseada em ACLs (listas de acessos). Vamos agora criar
uma lista de acesso básica para os utilizadores.

A nossa rede é 10.0.0.0/8, então criamos as seguintes linhas no squid.conf, na seção


das ACLs: “acl ff src 10.0.0.0/8” e “ http_access allow ff”:

Ilustração 6 - Adicionar ACL, com o nome da rede e gama de IP

Ilustração 7 - Permitir o acesso à rede FF

9
UFCD 0841 – Servidores Web e Acesso á Internet
Com esta configuração acima, já conseguimos aceder à internet, mas, ainda não há
filtros, onde podemos bloquear os sites indesejados. Vamos ver agora adicionar duas
ACLs, onde vamos armazenar os sites bloqueados e os não bloqueados, antes de
adicionarmos então as duas ACL´S acima referidas, antes vamos criar dois
documentos de texto, um com a lista dos sites bloqueados e outro com a lista dos sites
não bloqueados, para isso usamos os seguintes comandos “sudo touch
/etc/squid/bloqueados.txt e sudo touch /etc/squid/nao_bloqueados.txt ”. Em seguida
vamos ao Squid.conf e vamos adicionar mais duas ACL´S, “acl bloqueados url_regex -
i "/etc/squid/bloqueados.txt e acl nao_bloqueados url_regex -i
"/etc/squid/nao_bloqueados.txt”:

Ilustração 8 - Adicionar ACL´S sobre a lista de sites bloqueados e não bloqueados

Logo a seguir as ACL´s adicionadas anteriormente colocamos as seguintes linhas:


“http_access deny bloqueados e http_access allow nao_bloqueados”, estas duas linhas
vão impedir o acesso dos sites contidos na lista do ficheiro bloqueados.txt e permitir o
acesso da lista do ficheiro não_bloqueados.txt:

10
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 10 - Permitir ou restringir sites das listas

Por fim da configuração base reiniciamos o Squid, através do comando “sudo service
squid start”

Ilustração 9 - Reiniciar servidor Squid

11
UFCD 0841 – Servidores Web e Acesso á Internet
Para procedermos a configuração transparente, as alterações a efectuar serão
realizadas no ficheiro squid.conf, como podemos observar este ficheiro é
importantíssimo para as configurações do proxy.

No ficheiro squid.conf procuramos por a linha “http_port 3128” e adicionamos a


palavra transparent, ficando da seguinte forma “http_port 3128 transparent”:

Ilustração 11 - Configuração transparente

O funcionamento do proxy transparente deve-se ao fato de redireccionarmos o


tráfego vindo pela porta para a porta 3128 através do firewall via NAT. Digitamos o
seguinte comando, para fazer este redireccionamento “iptables -t nat -A
PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128”:

12
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 12 - Redireccionar o tráfego vindo pela porta para a porta 3128 através do firewall via
NAT

13
UFCD 0841 – Servidores Web e Acesso á Internet
Uma das configurações mais importantes em relação ao desempenho do proxy e à
optimização do tráfego da rede é a configuração das caches, onde o Squid guarda as
páginas e ficheiros já acedidos de forma a fornecê-los rapidamente quando
solicitados novamente. O Squid trabalha com dois tipos de cache:

 Cache rápida, feito usando parte da memória RAM do servidor;


 Cache um pouco mais lento porém maior, feito no disco rígido.

Esta configuração da cache é feita adicionando mais algumas linhas no arquivo de


configuração, squid.conf, vejamos:

A configuração da quantidade de memória RAM dedicada a cache é feita


adicionando a opção "cache_mem", mais a quantidade de memoria que queremos
dedicar, neste caso 64MB:

Ilustração 13 - cache_mem 64MB

14
UFCD 0841 – Servidores Web e Acesso á Internet
Em seguida vamos determinar o tamanho máximo dos ficheiros que serão guardados
na cache feito na memória RAM, através do comando
“maximum_object_size_in_memory 64 KB”:

Ilustração 14 - Determinar o tamanho máximo dos ficheiros que serão guardados na cache feito na
memória RAM

Em seguida vem a configuração da cache em disco, que armazenará o grosso dos


ficheiros. Por defeito, o máximo de download é de 16 MB e o mínimo é zero, o que faz
com que mesmo as imagens e ficheiros pequenos sejam armazenados na cache.
Quase sempre é mais rápido ler a partir da cache do que baixar de novo da web,
mesmo que o ficheiro seja pequeno.

Se fizermos downloads de ficheiros grandes com frequência e desejamos que estes


fiquem armazenados na cache, aumentamos o valor usando a linha
“maximum_object_size". Isso é especialmente útil para quem precisa baixar muitos
ficheiros através do apt-get ou até do Windows Update em muitos computadores da
rede. Se quisermos que a cache armazene arquivos de até 512 MB, ficaria o seguinte:

15
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 16 - Definir o máximo e mínimo do tamanho guardado em cache dos downloads
efectuados.

O próximo passo passa por definir a percentagem de uso da cache que fará o Squid
começar a descartar os ficheiros mais antigos. Por defeito, sempre que a cache atingir
95% de uso, serão descartados os ficheiros mais antigos até que a percentagem volte
para um número abaixo de 90%:

Ilustração 15 - Definir a percentagem de uso da cache que fará o Squid começar a descartar os
ficheiros mais antigos
16
UFCD 0841 – Servidores Web e Acesso á Internet
De seguida vem a opção "cache_dir", que é composta por quatro valores. O primeiro,
(/var/spool/squid) indica a pasta onde o Squid armazena os ficheiros da cache,
enquanto o segundo (2048) indica a quantidade de espaço no HD (em MB) que será
usada para acache. Aumentamos o valor para termos muito espaço em disco no
servidor.

Continuando, os números 16 e 256 indicam a quantidade de subpastas que serão


criadas dentro da directoria. Por defeito, temos 16 pastas com 256 subpastas cada
uma. O número ideal de pastas e subpastas para um melhor desempenho varia de
acordo com o sistema de ficheiros usado, mas esta configuração padrão é adequada
para a maioria das situações. Combinando as quatro opções, ficaria o seguinte:

Ilustração 17 - Opção cache_dir

As alterações mais importantes para um bom funcionamento do squid foram


efectuadas.

A cache do squid foi configurada agora o nosso servidor esta muito mais rápido no
carregamento de páginas, devido ao aumento do tamanho da cache.

17
UFCD 0841 – Servidores Web e Acesso á Internet
O Squid guarda o log de acesso no ficheiro "/var/log/squid/access.log”, ou seja o logs
são todos guardados neste ficheiro, vejamos:

Ilustração 18 - Ficheiro access.log

A título de curiosidade, este ficheiro é usado pelo Sarg para gerar as páginas com as
estatísticas de acesso, bem como outras opções referentes aos clientes squid na rede.

18
UFCD 0841 – Servidores Web e Acesso á Internet
A gestão do squid remotamente, torna-se numa ferramenta muito importante
devido à facilidade de acesso, tanto ao proxy, bem como a outros serviços existente,
por exemplo, SSH, HTTP, etc…

Para tal vamos instalar o Webmin, depois de instalado podemos então gerir o squid,
vejamos então como instalar. Vamos usar o seguinte comando “sudo aptitude install
perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl
libmd5-perl”:

Ilustração 19 - Preparação do sistema

De seguida vamos fazer o download do webmin através do comando “wget


http://prdownloads.sourceforge.net/webadmin/webmin_1.510_all.deb”:

19
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 21 - Download do Webmin

O próximo passo é a instalação do pacote descarregado anteriormente, através do


comando “ sudo dpkg -i webmin_1.540_all.deb”:

Ilustração 20 - Instalação do Webmin

Pronto o Webmin está instalado e pronto a ser utilizado:

20
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 22 - Login Webmin

21
UFCD 0841 – Servidores Web e Acesso á Internet
Para a criação de regras baseadas em IP e nomes de páginas, vamos utilizar o
Webmin, para criar uma ACL em que definimos a restrição a determinado IP, neste
caso o “10.0.2.2”, vejamos:

Ilustração 23 - Restrição por IP

No painel de controlo de acessos do webmin podemos verificar que ficou definida a


nova regra:

22
UFCD 0841 – Servidores Web e Acesso á Internet
Ilustração 24 - Painel de restrições do Webmin

23
UFCD 0841 – Servidores Web e Acesso á Internet
Todas as configurações foram realizadas consoante as nossas necessidades, a imagem
seguinte mostra como o nosso Proxy está a funcionar e mostra também a utilização
de um browser para a utilização do Squid:

24
UFCD 0841 – Servidores Web e Acesso á Internet
No presente trabalho exploramos a utilização do Ubuntu server como um servidor
Proxy de uma rede informática, vimos igualmente que existem dois tipos de
configurações, a configuração base e a transparente, que envolve a implementação
do IPTables, que consiste no redireccionamento do tráfego vindo pela porta para a
porta 3128 através do firewall via NAT. Para cada uma delas necessitamos sempre do
ficheiro de configuração squid.conf, torna-se este o principal e mais importante
ficheiro para a sua configuração, nele podemos definir o tipo de segurança
pretendida, definir o tamanho da cache que o proxy vai utilizar e tornar assim o
nosso servidor mais rápido e fiável, além disso ainda temos a possibilidade da
utilização de recursos escassos como a largura de banda disponível numa ligação à
internet.

Um ponto muito importante visto neste trabalho foi o acesso remoto através do
Webmin, torna-se assim muito fácil a configuração e gestão do servidor proxy.

25
UFCD 0841 – Servidores Web e Acesso á Internet
Este trabalho teve como base os seguintes sites:

 http://www.squid-cache.org/;
 http://pt.wikipedia.org/wiki/Squid;
 http://www.hardware.com.br/livros/servidores-linux/configurando-servidor-
proxy-com-squid.html;
 http://www.vivaolinux.com.br/artigo/Servidor-proxy-%28Squid%29/?pagina=1;
 http://www.ubuntugeek.com/how-to-setup-transparent-squid-proxy-server-
in-ubuntu.html;
 https://help.ubuntu.com/community/Squid;
 http://en.kioskea.net/faq/804-ubuntu-installing-an-http-proxy-server-squid;
 http://wiki.ubuntu-br.org/Squid;
 http://www.jordanielalves.com.br/linux/configurando-servidor-squid-no-
ubuntu/;
 http://www.vivaolinux.com.br/artigo/Controle-de-acesso-a-internet-com-
Squid/?pagina=4;
 http://ubuntuforum-pt.org/index.php?topic=44364.0;
 http://www.mlaureano.org/guias_tutoriais/GuiaInstSquid.htm;
 http://www.ubuntugeek.com/webmin-installation-and-configuration-in-
ubuntu-linux.html;
 http://pplware.sapo.pt/linux/webmin-1-510-controle-o-seu-linux-via-browser/;
 http://www.kelvinwong.ca/2010/05/22/installing-webmin-on-ubuntu-server-
10-04-lts-lucid/.

26
UFCD 0841 – Servidores Web e Acesso á Internet

Você também pode gostar