Вы находитесь на странице: 1из 67

Revista da Graduao

Vol. 4 No. 1 2011 32

Seo: FACULDADE DE ADMINISTRAO, CONTABILIDADE E


INFORMTICA CAMPUS URUGUAIANA

Ttulo: SQUIDHELP: interface web para


administrao do servidor proxy Squid

Autor: caro Lins Iglesias

Este trabalho est publicado na Revista da Graduao.


ISSN 1983-1374
http://revistaseletronicas.pucrs.br/ojs/index.php/graduacao/article/view/8836/6189
PONTIFCIA UNIVERSIDADE CATLICA DO RIO GRANDE DO SUL
FACULDADE DE ADMINISTRAO, CONTABILIDADE E INFORMTICA
CURSO DE SISTEMAS DE INFORMAO

CARO LINS IGLESIAS

SQUIDHELP: INTERFACE WEB PARA ADMINISTRAO DO SERVIDOR PROXY


SQUID

Uruguaiana
2010
CARO LINS IGLESIAS

SQUIDHELP: INTERFACE WEB PARA ADMINISTRAO DO SERVIDOR PROXY


SQUID

Trabalho de concluso de curso de graduao


apresentado Faculdade de Administrao,
Cincias Contbeis e Informtica da Pontifcia
Universidade Catlica do Rio Grande do Sul,
campus Uruguaiana, como requisito parcial
para obteno do grau de Bacharel em
Sistemas de Informao.

Orientador(a): Denise Michels Doviggi

Uruguaiana
2010
CARO LINS IGLESIAS

SQUIDHELP: INTERFACE WEB PARA ADMINISTRAO DO SERVIDOR PROXY


SQUID

Trabalho de concluso de curso de graduao


apresentado Faculdade de Administrao,
Cincias Contbeis e Informtica da Pontifcia
Universidade Catlica do Rio Grande do Sul,
campus Uruguaiana, como requisito parcial
para obteno do grau de Bacharel em
Sistemas de Informao.

Aprovada em _____ de ___________________ de ________.

BANCA EXAMINADORA:

Profo. Msc. Cezar Luiz Krause PUCRS

__________________________________

Prof. Marcelo Amador Lucas - PUCRS

__________________________________

Prof. Denise Michels Doviggi PUCRS

__________________________________
Dedico este trabalho a meus pais
Paulo Roberto da F. Iglesias e Conceio
Lins Espelocin, por sempre acreditarem no
meu potencial, dando o apoio necessrio
para que essa realizao fosse possvel.
AGRADECIMENTOS

Deus pelo dom da vida concebido e oportunidade de concluso desta


etapa.
minha me, Conceio Lins Espelocin, pela educao que me
proporcionou, sempre sonhando em ver seu filho formado, dando todo o apoio
necessrio para que este sonho se tornasse realidade.
minha amada, Narjara Figueira Barbosa, que me fez ingressar na
Universidade, sempre estando ao meu lado, compartilhando conhecimentos,
alegrias e sofrimentos, entendendo todo meu stress e mau humor a cada final de
semestre.
Ao meu pai, Paulo Roberto da F. Iglesias, que direta ou indiretamente
contribuiu para minha graduao.
Ao meu padrasto, Haroldo Gomes Espelocin (in memorian) que, de onde
estiver, tenho a certeza de que sempre estar torcendo pelo meu sucesso.
minha madrinha, Miete Lima Lins, por sempre me incentivar a estudar,
tendo grande importncia na realizao dessa etapa.
A todos os colegas (a galera da coca-cola do intervalo), em especial aos
colegas de nibus Claiton Correa, Michel Borges e Guilherme Benites, pelos bons
momentos de aprendizado vividos nestes quatro anos de dirias viagens.
Aos monitores Claiton Marques Correa e Fbio Quintana Jnior que sempre
me ajudaram pacientemente em todas as etapas da graduao.
todos os professores que alm do conhecimento didtico transmitido, nos
compartilharam suas experincias de vida.
Aos funcionrios do campus, em especial a funcionria Clara Valim do
laboratrio de informtica, por nos aturar e dar o apoio necessrio durante toda
graduao.
direo e administrao da empresa Farmcias Fronteira que me
oportunizou a conciliao entre trabalhar e estudar.
Aos amigos que sempre apoiaram e acreditaram no meu potencial, em
especial aos casais Paulo Sanchotene e Lilian Borcheid, Fabiano Montesano e
Maiara Barbosa.
Aos demais familiares que de alguma forma colaboraram para que este trabalho
fosse realizado.
Se voc tem uma ma e eu tenho
uma ma, e ns trocamos as mas,
ento voc e eu ainda teremos uma
ma.
Mas se voc tem uma idia e eu
tenho uma idia, e ns trocamos essas
idias, ento cada um de ns ter duas
idias.
George Bernard Shaw
RESUMO

Este trabalho visa o desenvolvimento de uma aplicao web tendo como


finalidade facilitar a administrao do proxy para GNU/Linux, o servidor Squid. O
projeto foi idealizado a partir da necessidade de uma interface amigvel ao usurio,
sem a necessidade de conhecimentos avanados em sistemas GNU/Linux, tendo
em vista que toda a administrao de servidores desta plataforma d-se via console,
exigindo certa familiaridade na manipulao de comandos em modo texto de seus
usurios.
O sistema desenvolvido foi dividido em quatro mdulos: contas de usurios,
administrao de ACLs, scripts no proxy e relatrios. O mdulo Contas de usurios
contm as telas de informaes cadastrais dos usurios e manuteno destas
contas. No mdulo Administrao de ACLs so realizadas as liberaes ou
bloqueios dos acessos de internet (sites, domnios, endereos IP, endereos MAC,
palavras proibidas e extenses de arquivos) conforme a poltica adotada por cada
empresa. O mdulo scripts no proxy utilizado para monitorao de logs de acesso
e cache, reconfigurar, parar ou reiniciar o servidor proxy Squid. Por fim, foi
desenvolvido o mdulo de Relatrios que possibilita a emisso de relatrios de
acesso interoperabilizando com o sistema SARG, alm de relatrios sobre os
cadastros, liberaes e bloqueios efetuados no banco de dados da prpria
aplicao, gerados no formato pdf.
Para o desenvolvimento do presente trabalho foram utilizadas as linguagens
de programao PHP, HTML e JavaScript; CSS para estilizao das pginas e
MySQL como SGBD.

Palavras-chave: GNU/Linux. Administrador web. Servidor proxy. Squid.


ABSTRACT

This work aims to develop a web application intended to facilitate the


administration of the proxy for GNU / Linux, the Squid server. The project was
conceived from the need to have a user-friendly interface, without requiring advanced
knowledge in GNU / Linux systems, given that all the server administration gives to
this platform via the console, requiring some familiarity manipulation commands in
text mode of its users.
The system has been divided into four modules: user accounts, management
of ACL's, scripts and reports on the proxy. The module contains the User Accounts
screen users of cadastral information and maintaining these accounts. In the
Administration module ACLs are made releases or locks the access to the Internet
(sites, domains, IP addresses, MAC addresses, words and banned file extensions)
as the policy adopted by each company. The scripts on the proxy module is used for
monitoring access logs and cache, reset, stop or restart the Squid proxy server.
Finally, the module was developed that allows the reporting reporting access to the
system interoperating SARG, plus reports on entries, releases and locks are taken
on the database application itself, generated in pdf format.
For the development of this work were used programming languages PHP,
HTML, JavaScript, CSS for styling pages and MySQL as DBMS.

Keywords: GNU/Linux. Web Administrator. Proxy Server. Squid


LISTA DE ILUSTRAES

Figura 1 Total de incidentes reportados ao CERT.br por ano................................13


Figura 2 - Funcionamento servidor proxy numa rede................................................21
Figura 3 - Relatrio de acessos ao servidor proxy Squid..........................................24
Figura 4 - Exemplo de script em PHP.......................................................................25
Figura 5 - Exemplo de script em Javascript...............................................................26
Figura 6 - Exemplo de arquivo CSS..........................................................................27
Figura 7 - Modelo de aplicao com Ajax..................................................................28
Figura 8 - Passo a passo servidor Apache................................................................29
Figura 9 - Exemplo de configurao para proxy em modo autenticado....................30
Figura 10 - Tela de login............................................................................................32
Figura 11 - Campos obrigatrios tela de login...........................................................33
Figura 12 - Login ou senha invlidos.........................................................................33
Figura 13 - Usurio sem permisso ao SquidHelp....................................................33
Figura 14 - Painel de controle....................................................................................34
Figura 15 - Menu Rpido...........................................................................................35
Figura 16 - Configurao de usurios.......................................................................36
Figura 17 - Novo usurio...........................................................................................36
Figura 18 - Campos obrigatrios tela novo usurio...................................................38
Figura 19 Alerta de login j cadastrado..................................................................38
Figura 20 - Tela cadastro de usurio efetuado com sucesso....................................39
Figura 21 - Tela manuteno de contas de usurio..................................................39
Figura 22 - Tratamento de erros da tela manuteno de usurios............................41
Figura 23 - Alerta de dados alterados com sucesso.................................................42
Figura 24 - Mdulo Administrar ACL's.......................................................................42
Figura 25 - Tela domnios/sites.................................................................................44
Figura 26 - Campo obrigatrio...................................................................................45
Figura 27 - Alerta sobre endereo j bloqueado.......................................................45
Figura 28 - Alerta sobre endereo j liberado...........................................................45
Figura 29 - Alerta sobre endereo bloqueado com sucesso.....................................46
Figura 30 - Alerta sobre endereo liberado com sucesso.........................................46
Figura 31 - Mdulo de scripts no proxy.....................................................................47
Figura 32 - Tela monitoramento dos arquivos access.log e cache.log............47
Figura 33 - Mensagem de proxy reconfigurado com sucesso...................................48
Figura 34 - Mensagem de proxy interrompido com sucesso.....................................48
Figura 35 - Mensagem de proxy reiniciado com sucesso.........................................49
Figura 36 - Mdulo de relatrios................................................................................49
Figura 37 - Relatrios de acessos SARG...............................................................50
Figura 38 - Relatrio com os acessos do dia ao proxy..............................................50
Figura 39 - Visualizao de relatrios gerados no diretrio Daily.............................51
Figura 40 - Relatrio com os acessos de uma semana ao proxy.............................51
Figura 41 - Visualizao de relatrios gerados no diretrio Weekly..........................51
Figura 42 - Relatrio com os acessos de um ms ao proxy.....................................52
Figura 43 - Visualizao de relatrios gerados no diretrio Monthly.........................52
Figura 44 - Tratamento de erros formulrio de relatrio customizado.......................52
Figura 45 - Relatrio com os acessos num perodo informado pelo usurio............53
Figura 46 - Relatrios de polticas SquidHelp...........................................................53
Figura 47 - Relao de sites/domnios URL..............................................................54
Figura 48 - Relatrio em pdf dos sites/domnios URL contido no banco de dados...55
Figura 49 - Relao de endereos IP........................................................................55
Figura 50 - Relatrio em pdf dos endereos IP contido no banco de dados.............55
Figura 51 - Relao de endereos MAC...................................................................55
Figura 52 - Relatrio em pdf dos endereos MAC contido no banco de dados........56
Figura 53 - Relao de palavras proibidas................................................................57
Figura 54 - Relatrio em pdf das palavras proibidas contido no banco de dados.....57
Figura 55 - Relao de extenses de arquivos.........................................................58
Figura 56 - Relatrio em pdf das extenses de arquivos contido no bd...................58
Figura 57 - Relao de usurios................................................................................59
Figura 58 - Relatrio em pdf dos usurios contido no banco de dados....................59
Figura 59 - Alerta Sobre............................................................................................60
Figura 60 - Alerta Sair................................................................................................60
LISTA DE SIGLAS

ACL Access Control List


GNU Gnus Not Unix
GPL General Public License
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
IHC Interface Homem Computador
IP Internet Protocol
MAC Media Access Control
MD5 Message Digest 5
NAT Network Address Translation
PHP Hypertext PreProcessor
SARG Squid Analysis Report Generator
SGBD Sistema Gerenciador de Banco de Dados
SQL - Structured Query Language
TCP/IP Transfer Control Protocol/Internet Protocol
TI Tecnologia da Informao
URL Uniform Resource Locator
SUMRIO

1 INTRODUO........................................................................................................13
1.1 ESTRUTURA DO TRABALHO.............................................................................14

2 OBJETIVOS............................................................................................................16
2.1 OBJETIVO GERAL...............................................................................................16
2.2 OBJETIVOS ESPECFICOS................................................................................16

3 MOTIVAO...........................................................................................................17

4 JUSTIFICATIVA......................................................................................................18

5 REFERENCIAL TERICO......................................................................................19
5.1 GNU/LINUX..........................................................................................................19
5.2 SQUID..................................................................................................................20
5.2.1 Acl.....................................................................................................................21
5.2.2 Modo de configurao....................................................................................22
5.2.2.1 Proxy transparente.........................................................................................22
5.2.2.2 Proxy autenticado...........................................................................................22
5.3 SARG...................................................................................................................23
5.4 PHP......................................................................................................................24
5.5 HTML....................................................................................................................25
5.6 JAVASCRIPT.......................................................................................................25
5.7 CSS......................................................................................................................26
5.8 AJAX.....................................................................................................................27
5.9 APACHE...............................................................................................................28
5.10 MYSQL...............................................................................................................29

6 DESCRIO DO SISTEMA....................................................................................30
6.1 FUNCIONAMENTO..............................................................................................30
6.2 LOGIN DO SISTEMA...........................................................................................32
6.2.1 Descrio da interface....................................................................................32
6.2.2 Tratamento de erros........................................................................................33
6.2.2.1 Descrio dos erros........................................................................................33
6.3 PAINEL DE CONTROLE......................................................................................34
6.3.1 Descrio da interface....................................................................................34
6.4 MENU LATERAL..................................................................................................35
6.4.1 Descrio da interface....................................................................................35
6.5 MDULO DE USURIOS....................................................................................36
6.5.1 Novo usurio....................................................................................................36
6.5.1.1 Descrio da interface....................................................................................37
6.5.1.2 Tratamento de erros.......................................................................................37
6.5.1.3 Cadastro efetuado com sucesso....................................................................38
6.5.2 Manuteno de conta......................................................................................39
6.5.2.1 Descrio da interface....................................................................................40
6.5.2.2 Tratamento de erros.......................................................................................41
6.5.2.3 Cadastro efetuado com sucesso....................................................................42
6.6 MDULO ADMINISTRAO DE ACLs..............................................................42
6.6.1 Descrio da interface....................................................................................43
6.6.2 Sites/domnios URL.........................................................................................44
6.6.2.1 Descrio da interface....................................................................................44
6.6.2.2 Tratamento de erros.......................................................................................45
6.6.2.3 Cadastro efetuado com sucesso....................................................................46
6.7 MDULO SCRIPTS NO PROXY.........................................................................46
6.7.1 Descrio da interface....................................................................................47
6.8 MDULO DE RELATRIOS................................................................................49
6.8.1 Relatrios de acessos.....................................................................................50
6.8.2 Relatrios de polticas SquidHelp.................................................................53
6.8.2.1 Descrio da interface....................................................................................54
6.9 SOBRE.................................................................................................................60
6.10 SAIR...................................................................................................................60

7 Concluso..............................................................................................................61
7.1 TRABALHOS RELACIONADOS..........................................................................61
7.2 TRABALHOS FUTUROS.....................................................................................62

REFERNCIAS..........................................................................................................63

GLOSSRIO..............................................................................................................64
13

1 INTRODUO

A acelerada disseminao da internet torna o acesso rede mundial de


computadores cada vez mais explorado, servindo tanto como ferramenta de trabalho
ou simples forma de lazer e entretenimento.
O contedo acessado pelos colaboradores de uma empresa algo que
precisa ser controlado, seja por questes de segurana ou at mesmo de
produtividade, cabendo aos administradores implantarem solues que visem
garantir a segurana da rede local, a partir de aes como: bloquear o acesso a
sites indesejveis, armazenar pginas mais acessadas em cache e controlar
downloads dos usurios, buscando otimizar os recursos de internet disponveis,
alm de emitir relatrios sobre os acessos de cada usurio da rede para anlise de
sites que podem ser permitidos ou negados, conforme a poltica adotada pela
empresa.
O CERT.br o Grupo de Resposta a Incidentes de Segurana para a Internet
brasileira, mantido pelo NIC.br, do Comit Gestor da Internet no Brasil.
responsvel por tratar incidentes de segurana em computadores que envolvam
redes conectadas Internet brasileira.(CERT.br, 2010).
A figura 1 demonstra o total de incidentes reportados espontaneamente ao
CERT.br, no perodo de 1999 a setembro de 2010.

Figura 1 Total de incidentes reportados ao CERT.br por ano


Fonte: CERT.br (2010)
14

Analisando o grfico, constatamos uma crescente de incidentes reportados,


com destaque para os anos 2006 e 2009 que obtiveram um aumento considervel
em relao ao seu ano anterior. As estimativas apuradas at setembro de 2010
demonstram que h uma tendncia de queda nos nmeros para o corrente ano.
Diante desse cenrio, surgem ferramentas para auxiliar o administrador de
redes a ter um controle eficiente sobre uma poltica de segurana em internet.
Segundo Furmankiewicz e Figueiredo (2000), essas ferramentas so conhecidas por
firewalls, divididos em duas categorias bsicas:
Firewalls de nvel de rede: so analisadores de contedo de pacote e
cabealho IP, operantes da camada de rede do protocolo TCP/IP;
Firewalls de gateway de aplicativo: so analisadores de contedo de URL,
tambm chamados de servidores proxy, que atuam na camada de aplicativo
do protocolo TCP/IP.
Sobre servidores proxy, a Wikipedia (2010) considera:
Proxy um servidor que atende a requisies repassando os dados
do cliente frente. Um usurio (cliente) conecta-se a um servidor
proxy, requisitando algum servio, como um arquivo, conexo,
website, ou outro recurso disponvel em outro servidor.

O proxy como um burocrata que no se limita a repassar as requisies:


ele analisa todo o trfego de dados, separando o que pode ou no pode passar e
guardando informaes para uso posterior. (Morimoto, 2009, p.133).
Para Carmona (2007), entre as alternativas de servidores proxy existentes no
mercado, destaca-se o software Squid como referncia para construo de proxy de
trfego e de cache, estando presente na maioria das distribuies GNU/Linux.
Porm, esta eficiente soluo possui uma administrao via console que
exige um conhecimento mais avanado sob sua manipulao, pois a aplicao no
proporciona uma interface amigvel ao usurio, precisando este saber utilizar muitos
comandos em modo texto.

1.1 ESTRUTURA DO TRABALHO

A estrutura deste trabalho foi dividida em sete captulos, apresentados a


seguir:
15

Captulo 1 Introduo Apresenta ao leitor uma introduo ao tema,


expondo a necessidade que objetivou o desenvolvimento do sistema.
Captulo 2 Objetivos Apresenta os objetivos geral e especficos sobre o
trabalho desenvolvido e o que se pretende fazer com a ferramenta desenvolvida.
Captulo 3 Motivao Neste captulo destacam-se as motivaes que
levaram o autor ao desenvolvimento da aplicao.
Captulo 4 Justificativa Este captulo visa expor ao leitor uma justificativa
para o desenvolvimento do projeto.
Captulo 5 Referencial terico Este captulo aborda todo o referencial
terico pesquisado para desenvolvimento da aplicao, abordando conceitos como
PHP, Squid, GNU/Linux, entre outros.
Captulo 6 Desenvolvimento do sistema Neste captulo so mostradas
as interfaces da aplicao web, bem como a descrio de suas funcionalidades.
Captulo 7 Concluso Por fim, so apresentadas as concluses sobre o
projeto desenvolvido, destacando os resultados obtidos e as dificuldades
encontradas, apresentando os trabalhos relacionados e sugerindo trabalhos futuros.
16

2 OBJETIVOS

2.1 OBJETIVO GERAL

Desenvolver uma ferramenta web para administrao do servidor proxy


Squid, permitindo que essa ferramenta possa ser utilizada por usurios que
desconheam o princpio de funcionamento deste servidor.

2.2 OBJETIVOS ESPECFICOS

Cadastrar e editar usurios que tero acesso aplicao e ao servidor proxy;


Criar uma estrutura de grupos com diferentes permisses de acesso ao proxy;
Permitir ao administrador do sistema a liberao ou bloqueio de sites e
domnios, extenses de arquivos, endereos IP ou MAC, bloquear por
palavras especficas;
Emitir relatrios sobre os acessos realizados ao proxy e dados cadastrados
na aplicao;
Monitorar logs de acesso e cache; reconfigurar, parar ou reiniciar o servidor.
17

3 MOTIVAO

A motivao para realizao deste trabalho d-se inicialmente pela admirao


ao software livre e seus benefcios.
Em conseqncia dessa admirao, outro fator em destaque a necessidade
de aprofundar os conhecimentos em sistemas operacionais GNU/Linux, onde h
uma escassez de profissionais qualificados no mercado para atuarem nessa rea.
Outro fator motivador que levou a confeco deste trabalho foi a necessidade
de se utilizar de maneira eficiente os recursos de internet aliado a uma possibilidade
de administrao realizada por usurios que no contenham relao com a TI, pois
nem todas as empresas possuem profissionais nesta rea, delegando tais funes a
gerentes ou chefes de produo.
18

4 JUSTIFICATIVA

O presente trabalho denominado SquidHelp se justifica pelo fato de


possibilitar uma administrao simples a usurios de menor experincia em sistemas
GNU/Linux.
O SquidHelp proporcionar ao administrador uma interface amigvel tendo a
interao realizada atravs de simples selees e formulrios de texto, permitindo
efetuar controle sobre as principais configuraes oferecidas pelo proxy Squid.
Por fim, a possibilidade de emisso de relatrios de acessos atravs da
interao com o programa SARG, aliado aos demais relatrios proporcionados pela
aplicao SquidHelp, possibilitar ao administrador um eficiente controle sobre os
recursos corporativos de internet, amenizando os riscos tangveis a segurana e
evitando perdas na produtividade das operaes.
19

5 REFERENCIAL TERICO

Este captulo descreve os conceitos utilizados para desenvolvimento da


aplicao web SquidHelp, servindo de referencial terico para implantao das
funcionalidades e esclarecimentos de eventuais dvidas que surgiram durante o
desenvolvimento do projeto.

5.1 GNU/LINUX

GNU um sistema operacional Unix-Like que possui um cdigo fonte que


pode ser copiado, modificado e distribudo. Seu significado corresponde a GNUs not
Unix, um termo acrnimo recursivo.
O projeto GNU foi iniciado em 1983 por Richard Stallman, considerado o pai
do software livre, e alguns outros hackers que formaram a FSF (Free Software
Foundation). Stallman acreditava que os usurios deveriam ser livres para fazer o
que desejassem com o software que adquirissem, incluindo fazer cpias para
amigos e modificar o cdigo fonte, distribuindo-o com as alteraes realizadas.
Para o desenvolvimento do sistema GNU, Stallman precisava de um editor de
textos para escrever seus cdigos e um compilador para tornar a linguagem de texto
em linguagem de mquina, ou seja, um programa executvel. Desenvolveu ento o
editor de texto Emacs, seguido do compilador GCC (GNU C Compiler).
Definiu tambm uma nova definio de licena, chamada copyleft, sendo uma
pardia ao copyright, onde estipula que qualquer pessoa que fizer a redistribuio de
um software livre deve passar ele com sua liberdade tambm, permitindo que futuras
alteraes e cpias deste possam acontecer. A idia dessa modalidade de licena
est em no permitir que algum se intitule dono de uma verso, impondo restries
para o usurio. Desta maneira, um software livre sempre ser livre.
Em 1991, o sistema operacional GNU estava praticamente pronto, mas
faltava ainda um de seus principais componentes, o ncleo do sistema, tambm
chamado de kernel, responsvel pela execuo dos programas, escalonamento das
tarefas e acesso aos recursos de hardware.
Eis ento que surge o estudante finlands Linus Torvalds, com o
desenvolvimento de uma verso inicial de um ncleo de sistema operacional
20

compatvel com o UNIX e especfico para computadores pessoais. Este ncleo foi
batizado de LINUX, disponibilizado internet sob a licena GNU GPL.
Segundo Carmona (2007), a partir da juno do projeto de Richard Stallman
com o kernel desenvolvido por Linus Torvalds, nasce um dos maiores fenmenos da
indstria de software de todos os tempos, o sistema operacional GNU/LINUX, um
sistema robusto e confivel, totalmente grtis, obtendo uma reputao de um
sistema com excelente performance e eficincia.
A distribuio GNU/Linux escolhida para desenvolvimento da aplicao web
SquidHelp foi o Ubuntu Server 8.04, precisando estarem instalados neste servidor os
programas Apache, Squid e SARG.

5.2 SQUID

O Squid um servidor proxy de cdigo-aberto presente na maioria das


distribuies GNU/Linux, capaz de suportar os protocolos HTTP, HTTPS, FTP,
Gopher e outros. Serve para reduzir a utilizao da conexo numa rede e melhora
os tempos de resposta fazendo cache de requisies freqentes de pginas web
nesta rede de computadores.( Wikipedia, 2010). O nome Squid uma traduo que
quer dizer lula.
Segundo Morimoto (2009, p.133), O Squid permite compartilhar a conexo
entre vrios micros, servindo como um intermedirio entre eles e a internet. O autor
destaca ainda que as vantagens de usar um servidor proxy so basicamente trs:
1. Possibilidade de impor restries de acesso com base em horrios, login,
endereo IP ou MAC, bloqueio de palavras, extenses de arquivos e pginas
indesejadas;
2. O proxy funciona como um cache de pginas e arquivos, armazenando
localmente as informaes j acessadas, economizando banda de internet e
tornando o acesso mais rpido;
3. Rene todos os acessos realizados num nico lugar. Desta forma, possvel
visualizar os acessos posteriormente utilizando o SARG, um gerador de
relatrios que transforma as longas listas de acessos dos arquivos de logs em
pginas HTML bem formatadas. (Orso, 2010).
21

A figura 2 esboa o funcionamento de um servidor proxy numa rede de


computadores:

Figura 2 - Funcionamento servidor proxy numa rede


Fonte: Morimoto (2009, p. 134)
A seguir, sero descritos alguns conceitos fundamentais para melhor
entendimento no funcionamento do servidor proxy Squid.

5.2.1 ACL

O Squid possui um eficiente mecanismo de controle dos acessos de internet


numa rede. Atravs deste mecanismo, torna-se possvel a criao de listas
altamente customizadas, capazes de filtrar desde simples domnios at contedos
mais especficos. (Morimoto, 2009).
As ACL's - (Access Control Lists) ou listas de controle de acesso, constituem
a grande flexibilidade e eficincia do Squid. Atravs delas podem-se criar regras
para controlar o acesso Internet das mais diferentes formas. Praticamente todo o
processo de controle do Squid feito com o seu uso.
O uso das listas de controle de acesso a parte mais importante da
configurao de um servidor proxy Squid, pois se bem configuradas podem trazer
um nvel de segurana muito bom para a rede. Entretanto se mal configuradas
podem ter o resultado oposto, j que alm da falsa sensao de segurana no ser
aproveitada a principal funcionalidade do Squid.
22

5.2.2 MODO DE CONFIGURAO

O arquivo de configurao do servidor proxy Squid o squid.conf. Este


arquivo em sua verso original composto por mais de 1500 linhas, contendo
comentrios e exemplos sobre quase todas as opes disponveis pelo proxy. Com
relao autenticao dos usurios do proxy, o Squid oferece suporte a dois modos
distintos, conhecidos como transparente e autenticado.

5.2.2.1 Proxy transparente

Sobre Proxy transparente, Morimoto (2009, p.153) destaca:


Uma garantia de que os usurios realmente vo usar o proxy e, ao
mesmo tempo, uma grande economia de trabalho e dor de cabea
o recurso de proxy transparente. Ele permite configurar o Squid e o
firewall de forma que o servidor proxy fique escutando todas as
conexes na porta 80. Mesmo que algum tente desabilitar o proxy
manualmente nas configuraes do navegador, ele continuar sendo
usado. Outra vantagem que este recurso permite usar o proxy sem
precisar configurar manualmente o endereo em cada estao. Basta
usar o endereo IP do servidor rodando o proxy como gateway da
rede.

Existe uma limitao importante a ser considerada nesse modo, onde o proxy
atende apenas ao trfego realizado pela porta 80. Como a conexo compartilhada
via NAT, todo o trfego de outros protocolos (incluindo pginas em HTTPS, que so
acessadas atravs da porta 443) encaminhado diretamente, sem passar pelo
proxy. Ou seja, embora seja uma forma simples de implementar um sistema de
cache e algumas restries de acesso, o uso do proxy transparente est longe de
ser uma soluo ideal.

5.2.2.2 Proxy autenticado

No modo autenticado, o usurio precisa informar suas credenciais para


usufruir dos recursos do proxy. Morimoto (2009) destaca que este modo de
configurao no permite ser usado em conjunto com o proxy transparente, fazendo
com que seja realizada uma escolha entre as duas formas.
23

Conforme Vesperman (2001), o Squid utiliza processos auxiliares para


processar as solicitaes de autenticao para evitar que o mesmo seja parado ou
bloqueado por causa de conexes lentas. Esses processos auxiliares so
conectados por pipes Unix padro e o Squid se comunica atravs de entradas e
sadas padro. Se o processo responder OK, a autenticao foi feita; se responder
ERR, a autenticao falhou.
Como cada solicitao deve ser autenticada, o Squid guarda o nome de
usurio e a senha junto com os retornos de autenticaes bem sucedidas no seu
cache por um perodo pr-determinado, permitindo que envie solicitaes para cada
pgina solicitando a autenticao ao usurio uma nica vez.
Este foi o modo de autenticao escolhido para desenvolvimento da aplicao
web SquidHelp, onde utilizado o script mysqlt_auth, construdo em PHP e
baseado em autenticao de tabelas no banco de dados MySQL.

5.3 SARG

O SARG (Squid Analisys Reporter Generator) um projeto open source


desenvolvido por Lineo Orso com a finalidade de interpretar os acessos registrados
no arquivo de log do programa Squid. Este programa capaz de transformar as
longas listas de acessos dos logs em arquivos HTML muito bem organizados.
(Morimoto, 2009).
Toda vez que executado, ele cria um conjunto de pginas organizadas por
dia, contendo todos os acessos realizados e a partir de qual mquina este acesso foi
realizado. Quando utilizado o proxy em modo autenticado, o relatrio gerado
mostrar o login dos usurios, caso contrrio, ser mostrado o endereo IP das
mquinas.
Desta forma, possvel realizar o acompanhamento sobre as pginas que
esto sendo acessadas e tomar as medidas cabveis nos casos de abuso.
A figura 3 demonstra como gerado um relatrio atravs do programa SARG:
24

Figura 3 - Relatrio de acessos ao servidor proxy Squid


Fonte: O autor (2010).
Atravs da aplicao web SquidHelp, possvel gerar relatrios customizados
interoperabilizando com o programa SARG.

5.4 PHP

Entre as variadas linguagens de programao existentes para web (Perl,


Microsoft ASP.NET, Java Server Pages e outros), o PHP (Hypertext PreProcessor)
destaca-se na gerao de pginas dinmicas pela sua facilidade e segurana,
possuindo interface para muitos sistemas de diferentes banco de dados, alm de ser
uma ferramenta livre.
Sobre PHP, Welling e Thomson (2005, p.xxvi) descrevem:
O PHP uma linguagem de criao de scripts do lado do servidor
que foi projetada especificamente para a Web. Dentro de uma pgina
HTML, voc pode embutir cdigo de PHP que ser executado toda
vez que a pgina for visitada. O cdigo de PHP interpretado no
servidor Web e gera HTML ou outra sada que o visitante ver.

A figura 4 exemplifica um script realizado em PHP, utilizado no


desenvolvimento do projeto:
25

Figura 4 - Exemplo de script em PHP


Fonte: O autor (2010).
Por todos estes motivos, essa foi a linguagem de programao escolhida para
desenvolvimento da aplicao web SquidHelp.

5.5 HTML

O HTML (HyperText Markup Language) uma linguagem de marcao de


textos utilizada para exibio de pginas na web, tendo seu contedo interpretado
por navegadores.(Wikipedia, 2010).
Sobre HTML, Venetianer (1997) destaca:
HTML a acrossemia de HyperText Markup Language (Linguagem
de Anotao de Hipertexto). uma linguagem de programao muito
simples, utilizada para criar documentos hipertexto, que pode ser
portada de uma plataforma computacional para outra. Isto significa
que voc pode escrever cdigos-fonte HTML sem se preocupar em
qual computador e por qual sistema operacional este documento
ser visualizado.

Os comandos aceitos pela linguagem HTML so texto comum e cdigos


especiais conhecidos por tags.
A aplicao web SquidHelp utilizou HTML para confeco e exibio de suas
telas.

5.6 JAVASCRIPT

Javascript uma linguagem de programao utilizada para criar efeitos


especiais nas pginas e definir interatividades com o usurio. O navegador do
cliente o encarregado de interpretar as instrues Javascript e execut-las para
26

realizar estes efeitos e interatividades, de modo que o maior recurso, e talvez o


nico, com que conta esta linguagem o prprio navegador.
Sobre Javascript, Alvarez (2004) destaca:
Javascript uma linguagem com muitas possibilidades, permite a
programao de pequenos scripts, e tambm de programas maiores,
orientados a objetos, com funes, estruturas de dados complexas,
etc. Toda esta potncia de Javascript se coloca disposio do
programador, que se converte no verdadeiro dono e controlador de
cada coisa que ocorre na pgina.

A figura 3 exemplifica como deve ser realizado uso de Javascript em pginas


HTML pelo padro W3C:

Figura 5 - Exemplo de script em Javascript


Fonte: O autor (2010).
Para o desenvolvimento da aplicao web SquidHelp, foram criadas algumas
funes na linguagem Javascript para otimizao das pginas.

5.7 CSS

CSS a sigla em ingls para Cascading Style Sheet que em portugus foi
traduzido para folha de estilo em cascata.
Maujor (2010) define CSS como: "Folha de estilo em cascata um
mecanismo simples para adicionar estilos (p.ex., fontes, cores, espaamentos) aos
documentos web."
O autor destaca ainda que:
A grande vantagem do uso de CSS a de separar a marcao
HTML, da apresentao do site. Em outras palavras, vale dizer que o
HTML destina-se unicamente a estruturar e marcar o contedo,
ficando por conta das CSS toda a responsabilidade pelo visual do
documento.

A figura 4 exemplifica a forma como composto um arquivo CSS:


27

Figura 6 - Exemplo de arquivo CSS


Fonte: O autor (2010).
Para o desenvolvimento aplicao web SquidHelp, arquivos CSS foram
criados para uma melhor estilizao e visualizao de pginas e menu do sistema.

5.8 AJAX

Ajax a sigla para Asynchronous Javascript and XML. Parte da idia de


utilizar Javascript para transformar pginas em aplicaes, de modo que no precise
recarregar a tela cada vez que o usurio clicar em alguma coisa.
Sobre Ajax, Soares (2006) destaca:
AJAX significa Asynchronous Javascript and XML (JavaScript e XML
assncrono), porm o que temos muito mais que a juno de
JavaScript com XML. um conceito de navegao e atualizao de
pginas web (algumas partes descritas no so novas, denominadas
muitas vezes de DHTML (HTML Dinmico) e Script Remoto).
Com o AJAX no necessrio que a atualizao de determinadas
informaes implique na modificao da pgina inteira, pois
possvel realizar a busca das informaes no servidor web dentro da
prpria pgina, atravs de alguns componentes disponveis no
JavaScript e um pouco de manipulao do HTML, como se fosse um
documento XML via API DOM.

O modelo de uma aplicao que utilize Ajax est representado na figura 5:


28

Figura 7 - Modelo de aplicao com Ajax


Fonte: Niederauer (2010, p.17)
Diferente do modelo clssico de aplicao web, nesse modelo a interao
entre o navegador e o servidor web no ocorre de forma totalmente direta, mas por
meio da ferramenta Ajax. Como o Ajax ativado por uma chamada JavaScript, o
usurio pode permanecer visualizando a pgina normalmente enquanto ocorre a
comunicao com o servidor web.
Essa tecnologia tambm se encontra presente na aplicao web
desenvolvida, onde foram utilizados frameworks para Ajax spry - validao dinmica
de campos - e sexyalertbox para melhor aparncia nas janelas de alerta.

5.9 APACHE

O Apache um servidor web open source, sendo a principal tecnologia da


Apache Software Foundation. Ele encontra-se disponvel em diversas plataformas
de sistemas operacionais, como Windows, Novell Netware, OS/2 e diversos outros
do padro POSIX (Unix, Linux, FreeBSD, etc...).
Segundo Morimoto (2009, p.347) Os servidores web so a espinha dorsal da
internet [...]. Estes servidores hospedam as pginas, servindo de base para toda
aplicao web. Cabe a eles a responsabilidade de aceitar pedidos HTTP de clientes
e servi-los com respostas a estes pedidos.
Sobre o servidor Apache, Morimoto (2009, p.351) ainda descreve:
A principal caracterstica do Apache a modularidade. Ao invs de
ser um aplicativo grande e complexo, que tenta desempenhar
sozinho todas as funes, o Apache se limita a executar uma nica
29

tarefa: entregar pginas html e outros tipos de arquivos aos clientes.


Qualquer outra coisa invariavelmente feita por um mdulo externo.

A figura 6 ilustra como os passos realizados pelo servidor web para realizar a
entrega de uma pgina ao usurio em tempo hbil:

Figura 8 - Passo a passo servidor Apache


Fonte: Morimoto (2009, p.351).
Desta forma, o autor destaca que atravs da diviso de tarefas
(modularidade), o servidor Apache consegue obter uma maior rapidez e segurana.
Devido a estes fatores, o servidor web Apache foi o escolhido para
hospedagem da aplicao SquidHelp.

5.10 MYSQL

O MySQL um SGBD extremamente verstil, usado para os mais diversos


fins. Permite acesso a seu banco de dados a partir de scripts em PHP, atravs de
um aplicativo desenvolvido em C ou C++, ou praticamente qualquer outra linguagem
(Morimoto, 2009).
Sobre MySQL, Welling e Thomson (2005, p.165) consideram:
O MySQL um sistema de gerenciamento de banco de dados
relacional (relational database management system - RDBMS)
poderoso e muito rpido. Um banco de dados permite armazenar,
pesquisar, classificar e recuperar dados de forma eficiente. O
servidor de MySQL controla o acesso aos dados para assegurar que
vrios usurios possam trabalhar com os dados ao mesmo tempo,
fornecer acesso rpido aos dados e assegurar que somente usurios
autorizados obtenham acesso. Portanto, o MySQL um servidor
multiusurio e multiencadeado (ou multitbreaded). Ele utliza SQL
(Structured Query Language), a linguagem de consulta padro de
banco de dados em todo o mundo.

Por conter uma fcil integrao com GNU/Linux, Apache e PHP, formadores
do conjunto LAMP, MySQL foi o SGBD escolhido para armazenamento de dados da
aplicao SquidHelp.
30

6 DESCRIO DO SISTEMA

6.1 FUNCIONAMENTO

SquidHelp foi desenvolvido nos moldes de uma aplicao web - um sistema


que executado em um servidor HTTP e que pode ser acessado por equipamentos
conectados a rede atravs do mesmo - escrito nas linguagens HTML e PHP,
utilizando MySQL como SGBD. O modo de autenticao adotado foi o script
mysqlt_auth, criado em PHP, que valida a autenticao do usurio ao proxy
baseado em tabela do SGBD MySQL. Devido ao uso de autenticao no servidor
proxy, torna-se preciso setar manualmente no navegador o endereo deste
servidor.
A figura 9 exemplifica como deve estar configurado o navegador para
utilizao da ferramenta SquidHelp:

Figura 9 - Exemplo de configurao para proxy em modo autenticado


Fonte: O autor (2010).
O sistema SquidHelp foi desenvolvido para conter um nico perfil de usurio,
sendo este o administrador do sistema, com permisso total sobre as
funcionalidades da aplicao web.
O acesso dado mediante autenticao do usurio, onde a partir do login e
senha fornecidos, realiza-se um pesquisa na tabela de usurios do SGDB MySQL.
Esta tabela alimentada atravs das inseres da interface de cadastro de usurios,
que utiliza o framework spry para validao dinmica de seus campos. Esta interface
31

contm os dados de login e senha (criptografada pelo hash do algoritmo MD5),


grupo de acesso do usurio junto ao proxy Squid (so trs grupos possveis: TOTAL,
PARCIAL ou RESTRITO) e um flag utilizado para definir se o usurio tambm ter
acesso ao sistema SquidHelp, pois a base de autenticao utilizada pelo proxy
Squid e pela aplicao web SquidHelp a mesma. Tambm foi desenvolvida uma
tela para manuteno de cadastros, onde o administrador poder alterar a senha
dos usurios, ativar/inativar seu acesso ao proxy, permitir ou negar a utilizao da
aplicao SquidHelp e alterar o grupo de privilgios de acesso.
Caso negada a sua entrada, seja por motivos de inativao ao proxy ou no
permisso aplicao SquidHelp, ser apresentado ao usurio uma tela solicitando
o contato junto ao administrador da rede. Estando autorizada sua entrada, este ser
redirecionado para a tela principal, onde poder utilizar os quatro mdulos
apresentados pelo sistema:
1. Mdulo de Usurios: cadastrar usurios, manuteno de usurios;
2. Mdulo Administrar ACLs: bloquear ou liberar sites e domnios,
endereos IP e MAC, palavras e extenses de arquivos;
3. Mdulo de Scripts no proxy: monitorar em tempo real o log de acessos
e cache; reconfigurar, para ou reiniciar o servidor Squid ;
4. Mdulo de Relatrios: gerar relatrios de acesso, interagindo com o
sistema SARG e gerar relatrios pdf sobre cadastros efetuados na
aplicao.
O sistema hospedado pelo servidor web Apache e possui controle de
sesses e cookies a cada autenticao, evitando acesso indevido as pginas da
aplicao sem a devida autenticao.
Foram necessrias seis tabelas para construo do banco de dados, que
comportam: cadastro de usurios, sites, endereos IP, endereos MAC, palavras e
extenses de arquivos. Estas tabelas so alimentadas pelos seus respectivos
formulrios, descritos a seguir.
Devido ao arquivo de configurao do servidor Squid - squid.conf - no
obter acesso diretamente s tabelas, este precisa buscar as informaes de
autenticao, bloqueios ou liberaes atravs de simples arquivos em texto puro.
Para suprir esta necessidade, desenvolveu-se scripts para que ao final de
cada insero nas tabelas do SGBD, fosse tambm adicionada esta informao em
um arquivo com seu nome e local j pr-definidos nas ACLs do arquivo
32

squid.conf, para que o proxy consiga entender os acesos que precisa negar ou
liberar, bem como a autenticao dos usurios na rede.
A seguir sero apresentas as interfaces da aplicao web desenvolvida, bem
como seus alertas e tratamentos de erros.

6.2 LOGIN DO SISTEMA

Ao digitar no navegador o endereo da aplicao, o usurio ser direcionado


a esta tela, solicitando suas credenciais para acesso ao SquidHelp.

01

02
03
04

Figura 10 - Tela de login

6.2.1 Descrio da interface

01 Local a ser digitado o endereo do servidor web, seja pelo endereo IP


ou pelo nome qualificado.

02 Formulrio de texto a ser digitado o login previamente cadastrado na


aplicao.

03 Formulrio de texto a ser digitada a senha do usurio.

04 Boto que submete validao os dados fornecidos pelo usurio.


33

6.2.2 Tratamento de erros

Abaixo sero apresentas as interfaces de tratamento de erros para falhas de


autenticao.

Figura 11 - Campos obrigatrios tela de login

Figura 12 - Login ou senha invlidos

Figura 13 - Usurio sem permisso ao SquidHelp

6.2.2.1 Descrio dos erros

Figura 11 Quando o usurio tentar acesso sem o preenchimento de algum


campo, a validao dinmica atravs do framework spry impedir-lo, notificando-o
sobre o motivo. Observe tambm que nessa tela, o campo login possui uma
validao extra, com obrigatoriedade sobre uma quantidade mnima de 5 caracteres.
34

Figura 12 Esta figura representa o alerta apresentado ao usurio no caso de


divergncias em um dos campos preenchidos, login ou senha.
Figura 13 Por fim, esta tela ser apresentada ao usurio quando sua
autenticao for vlida, porm este no possui acesso a aplicao SquidHelp,
estando irregular em duas possveis situaes: a) estar inativo como usurio do
proxy ou b) no possuir permisso de acesso aplicao, sendo apenas usurio do
proxy.

6.3 PAINEL DE CONTROLE

Estando autorizada sua entrada, o usurio ser redirecionado para a pgina


principal do sistema, o painel de controle da aplicao SquidHelp.

02
01

03

04

Figura 14 - Painel de controle

6.3.1 Descrio da interface

01 Texto de boas-vindas ao usurio, onde atravs de uma funo busca o


nome do usurio cadastrado no banco de dados.
02 Opo para o usurio abandonar o sistema, destruindo sua sesso
criada anteriormente. Ser apresentado um alerta confirmando sua sada, descrito
em breve.
35

03 rea com os mdulos pertencentes ao SquidHelp, permitindo a


navegao atravs de clique na imagem correspondente ou utilizao do menu
lateral.
04 Menu lateral drop down, construdo em CSS, para que o usurio possua
acesso rpido a todas funcionalidades do sistema.

6.4 MENU LATERAL

A partir desta tela, este menu estar presente em todas as demais interfaces
do sistema, com o intuito de proporcionar um acesso mais direto ao usurio.

02
01

03

Figura 15 - Menu Rpido

6.4.1 Descrio da interface

01 Recurso hover proporcionado pelo CSS, onde apresenta um destaque a


opo selecionada, mudando sua cor ao passar o mouse.
02 Sub-menus e derivados que formam uma cascata. Quando clicados
levam at a pgina requisitada.
03 Recurso hint , utilizado como uma breve explicao sobre o que far a
opo selecionada.
36

6.5 MDULO DE USURIOS

Este mdulo permite o cadastro dos usurios do proxy e SquidHelp, bem


como a manuteno destas contas.

Figura 16 - Configurao de usurios

6.5.1 Novo usurio

Esta interface permite o cadastro dos usurios ao proxy, utilizando validao


dinmica em seus campos. Define o login e senha do usurio, bem como seu grupo
de privilgios de acesso ao proxy, alm da liberao a aplicao web SquidHelp.

01
02
03
04
05 06

07
Figura 17 - Novo usurio
37

6.5.1.1 Descrio da interface

01 Formulrio de texto a ser preenchido o nome completo do usurio.


02 Formulrio de texto a ser preenchido o login escolhido pelo usurio que
ser utilizado para acesso ao proxy ou a aplicao SquidHelp.
03 Formulrio de texto a ser preenchida a senha do usurio.
04 Formulrio de texto utilizado para confirmao da senha digitada.
05 Caixa de seleo utilizada para selecionar um dos trs grupos de
privilgios possveis ao usurio, onde:
Restrito: corresponde aos usurios que tero acesso apenas as
pginas liberadas pelo administrador, bem como apenas as extenses
de arquivos permitidas por este, sendo um grupo extremamente
limitado pela aplicao;
Parcial: corresponde aos usurios que tero acesso a qualquer pgina
com exceo das pginas bloqueadas pelo administrador. A regra para
extenses de arquivo prevalece a este grupo tambm;
Total: corresponde ao grupo de administradores, com permisso total
para acesso, sem qualquer tipo de restrio.
06 Caixa de seleo utilizada para permitir ou no o acesso ao SquidHelp.
07 Conjunto de botes destinados a submeter os dados para cadastro ou
limpar os formulrios preenchidos, respectivamente.

6.5.1.2 Tratamento de erros

As figuras abaixo representam o tratamento de erros realizado pela aplicao


SquidHelp com relao ao cadastro de usurios.
38

Figura 18 - Campos obrigatrios tela novo usurio

Figura 19 Alerta de login j cadastrado


Onde:
Figura 18 esta interface possui tratamento de erros em todos os seus
campos, sendo que alguns deles possuem mais de um tipo de validao, como login
e senha. O campo [ Repita a senha ] possui uma validao de confirmao, ou seja,
verifica se o texto digitado igual ao campo [ Senha ].
Figura 19 Este alerta apresentado quando ocorrer a tentativa de insero
de um login j existente no banco de dados, proporcionando um texto amigvel ao
usurio.

6.5.1.3 Cadastro efetuado com sucesso

Quando o cadastro for efetuado com sucesso, ser apresentada uma tela de
aviso ao usurio, possibilitando o cadastro de um novo usurio ou acesso ao painel
de controle.
39

Figura 20 - Tela cadastro de usurio efetuado com sucesso

6.5.2 Manuteno de conta

Esta interface foi desenvolvida para possibilitar uma melhor administrao dos
usurios cadastrados na aplicao SquidHelp.

04
06
07
08 05
09 10

11
01

02

03

Figura 21 - Tela manuteno de contas de usurio


40

6.5.2.1 Descrio da interface

A numerao dispersa na figura 21 representa o fluxo de funcionamento desta


interface, descrito abaixo:
01 Formulrio de texto utilizado para pesquisa atravs do login do usurio,
podendo este ficar em branco. Nesse caso, sero listados os dez primeiros registros
encontrados no banco de dados.
02 Boto pesquisar, utilizado para ativar a consulta realizada a partir do
contedo do campo login. Pode ser substitudo pela tecla [ Enter ].
03 Tabela com o resultado da pesquisa realizada, trazendo na ltima coluna
um cone que possibilita a edio do usurio selecionado, passando-o para edio
atravs do seu cdigo, sendo este a chave primria no banco de dados.
04 Aps clicado no cone de edio, o formulrio acima ser preenchido
com os dados do usurio contido no banco de dados, iniciando com a caixa de texto
de login. Este valor permite ser alterado.
05 Este checkbox define se ser alterada ou no a senha do usurio, sendo
que apenas quando marcado habilita a digitao nos itens 06 e 07.
06 Caixa de texto para digitao da nova senha do usurio, por padro ela
vem desabilitada, mantendo a mesma senha anterior do usurio junto ao banco de
dados.
07 Caixa de texto para confirmao de senha, por padro tambm est
desabilitada.
08 Caixa de seleo para ativao ou inativao dos usurios ao proxy e
aplicao SquidHelp. preenchida com o valor contido no banco de dados do
usurio selecionado.
09 Caixa de seleo para alterao do grupo de privilgios de acesso, j
descrito no captulo 6.4.1.1. preenchida com o valor contido no banco de dados do
usurio selecionado. Alm da alterao no banco de dados, ser gravado tambm
no arquivo correspondente ao novo grupo, para que o servidor Proxy permita os
novos privilgios deste usurio.
10 Caixa de seleo utilizada para permitir ou negar acesso a aplicao
web SquidHelp. preenchida com o valor contido no banco de dados do usurio
selecionado.
41

11 Conjunto de botes utilizados para submeter a alterao ou limpar os


textos informados no formulrio, respectivamente.

6.5.2.2 Tratamento de erros

A figura abaixo representa o tratamento de erros realizado pela aplicao


SquidHelp com relao a manuteno de contas de usurio.

01

02

Figura 22 - Tratamento de erros da tela manuteno de usurios


Onde:
01 No caso do usurio clicar no boto [ Alterar ] sem nenhuma conta
selecionada, o sistema notificar sobre a obrigatoriedade dos campos.
02 Caso o login pesquisado no seja encontrado, a aplicao notificar o
usurio atravs de uma mensagem amigvel, sugerindo uma nova tentativa.

6.5.2.3 Cadastro efetuado com sucesso

Quando a alterao for efetuada com sucesso, ser apresentada uma tela de
aviso ao usurio, como na figura 23.
42

Figura 23 - Alerta de dados alterados com sucesso

6.6 MDULO ADMINISTRAO DE ACLs

Este o mdulo chave da aplicao SquidHelp, pois a partir dele ser


definida a poltica de liberaes e bloqueios para as listas de controle de acesso
junto ao servidor proxy Squid.

02

01 03

05
04

Figura 24 - Mdulo Administrar ACL's


43

6.6.1 Descrio da interface

01 Sites/domnios URL: atravs desta interface ser possvel realizar


liberaes e bloqueios de acessos sobre determinada URL.
Exemplo de formatao aceita pelo servidor Squid: www.playboy.abril.com.br,
orkut.com, .youtube.
02 Endereos IP: atravs desta ACL ser possvel realizar a liberao ou
bloqueio de acessos atravs do endereo IP. Esta interface possui mascaramento
em seu campo de texto, aceitando apenas formataes que correspondam a um
endereo IP. A regra de liberao possui prioridade sobre o bloqueio, ou seja, caso
um endereo IP conste nas duas situaes, este ter seu acesso liberado.
Exemplo de formatao aceita pelo servidor Squid: 192.168.2.99, 10.0.0.1,
200.234.21.23.
03 Endereos MAC: atravs desta ACL ser possvel realizar a liberao ou
bloqueio de acessos atravs do endereo MAC. Esta interface possui mascaramento
em seu campo de texto, convertendo todo texto digitado para caracteres em
MAISCULO e adicionando o caractere [ : ] (dois pontos) a cada dois dgitos. A
regra de liberao possui prioridade sobre o bloqueio, ou seja, caso um endereo
MAC conste nas duas situaes, este ter seu acesso liberado.
Exemplo de formatao aceita pelo servidor Squid: 00:E0:4C:F5:A2:65,
00:17:ad:00:86:0c
04 Palavras proibidas: nesta interface sero registradas as palavras que
tero seu acesso bloqueado. Esta interface no possui a opo de liberao, apenas
bloqueio.
Exemplo de formatao aceita pelo servidor Squid: orkut, xxx, sexo, teens,
warez
05 Extenses de arquivos: atravs desta ACL ser possvel realizar a
liberao ou bloqueio de acessos de extenses de arquivos. O campo de texto
possui mascaramento, permitindo apenas 4 dgitos. Assim como as demais regras, a
regra de liberao possui prioridade sobre o bloqueio, ou seja, caso uma extenso
de arquivo conste nas duas situaes, esta ter seu acesso liberado.
Exemplo de formatao aceita pelo servidor Squid: avi, exe, mp3, pdf, php,
htm.
44

Por serem interfaces exatamente idnticas e possurem os mesmos


tratamentos de erros, com exceo interface [ Palavras proibidas ] que no possui
a opo de liberao, ser descrito apenas a interface [ Sites/domnios URL ],
servindo como exemplo s demais opes de ACLs.

6.6.2 Sites/domnios URL

Atravs desta interface, torna-se possvel a liberao ou bloqueio de sites ou


domnios completos atravs da sua URL.

02
01
03

04

Figura 25 - Tela domnios/sites

6.6.2.1 Descrio da interface

01 Caixa de seleo que permite o bloqueio ou liberao de determinado


domnio/site. Os endereos aqui liberados podero ser acessados por todos os
usurios da aplicao, pois formaro a chamada lista branca, sendo que esta ser a
nica lista permitida aos usurios do grupo RESTRITO. Os sites aqui bloqueados
formaro a chamada lista negra e s podero ser acessados pelos usurios do
grupo TOTAL.
02 Caixa de texto para digitao do endereo URL do domnio/site.
03 Exemplos de formatao aceitos pelo servidor Squid
45

04 Conjunto de botes utilizado para adicionar ou limpar o contedo


digitado, respectivamente.

6.6.2.2 Tratamento de erros

A seguir, sero apresentados as telas de tratamento de erros para a interface


de Sites e Domnios URL.

Figura 26 - Campo obrigatrio

Figura 27 - Alerta sobre endereo j bloqueado

Figura 28 - Alerta sobre endereo j liberado


Onde:
Figura 26 Campo obrigatrio, no ser permitido a insero caso a caixa de
texto no contenha nenhum valor.
46

Figura 27 Alerta emitido ao usurio na tentativa de insero sobre um


endereo j bloqueado.
Figura 28 Alerta emitido ao usurio na tentativa de isnero sobre um
endereo j liberado. Os endereos liberados so excees junto ao servidor proxy
Squid, ou seja, tem prioridade sobre os endereos bloqueados. Caso um endereo
esteja nas duas situaes, este ter seu acesso autorizado.

6.6.2.3 Cadastro efetuado com sucesso

Quando o bloqueio ou liberao for efetuado com sucesso, ser apresentada


uma tela de aviso ao usurio, como nas figuras 29 e 30.

Figura 29 - Alerta sobre endereo bloqeado com sucesso

Figura 30 - Alerta sobre endereo liberado com sucesso

6.7 MDULO SCRIPTS NO PROXY

Este mdulo corresponde comunicao entre a aplicao web SquidHelp e


o servidor proxy Squid, permitida atravs de scripts criados em PHP com permisso
de execuo junto ao servidor GNU/Linux Ubuntu 8.04.
47

01
02

03
04

Figura 31 - Mdulo de scripts no proxy

6.7.1 Descrio da interface

01 Interface criada para auxiliar o administrador com relao ao


monitoramento de logs do proxy Squid, permitindo a visualizao das ltimas dez
linhas dos arquivos acces.log e cache.log.

Figura 32 - Tela monitoramento dos arquivos access.log e cache.log


48

02 Reconfigurar Squid: interface criada para realizar uma reconfigurao ao


Squid, no precisando este parar o proxy para aplicar as alteraes. Desta forma, os
usurios que efetuarem novos acessos j recebero as alteraes efetuadas.
Equivale ao comando # squid k reconfigure digitado em console.

Figura 33 - Mensagem de proxy reconfigurado com sucesso

03 Parar Squid: interface criada para interromper o funcionamento do Squid,


tornando inoperante todos seus acessos at que seja reiniciado. Pode ser usado
para manutenes no proxy, como a reconfigurao do seu cache. Equivale ao
comando # squid stop digitado em console.

Figura 34 - Mensagem de proxy interrompido com sucesso

04 Reiniciar Squid: interface criada para realizar um reincio ao Squid,


realizando um stop e start no proxy. Pode ser usado quando ocorrer um
funcionamento inesperado do proxy ou para aplicao de novas alteraes nas
ACLs, sendo que executa uma nova leitura ao arquivo squid.conf. Equivale ao
comando # squid restart digitado em console.
49

Figura 35 - Mensagem de proxy reiniciado com sucesso

6.8 MDULO DE RELATRIOS

Este mdulo foi criado para proporcionar ao usurio da aplicao SquidHelp


um melhor controle sobre a utilizao do proxy Squid. Foi dividido em duas etapas
que comportam:
1. Relatrio de acessos dos usurios sobre as pginas navegadas,
interagindo com o sistema SARG;
2. Relatrios dos dados cadastrados na aplicao SquidHelp, buscados
apartir do banco de dados MySQL.

Figura 36 - Mdulo de relatrios


50

6.8.1 Relatrios de acessos

Nesta seo, ser possibilitado ao usurio a emisso de relatrios sobre os


acessos ao Proxy Squid, atravs da execuo de scripts em PHP e Shell script. So
oferecidos relatrios pr-definidos ou customizado.

02

01 03

04

Figura 37 - Relatrios de acessos - SARG

6.8.1.1 Descrio da interface

01 Opo de relatrio pr-definido para gerao dos acessos do dia atual


ao Proxy, com a possibilidade de posterior visualizao atravs do programa SARG.

Figura 38 - Relatrio com os acessos do dia ao proxy


51

Figura 39 - Visualizao de relatrios gerados no diretrio Daily

02 Opo de relatrio pr-definido para gerao dos acessos de uma


semana, correspondentes a sete dias atrs at o dia atual, com a possibilidade de
posterior visualizao atravs do programa SARG.

Figura 40 - Relatrio com os acessos de uma semana ao proxy

Figura 41 - Visualizao de relatrios gerados no diretrio Weekly


52

03 Opo de relatrio pr-definido para gerao dos acessos de uma ms,


correspondentes a trinta dias atrs at o dia atual, com a possibilidade de posterior
visualizao atravs do programa SARG.

Figura 42 - Relatrio com os acessos de um ms ao proxy

Figura 43 - Visualizao de relatrios gerados no diretrio Monthly

04 Opo de relatrio customizado, onde o usurio informa o perodo do


relatrio a ser gerado pelo programa SARG. Este formulrio possui tratamento de
erros com relao a campos obrigatrios e formatao de data.

Figura 44 - Tratamento de erros formulrio de relatrio customizado


53

Figura 45 - Relatrio com os acessos num perodo informado pelo usurio

6.8.2 Relatrios de polticas SquidHelp

Nesta seo, ser possibilitado ao usurio a emisso de relatrios sobre os


cadastros efetuados junto a aplicao web SquidHelp. So oferecidas algumas
opes de filtro, gerando documentos no formato pdf.

02

01 03

05

04 06

Figura 46 - Relatrios de polticas SquidHelp


54

6.8.2.1 Descrio da interface

01 Relao de sites e domnios URL, com filtro para a situao de liberados,


bloqueados ou todos.

Figura 47 - Relao de sites/domnios URL

Figura 48 - Relatrio gerado em pdf dos sites/domnios URL contido no banco de dados
55

02 Relao de endereos IP, com filtro para a situao de liberados,


bloqueados ou todos.

Figura 49 - Relao de endereos IP

Figura 50 - Relatrio gerado em pdf dos endereos IP contido no banco de dados


56

03 Relao de endereos MAC, com filtro para a situao de liberados,


bloqueados ou todos.

Figura 51 - Relao de endereos MAC

Figura 52 - Relatrio gerado em pdf dos endereos MAC contido no banco de dados
57

04 Relao de palavras proibidas cadastradas na aplicao SquidHelp.

Figura 53 - Relao de palavras proibidas

Figura 54 - Relatrio gerado em pdf das palavras proibidas contido no banco de dados
58

05 Relao de extenses de arquivos, com filtro para a situao de


liberados, bloqueados ou todos.

Figura 55 - Relao de extenses de arquivos

Figura 56 - Relatrio gerado em pdf das extenses de arquivos contido no banco de dados
59

06 Relao de usurios, com filtro para a situao de ativos, grupo e


utilizadores da aplicao SquidHelp.

Figura 57 - Relao de usurios

Figura 58 - Relatrio gerado em pdf dos usurios contido no banco de dados


60

6.9 SOBRE

Alerta criado para identificar o autor do programa e a instituio de ensino.

Figura 59 - Alerta Sobre

6.10 SAIR

Alerta criado para abandonar a aplicao SquidHelp, com confirmao ao


usurio.

Figura 60 - Alerta Sair


61

7 Concluso

Este trabalho teve o objetivo de demonstrar o desenvolvimento de uma


aplicao web voltada para auxiliar a administrao do servidor proxy Squid.
Durante o desenvolvimento do projeto surgiram diversas dificuldades, com
destaque para as telas de manuteno de contas de usurio, relacionado edio
de usurios que no desejem alterar sua senha e gerao de relatrios
customizados atravs do programa SARG, onde foi necessrio realizar alguns
ajustes nas permisses do usurio do servidor Apache (www-data) junto ao sistema
GNU/Linux Ubuntu Server 8.04. Outra dificuldade encontrada foi a manipulao dos
arquivos utilizados pela aplicao: usurios, regras e logs.
A aplicao web SquidHelp foi desenvolvida atentando para as heursticas de
IHC, utilizando cones grandes e atrativos, rtulos e formulrios com tamanho
padronizado em todas as interfaces, tratamento de erros com feedback ao usurio,
exemplos de formatao aceita para que o servidor proxy consiga entend-las, alm
da combinao de cores escolhida que tornou o sistema visualmente atrativo.
A usabilidade tambm foi uma das preocupaes consideradas durante o
desenvolvimento do projeto, onde foi desenvolvido um menu para acesso rpido s
opes do sistema, estando este presente em todas as telas, com uma breve
explicao sobre cada uma de suas funcionalidades.
Nos testes realizados em laboratrio, o sistema obteve resultados
satisfatrios, mostrando ser um eficiente sistema, atendendo aos objetivos
propostos.
Por fim, conclui-se que a aplicao web SquidHelp pode ser uma ferramenta
de grande serventia para usurios que no possuam maiores conhecimentos sobre
sistemas GNU/Linux e conseqentemente seus comandos em modo texto, sendo
uma opo ideal para controlar de forma eficaz os acessos internet.

7.1 TRABALHOS RELACIONADOS

Para o desenvolvimento deste trabalho foi realizado uma pesquisa na internet


sobre temas relacionados, onde se obteve como resultado o trabalho de concluso
de curso do bacharel Vanderson Clayton Siewert, graduado em Cincias da
62

Computao pela Universidade Regional de Blumenau - Santa Catarina, no ano de


2007, com o ttulo: Ferramenta Web para Administrao do Servidor Proxy Squid.
Tambm foi utilizado como referncia o trabalho de Ps-graduao em Segurana
de Redes de computadores, sob a autoria de Rogrio Pereira Gualberto e Rommel
Baia Silva, da Faculdade Salesiana de Vitria, tambm do ano de 2007, intitulado
Proposta de Controle Eficaz do Acesso Internet.
Os dois trabalhos utilizam o Squid como servidor proxy, sendo que a
aplicao web desenvolvida difere-se devido ao uso de banco de dados,
possibilitando relatrios sobre os cadastros efetuados, enquanto a aplicao citada
utiliza um controle baseado apenas em arquivos.

7.2 TRABALHOS FUTUROS

Como sugestes para continuidade do projeto, destacam-se trabalhos futuros


como:
Possibilidade de ser criado e editado o arquivo de configurao
squid.conf via aplicao web;
Possibilidade de utilizao das demais configuraes do proxy Squid;
Possibilidade de escolha de configurao entre proxy transparente ou
autenticado;
Permitir criar outros grupos de privilgios de acesso, adaptando as
necessidades dos usurios;
Criao de perfis de acesso aplicao, citando como exemplo um
acesso no nvel de usurio com possibilidade de alterao em sua
senha.
63

REFERNCIAS

ALVAREZ. Miguel A. Introduo a Javascript., [2004]. Disponvel em:


http://www.criarweb.com/artigos/156.php>. Acesso em 24 nov. 2010.

BR. Cert. Sobre o CERT.br., ([2010?]). Disponvel em <http://www.cert.br/> Acesso


em 24 nov. 2010.

CARMONA, Tadeu. Universidade Linux. So Paulo: Digerati Books, 2007. 383 p.

CONTEDO aberto. In: Wikipdia: a enciclopdia livre: HTML. Disponvel em: <
http://pt.wikipedia.org/wiki/HTML> Acesso em: 24 nov. 2010.

CONTEDO aberto. In: Wikipdia: a enciclopdia livre: Proxy. Disponvel em: <
http://pt.wikipedia.org/wiki/proxy> Acesso em: 24 nov. 2010.

CONTEDO aberto. In: Wikipdia: a enciclopdia livre: Squid. Disponvel em: <
http://pt.wikipedia.org/wiki/squid> Acesso em: 24 nov. 2010.

FERREIRA, Elcio. Ajax para quem s ouviu falar., ([2010?]). Disponvel em:
http://tableless.com.br/artigos/ajaxdemo/ Acesso em 24 nov. 2010.

FURMANKIEWICZ, E.; FIGUEIREDO, J. Segurana mxima o guia de um


hacker para proteger seu site na internet e sua rede. Rio de Janeiro: Campus,
2000.

MAUJOR. O que CSS., ([2010?]). Disponvel em: <http://maujor.com/>. Acesso em


24 nov. 2010.

MORIMOTO, Carlos E. Servidores Linux, guia prtico. Porto Alegre: Sul Editores,
2009. 735 p.

NIEDERAUER, Juliano. Web interativa com Ajax e PHP. So Paulo: Novatec


editora, 2007. 288p.

SOARES, Walace. AJAX - Guia Prtico para Windows. So Paulo: rica, 2006.
240p.

ORSO, P. SARG: Squid Analysis Report Generator. [S.l.], ([2010?]). Disponvel


em: <http://sarg.sourceforge.net>. Acesso em: 24 nov. 2010.

VENETIANER, Tomas. HTML: desmistificando a linguagem da Internet. So


Paulo: Makron Books, 1996. 289p.

VESPERMAN, J. Autenticao e o squid. [S.l.], [2001]. Disponvel em: <


http://br.geocities.com/cesarakg/AuthenticationAndSquid.html>. Acesso em: 24 nov.
2010.

WELLING, Luke; THOMSON, Laura; PHP e MySQL, Desenvolvimento Web. Rio


de Janeiro: Elsevier, 2005. 712p
64

GLOSSRIO

Cache local onde os arquivos requisitados pelo servidor proxy so armazenados e


repassados posteriormente para os clientes, que so as estaes de trabalho da
rede interna.

Framework framework um conjunto de classes, uma abstrao que une cdigos


comuns entre vrios projetos de software provendo uma funcionalidade genrica.

Gateway mquina intermediria geralmente destinada a interligar redes, separar


domnios de coliso, ou mesmo traduzir protocolos.

Hash hash uma sequncia de bits geradas por um algoritmo de disperso, em


geral representada em base hexadecimal, que permite a visualizao em letras e
nmeros (0 a 9 e A a F), representando 1/2 byte cada.

Hint opo de colocar dicas de tela, descrio sobre o link.


Firewall nome dado ao dispositivo de uma rede de computadores que tem por
funo regular o trfego entre redes distintas e impedir a transmisso e recepo de
dados nocivos ou no autorizados de uma rede a outra.

Kernel ncleo do sistema, responsvel pela execuo dos programas,


escalonamento das tarefas e acesso aos recursos de hardware

Log arquivo que guarda informaes passadas (registros). Existem registros/logs


de erros, pginas visitadas (Histrico), entre outros, que podem ajudar na
identificao e soluo de problemas.

Login identificao para acesso em sistema computacional restrito.

Minix sistema operacional Unix-like (semelhante ao UNIX), gratuito e com o cdigo


fonte disponvel.

Open source software que respeita as quatro liberdades definidas pela FSF (Free
Software Foundation).

Proxy software que centraliza o acesso de todas as estaes de uma rede


Internet, podendo assim realizar vrias tarefas como: armazenar localmente cpias
das pginas mais acessadas para economizar banda; normatizar o acesso por
horrio, usurio e tipo de pgina acessada, entre outras possibilidades.
65

Script linguagens de programao executada do interior de programas e/ou de


outras linguagens de programao, no se restringindo a esses ambientes. As
linguagens de script servem para estender a funcionalidade de um programa e/ou
control-lo.

Sexyalertbox script desenvolvido em JavaScript, utilizando o framework Mootools,


onde levamos um nvel acima as nossas janelas de alert(), tornando essa janela
mais amigvel ao usurio.

Spry frameworks para Ajax baseado em uma biblioteca JavaScript. Proporciona


aos webdesigners a habilidade de desenvolver sites e aplicativos mais ricos e
interativos.

Tags estruturas de linguagem de marcao que consistem em breves instrues,


tendo uma marca de incio e outra de fim.

Unix-like sistema parecido com o Unix, no estando necessariamente de acordo


com sua especificao.