Proxy Squid - 1

Conteúdo

- Introdução

Conceitos de Servidores Proxy

Definição de Squid

Benefícios de usar o proxy Squid

Motivos pelo qual se deve utilizar um PROXY/CACHE

O porque de utilizar o Squid

-         Instalação do Squid

Instalando em um sistema baseado em Debian

Comandos básicos          

Baixando o código-fonte

Arquivo de configuração do Squid

Examinando o squid.conf

ACL (Access Control List)

-         Configurando um Servidor Proxy Web com squid

-         Estrutura de cache

-         Estrutura de logs

-         Filtro de conteúdo com ACLs

Possibilita a filtragem do conteúdo web dos usuários.

-         Autenticação de usuários no Squid

-         Controle de banda

-         Exercitandoas ACLs

Configurações básicas

Ordem das ACLs

Bloqueando sites indesejados

Utilizando IPs e redes

Usando ACLs externas

Trabalhando com domínios

Expressão regular na URL

Liberando um acesso específico

Restrição por horários

MAC Address

Limite do número de conexões por usuário

Limitando o tamanho de uploads

Dicas

-         Proxy Transparente

Por que não usar um proxy transparente

Teoria de um proxy transparente

Configurando um proxy transparente

Dicas

-         Trabalhando com hierarquias

Cahe hierárquico é a extensão lógica do conceito de caching

Entendendo o ICP

Fazendo roteamento por domínios

Roteamento por protocolo

-         Utilizando o Squid como proxy reverso

-         Gerando Relatórios

Instalação

Configuração

Dicas

-         Otimizando o Squid


Introdução

 

Conceitos de Servidores 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. O servidor proxy costuma ser instalado em uma máquina que tenha acesso direto à internet, sendo que as demais efetuam as solicitações através desta. Justamente por isto este tipo é chamado de Proxy, pois é um procurador, ou seja, sistema que faz solicitações em nome de outros.

Um servidor proxy para o protocolo http, por exemplo, pode ter outras funcionalidades implementadas. Visto que todas as solicitações de páginas efetuadas pelas máquinas da rede privada serão feitas através dele, é muito útil armazenar localmente as páginas que foram solicitadas, permitindo que os próximos acessos, efetuados por quaisquer máquinas da rede, possam ser otimizados. Este conceito é chamado de caching, e vários servidores proxy na verdade são servidores proxy cache. Pelo mesmo motivo, também é possível implementar uma funcionalidade que permita controlar o que os clientes podem acessar e em que momento. Um servidor proxy também pode implementar o NAT (Network Address Translation – Tradução de Endereços de Rede). O NAT é tecnicamente a função de um portal de nível de rede, mas alguns fornecedores também incluem este recurso em seus produtos e servidores proxy.

 

Definição de Squid

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 requests falhos.

Ele suporta SSL, listas de acesso complexas e logging completo. Por utilizar o Internet Cache Protocol, o Squid pode ser configurado para trabalhar de forma hierárquica ou mista para melhor aproveitamento da banda.

Podemos dizer que o Squid consiste em um programa principal - squid -, um sistema de busca e resolução de nomes - dnsserver - e alguns programas adicionais para reescrever requests, fazer autenticação e gerenciar ferramentas de clientes.

Podemos executar o Squid nas principais plataformas do mercado, como Linux, Unix e Windows.

Benefícios de usar o proxy SQUID

 

Velocidade de acesso

A melhor forma de verificar se o seu cache está sendo eficiente é pela velocidade. Um sistema de cache que não agrega velocidade não está cumprindo o seu papel.

Disponibilidade

De nada adianta um sistema veloz disponível apenas 2 horas por dia, ou mesmo que precise de um reboot a cada 2 semanas.

Redundância de servidores, backup, eliminação de ponto único de falha e disaster recover são uma exigência.

Transparência ou Ostensividade

São conceitos específicos e que se adaptam a cada caso. Grandes instalações, ISPs e empresas não preocupadas com que seus usuários vêem ou fazem na internet devem preferir a transparência, onde o usuário desconhece ou não se sente afetado (exceto pelo ganho de velocidade) pela presença de um cache.

Por outro lado, empresas com uma política de segurança mais rígida, órgãos com informações críticas, ou mesmo pais querendo controlar o acesso de seus filhos a alguns sites, vão preferir a ostensividade.

Capacidade de trabalhar com redes heterogêneas

Alguns sistemas de proxy/cache funcionam baseados com sistemas de autenticação especiais, feitos para rodar somente em uma plataforma, fazem integração com o serviço de diretórios daquele ou desse sistema ou exigem que o usuário esteja rodando a versão XYZ do fabricante ABC e deixam todos os outros a ver navios. Em uma instalação séria, é preciso que usuários de todas as plataformas que saibam como trabalhar com HTTP sejam bem atendidos.

Isso é especialmente verdade quando não sabemos que tipo de plataforma irá utilizar nossa instalação.

Simplicidade

Deixando um pouco de lado o usuário e focando no administrador, é preciso ter consciência de que um sistema bom é um sistema fácil de administrar. O mais rápido, mais disponível e mais abrangente sistema de caching é totalmente inútil se somente uma pessoa no mundo souber lidar com ele.

Motivos pelo qual se deve utilizar um PROXY/CACHE:

Controle de acesso

 

Com a internet cada vez mais acessível a pequenas e médias empresas, um número imenso de pessoas está se interligando a internet. Além de todos os benefícios trazidos por ela, como informação em tempo real, comunicação mundial a baixo custo, contato com possíveis clientes e
fornecedores por todo o mundo, a mesma trouxe alguns problemas.

As pessoas tendem a passar cada vez mais tempo navegando por sites não relativos ao seu trabalho primário, acessam sites que não condizem com a política da empresa, utilizam a banda de internet destinada a serviços como WEB ou VPN e podem, em muitos casos, acabar infectando
toda a rede da empresa com vírus e worms que são adquiridos em sites impróprios. Isso sem contar na ameaça sempre presente de propagação de downloads de softwares piratas e músicas, fatores que podem complicar a vida de uma empresa durante fiscalizações.

De acordo com a Rede Nacional de Ensino e Pesquisa (RNP) , 65% da largura de banda das empresas é utilizada em navegação WEB. E esse número tende a crescer.

Performance

 

Como dissemos anteriormente, a internet está mais acessível para todos, fator causado pela ampla utilização das conexões de banda larga, como xDSL, Cable Modem, ISDN, etc.

Essas tecnologias são excelentes para pequenas e médias empresas, mas devido a suas características de velocidades diferentes de upstream e downstream (xDSL), compartilhamento de banda total (Cable Modem) ou baixo desempenho (ISDN), além da notável falta de qualidade das
operadoras, tornam-se quase inúteis para grandes empresas e provedores de internet (ISPs).

Essas empresas são então levadas a utilizar sistemas de maior qualidade, como links por fibra ótica, satélites e rádio. Mas como se pode esperar, qualidade tem preço, e, nesse caso, bem salgado.

Visando aproveitar ao máximo essa banda de qualidade, a utilização de PROXY/CACHE torna-se quase que obrigatória. Ainda de acordo com a Rede Nacional de Ensino e Pesquisa (RNP) - 2, a utilização de PROXY/CACHE pode gerar uma economia entre trinta e cinqüenta por cento nos horários de pico. Isso significa que para um link de 2 Mbps que está operando a plena carga e considerando uma redução de 30 %, o mesmo produziria um ganho na banda agregada de aproximadamente 600 Kbps. Ou seja, a simples implementação de um PROXY/CACHE bem ajustado gera uma economia da ordem de milhares de Reais por mês para a empresa.

Porque utilizar o SQUID?

O Squid está continuamente melhorando sua performance, além de adicionar novas features e ter uma excelente estabilidade em condições extremas.

Sua compatibilidade com várias plataformas e a imensa gama de software para analisar logs, gerar relatórios, melhorar o desempenho e adicionar segurança providos pela comunidade open source, combinados com ferramentas de administração simplificada e baseadas em web
agregam grande valor ao produto.

Podemos ainda citar a capacidade de clustering, transparent proxy, cache de FTP e, é claro, seu baixo custo.

Para os mais corajosos, ou para os melhores programadores, não podemos deixar de dizer que o sistema é totalmente aberto, possibilitando a sua otimização no nível de código, além da otimização via configuração.

 


Instalação do SQUID

 

O Squid pode ser instalado em uma imensa variedades de sistemas operacionais. Praticamente todos os Unixes com um bom compilador C/C++ pode gerar binários do Squid.

Sua popularidade, no entanto, nos poupa esse passo em muitas plataformas.

Instalando em um sistema baseado em Debian

O Debian sempre prezou pela facilidade de instalação a atualização de pacotes, com seu sistema apt, que facilita muito a vida dos administradores. Para instalar o squid basta executar o comando:

  # apt-get install squid 

Comandos básicos

Resetando o cache do squid

Pode ocorrer do squid travar alguma vez. Para tentar resolver isso, pare o squid e execute:

  # squid -z 

 

Reiniciando as configurações do squid

Se você mudou alguma ACL, atualizou a lista de sites ou qualquer coisa que exija refazer as regras do squid que está rodando, utilize:

  # squid -k reconfigure 

 

Ativando os serviços do Squid

 

# /etc/init.d/squid stop

# /etc/init.d/squid start

 

Verificando as portas ativas

 

# netstat –atun | grep 3128

Entrando em modo Debug

Você pode modificar o Squid para modo Debug on the fly utilizando o seguinte comando:

  # squid -k debug

O resultado do modo debug estará no arquivo cache.log, dentro do diretório de logs.

ATENÇÃO: A quantidade de logs gerada por esse modo é muito grande e irá causar lentidão no sistema. Não deixe essa opção habilitada por default.

 

Baixando o código-fonte

Caso queira o controle de banda, que é um tópico avançado, instale o squid pelo fonte, de acordo com as instruções.

Verifique a versão mais recente em
http://www.squid-cache.org/Versions/

  # wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE16.tar.gz
  # tar zxvf squid-2.6.STABLE16.tar.gz 
  # cd squid-2.6.STABLE16 
  # ./configure --enable-removal-policies=”lru, heap” --enable-icmp --enable-delay-pools --enable-snmp --enable-ssl --enable-arp-acl --enable-htcp --disabled-http-violations --enable-kill-parent-hack --enable-linux-netfilter –enable-heap-replacement -- enable-cache-digests –disable-internal-dns
  # make all 
  # make install 
  # cd auth_modules/NCSA 
  # make 
  # make install 

Opções de compilação

--enable-useragent-log - adiciona o log do cabeçalho "useragent";
--enable-referer-log - adiciona o log do cabeçalho "referer";
--enable-removal-policies="heap lru" - habilita as políticas de remoção de cache em memória;
--enable-err-languages="Portuguese English Spanish" - idioma das páginas de erro;
--enable-default-err-language=Portuguese - usa como padrão o idioma pt_BR nas páginas de erro;
--enable-linux-netfilter - adiciona suporte a proxy transparente;
--enable-underscores - adiciona suporte a sublinhado;
--enable-auth="basic digest ntlm" - habilita os esquemas de autenticação;
--enable-basic-auth-helpers="PAM YP SMB SASL NCSA LDAP winbind" - habilita os módulos que poderão ser usados para autenticação.

Para mais informações consulte com o parâmetro:

# ./configure --help

Adonel  Bezerra

Pós-graduado em Teoria em Educação a Distância e Docência do Ensino Superior;

MBA Executivo em Coaching;

Coordenador de cursos de pós-graduação.

Experiência em Gestão de Negócios, envolvendo-se com as áreas administrativa, financeira, comercial, produção e logística;

Experiência de mais de 20 anos como professor conferencista na área de segurança da informação;

Sólida experiência na gestão de negócios e tecnologia da informação;

Sólida experiência no meio acadêmico; 

Consultor de Segurança da informação com mais de vinte anos de experiência;

Treinamentos e palestras ministrados para milhares de profissionais em todo o Brasil;

Livro publicado pela Editora Ciência Moderna e diversos artigos publicados.

 

ALGUMAS PARTICIPAÇÕES COMO CONFERENCISTA OU PALESTRANTE

Centro Universitário do Maranhão – UniCeuma/2009 – Apresentação “O MERCADO DE CONSULTORIA EM SEGURANÇA DE INFORMAÇÃO. 

Universidade de Fortaleza|UNIFOR – Apresentação “TÉCNICAS HACKERS PARA TESTES DE INVASÃO”.

Faculdades Integradas do Ceará – FIC/2010 – Apresentação “ SEGURANÇA DA INFORMAÇÃO”.

Escola de Gestão Pública do Estado do Ceará – /2012 – Apresentação “ SEGURANÇA DA INFORMAÇÃO COM SOFTWARE LIVRE”.

Faculdade La Salle – 2013 – Apresentação “ESPIONAGEM INTERNACIONAL”.

Estácio|FIC/2013 – Apresentação “ ANÁLISE DE VULNERABILIDADES COMO FATOR PRIMORDIAL NAS ORGANIZAÇÕES”.

Estácio|FIC/2015 – Apresentação “PROVA DE CONCEITO”.

Devry Brasil|FANOR Salvador/BA, Fortaleza/CE, Belém/PA, Caruaru/PE, Recife/PE, Teresina/PI    - Apresentação “ VULNERABILIDADES DE SISTEMAS COMPUTACIONAIS”.

 

PROJETO PESSOAL – 1998 – Até o momento

- Fundador e Mantenedor de um dos maiores portais de Segurança de sistema do Brasil, o portal Clube do Hacker; www.clubedohacker.com.br

Fundador e mantenedor da Academia Linux www.academialinux.com.br

Fundador da BUCOIN – www.bucoin.com.br