Servidor proxy


Firewall, Proxy e gateway???


  • Qual a relação entre esses três elementos da rede?

São três conceitos de servidores que não se podem desagregar ou separar pois, quase sempre num Firewall está montado um Proxy ou, um Proxy esta a funcionar como Firewall e, em ambos os casos um servidor Proxy funciona como um Gateway para as redes externas (Internet) á nossa rede (Intranet).



TOPOLOGIA MUITO ENCONTRADA NAS EMPRESAS


O QUE É UM PROXY ???



  • O objetivo principal de um servidor proxy é possibilitar que máquinas de uma rede privada possam acessar uma rede pública, como a Internet, sem que para isto tenham uma ligação direta com esta.


  • Proxies, de uma maneira geral, funcionam como firewall e filtro de conteúdo.

O que é um proxy ??? (cont.)



  • Os servidores proxy ajudam a melhorar o desempenho na Web armazenando uma cópia das páginas da Web utilizadas com mais freqüência.


  • Quando um navegador solicita uma página que está armazenada na coleção do servidor proxy (o cache), ela é disponibilizada pelo servidor proxy, o que é mais rápido do que acessar a Web.

principais motivos para adoção?


 CONTROLE DE NAVEGAÇÃO
 CACHE DE NAVEGAÇÃO

  • Como todas as requisições para web passam por ele, fica fácil fazer um controle de navegação.

  • O Proxy-Cache acelera bastante a navegação dos principais endereços acessos pela rede interna.



  • O Squid é um proxy-cache de alta performance para clientes web, suportando protocolos FTP, gopher e HTTP. O Squid mantém meta dados e especialmente objetos armazenados na RAM, cacheia buscas de DNS e implementa cache negativo de requisições falhas.

POrque usar o squid?


  • Cache
  • Autenticação
  • Registro de Acessos
  • Controle Centralizado
  • Segurança
  • Variedade de ACL's
  • Proxy Transparente

Grande número de empresas que utilizam essa ferramenta, garante a sua utilização.

Tipos comuns de acl's

  • ACL's de Origem
    • ACL’s de origem são utilizadas para controlar todo e qualquer acesso que tenha como origem um determinado padrão.
  • ACL's de Destino
    • ACL’s destino são mais comuns e frequentemente utilizadas para criar padrões que casem com determinados endereços de rede, endereço de domínios, partes de um domínio e também por expressões regulares. Vamos dar uma olhada na construção desses ACL’s. 
  • ACL's de Horário
    • ACL’s de horário são muito úteis. quando queremos, por exemplo, permitir acesso a sites de relacionamento durante o horário de almoço ou fora do horário de expediente. Vamos ver uma ACL’s que poderíamos utilizar para especificar o horário de almoço, e outra para especificar o horário da manhã.
        

MONtagem de uma acl


acl <nome-da-acl>  < tipo-da-acl> <padrão-da-acl>


EXEMPLOS:

acl rede_interna src 192.168.1.0/24

acl domínios_liberados dstdomain .uol.com.br .terra.com.br

acl almoco time MTWHF 12:00-13:30

Filtros utilizados por acl's


  • src – filtro por rede ou endereço IP
  • time – filtro por hora e dia da semana
  • urlpath_regex – filtro de complemento de uma url
  • url_regex – filtro de um string na url
  • dstdomain – filtro de uma url
  • proxy_auth – filtro por usuários autenticados
  • arp – filtro por MAC address
  • proto – filtro por protocolos
  • port – filtro por porta

FIltro time


Abreveação | Dia da semana
S – domingo
M – segunda-feira
T – terça-feira
W – quarta-feira
H – quinta-feira
F -sexta-feira
A -  sábado

leitura das acl's pelo squid


  • O squid lê as acls de cima para baixo e quando encontra alguma que se aplique ele pára. Parece meio complicado mas funciona assim:

acesso_total = IPs dos clientes que terão acesso total à internet. Não passarão por nenhuma restrição do squid. 
acesso_rstrito = IPs dos clientes que passarão pelo bloqueio de sites estabelecido na acl seguinte. 
bloqueado = Lista de palavras que o squid bloqueará se forem encontradas na URL. 

LEITURA DAS ACL'S PELO SQUID


Vamos declará-las no squid.conf desta maneira:

acl acesso_total src "/etc/squid/acesso_total" 
acl acesso_restrito src "/etc/squid/acesso_restrito" 
acl bloqueado url_regex -i "/etc/squid/bloqueado" 

OBS.: A opção -i encontrada na linha que declara o bloqueio serve para NÃO fazer distinção entre maiúsculas e minúsculas.

LEITURA DAS ACL'S PELO SQUID


As regras foram declaradas vamos ativá-las dessa maneira:

http_access allow acesso_total 
http_access deny bloqueado 
http_access allow acesso_restrito 
http_access deny all 

Ficou claro???

Explicação das regras



A primeira regra que o squid lê (http_access allow acesso_total) diz que será LIBERADO acesso a quem estiver com o ip cadastrado no arquivo "/etc/squid/acesso_total". Então, quem ele encontra aqui já é liberado e não passa mais pelas outras acls seguintes. Por isso o acesso é direto e total.

EXPLICAÇÃO DAS REGRAS


A segunda regra que ele encontra (http_access deny bloqueado) diz que será NEGADO o acesso às URLs que coincidirem com as palavras que estão no arquivo "/etc/squid/bloqueado". Se, por exemplo, neste arquivo tiver a palavra sexo qualquer site que tenha esta palavra na sua URL não será acessado, como em www.uol.com.br/sexo, www.sexomais.com.br, etc. 

Mas atenção neste detalhe. O squid vem lendo o arquivo de cima para baixo e só chegará a segunda regra quem não cair na primeira, ou seja quem não tiver o ip cadastrado no arquivo de acesso total.

EXPLICAÇÃO DAS REGRAS



A terceira regra que o squid lê (http_access allow acesso_restrito) diz que será LIBERADO acesso a quem tiver com o ip cadastrado no arquivo "/etc/squid/acesso_restrito". Como na terceira regra só chega quem não caiu na regra anterior, o acesso pode ser liberado tranquilamente.

EXPLICAÇÃO DAS REGRAS



A quarta e última regra (http_access deny all) nega o acesso a qualquer ip de qualquer máscara (0.0.0.0/0.0.0.0), pois ela já vem declarada no início das acls (acl all src 0.0.0.0/0.0.0.0).



Agora sim ficou claro !!!

vamos para a instalação...




# apt-get install squid 



Faça uma cópia do arquivo original, pois caso algum problema aconteça podemos recuperar o caminho inicial...

DESAFIO 1


Configure no seu squid uma ACL de cada tipo.

Faça os devidos testes e verifique o funcionamento.


PROXY AUtenticado



INFORMA O CAMINHO DO PROGRAMA DE AUTENTICAÇÃO E O ARQUIVO DE LOGINS E SENHAS
 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

PADRÃO PARA AUTENTICAÇÃO
 auth_param basic children 5


PROXY AUTENTICADO (cONT...)



DEFINE O TEXTO QUE APARECERÁ NA CAIXA DE LOGIN
 auth_param basic realm Digite seu Login e Sua Senha

DESATIVA A VERIFICAÇÃO DE LETRAS MAIÚSCULAS E MINÚSCULAS
 auth_param basic casesensitive off

Servidor

By Maurício Canto