• Like
Squid proxy
Upcoming SlideShare
Loading in...5
×
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,459
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
66
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Tutorial Servidor Proxy com Squid baseado em LinuxAcadêmicos : Felipe Zottis e Cleber PivettaServidor Proxy Um servidor Proxy possui a finalidade de possibilitar que máquinascontidas em uma determinada rede possam obter acesso a uma rede pública.Normalmente este servidor é instalado em um computador que possui acessodireto à internet, sendo assim toda solicitação externa a rede deve ser feita aesta máquina. De modo geral, um servidor proxy realiza solicitações em nomede outras máquinas da rede. Outras funcionalidades podem ser acopladas ao proxy, tais comocaching de páginas da internet. Com isto, as requisições à sites já visitados pormáquinas de uma rede são feitas mais rapidamente. Um servidor proxy também pode implementar o NAT (Network AddressTranslation - Tradução de Endereços de Rede). A NAT permite que o endereçode rede interno de uma empresa seja ocultado da Internet. A empresa érepresentada na Internet como um endereço de IP não relacionado com osendereços de IP internos. Uma das principais funcionalidades do proxy é impedir o acessoindevido à páginas da internet, geralmente por empresas ou instituiçõespúblicas. É possível barrar o acesso do usuário a sites inadequados ou quenão sejam de interesse de uma instuição, por exemplo chats, jogos, sexo entreoutros. Todo o tráfego de dentro da empresa destinado à Internet é enviadopara o servidor proxy. Este atribui a cada pacote um outro endereço de IPantes de transmití-lo pela Internet. Quando o pacote de resposta chega, oservidor proxy o envia ao servidor apropriado da empresa que havia feito opedido. Este procedimento protege os endereços verdadeiros da rede internada Internet, dificultando o ataque de um hacker ao sistema, já que o endereçodo sistema protegido não é conhecido e não fica diretamente acessível a partirda Internet.Sobre o Squid O Squid é um proxy-cache de alta performance para clientes web,suportando protocolos FTP, gopher e HTTP. O Squid mantém meta dados eespecialmente objetos armazenados na RAM, cacheia buscas de DNS eimplementa cache negativo de requisições falhas.
  • 2. Ele suporta SSL, listas de acesso complexas e logging completo. Porutilizar o Internet Cache Protocol, o Squid pode ser configurado para trabalharde 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 de resolução de nomes – dnsserver – e algunsprogramas adicionais para reescrever requisições, fazer autenticação egerenciar ferramentas de clientes. Podemos executar o Squid nas principaisplataformas do mercado, como GNU/Linux, Unixes e Windows. Procedimento para instalação do Servidor Proxy Squid Para a realização deste tutorial, fora utilizado a sistema operacionalLinux, sendo a versão 9.0 do Fedora. Como este experimento fora realizado na rede interna da UniversidadeEstadual do Oeste do Paraná, é necessário realizar a exportação do proxyutilizado pela faculdade, para que assim seja possível realizar o download dopacote de instalação do Squid. → export http_proxy=htpp://proxy.unioeste.br:8080 Para realizar a instalação de determinados programas, o Linux permiteque o pacote de instalação destes sejam obtidos por download através docomando: → yum install squid O Squid será então instalado no diretório /etc/squid. Após isto, énecessário editar o arquivo squid.conf, localizado dentro do diretório deinstalação. Porém, é necessário realizar alterações na permissão de gravaçãodo arquivo squid.conf, pois este é protegido. No linux é possível realizar estaalteração da seguinte forma: → chmod 777 squid.conf O comando chmod modifica as pemissões de acessos à umdeterminado arquivo. O número 777 garante os acessos de leitura e gravaçãopara root e usuários. Realizado este passo, já é possível editar o arquivo squid.conf, porém érecomendável realizar um backup do arquivo original. Sendo assim, deve-serenomear o arquivo squid.conf para squid_backup.conf. Após isto, já é possíveltrabalhar em um arquivo squid.conf novo. Então: → vi squid.conf
  • 3. Este comando abrirá este arquivo para edição, porém como o mesmonão existe (pois o original foi renomeado) um novo será criado. As seguinteslinhas devem ser incluídas dentro deste arquivo:# porta padrão do squidhttp_port 3128visible_hostname localhost#definir sites bloqueadosacl blockedsites url_regex -i “/etc/squid/sites_bloqueados/block.txt”#definir sites permitidosacl unblockedsites url_regex -i “/etc/squid/sites_desbloqueados/unblock.txt”acl all src 0.0.0.0/0.0.0.0#proxy pai do squidcache_peer proxy.unioeste.br parent 8080 3128 proxy-only#negar acesso HTTP à variável blockedsites e permitir à variávelunblockedsiteshttp_access deny blockedsites !unblockedsiteshttp_access allow all Após isto, deve-se alterar as configurações padrão do navegador deinternet utilizado na máquina, neste exemplo o firefox. Em configuraçõesavançadas de rede, deve-se selecionar para obter uma configuração manualde proxy e então redirecionar o protocolo HTTP para localhost (o nome definidoem visible_hostname) e porta 3128 (padrão do Squid). No Squid também é possível impedir acessos à sites com conteúdoindevido. Note que em:#definir sites bloqueadosacl blockedsites url_regex -i “/etc/squid/sites_bloqueados/block.txt”#definir sites permitidosacl 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 pastadefinida sites_bloqueados, contendo uma lista de sites bloqueados, porexemplo:www.google.com
  • 4. www.uol.comwww.orkut.comorkutpornografia Note que é possível bloquear os acessos apenas pelo intermédio depalavras chaves, vide orkut e pornografia. Feitos todos estes passos, é possível agora colocar em funcionamento oservidor Squid. Dentro do diretório /etc/init.d deve-se entrar com o seguintecomando: → squid start Funcionalidades Extras • Restringir acesso por horário É possível restringir os acessos à internet por horários programados. Deve- se inserir os seguintes comandos: #Horários 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: Terça-feira W: Quarta-feira H: Quinta-feira F: Sexta-feira A : Sábado 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:
  • 5. 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 tardemicroip71Exemplo: Pra liberar somente no horário de almoço, todos os dias das12 as 13:30 e após 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 número de conexões por usuário É possível restringir o número de sessões que um determinadousuário pode requisitar de uma única vez. O recurso máximo deconexões pode ser atribuído da seguinte forma: #Máximo de conexões acl CONEXOES maxconn 5 http_access deny CONEXOES rede_interna • Gerar Relatórios de acesso O Squid emite um log de acessos à internet que pode sertransformado em relatórios com o uso da ferramenta SARG. Para tanto,sua instalação e configuração é necessária: → 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
  • 6. Configurando o SARG: Por padrão o SARG é instalado em /usr/local/sarg .Nesse diretórioencontra-se o arquivo sarg.conf. As seguintes opções sãorecomendadas: # indica o arquivo de log do squid → access_log /var/log/squid/access.log → title “Relatório de uso da Internet” → temporary_dir /tmp # Onde será gerado o relatório → output_dir /var/www/squid-reports → resolve_ip no # Se estiver usando autenticação por usuário deve-se colocar yes → user_ip yes → topuser_sort_field BYTES reverse → topsites_num 100 → max_elapsed 28800000 Em seguida, para gerar um relatório deve-se emitir o comando → sarg Figura 01: Relatório emitido pelo SARG
  • 7. • Autenticando usuários É um recurso bem interessante para controle pessoal de usuários,pois permite que ACLs individuais sejam criadas gerando assim LOGsde qualidade e precisão superiores. O ncsa_auth é a alternativa maissimples, pois está disponível junto com o Squid e pode serimplementado rapidamente. → Procure pela TAG: authenticate_programinsira 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 usuário necessitará uma senha de acesso.Deve-se criar o arquivo que conterá todas as senhas dos usuários: → touch /etc/squid/passwd Para adicionar novos usuários deve-se emitir: → htpasswd /etc/squid/passwd NOVO_USUARIO Dependendo da distribuição do Squid, o ncsa_auth pode estar emvários lugares diferentes.Comandos úteis para o Squid Reiniciando a cache do Squid: → squid -z Reiniciando as configurações do Squid: → squid -k reconfigure Parar o serviço do Squid: → squid stop Reiniciar o serviço do Squid: → squid restart
  • 8. Verificar status do Squid, se está rodando ou não: → squid status Para carregar o Squid junto com a inicialização do Linux: → chkconfig squid on Dicas De Squid:• Edite o arquivo /etc/squid.conf e leia atentamente os comentários, pois neles existem explicações pra configurações possíveis...• Squid para de analizar as regras na primeira que for atentida, quando precisar de alguma excessão de regra, por exemplo liberar um IP para não passar pelas regras, esta deverá se colocada antes da que proibe.