Você está na página 1de 8

Tutorial Servidor Proxy com Squid baseado em Linux Acadmicos : Felipe Zottis e Cleber Pivetta

Servidor Proxy Um servidor Proxy possui a finalidade de possibilitar que mquinas contidas em uma determinada rede possam obter acesso a uma rede pblica. Normalmente este servidor instalado em um computador que possui acesso direto internet, sendo assim toda solicitao externa a rede deve ser feita a esta mquina. De modo geral, um servidor proxy realiza solicitaes em nome de outras mquinas da rede. Outras funcionalidades podem ser acopladas ao proxy, tais como caching de pginas da internet. Com isto, as requisies sites j visitados por mquinas de uma rede so feitas mais rapidamente. Um servidor proxy tambm pode implementar o NAT (Network Address Translation - Traduo de Endereos de Rede). A NAT permite que o endereo de rede interno de uma empresa seja ocultado da Internet. A empresa representada na Internet como um endereo de IP no relacionado com os endereos de IP internos. Uma das principais funcionalidades do proxy impedir o acesso indevido pginas da internet, geralmente por empresas ou instituies pblicas. possvel barrar o acesso do usurio a sites inadequados ou que no sejam de interesse de uma instuio, por exemplo chats, jogos, sexo entre outros. Todo o trfego de dentro da empresa destinado Internet enviado para o servidor proxy. Este atribui a cada pacote um outro endereo de IP antes de transmit-lo pela Internet. Quando o pacote de resposta chega, o servidor proxy o envia ao servidor apropriado da empresa que havia feito o pedido. Este procedimento protege os endereos verdadeiros da rede interna da Internet, dificultando o ataque de um hacker ao sistema, j que o endereo do sistema protegido no conhecido e no fica diretamente acessvel a partir da Internet.

Sobre o Squid O Squid um proxy-cache de alta performance para clientes web, suportando protocolos FTP, gopher e HTTP. O Squid mantm meta dados e especialmente objetos armazenados na RAM, cacheia buscas de DNS e implementa cache negativo de requisies falhas.

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 hierrquica ou mista para melhor aproveitamento da banda. Podemos dizer que o Squid consiste em um programa principal squid um sistema de busca de resoluo de nomes dnsserver e alguns programas adicionais para reescrever requisies, fazer autenticao e gerenciar ferramentas de clientes. Podemos executar o Squid nas principais plataformas do mercado, como GNU/Linux, Unixes e Windows.

Procedimento para instalao do Servidor Proxy Squid Para a realizao deste tutorial, fora utilizado a sistema operacional Linux, sendo a verso 9.0 do Fedora. Como este experimento fora realizado na rede interna da Universidade Estadual do Oeste do Paran, necessrio realizar a exportao do proxy utilizado pela faculdade, para que assim seja possvel realizar o download do pacote de instalao do Squid. export http_proxy=htpp://proxy.unioeste.br:8080 Para realizar a instalao de determinados programas, o Linux permite que o pacote de instalao destes sejam obtidos por download atravs do comando: yum install squid O Squid ser ento instalado no diretrio /etc/squid. Aps isto, necessrio editar o arquivo squid.conf, localizado dentro do diretrio de instalao. Porm, necessrio realizar alteraes na permisso de gravao do arquivo squid.conf, pois este protegido. No linux possvel realizar esta alterao da seguinte forma: chmod 777 squid.conf O comando chmod modifica as pemisses de acessos um determinado arquivo. O nmero 777 garante os acessos de leitura e gravao para root e usurios. Realizado este passo, j possvel editar o arquivo squid.conf, porm recomendvel realizar um backup do arquivo original. Sendo assim, deve-se renomear o arquivo squid.conf para squid_backup.conf. Aps isto, j possvel trabalhar em um arquivo squid.conf novo. Ento: vi squid.conf

Este comando abrir este arquivo para edio, porm como o mesmo no existe (pois o original foi renomeado) um novo ser criado. As seguintes linhas devem ser includas dentro deste arquivo: # porta padro do squid http_port 3128 visible_hostname localhost #definir sites bloqueados acl blockedsites url_regex -i /etc/squid/sites_bloqueados/block.txt #definir sites permitidos acl unblockedsites url_regex -i /etc/squid/sites_desbloqueados/unblock.txt acl all src 0.0.0.0/0.0.0.0 #proxy pai do squid cache_peer proxy.unioeste.br parent 8080 3128 proxy-only #negar acesso HTTP varivel blockedsites e permitir varivel unblockedsites http_access deny blockedsites !unblockedsites http_access allow all

Aps isto, deve-se alterar as configuraes padro do navegador de internet utilizado na mquina, neste exemplo o firefox. Em configuraes avanadas de rede, deve-se selecionar para obter uma configurao manual de proxy e ento redirecionar o protocolo HTTP para localhost (o nome definido em visible_hostname) e porta 3128 (padro do Squid). No Squid tambm possvel impedir acessos sites com contedo indevido. Note que em: #definir sites bloqueados acl blockedsites url_regex -i /etc/squid/sites_bloqueados/block.txt #definir sites permitidos acl unblockedsites url_regex -i /etc/squid/sites_desbloqueados/unblock.txt definido um caminho para uma lista de sites bloqueados e permitidos. Sendo assim, deve-se criar um arquivo do tipo .txt dentro de uma pasta definida sites_bloqueados, contendo uma lista de sites bloqueados, por exemplo: www.google.com

www.uol.com www.orkut.com orkut pornografia

Note que possvel bloquear os acessos apenas pelo intermdio de palavras chaves, vide orkut e pornografia. Feitos todos estes passos, possvel agora colocar em funcionamento o servidor Squid. Dentro do diretrio /etc/init.d deve-se entrar com o seguinte comando: squid start

Funcionalidades Extras Restringir acesso por horrio

possvel restringir os acessos internet por horrios programados. Deve- se inserir os seguintes comandos: #Horrios acl expediente time MTWHF 9:00 18:00 acl final_de_semana time SA 8:00 13:00

Onde : S: Domingo M: Segunda-Feira T: Tera-feira W: Quarta-feira H: Quinta-feira F: Sexta-feira A : Sbado

Exemplo: Controlar o acesso do computador 192.168.1.71 das 9:00 s 12:00 e das 13:30 s 18:00 de segunda a sexta-feira:

acl microip71 src 192.168.0.71/255.255.255.255 acl manhamicroip71 time M T W H F 9:00-12:00 acl tardemicroip71 time M T W H F 13:30-18:00 Pra LIBERAR acesso: http_access allow microip71 manhamicroip71 http_access allow microip71 tardemicroip71 pra PROIBIR acesso: http_access deny microip71 manhamicroip71 http_access deny microip71 tardemicroip71 Exemplo: Pra liberar somente no horrio de almoo, todos os dias das 12 as 13:30 e aps o expediente s 18:00hs: acl microip71 src 192.168.0.71/255.255.255.255 acl manhamicroip71 time M T W H F 12:00-13:30 acl tardemicroip71 time M T W H F 18:00-24:00 http_access allow microip71 manhamicroip71 http_access allow microip71 tardemicroip71

Limitar o nmero de conexes por usurio possvel restringir o nmero de sesses que um determinado usurio pode requisitar de uma nica vez. O recurso mximo de conexes pode ser atribudo da seguinte forma: #Mximo de conexes acl CONEXOES maxconn 5 http_access deny CONEXOES rede_interna

Gerar Relatrios de acesso O Squid emite um log de acessos internet que pode ser transformado em relatrios com o uso da ferramenta SARG. Para tanto, sua instalao e configurao necessria: wget http://web.onda.com.br/orso/sarg-1.4.tar.gz tar zxvf sarg-1.4.tar.gz cd sarg-1.4/ ./configure make make install

Configurando o SARG: Por padro o SARG instalado em /usr/local/sarg .Nesse diretrio encontra-se o arquivo sarg.conf. As seguintes opes so recomendadas: # indica o arquivo de log do squid access_log /var/log/squid/access.log title Relatrio de uso da Internet temporary_dir /tmp # Onde ser gerado o relatrio output_dir /var/www/squid-reports resolve_ip no # Se estiver usando autenticao por usurio deve-se colocar yes user_ip yes topuser_sort_field BYTES reverse topsites_num 100 max_elapsed 28800000 Em seguida, para gerar um relatrio deve-se emitir o comando sarg

Figura 01: Relatrio emitido pelo SARG

Autenticando usurios um recurso bem interessante para controle pessoal de usurios, pois permite que ACLs individuais sejam criadas gerando assim LOGs de qualidade e preciso superiores. O ncsa_auth a alternativa mais simples, pois est disponvel junto com o Squid e pode ser implementado rapidamente. Procure pela TAG: authenticate_program insira os seguintes comandos: auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ auth_param basic children 5 auth_param basic realm Digite seu Login Para tanto, cada usurio necessitar uma senha de acesso. Deve-se criar o arquivo que conter todas as senhas dos usurios: touch /etc/squid/passwd Para adicionar novos usurios deve-se emitir: htpasswd /etc/squid/passwd NOVO_USUARIO Dependendo da distribuio do Squid, o ncsa_auth pode estar em vrios lugares diferentes.

Comandos teis para o Squid Reiniciando a cache do Squid: squid -z Reiniciando as configuraes do Squid: squid -k reconfigure Parar o servio do Squid: squid stop Reiniciar o servio do Squid: squid restart

Verificar status do Squid, se est rodando ou no: squid status Para carregar o Squid junto com a inicializao do Linux: chkconfig squid on

Dicas De Squid:

Edite o arquivo /etc/squid.conf e leia atentamente os comentrios, pois neles existem explicaes pra configuraes possveis... Squid para de analizar as regras na primeira que for atentida, quando precisar de alguma excesso de regra, por exemplo liberar um IP para no passar pelas regras, esta dever se colocada antes da que proibe.

Você também pode gostar