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

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

Servidor proxy Squid

  • 2.
    Introdução ................................................................................................................................................3 Conceito eAplicaçõ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
  • 3.
    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
  • 4.
    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
  • 5.
    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
  • 6.
    Os servidores deproxy 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
  • 7.
    Ilustração 2 -Cache 6 UFCD 0841 – Servidores Web e Acesso á Internet
  • 8.
    Antes de começara 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
  • 9.
    Antes de maisnada, 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
  • 10.
    Toda a estruturado 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
  • 11.
    Com esta configuraçãoacima, 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
  • 12.
    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
  • 13.
    Para procedermos aconfiguraçã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
  • 14.
    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
  • 15.
    Uma das configuraçõesmais 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
  • 16.
    Em seguida vamosdeterminar 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
  • 17.
    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
  • 18.
    De seguida vema 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
  • 19.
    O Squid guardao 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
  • 20.
    A gestão dosquid 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
  • 21.
    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
  • 22.
    Ilustração 22 -Login Webmin 21 UFCD 0841 – Servidores Web e Acesso á Internet
  • 23.
    Para a criaçãode 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
  • 24.
    Ilustração 24 -Painel de restrições do Webmin 23 UFCD 0841 – Servidores Web e Acesso á Internet
  • 25.
    Todas as configuraçõesforam 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
  • 26.
    No presente trabalhoexploramos 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
  • 27.
    Este trabalho tevecomo 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