Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II.
Trabalho de gerencia de redes.
Transcript of Trabalho de gerencia de redes.
Finalizado (postado no blog BSI2007)
Uso indevido da Internet: Um problema de gerência
Paula Mayara A. de Sousa1, Luma da R. Seixas1, Yuko Mitsuya1, Danilo Dias1,
Maic de S. Cardoso1, Warlington N. dos Santos1
1Bacharelado em Sistemas de Informação - Universidade Federal do ParáSantarém – PA – Brazil
{paulaalcantara_stm, seixas.luma, xmitsuya, danilohdds,
rewangh, warlingtonn}@gmail.com
Abstract. Internet has revolutionized the business world, especially in business, but some users use it improperly, can cause problems of integrity and image of the company, which often act in bad faith. The aim of this paper is to provide a management platform that accounts for the use of the Internet in a small network, for auditing purposes. Created a small network exclusively for testing. Through the tools Squid and Sarg, you can collect data on the use of the network, provide support to the manager in making decisions about network configuration and resource allocation to users and user groups.
Resumo. Internet tem revolucionado o mundo empresarial, principalmente no ramo dos negócios, porém alguns usuários a utilizam de forma abusiva, podendo causar problemas de integridade e a imagem da empresa, os quais muitas vezes agem de má fé. O objetivo deste artigo é prover uma plataforma de gerência que contabilize o uso da internet numa pequena rede, para fins de auditoria. Criou-se uma pequena rede exclusivamente para testes. Através das ferramentas Squid e Sarg, é possível coletar dados sobre a utilização da rede, fornecer subsídios ao gerente na tomada de decisões a respeito da configuração de rede e alocação de recursos para usuários e grupos de usuários.
1 . Introdução
Com a infinidade de recursos e facilidades que a internet oferece, muitas empresas a utilizam como ferramenta de trabalho. Porém, nem sempre esta ferramenta é bem utilizada pelos funcionários, gerando problemas de segurança, perda de produtividade e lentidão na conexão [1]. O uso indevido dos recursos disponibilizados pelas empresas para que os funcionários possam
produzir, é tratado por uma advertência ou por demissão por justa causa. Isto porque, além de gerar perda de produtividade, sites e ferramentas, podem se transformar em grandes causadores de prejuízos para as empresas, seja pelas horas não trabalhadas, como pelos problemas de segurança que acarretam [2].
Segundo a legislação brasileira, o e-mail corporativo, o computador e a conexão são da empresa. Isso significa que tudo que se faz online pode ser monitorado. A empresa tem o direito e o amparo legal para monitorar tudo o que for escrito [3]. Por isso, é necessário o gerenciamento de redes, onde o administrador se dará o direito de monitorar o volume de tráfego na rede, bem como o acesso a páginas web visitadas e a utilização de outros serviços.
Desta forma, é possível gerenciar o uso indevido da internet através de ferramentas que provêem a contabilização da utilização da internet, que está ligada diretamente à uma área funcional da gerenciamento de redes: a gerência de contabilização.
Sendo assim, o objetivo deste trabalho é prover uma plataforma de gerência que contabilize o uso da internet numa pequena rede, para fins de auditoria. As ferramentas escolhidas para compor esta plataforma foram: Squid provendo políticas de acesso, e gerando um arquivo de log para posterior análise de dados, e a ferramenta Sarg por se tratar de uma aplicação onde é possível interpretar e apresentar ao gerente da rede, um relatório sob as condições de acesso a internet dos usuários da rede.
O presente texto está organizado da seguinte forma: na seção 2 é apresentado a descrição do trabalho e o problema a ser gerenciado. A seção 3 refere-se às ferramentas escolhidas para fazer o gerenciamento de contabilização. A seção 4 é reservada para expor o estudo de caso onde é simulado uma pequena rede cujo serviço (acesso a internet) deverá ser monitorado, obedecendo as políticas de acesso devidamente definidas e configuradas. Por fim, são apresentados os resultados obtidos com a utilização das ferramentas.
2 . Definição do Trabalho
Especificar duas ou mais ferramentas que possam ser usadas para o gerenciamento de um problema em comum a estas ferramentas. De forma a definir um problema a ser solucionado, e através das ferramentas escolhidas tentar resolvê-lo. A partir disso, criar um estudo de caso e documentá-lo para fins de divulgar os resultados obtidos.
2.1 Problema
Há uma grande preocupação nas redes a cerca da gerência sobre o uso de serviços oferecidos por ela. Tal preocupação se tornou tão importante, como por exemplo, saber quanto é gasto de papel durante um mês. É obrigação do administrador de redes monitorar o uso de recursos por usuários ou grupos de usuários. Isso se deve a fatores como: O abuso de privilégios, ou sobrecarga na rede causada por um usuário ou grupo de usuários, ou até mesmo usuários que estejam fazendo uso ineficiente da rede, nesse caso o administrador deve propor soluções para melhorar o desempenho. E ainda, dar melhores condições
ao administrador para planejar uma futura expansão da rede, devido conhecer as atividades dos usuários [4].
Foram fatores como esse influenciaram a cerca do tema escolhido para esse artigo: A gerência de contabilização. Ela vem justamente para prover meios de forma a se medir e coletar informações a respeito da utilização dos recursos e serviços de uma rede, para obter informações como: a taxa de uso destes recursos, e para garantir que os dados estejam sempre disponíveis quando forem necessários ao sistema de gerenciamento, durante a fase de coleta, ou em qualquer outra fase posterior a esta. Pode -se dizer que esta gerência é de vital importância para que os custos e o volume de recursos utilizados pelos usuários sejam identificados e registrados de forma correta [5].
Dessa forma, foi criada uma rede fictícia para fins de teste para ser monitorada. Possuindo com 3 máquinas clientes e um servidor. Serão simulados acessos indevidos para que possa feita uma posterior auditoria a cerca da utilização da internet nessa rede. O objetivo é poder determinar, que tipo de sites e serviços estão sendo visitados, de quantos bytes foram utilizados para as requisições feitas.
3 . Ferramentas Propostas
Este tópico é reservado para a apresentação das ferramentas propostas, bem como suas características, passos para a instalação e configuração e explicando um pouco sobre seu funcionamento.
3.1 SQUID
Com o aumento massificado no uso da internet por grandes organizações, torna-se necessário a utilização de políticas de segurança que possibilitem um melhor aproveitamento dos recursos disponíveis para um satisfatório funcionamento das mesmas. Tais políticas podem ser criadas através de mecanismos como um servidor proxy.
Um servidor proxy é uma peça importante em uma rede interna que tenha contato com outra pública, pois implementa uma série de facilidades e controles. 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 o meio exterior. 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, um sistema que faz solicitações em nome de outros [6].
Para o presente artigo será apresentado o servidor proxy SQUID. O Squid é um servidor Proxy e cache que permite tanto compartilhar o acesso à Web com outros PCs da rede, quanto melhorar a velocidade de acesso através do cache [7]. Porém, o SQUID tem as suas limitações. Ele suporta apenas os protocolos HTTP (Hypertext Transfer Protocol) e FTP (File Transfer Protocol — Protocolo de Transferência de Arquivos), portanto o acesso não é completo.
3.1.1 Instalação e Configuração
A instalação do SQUID é muito simples, primeiro é necessário atualizar os pacotes do sistema operacional do servidor e logo em seguida instalá-lo, através dos seguintes comandos:
# apt-get update
# apt-get install squid
A configuração do SQUID é feita através da edição de um único arquivo: o "/etc/squid/squid.conf". Cada opção de configuração no Squid é uma tag, por exemplo, a definição de porta de pedido de cliente HTTP é identificada pela tag http_port [8].
A alteração básica para o SQUID funcionar é descomentar, habilitando os quatro comandos ou linhas em seu arquivo de configuração, como é apresentado abaixo.
http_port 3128
visible_hostname servidor
acl all src 0.0.0.0/0.0.0.0 e http_acess allow all
A primeira linha, define a porta em que o squid espera por conexões HTTP,que no caso a porta padrão é 3128. Em seguida, visible_hostname, define o nome do mesmo servidor da configuração da rede, nesse caso: «servidor». A última linha apresentada, constitui uma política de acesso que indica que todos os endereços IP's incluídos na lista possam usar o proxy[7]. Após feita esta configuração básica, é possível verificar se as alterações foram ativadas reiniciando o servidor SQUID pelo comando:
# /etc/init.d/squid restart
Essas configurações iniciais apenas permitem ativar o proxy. Mas para que ele funcione como Proxy transparente é necessário habilitar o squid e o firewall de forma que o servidor proxy fique escutando todas as conexões na porta 80. Isso evita a configuração manual em cada estação da rede [7].
A ativação do proxy transparente irá direcionar as requisições recebidas na porta 80 para o Squid, para isso é necessário executar o seguinte comando:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j \REDIRECT --to-port 3128
Este comando permite, configurar o firewall via NAT (Network Address Translation) através do eth0 do proxy, onde este recebe as requisições de outros micros da rede e redireciona para a porta do SQUID "3128".
# iptables -t nat -A POSTROUTING -s 0/0 -o eth1 -j MASQUERADE
Para permitir que as máquinas da rede interna se comuniquem com a internet, o comando acima define que a interface eth1 deverá ter seu endereço de origem alterado e mascarado.
Após a ativação do firewall e squid é preciso criar as políticas de acesso "acl's" da rede local de duas maneiras:
por domínios: bloqueia o acesso a sites indesejados
acl nome_arquivo_bloqueados dstdomain nome_dos_sites_proibidoshttp_access deny nome_arquivo_bloqueados
por palavras: bloqueia de acordo com as palavras
acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas"http_access deny palavrasproibidas
Abaixo estão definidas as implementações de configuração realizadas no arquivo squid.conf.
# /etc/squid.conf
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
###################################
cache_mem 80 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 90 MB
minimum_object_size 0 KB
####################################
cache_swap_low 90
cache_swap_high 95
# Configuracao do Cache
cache_dir ufs /var/spool/squid/ 2048 16 256
# Arquivo onde sao guardados os logs de acesso do Squid.
cache_access_log /var/log/squid/access.log
error_directory /usr/share/squid/errors/Portuguese
visible_hostname servidor
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 15 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
#acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl bloqueados url_regex -i "/etc/squid/bloqueados"
http_access deny bloqueados
# A acl "proibidos" é usada para fazer bloqueio baseado em palavras
acl proibidos dstdom_regex "/etc/squid/proibidos"
http_access deny proibidos
# Bloquear Streaming
# acl streaming rep_mime_type ^video/x-ms-asf
# acl proibir_musica urlpath_regex -i \.aif \.aifc \.aiff \.asf \.asx \.avi \.au \.m3u \.med \.mp3 \.m1v \.mp2 \.mp2v \.mpa \.mov \.mpe \.mpg \.mpeg \.ogg \.pls \.flv
# acl proibir_musica2 urlpath_regex -i \.ram \.ra \.ram \.snd \.wma \.wmv \.wvx \.mid \.midi \.rmi
# http_access deny streaming proibir_musica proibir_musica2
# acl flash url_regex -i \.flv \.torrent
# http_access deny flash
acl redelocal src 10.123.123.0/24
#delay_pools 1
#delay_class 1 2
#delay_parameters 1 24576/24576 12288/12288
#delay_access 1 allow redelocal
http_access allow localhost
http_access allow redelocal
http_access deny all
As palavras e sites bloqueados são armazenados em um arquivo localizado em /etc/squid/ nome_arquivo_bloqueados.
O comando cache_dir ufs /var/spool/squid/ 2048 16 256, define o diretório onde o cache será armazenado no diretório “/var/spool/squid” onde a primeira seqüência de números é o espaço destinado ao cache, o segundo informa a quantidade de diretórios a serem criados, e a terceira seqüência de números, informa a quantidade subdiretórios. O comando cache_access_log /var/log/squid/access.log, define o diretório onde ficarão os logs de acessos dos usuários. Esses arquivos por sua vez são muito complicados de serem interpretados pelo administrador de redes. A solução encontrada para poder traduzir esses logs é justamente utilizar uma ferramenta que possa facilitar a sua visualização [9]. A qual é proposta no próximo tópico.
3.2. SARG
O SARG (Squid Analize Reports Generator) é um interpretador de logs para o Squid, desenvolvido pelo brasileiro Pedro Orso. Cada acesso que passa pelo Squid, fica registrado em arquivo de log que não é bem legível para o administrador de rede. O SARG, portanto, permite visualizar o log de acessos dos usuários, mostra onde e o que os eles estão fazendo na Internet. Provê muitas informações sobre as atividades dos usuários que usam o Squid, tais como: tempos, bytes trafegados, sites acessados, tempo que passou acessando cada site, data, hora e gráficos o que permite total e completa administração de seus recursos [10].
3.2.1. Instalação e Configuração
Para a execução do Sarg foi necessário criar um Servidor Web, no caso, o Apache e ainda foi necessário instalar o php5. A configuração de tais pré-requisitos encontram-se abaixo:
Para a instalação do Servidor Apache e PHP5, foi necessário ir ao terminal e executar alguns comandos, que seguem respectivamente:
# apt-get install apache2
# cd httpd-2.0.63
./configure \
--prefix=/usr/local/apache2 \
--enable-cgi --enable-so \
--enable-rewrite--enable-mime-magic \
--enable-suexec \
--enable-static-rotateslogs \
--enable-spellig \
--enable-log-forensic
# make
# make install
Para instalação do PHP5:
# apt-get install php5
# cd php-5.0.3
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql --prefix=/usr/local/apache2/php \
--with-config-file-path=/usr/local/apache2/php \
--enable-force-cgi-redirect --disable-cgi –with-z=/usr/include/linux
Configurando o Apache2 para dar suporte ao PHP5, é criado um link dentro do diretório /etc/ apontando para /usr/local/apache2.
# cd /etc/
# ln -s /usr/local/apache2
# cd /etc/apache2
Antes de configurar o arquivo original, é necessário fazer uma cópia de segurança do arquivo httpd.conf.
# cp /etc/apache2/conf/httpd.conf /etc/apache2/conf/httpd.conf.original
Editando o arquivo httpd.conf
DirectoryIndex index.html index.html.var index.cgi index.php index.php4 index.php5 default.html default.php blank.html
ServerName 10.123.123.1
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php php
AddType application/x-httpd-php-source phps
#ServerTokens
ServerSignatures Off
Logo após, é necessário apenas reiniciar o servidor com:
# /usr/local/apache2/bin/apachectl restart
A instalação do SARG é muito simples apenas um "# apt-get install sarg" no terminal basta para ser completada. O mesmo também pode ser obtido em: http://sarg.sourceforge.net/pt-sarg.php
Com o Sarg, apache2 e o php instalados e configurados, já é possível iniciar a fase de testes. Foram feitos acessos das máquinas clientes a diversas páginas da internet, para poder fazer o gerenciamento do que era acessado.
4 . Estudo de caso
Foi implementada uma rede com as seguintes configurações: foi instalado o SO Debian Lenny 5.03 para funcionar como servidor, com o IP 10.123.123.1 na porta eth0 (placa de rede local) e as máquinas clientes foram: 10.123.123.2, 10.123.123.3 e 10.123.123.4.
Como os relatórios emitidos pelo Squid não são muito legíveis, a utilização do SARG foi essencial para fazer a análise do tráfego de informações na rede. As regras utilizadas pelo Squid são descritas acima, na seção 3.1.1.
O monitoramento da rede pode ser observado no decorrer das imagens abaixo:
Fig 1. Tela inicial do sarg no navegador
Nessa figura é possível observar a quantidade de máquinas na rede e quanto cada uma está consumindo.
Fig 2. Tabela mostrando os sites visitados pelos usuários
A figura 2 possibilita verificar quais sites foram mais visitados pelos usuários. E a seguir é mostrado um relatório de acesso por cada usuário, ou seja, o site que foi acessado e a a partir de que máquina da rede.
A seguir é exibido um relatório com as tentativas de acesso a sites bloqueados pelo Squid.
5 . Resultados Obtidos
Através das tabelas apresentadas na seção anterior, pode-se observar que as ferramentas propostas se mostraram bastante eficientes no que foi proposto nesse artigo. Utilizando a ferramenta Squid foi possível bloquear o acesso a alguns sites, os quais foram mostrados na Fig 4. e em se tratando do Sarg, obtive-se o número total de acessos a sites, tempo utilizado por cada usuário, bytes gastos por cada acesso em sites, número de conexões realizadas e sites mais visitados. Observou-se que em média foram gastos 01:50 hs por usuário acessando a internet, 141.92Mb em média gastos por usuário, conexões feitas em média foram de 6.63K.
Referências
[1]. Redação O Estado do Paraná. (2008). “Uso indevido da Internet traz prejuízos para as empresas”. <http://www.parana-online.com.br/canal/tecnologia/news/53285/?noticia=USO+INDEVIDO+DA+INTERNET+TRAZ+PREJUIZOS+PARA+AS+EMPRESAS>. Dezembro/2009.
[2]. ÚnicoNet. “Clientes – Cases”. <http://www.uniconet.com.br/Uniconet/Clientes/cases>. Dezembro/2009.
[3]. Koch, Moisés. (2008). “Um Proposta de Solução de Gerenciamento utilizando Nagius e Cacti”. <http://www.lume.ufrgs.br/bitstream/handle/10183/15980/000695290.pdf?sequence=1>. Dezembro/2009.
[4]. “Perguntas sobre Gerenciamento de Redes”. http://www.gta.ufrj.br/~alexszt/ger/questoes.html. Dezembro/2009.
[5]. Azevedo, Douglas J. Peixoto de. “Gerenciamento na arquitetura OSI”. <http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=181>. Dezembro/2009.
[6]. <http://imasters.uol.com.br/artigo/6220/linux/servidor_proxy_squid/>. Dezembro/2009.
[7]. <http://www.guiadohardware.net/dicas/squid-sarg-monitorando-acesso-web-sua-lan.html>. Dezembro/2009.
[8]. Laureano, Marcos A. Pchek. (2002). “Instalando e Configurando o Squid”. <http://www.mlaureano.org/guias_tutoriais/GuiaInstSquid.htm>. Dezembro/2009.
[9]. Gonzalez, Ary Carlos Rocha e Everton dos Reis. (2009). “Implantação de um servidor na empresa Soares Máquinas e Motores Ltda, para controle de acesso a internet utilizando Software Livre”.
[10]. Robert Lucas. (2007). “Aplicativos Linux para o dia-a-dia”. <http://www.vivaolinux.com.br/artigo/Aplicativos-Linux-para-o-diaadia/?pagina=2>. Dezembro/2009.