servidor proxy squid

27

Upload: filipe-fernandes

Post on 18-Dec-2014

2.824 views

Category:

Documents


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Servidor proxy Squid
Page 2: Servidor proxy Squid

1 UFCD 0841 – Servidores Web e Acesso á Internet

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

Page 3: Servidor proxy Squid

2 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

Page 4: Servidor proxy Squid

3 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.

Page 5: Servidor proxy Squid

4 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

Page 6: Servidor proxy Squid

5 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.

Page 7: Servidor proxy Squid

6 UFCD 0841 – Servidores Web e Acesso á Internet

Ilustração 2 - Cache

Page 8: Servidor proxy Squid

7 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:

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.

Ilustração 3 - Instalação Squid

Page 9: Servidor proxy Squid

8 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”:

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 4 - Backup do ficheiro squid.conf

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

Page 10: Servidor proxy Squid

9 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

Page 11: Servidor proxy Squid

10 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”:

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:

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

Page 12: Servidor proxy Squid

11 UFCD 0841 – Servidores Web e Acesso á Internet

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

Ilustração 10 - Permitir ou restringir sites das listas

Ilustração 9 - Reiniciar servidor Squid

Page 13: Servidor proxy Squid

12 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”:

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”:

Ilustração 11 - Configuração transparente

Page 14: Servidor proxy Squid

13 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

Page 15: Servidor proxy Squid

14 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

Page 16: Servidor proxy Squid

15 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”:

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:

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

Page 17: Servidor proxy Squid

16 UFCD 0841 – Servidores Web e Acesso á Internet

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 16 - Definir o máximo e mínimo do tamanho guardado em cache dos downloads efectuados.

Ilustração 15 - Definir a percentagem de uso da cache que fará o Squid começar a descartar os ficheiros mais antigos

Page 18: Servidor proxy Squid

17 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:

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.

Ilustração 17 - Opção cache_dir

Page 19: Servidor proxy Squid

18 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:

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.

Ilustração 18 - Ficheiro access.log

Page 20: Servidor proxy Squid

19 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”:

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

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

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

Page 21: Servidor proxy Squid

20 UFCD 0841 – Servidores Web e Acesso á Internet

O próximo passo é a instalação do pacote descarregado anteriormente, através do comando “ sudo dpkg -i webmin_1.540_all.deb”:

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

Ilustração 21 - Download do Webmin

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

Page 22: Servidor proxy Squid

21 UFCD 0841 – Servidores Web e Acesso á Internet

Ilustração 22 - Login Webmin

Page 23: Servidor proxy Squid

22 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:

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

nova regra:

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

Page 24: Servidor proxy Squid

23 UFCD 0841 – Servidores Web e Acesso á Internet

Ilustração 24 - Painel de restrições do Webmin

Page 25: Servidor proxy Squid

24 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:

Page 26: Servidor proxy Squid

25 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.

Page 27: Servidor proxy Squid

26 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/.