implantando o squid para gerenciamento de banda e acesso a ...jamhour/rss/tccrss08a/leandro...

15
Pontifícia Universidade Católica do Paraná - PUCPR Implantando o Squid para Gerenciamento de Banda e Acesso a Internet Contribuições: Coordenação nos estudos dos problemas e riscos enfrentados pelas organizações com o acesso a internet, bem como contra-medidas para os mesmos. Auxílio 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 Leandro Carretero Belo Outubro - 2009

Upload: vanlien

Post on 01-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Pontifícia Universidade Católica do Paraná - PUCPR

Implantando o Squid para Gerenciamento de Banda e Acesso a Internet

Contribuições:

Coordenação nos estudos dos problemas e riscos enfrentados pelas organizações com o acesso a internet, bem como contra-medidas para os mesmos.

Auxílio 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

Leandro Carretero Belo

Outubro - 2009

Implantando o Squid para gerenciamento de banda e acesso a internet

Evandro Augusto Volek, Leandro Carretero Belo

Especialização em Redes e Segurança de Sistemas - 2008/1Pontifícia Universidade Católica do Paraná

Curitiba, Outubro de 2009

Resumo

A utilização da internet em ambiente corporativo pode trazer problemas jurídicos e financeiros aos gestores, além de perca de produtividade no ambiente organizacional. A fins de se precaver de tais problemas, um conjunto de medidas são necessárias, tais medidas vão desde a conscientização dos usuários até monitoramento e punição. O artigo irá descrever os passos para instalação e configuração do servidor proxy Squid, que efetuará o controle de acesso e banda, bem como a utilização de ferramentas a ele agregadas para o monitoramento e análise de logs.

1 Introdução

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

A afirmação acima tem embasamento no terceiro parágrafo do Art. 932 do Código Civil Brasileiro, que diz ser também responsáveis pela reparação civil o empregador ou comitente, por seus empregados, serviçais e prepostos, no exercício do trabalho que lhes competir, ou em razão dele [2], e também pela sumula 341 do supremo tribunal federal, que presume a culpa do patrão ou comitente pelo ato culposo do empregado ou preposto. [3]

Racismo, pedofilia, pirataria, violação de direitos autorais, furto e ameaça são apenas alguns exemplos de crimes cometidos pela internet.

Além das responsabilidades jurídicas, o mal uso da internet ocasiona para as organizações problemas como perca de produtividade dos colaboradores com navegações em sites não relacionados ao trabalho e consumo da banda com tais conteúdos.

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

A correta utilização da internet em um ambiente corporativo demanda a implantação de um conjunto de medidas:

➢Treinamento aos colaboradores➢Termo de uso e responsabilidades➢Mecanismos de controle de acesso➢Ferramentas de limitação de banda➢Relatórios de logs

Este artigo irá focar na implementação do servidor proxy Squid, e seu utilitário Sarg, os quais fornecem mecanismos de controle de acesso, limitação de banda e relatórios de logs; ficando como sugestão ao leitor a pesquisa de métodos de treinamento aos colaboradores e modelos de termo de uso e responsabilidades.

Para melhor entendimento, a implementação assumirá cenário onde os usuários de internet são agrupados em perfis, sendo que cada perfil possui determinado privilégio de acesso e velocidade de navegação.

A implementação 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 símbolo :~> representa o prompt do terminal.

2 Entendendo o Squid

O principal arquivo de configuração do squid é o /etc/squid/squid.conf, o squid o trata de forma seqüencial, e é nele que faremos as configurações necessárias para efetuar o controle de acesso e banda.

O acesso é controlado pelas ACLs, elas possibilitam criar regras de permissão ou bloqueio de acesso, utilizando como critério endereços de origem ou destino, domínios, horários, usuários, portas ou métodos de conexão ao proxy. Para cada critério existe um tipo de ACL, seguem abaixo a sintaxe para criação das mesmas e os tipos mais utilizados [5]:

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

Tipos mais utilizados :src # Endereço IP do clientedst # Endereço IP do destinodstdom_regex # Expressão que verifica o destinourl_regex # Expressão que verifica uma URLurl_path_regex # Expressão que verifica o URL pathport # Especifica uma porta ou conjunto de portasdstdomain # Filtra por nome de domíniosarp # Endereço Mac

A banda é gerenciada pelas delays, para cria-las usa-se:delay_pools # número de delaysdelay_class # criação da delaydelay_parameters # parâmetros 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 configuração 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

Após a configuração de rede, necessário adicionar servidor dns, editando o arquivo /etc/resolv.conf, o endereço a ser configurado pode ser de qualquer servidor dns, no artigo é usado:

nameserver 201.10.120.2

Depois de efetuadas as configurações de rede, precisa-se restartar a mesma através do comando:

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

Após configurada a rede, e estando o servidor com acesso a internet, recomenda-se realizar update da base de dados do repositório da instalação e upgrade para garantir que a instalação esteja atualizada. Para isso utiliza-se os comandos:

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

4 Instalando o Squid

A instalação do squid é efetuada através do comando:

:~>sudo apt-get install squid

4.1 Definindo os Perfis

Afim de prosseguirmos com a implantação do servidor proxy assumiremos um cenário com os perfis da tabela 1 (o perfil será responsável pelo privilégio de acesso e pela velocidade de navegação).

Tabela 1 – perfis de acesso a internet

4.2 Configurando o Squid

Para implementar os perfis de forma organizada, criaremos em /etc/squid o diretório files, dentro do qual teremos um diretório para cada perfil e um diretório etc. Os diretórios referentes aos perfis armazenam arquivos de configurações do mesmo e o diretório etc armazena arquivos diversos:

Perfil Privilégio de acesso Autenticação

Diretoria 48 TotalFinanceiro 25 Apenas sites listadosComercial 25 Total com restrição de sites que contenham determinadas palavrasMecânicos 12 Total com restrição 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 configuração serão referenciados dentro do squid.conf, e seus conteúdos são 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 configuração acima criados quanto os conteúdos dos mesmos se aplicam ao cenário em questão, tais arquivos devem se alterar de acordo com o cenário desejado.

Por padrão, o arquivo /etc/squid/squid.conf possui muitos comentários, tais comentários dificultam sua manipulação. Recomenda-se efetuar backup do arquivo original e apagar seus comentários, deixando-o apenas com as configurações básicas para funcionamento do servidor [7]:

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

Para implantação 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 responsável por criar e configurar as Delay ######################################################################## Declaração da quantidade de delaysdelay_pools 3## Criação da Delay e a configuração 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 responsável por liberar sites permitidos ######################################################################## Criação da acl sites_permitidosacl sites_permitidos dstdom_regex "/etc/squid/files/etc/sites_permitidos.txt"## Liberação de todos os sites que estiver contidos na acl sites_permitidoshttp_access allow sites_permitidos####################################################################

###################################################################### bloco responsável por controlar o perfil Diretoria ######################################################################## Criação da acl diretoriaacl diretoria arp "/etc/squid/files/diretoria/mac_diretoria.conf"## Associação dos parâmetros da delay 1 ao grupo diretoriadelay_access 1 allow diretoria## Liberação de acesso total ao perfil diretoriahttp_access allow diretoria####################################################################

###################################################################### bloco responsável por controlar o perfil Financeiro ## ###################################################################### Criação da acl financeiroacl financeiro arp "/etc/squid/files/financeiro/mac_financeiro.conf"## Criação da acl sites_financeiro contendo a lista de sites permitidosacl sites_financeiro dstdom_regex "/etc/squid/files/financeiro/sites_financeiro.conf"## Associação dos parametros da delay 2 ao perfil financeirodelay_access 2 allow financeiro## Liberação dos sites contidos na acl sites_financeiro ao perfil financeirohttp_access allow financeiro sites_financeiro####################################################################

###################################################################### bloco responsável por bloquear sites que contenha determinadas #### palavras ######################################################################## Criação 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 responsável por controlar o perfil Comercial ######################################################################## Criação 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

## Liberação de todos os sites ao grupo comercialhttp_access allow comercial####################################################################

###################################################################### bloco responsável 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## Criação da acl senhaacl senha proxy_auth REQUIRED####################################################################

###################################################################### bloco responsável por controlar o perfil Mecânicos ######################################################################## Criação a acl mecanicosacl mecanicos arp "/etc/squid/files/mecanicos/mac_mecanicos.conf"## Associação dos parâmetros da Delay 3 ao grupo comercial delay_access 3 allow mecanicos## Liberação dos sites ao grupo mecânicos após autenticaçãohttp_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 alterações efetuadas no arquivo de configuração do Squid entram em vigor após o comando:

:~>sevice squid reload

Importante observarmos a seqüência que as ACLs se encontram pois como dito anteriormente o squid trabalha de forma seqüencial sendo assim a alteração 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 relatórios via web, disponibilizando informações detalhadas de acesso por usuário, IP, horários, download, etc., provendo uma forma simples e eficaz de histórico e monitoramento [6].

Um requisito para instalação 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 configurações do sarg devem ser efetuados no arquivo /etc/squid/sarg.conf, sendo possível através do mesmo configurar idioma, caminho de arquivo de log do squid, sites e usuários que não devem aparecer nos relatórios de auditoria, fontes e imagens contidas na página de gerenciamento e outras particularidades. Porém, nesta implementação, será configurado apenas o idioma.

Visando simplificar o endereço web de acesso ao sarg e prover segurança ao mesmo, será criado o alias /log ao diretório /var/www/squid-reports, deixando a página do sarg disponível no endereço http://192.168.0.1/log mediante login de acesso. Tais configurações devem ser efetuadas no arquivo /etc/apache2/sites-available/defalt:

Alias /logs /var/www/squid-reports/ <Directory "/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 </Directory>

Afim de aplicar as configurações efetuadas necessário 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 relatórios do sarg com base nos logs gerados pelo squid.

A criação de usuários 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 relatórios estão prontos para serem visualizados de forma segura e rápida.

6 Efetuando os testes

6.1 Testando as permissões de acesso

Figura 1 – tela de bloqueio de acesso a site não 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 contém palavra bloqueada em computador do perfil comercial

Figura 4 – tela de login para acesso em computador pertencente ao perfil mecânicos

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 mecânicos

6.3 Testando os registros de logs

Figura 8 - Tela de login ao site do sarg (histórico de uso da internet)

Figura 9 – Tela de relatório do sarg sintetizado por usuários

Figura 10 – Tela de relatório de logs analítico por usuário

7 Considerações finais

Mesmo em um ambiente onde a internet pode trazer inúmeros problemas (jurídicos e de produtividade), a não utilização da mesma é incogitável, pois essa ferramenta avança paralelamente com a modernização, sendo que a cada dia mais serviços são integrados a mesma.

Neste cenário de riscos e necessidades, cabe aos gestores e aos profissionais da TI a implantação de mecanismos que levem seus colaboradores ao uso correto da internet. O Squid e o Sarg entram como ferramentas de controle e monitoração, que quando utilizados em conjunto com uma boa política de segurança e a conscientização dos colaboradores resultam em um ambiente de trabalho saudável e seguro, dando suporte a continuidade do negócio da organização.

Bibliografia

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

[2] Presidência da República, 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/