implantando o squid

15
Pontifícia Universidade Católica do Paraná - PUCPR Implantando o Squid para Gerenciamento de Banda e Acesso a Internet Contribuições: Auxílio nos estudos dos problemas e riscos enfrentados pelas organizações com o acesso a internet, bem como contra-medidas para os mesmos. Coordenação na preparação do servidor, definição do cenário e implementação do ambiente com o Squid e o Sarg. Trabalho de Conclusão de Curso Evandro Augusto Volek Outubro - 2009

Upload: eliton-jt

Post on 25-Sep-2015

250 views

Category:

Documents


3 download

DESCRIPTION

Implantando o Squid para Gerenciamento de Bandae Acesso a Internet

TRANSCRIPT

  • Pontifcia Universidade Catlica do Paran - PUCPR

    Implantando o Squid para Gerenciamento de Banda e Acesso a Internet

    Contribuies:

    Auxlio nos estudos dos problemas e riscos enfrentados pelas organizaes com o acesso a internet, bem como contra-medidas para os mesmos.

    Coordenao na preparao do servidor, definio do cenrio e implementao do ambiente com o Squid e o Sarg.

    Trabalho de Concluso de Curso

    Evandro Augusto Volek

    Outubro - 2009

  • Implantando o Squid para gerenciamento de banda e acesso a internet

    Evandro Augusto Volek, Leandro Carretero Belo

    Especializao em Redes e Segurana de Sistemas - 2008/1Pontifcia Universidade Catlica do Paran

    Curitiba, Outubro de 2009

    Resumo

    A utilizao da internet em ambiente corporativo pode trazer problemas jurdicos e financeiros aos gestores, alm de perca de produtividade no ambiente organizacional. A fins de se precaver de tais problemas, um conjunto de medidas so necessrias, tais medidas vo desde a conscientizao dos usurios at monitoramento e punio. O artigo ir descrever os passos para instalao e configurao do servidor proxy Squid, que efetuar o controle de acesso e banda, bem como a utilizao de ferramentas a ele agregadas para o monitoramento e anlise de logs.

    1 Introduo

    As empresas podem ser responsabilizadas pelo uso indevido ou inadequado da Internet e de suas facilidades por seus empregados [1]

    A afirmao acima tem embasamento no terceiro pargrafo do Art. 932 do Cdigo Civil Brasileiro, que diz ser tambm responsveis pela reparao civil o empregador ou comitente, por seus empregados, serviais e prepostos, no exerccio do trabalho que lhes competir, ou em razo dele [2], e tambm pela sumula 341 do supremo tribunal federal, que presume a culpa do patro ou comitente pelo ato culposo do empregado ou preposto. [3]

    Racismo, pedofilia, pirataria, violao de direitos autorais, furto e ameaa so apenas alguns exemplos de crimes cometidos pela internet.

    Alm das responsabilidades jurdicas, o mal uso da internet ocasiona para as organizaes problemas como perca de produtividade dos colaboradores com navegaes em sites no relacionados ao trabalho e consumo da banda com tais contedos.

    De acordo com estudo divulgado no site da Info Abril, os brasileiros gastam 5,9 horas por semana navegando em sites no relacionados ao trabalho durante o expediente. [4]

    A correta utilizao da internet em um ambiente corporativo demanda a implantao de um conjunto de medidas:

    Treinamento aos colaboradoresTermo de uso e responsabilidadesMecanismos de controle de acessoFerramentas de limitao de bandaRelatrios de logs

    Este artigo ir focar na implementao do servidor proxy Squid, e seu utilitrio Sarg, os quais fornecem mecanismos de controle de acesso, limitao de banda e relatrios de logs; ficando como sugesto ao leitor a pesquisa de mtodos de treinamento aos colaboradores e modelos de termo de uso e responsabilidades.

  • Para melhor entendimento, a implementao assumir cenrio onde os usurios de internet so agrupados em perfis, sendo que cada perfil possui determinado privilgio de acesso e velocidade de navegao.

    A implementao ser efetuada sobre sistema operacional Ubuntu 9.04 Server Edition, em computador com duas interfaces de rede (uma para LAN e outra para WAN).

    Em todo artigo o smbolo :~> representa o prompt do terminal.

    2 Entendendo o Squid

    O principal arquivo de configurao do squid o /etc/squid/squid.conf, o squid o trata de forma seqencial, e nele que faremos as configuraes necessrias para efetuar o controle de acesso e banda.

    O acesso controlado pelas ACLs, elas possibilitam criar regras de permisso ou bloqueio de acesso, utilizando como critrio endereos de origem ou destino, domnios, horrios, usurios, portas ou mtodos de conexo ao proxy. Para cada critrio existe um tipo de ACL, seguem abaixo a sintaxe para criao das mesmas e os tipos mais utilizados [5]:

    Sintaxe:acl 'nome da acl' 'tipo da acl' 'caminho do arquivo'

    Tipos mais utilizados :src # Endereo IP do clientedst # Endereo IP do destinodstdom_regex # Expresso que verifica o destinourl_regex # Expresso que verifica uma URLurl_path_regex # Expresso que verifica o URL pathport # Especifica uma porta ou conjunto de portasdstdomain # Filtra por nome de domniosarp # Endereo Mac

    A banda gerenciada pelas delays, para cria-las usa-se:delay_pools # nmero de delaysdelay_class # criao da delaydelay_parameters # parmetros da delay

    3 Preparando o Servidor

    A interface eth0 deve ser conectada na WAN (10.0.0.0/8) e a eth1 na LAN (192.168.0.0/16), sendo a configurao de rede efetuada no arquivo /etc/network/interfaces, conforme abaixo:

    auto loiface lo inet loopback

    auto eth0iface eth0 inet static address 10.1.1.10 netmask 255.0.0.0 network 10.0.0.0 broadcast 10.255.255.255 gateway 10.1.1.1

    auto eth1

  • iface eth1 inet static address 192.168.0.1 netmask 255.255.0.0 network 192.168.0.0 broadcast 192.168.255.255

    Aps a configurao de rede, necessrio adicionar servidor dns, editando o arquivo /etc/resolv.conf, o endereo a ser configurado pode ser de qualquer servidor dns, no artigo usado:

    nameserver 201.10.120.2

    Depois de efetuadas as configuraes de rede, precisa-se restartar a mesma atravs do comando:

    :~>sudo /etc/init.d/networking restart

    Aps configurada a rede, e estando o servidor com acesso a internet, recomenda-se realizar update da base de dados do repositrio da instalao e upgrade para garantir que a instalao esteja atualizada. Para isso utiliza-se os comandos:

    :~>sudo apt-get update:~>sudo apt-get grade

    4 Instalando o Squid

    A instalao do squid efetuada atravs do comando:

    :~>sudo apt-get install squid

    4.1 Definindo os Perfis

    Afim de prosseguirmos com a implantao do servidor proxy assumiremos um cenrio com os perfis da tabela 1 (o perfil ser responsvel pelo privilgio de acesso e pela velocidade de navegao).

    Tabela 1 perfis de acesso a internet

    4.2 Configurando o Squid

    Para implementar os perfis de forma organizada, criaremos em /etc/squid o diretrio files, dentro do qual teremos um diretrio para cada perfil e um diretrio etc. Os diretrios referentes aos perfis armazenam arquivos de configuraes do mesmo e o diretrio etc armazena arquivos diversos:

    Perfil Privilgio de acesso Autenticao

    Diretoria 48 TotalFinanceiro 25 Apenas sites listadosComercial 25 Total com restrio de sites que contenham determinadas palavrasMecnicos 12 Total com restrio de sites que contenham determinadas palavras

    Velocidade(Kbps)

    MacMacMac

    Mac/Senha

  • /etc/squid/files/ | |-comercial | | |-mac_comercial.conf | |-diretoria | | |-mac_diretoria.conf | |-financeiro | | |-mac_financeiro.conf | |-sites_financeiro.conf | |-mecanicos | | |-mac_mecanicos.conf | |-etc | |-palavras_bloqueadas.txt |-sites_permitidos.txt |-users.conf

    Os arquivos de configurao sero referenciados dentro do squid.conf, e seus contedos so mostrados abaixo:

    -mac_comercial.conf00:18:8b:e2:b6:f700:19:7a:12:b3:aa00:18:8c:e1:c1:ee

    -mac_diretoria.conf00:41:56:c1:1a:e100:13:12:11:ee:e000:4a:f1:12:76:22

    -mac_financeiro.conf00:10:25:22:ef:c100:21:11:a2:ee:1800:12:a6:23:23:20

    -sites_financeiro.confwww.banco1.com.brwww.banco2.com.brwww.site3.com.brwww.site4.com.brespec.ppgia.pucpr.brwww.pucpr.br

    -mac_mecanicos.conf00:13:11:f4:e1:2000:11:11:f1:17:2200:14:f2:11:10:f3

    -palavras_bloqueadas.txtradiosexovideos

    -sites_permitidos.txtwww.suaempresa.com.brwww.tesouro.gov.br

    -users.conf

  • mecanico01:UdwWDrkFkmV/kmecanico02:yyAkU3LDcoqeM

    Importante observar que tanto os arquivos de configurao acima criados quanto os contedos dos mesmos se aplicam ao cenrio em questo, tais arquivos devem se alterar de acordo com o cenrio desejado.

    Por padro, o arquivo /etc/squid/squid.conf possui muitos comentrios, tais comentrios dificultam sua manipulao. Recomenda-se efetuar backup do arquivo original e apagar seus comentrios, deixando-o apenas com as configuraes bsicas para funcionamento do servidor [7]:

    :~>sudo cp squid.conf squid.conf.original:~>sudo egrep -v "^#|^$" squid.conf.original > squid.conf

    Para implantao dos perfis da tabela 1, edita-se o arquivo /etc/squid/squid.conf de forma a deixa-lo conforme abaixo:

    acl all src allacl manager proto cache_objectacl localhost src 127.0.0.1/32acl to_localhost dst 127.0.0.0/8acl localnet src 10.0.0.0/8 # RFC1918 possible internal networkacl localnet src 172.16.0.0/12 # RFC1918 possible internal networkacl localnet src 192.168.0.0/16 # RFC1918 possible internal networkacl SSL_ports port 443 # httpsacl SSL_ports port 563 # snewsacl SSL_ports port 873 # rsyncacl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 # httpsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # unregistered portsacl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl Safe_ports port 631 # cupsacl Safe_ports port 873 # rsyncacl Safe_ports port 901 # SWATacl purge method PURGEacl CONNECT method CONNECThttp_access allow manager localhosthttp_access deny managerhttp_access allow purge localhosthttp_access deny purgehttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhost

    ###################################################################### bloco responsvel por criar e configurar as Delay ######################################################################## Declarao da quantidade de delaysdelay_pools 3## Criao da Delay e a configurao da velocidade a qual ir trabalhardelay_class 1 2delay_parameters 1 262144/262144 48000/48000

  • delay_class 2 2delay_parameters 2 262144/262144 25000/25000delay_class 3 2delay_parameters 3 262144/262144 12000/12000####################################################################

    ###################################################################### bloco responsvel por liberar sites permitidos ######################################################################## Criao da acl sites_permitidosacl sites_permitidos dstdom_regex "/etc/squid/files/etc/sites_permitidos.txt"## Liberao de todos os sites que estiver contidos na acl sites_permitidoshttp_access allow sites_permitidos####################################################################

    ###################################################################### bloco responsvel por controlar o perfil Diretoria ######################################################################## Criao da acl diretoriaacl diretoria arp "/etc/squid/files/diretoria/mac_diretoria.conf"## Associao dos parmetros da delay 1 ao grupo diretoriadelay_access 1 allow diretoria## Liberao de acesso total ao perfil diretoriahttp_access allow diretoria####################################################################

    ###################################################################### bloco responsvel por controlar o perfil Financeiro ## ###################################################################### Criao da acl financeiroacl financeiro arp "/etc/squid/files/financeiro/mac_financeiro.conf"## Criao da acl sites_financeiro contendo a lista de sites permitidosacl sites_financeiro dstdom_regex "/etc/squid/files/financeiro/sites_financeiro.conf"## Associao dos parametros da delay 2 ao perfil financeirodelay_access 2 allow financeiro## Liberao dos sites contidos na acl sites_financeiro ao perfil financeirohttp_access allow financeiro sites_financeiro####################################################################

    ###################################################################### bloco responsvel por bloquear sites que contenha determinadas #### palavras ######################################################################## Criao da acl palavras_bloqueadasacl palavras_bloqueadas url_regex -i "/etc/squid/files/etc/palavras_bloqueadas.txt"## Bloqueio dos sites que contenham palavras que estejam na acl palavras_bloqueadashttp_access deny palavras_bloqueadas####################################################################

    ###################################################################### bloco responsvel por controlar o perfil Comercial ######################################################################## Criao da acl comercialacl comercial arp "/etc/squid/files/comercial/mac_comercial.conf"## Associar dos parametros da delay 2 ao grupo comercial delay_access 2 allow comercial

  • ## Liberao de todos os sites ao grupo comercialhttp_access allow comercial####################################################################

    ###################################################################### bloco responsvel por controlar o acesso por senha ######################################################################## Caminho do arquivo que armazenam as senhasauth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/files/etc/users.confauth_param basic children 5auth_param basic credentialsttl 2 hourauth_param basic realm Controle de Acesso## Criao da acl senhaacl senha proxy_auth REQUIRED####################################################################

    ###################################################################### bloco responsvel por controlar o perfil Mecnicos ######################################################################## Criao a acl mecanicosacl mecanicos arp "/etc/squid/files/mecanicos/mac_mecanicos.conf"## Associao dos parmetros da Delay 3 ao grupo comercial delay_access 3 allow mecanicos## Liberao dos sites ao grupo mecnicos aps autenticaohttp_access allow mecanicos senha####################################################################

    ## Bloqueio do restantehttp_access deny allicp_access allow localnet

    icp_access deny allhttp_port 3128hierarchy_stoplist cgi-bin ?access_log /var/log/squid/access.log squidrefresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern -i (/cgi-bin/|\?) 0 0% 0refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880refresh_pattern . 0 20% 4320acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]upgrade_http0.9 deny shoutcastacl apache rep_header Server ^Apachebroken_vary_encoding allow apacheextension_methods REPORT MERGE MKACTIVITY CHECKOUThosts_file /etc/hostscoredump_dir /var/spool/squid

    As alteraes efetuadas no arquivo de configurao do Squid entram em vigor aps o comando:

    :~>sevice squid reload

    Importante observarmos a seqncia que as ACLs se encontram pois como dito anteriormente o squid trabalha de forma seqencial sendo assim a alterao entre suas ordens causar funcionamento adverso ao desejado.

  • 5 Instalando o Sarg

    O sarg um aplicativo que utiliza os logs de acesso gerados pelo squid para fornecer relatrios via web, disponibilizando informaes detalhadas de acesso por usurio, IP, horrios, download, etc., provendo uma forma simples e eficaz de histrico e monitoramento [6].

    Um requisito para instalao do sarg possuir servidor web, sendo utilizado neste artigo o apache.

    :~>sudo apt-get install apache2:~>sudo apt-get install sarg

    5.1 Configurando o Sarg

    As configuraes do sarg devem ser efetuados no arquivo /etc/squid/sarg.conf, sendo possvel atravs do mesmo configurar idioma, caminho de arquivo de log do squid, sites e usurios que no devem aparecer nos relatrios de auditoria, fontes e imagens contidas na pgina de gerenciamento e outras particularidades. Porm, nesta implementao, ser configurado apenas o idioma.

    Visando simplificar o endereo web de acesso ao sarg e prover segurana ao mesmo, ser criado o alias /log ao diretrio /var/www/squid-reports, deixando a pgina do sarg disponvel no endereo http://192.168.0.1/log mediante login de acesso. Tais configuraes devem ser efetuadas no arquivo /etc/apache2/sites-available/defalt:

    Alias /logs /var/www/squid-reports/ Options Indexes MultiViews IncludesNoExec FollowSymLinks AllowOverride None Order allow,deny Allow from all AuthName "Logs de Acessoo Squid" AuthType Basic AuthUserFile /etc/squid/sarg.users require valid-user

    Afim de aplicar as configuraes efetuadas necessrio reiniciar o apache:

    :~>sudo /etc/init.d/apache2 reload

    Deve-se configurar o cron para executar diariamente o script sudo sarg -f /etc/squid/sarg.conf -d date-date -p -x -z, o mesmo ir construir os relatrios do sarg com base nos logs gerados pelo squid.

    A criao de usurios para acesso a pagina do sarg d-se pelo comando:

    :~>sudo htpasswd /etc/squid/sarg.users administrador

    Nesta fase o sarg encontra-se configurado e seus relatrios esto prontos para serem visualizados de forma segura e rpida.

  • 6 Efetuando os testes

    6.1 Testando as permisses de acesso

    Figura 1 tela de bloqueio de acesso a site no permitido em computador do perfil financeiro

    Figura 2 tela de acesso a site autorizado em computador pertencente ao perfil financeiro

  • Figura 3 tela de bloqueio de site que contm palavra bloqueada em computador do perfil comercial

    Figura 4 tela de login para acesso em computador pertencente ao perfil mecnicos

  • 6.2 Testando as velocidades de banda

    Figura 5 Tela de download a velocidade de 48.2KB/s em computador do perfil diretoria

    Figura 6 - Tela de download a velocidade de 25.6KB/s em computador do perfil comercial

  • Figura 7 - Tela de download a velocidade de 12.0KB/s em computador do perfil mecnicos

    6.3 Testando os registros de logs

    Figura 8 - Tela de login ao site do sarg (histrico de uso da internet)

  • Figura 9 Tela de relatrio do sarg sintetizado por usurios

    Figura 10 Tela de relatrio de logs analtico por usurio

  • 7 Consideraes finais

    Mesmo em um ambiente onde a internet pode trazer inmeros problemas (jurdicos e de produtividade), a no utilizao da mesma incogitvel, pois essa ferramenta avana paralelamente com a modernizao, sendo que a cada dia mais servios so integrados a mesma.

    Neste cenrio de riscos e necessidades, cabe aos gestores e aos profissionais da TI a implantao de mecanismos que levem seus colaboradores ao uso correto da internet. O Squid e o Sarg entram como ferramentas de controle e monitorao, que quando utilizados em conjunto com uma boa poltica de segurana e a conscientizao dos colaboradores resultam em um ambiente de trabalho saudvel e seguro, dando suporte a continuidade do negcio da organizao.

    Bibliografia

    [1] Riscos, Controles e Legislao no uso da Internet nas Empresas - Acessado em 01/08/2009 http://www.sc.sucesu.org.br/pdf/cartilha_internet.zip

    [2] Presidncia da Repblica, Casa Civil - Acessado em 01/08/2009http://www.planalto.gov.br/CCIVIL/LEIS/2002/L10406.htm

    [3] Supremo Tribunal Federal - Acessado em 01/08/2009http://www.stf.jus.br/portal/jurisprudencia/listarJurisprudencia.asp?s1=341.NUME.%20NAO%20S.FLSV.&base=baseSumulas

    [4] Info Abril Acessado em 04/08/2009 http://info.abril.com.br/aberto/infonews/092007/13092007-16.shl

    [5] Imaster - Acessado em 14/08/2009 http://imasters.uol.com.br/artigo/3440/linux/servidor_proxy-cache_squid_no_cl9/

    [6] Sarg Acessado em 05/09/2009http://sarg.sourceforge.net/sarg.php

    [7] Viva o Linux- Acessado em 16/08/2009http://www.vivaolinux.com.br/dica/Remover-comentarios/