TURNO: Noturno VERSÃO: 1.0 No UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO CURSO DE CIÊNCIAS DA COMPUTAÇÃO — BACHARELADO COORDENAÇÃO DE TRABALHO DE CONCLUSÃO DE CURSO
PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO
TÍTULO: PROTÓTIPO DE FERRAMENTA WEB PARA ADMINISTRAÇÃO DO SERVIDOR PROXY SQUID
ÁREA: Redes de Computadores
Palavras-chave: Proxy. Squid. SARG. Web.
1 IDENTIFICAÇÃO
1.1 ALUNO
Nome: Vanderson Clayton Siewert Código/matrícula: 65499/4055
Endereço residencial:
Rua: José Narloch n°: 326 Complemento: casa 780
Bairro: Jardim São Luis CEP: 89253-790 Cidade: Jaraguá do Sul UF: SC
Telefone fixo: (47) 3370-7244 Celular: (47) 9117-8633
Endereço comercial:
Empresa: GPS Gestão Empresarial Ltda.
Rua: Marechal Deodoro da Fonseca n°: 320 Bairro: Centro
CEP: 89251-700 Cidade: Jaraguá do Sul UF: SC Telefone: (47) 3274-2069
E-Mail FURB: [email protected] E-Mail alternativo: [email protected]
1.2 ORIENTADOR
Nome: Francisco Adell Péricas
E-Mail FURB: [email protected] E-Mail alternativo:
2 DECLARAÇÕES
2.1 DECLARAÇÃO DO ALUNO
Declaro que estou ciente do Regulamento do Trabalho de Conclusão de Curso de
Ciências da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada
em todas as páginas. Ainda me comprometo pela obtenção de quaisquer recursos necessários
para o desenvolvimento do trabalho, caso esses recursos não sejam disponibilizados pela
Universidade Regional de Blumenau (FURB).
Assinatura: Local/data:
2.2 DECLARAÇÃO DO ORIENTADOR
Declaro que estou ciente do Regulamento do Trabalho de Conclusão do Curso de
Ciências da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada
em todas as páginas. Ainda me comprometo a orientar o aluno da melhor forma possível de
acordo com o plano de trabalho explícito nessa proposta.
Assinatura: Local/data:
3 AVALIAÇÃO DA PROPOSTA
3.1 AVALIAÇÃO DO(A) ORIENTADOR(A)
Acadêmico(a): Vanderson Clayton Siewert
Orientador(a): Francisco Adell Péricas
ASPECTOS AVALIADOS
aten
de
aten
de
par
cial
men
te
não
ate
nde
1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível?
5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos?
6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
AS
PE
CT
OS
T
ÉC
NIC
OS
7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido?
AS
PE
CT
OS
M
ET
OD
OL
ÓG
ICO
S
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)?
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: • qualquer um dos itens tiver resposta NÃO ATENDE; • pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou • pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO
Assinatura do(a) avaliador(a): Local/data:
CONSIDERAÇÕES DO(A) ORIENTADOR(A) : Caso o(a) orientador(a) tenha assinalado em sua avaliação algum item como “atende parcialmente”, devem ser relatos os problemas/melhorias a serem efetuadas. Na segunda versão, caso as alterações sugeridas pelos avaliadores não sejam efetuadas, deve-se incluir uma justificativa.
- Orientador analisou a proposta conforme solicitado e verificou que a ferramenta tem relevância computacional,
pois não se trata de um simples site para edição do arquivo de configuração.
-
Assinatura do(a) avaliador(a): Local/data:
3.2 AVALIAÇÃO DO(A) COORDENADOR DE TCC
Acadêmico(a): Vanderson Clayton Siewert
Avaliador(a): José Roque Voltolini da Silva
ASPECTOS AVALIADOS
aten
de
aten
de
par
cial
men
te
não
ate
nde
1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível?
5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos?
6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
AS
PE
CT
OS
T
ÉC
NIC
OS
7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido?
AS
PE
CT
OS
M
ET
OD
OL
ÓG
ICO
S
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)?
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: • qualquer um dos itens tiver resposta NÃO ATENDE; • pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou • pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO
OBSERVAÇÕES:
Assinatura do(a) avaliador(a): Local/data:
3.3 AVALIAÇÃO DO(A) PROFESSOR(A) DA DISCIPLINA DE TCCI
Acadêmico(a): Vanderson Clayton Siewert
Avaliador(a): Joyce Martins
ASPECTOS AVALIADOS
aten
de
aten
de
par
cial
men
te
não
ate
nde
1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível?
5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos?
6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
AS
PE
CT
OS
T
ÉC
NIC
OS
7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido?
AS
PE
CT
OS
M
ET
OD
OL
ÓG
ICO
S
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)?
PONTUALIDADE NA ENTREGA atraso de
_____ dias
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: • qualquer um dos itens tiver resposta NÃO ATENDE; • pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou • pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO
OBSERVAÇÕES:
Assinatura do(a) avaliador(a): Local/data:
3.4 AVALIAÇÃO DO(A) PROFESSOR(A) ESPECIALISTA NA ÁREA
Acadêmico(a): Vanderson Clayton Siewert
Avaliador(a): Paulo Fernando da Silva
ASPECTOS AVALIADOS
aten
de
aten
de
par
cial
men
te
não
ate
nde
1. INTRODUÇÃO 1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2. OBJETIVOS 2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral? Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
3. RELEVÂNCIA 3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
4. METODOLOGIA 4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de maneira a permitir a execução do TCC no prazo disponível?
5. REVISÃO BIBLIOGRÁFICA 5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais características dos mesmos?
6. REQUISITOS DO SISTEMA A SER DESENVOLVIDO 6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
AS
PE
CT
OS
T
ÉC
NIC
OS
7. CONSIDERAÇÕES FINAIS 7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
8. REFERÊNCIAS BIBLIOGRÁFICAS 8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
9. CITAÇÕES 9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada) 10.1. O texto obedece ao formato estabelecido?
AS
PE
CT
OS
M
ET
OD
OL
ÓG
ICO
S
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem utilizada é clara)?
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se: • qualquer um dos itens tiver resposta NÃO ATENDE; • pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou • pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER: ( ) APROVADA ( ) NECESSITA DE COMPLEMENTAÇÃO
OBSERVAÇÕES:
Assinatura do(a) avaliador(a): Local/data:
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIAS DA COMPUTAÇÃO – BACHARELADO
PROTÓTIPO DE FERRAMENTA WEB PARA
ADMINISTRAÇÃO DO SERVIDOR PROXY SQUID
VANDERSON CLAYTON SIEWERT
BLUMENAU 2006
VANDERSON CLAYTON SIEW ERT
PROTÓTIPO DE FERRAMENTA WEB PARA
ADMINISTRAÇÃO DO SERVIDOR PROXY SQUID
Proposta de Trabalho de Conclusão de Curso submetida à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso I do curso de Ciências da Computação — Bacharelado.
Prof. Francisco Adell Péricas - Orientador
BLUMENAU 2006
2
1 INTRODUÇÃO
Conforme Palma e Prates (2000, p. 9), cada vez mais os administradores têm que
controlar e monitorar o acesso a recursos das redes de computadores. Com isto, surgiram
ferramentas que implementam diversas funções, entre elas o filtro de pacotes, que trabalha na
camada de rede1, e os servidores proxy, que trabalham na camada de aplicação2. Estas
camadas baseiam-se no modelo de referência Transmition Control Protocol/Internet Protocol
(TCP/IP) e encontram-se descritas em Péricas (2003, p. 35).
Segundo Nemeth et al (2002, p. 44), considerando as ferramentas desenvolvidas para
Linux em geral, especificamente em modo console, pode-se dizer que somente os usuários
com um conhecimento mais avançado conseguem manipulá-las e administrá-las
apropriadamente. Conforme Pcmaster (2005), hoje já existem interfaces mais amigáveis para
o usuário poder manipular as regras e estabelecer políticas de uso dos recursos da rede. Porém
especificamente para os servidores proxy, as ferramentas são de difícil entendimento e com
uma aparência nada amigável, sendo normalmente feitas em shell script.
A proposta deste trabalho consiste em desenvolver uma aplicação web nos moldes de
um site possibilitando a administração das políticas de acesso à Internet, grupos3 de acessos,
regras e algumas configurações do servidor proxy Squid, tudo isto com o aumento da
segurança nas alterações do arquivo de configuração,pois qualquer administrador que não
conheça o Squid será capaz de configurá-lo com simples seleções e com o preenchimento de
formulários. Segundo Baros (2006), o Squid é um aplicativo que está sendo melhorado
continuamente, é multi-plataforma, possui uma excelente estabilidade nas condições mais
extremas, possui um imenso número de analisadores de log, além de melhorar o desempenho
de navegação na Internet com o cache que é armazenado localmente no servidor e com
aumento de segurança nas alterações das configurações do Squid.
A aplicação utilizará o servidor de páginas Apache para poder interagir com o usuário
em um browser de Internet e com o Squid Analysis Report Generator (SARG), desenvolvido
1 Responsável pelo endereçamento e roteamento IP da rede, possibilitando a conexão entre equipamentos de rede. 2 Responsável pela comunicação entre as aplicações e as demais camadas de rede possibilitando a transmisão de dados. 3 Os grupos de acesso possíveis são: Very Important Person (VIP), moderado e restrito.
3
no Brasil (ORSO, 2006), para gerar relatórios de acesso dos usuários. Ao acessar a aplicação
será solicitado um nome de usuário e uma senha, que dará acesso à página liberada para fazer
a administração e gerenciamento do servidor proxy, conforme já descrito anteriormente. Serão
utilizadas as seguintes tecnologias para o desenvolvimento da ferramenta: HyperText Markup
Language (HTML), Common Gateway Interface (CGI) e HyperText PreProcessor (PHP). O
emprego destas tecnologias irá melhorar interação do usuário, através de uma ferramenta
visual, com o arquivo de configuração squid.conf do servidor proxy de sofware livre Squid,
que é onde as políticas, grupos de usuários e regras de acesso à Internet são determinadas.
1.1 OBJETIVOS DO TRABALHO
O objetivo deste trabalho é desenvolver uma ferramenta visual, através de uma página
web para fazer a gerência dirigida especificamente ao servidor proxy Squid.
Os objetivos específicos do trabalho são:
a) facilitar a configuração mesmo para administradores que não conheçam o
princípio de funcionamento do Squid;
b) facilitar a interpretação das políticas de utilização do servidor proxy;
c) possibilitar, definir e configurar as de novas políticas de utilização;
d) disponibilizar a alteração de usuários nos grupos de acesso à Internet pré-
determinados pelo administrador da rede;
e) habilitar a definição de políticas de horários de acesso para os usuários
cadastrados;
f) implementar uma página com os parâmetros pré-configurados do Squid, para
possibilitar ao usuário a configuração necessária para a sua necessidade.
1.2 RELEVÂNCIA DO TRABALHO
O trabalho foi motivado pela necessidade de melhorar a interface de configuração da
ferramenta Squid com o usuário final, que é o administrador da rede de uma rede Local Area
Network (LAN) e também para poder manipular alguns recursos disponibilizados para um
4
servidor proxy implementado nas redes de computadores dos clientes, que passam por
constantes mudanças, principalmente no que diz respeito a políticas de acesso à Internet.
Como o administrador da rede de pequenas e médias empresas normalmente não é um
profissional especializado, ele contrata uma empresa terceirizada para implantar o seu firewall
e o seu servidor proxy, que são configurados em um mesmo equipamento, já que essas duas
ferramentas trabalham em conjunto. Analisando esta situação, faz-se necessária a
implementação de uma interface amigável, pois em editores de textos comuns os usuários
menos experientes podem se confundir com toda a documentação e todos os parâmetros que o
arquivo squid.conf possui. Sendo assim, esta interface possibilita ao usuário a manipulação
com segurança das funcionalidades do servidor proxy, pois é nele que ocorrem modificações
maiores baseadas nas políticas de acesso à Internet.
Com o protótipo implementado não há necessidade da utilização do editor de texto do
Linux e nem tão pouco acessar o console do servidor com direitos de root, o que iria
prejudicar a segurança do ambiente e a disponibilidade do mesmo. Considerando que o
administrador de rede normalmente não tem o conhecimento necessário para poder manipular
estas configurações, surgiu a necessidade de desenvolver uma ferramenta intuitiva e visual,
que auxiliasse a manipulação das configurações do servidor Squid. Esta ferramenta
possibilitará a configuração do servidor proxy por qualquer administrador que não conheça as
configurações disponíveis do Squid, ou seja, basta saber o objetivo que deseja alcançar como
por exemplo, bloquear ou liberar sites, portas de comunicação, alterar senhas de usuários,
grupos de usuários, entre outros. Com simples seleções e informando dados em formulários
será gerada a configuração do Squid e o mesmo estará pronto para ser utilizado conforme
definido pelo administrador.
Atualmente não foi encontrada nenhuma ferramenta comercial que contenha estas
funcionalidades para gerência de um servidor Squid. Entretanto, existe uma ferramenta
freeware e opensource com interface web que permite gerenciar vários tipos de servidores
(aplicações) de rede no Linux, chamada de Webmin, que entre outras funções, permite
manipular algumas configurações do Squid.
Porém, segundo Pcmaster (2005), esta ferramenta não tem uma linguagem de fácil
compreensão, o que dificulta a administração do servidor proxy por administradores
inexperientes, sendo que os termos utilizados no Webmin são muito técnicos. Todos os
serviços configurados pelo Webmin devem ser feitos por administradores de sistemas mais
experientes, pois a ferramenta utiliza linguagem técnica que nem sempre é compreendida por
um administrador menos experiente.
5
Alguns serviços que podem ser configurados e manipulados são: servidores de Domain
Name Service (DNS); Dynamic Host Configuration Protocol (DHCP); Samba, que é o
servidor de arquivos do Linux; cadastro de usuários de rede e de grupos de usuários do
sistema; entre outros.
1.3 METODOLOGIA
O trabalho será desenvolvido observando as seguintes etapas:
a) levantamento bibliográfico: pesquisar bibliografias mais detalhadas relacionadas
ao tema proposto, com o auxílio de livros, manuais de ferramentas existentes e
Internet. Esta etapa inclui pesquisa sobre metodologias de processo de software
como programação PHP, CGI e HTML; estudo detalhado do Squid; editor de
páginas Macromedia Dreamweaver e ferramentas utilizadas no console do servidor
Linux, tais como: sudo, ferramenta para acesso de super usuário aos arquivos de
configurações (NEMETH et al, 2002, p. 83); htpasswd, ferramenta para manipular
senhas de acesso do Apache e do Squid (MARCELO, 2005, p. 24); instalação e
integração com o SARG (BAROS, 2006) e Message Digest 5 (MD5), que é uma
ferramenta disponível no Linux para fazer o hash da string com as senhas;
b) elicitação dos requisitos: avaliar as necessidades de alterações nas políticas de
controle de acesso, nas configurações do Squid e nas alterações dos usuários entre
grupos. Serão utilizados os diagramas de casos de uso para analisar as situações
propostas, com o auxílio da ferramenta Enterprise Architect;
c) definição do projeto do software e interface: definir o projeto do software e
arquitetura do sistema. Será utilizada nesta etapa a ferramenta Enterprise Architect
para fazer os modelos das telas, com a descrição das suas funcionalidades e os
casos de uso. O fluxo de atividades do programa deverá ser feito utilizando o
diagrama de atividades da Unifield Modeling Language (UML);
d) implementação: para implementação desta ferramenta serão utilizados PHP,
HTML, CGI e shell script. Para o desenvolvimento do layout da página será
utilizado o Macromedia Dreamwaver. Será feita a integração com a ferramenta
SARG, para que a mesma possa analisar os logs do Squid e gerar os relatórios de
acesso do servidor proxy. Isto será feito com o auxílio do sudo, para poder
6
executar o SARG no console para que os relatórios sejam gerados na forma de
páginas da web, pois é somente executado em linha de comando;
e) validação e testes: nesta fase serão feitos os testes funcionais na forma de
simulações, conforme os casos de uso, de usabilidade e qualidade da ferramenta
desenvolvida. Os testes serão feitos pelo acadêmico e pelo usuário final quando for
colocado em produção;
f) redação do volume final: redação da monografia do TCC.
As etapas serão realizadas nos períodos relacionados no Quadro 1.
2007 fev. mar. abr. maio jun.
etapas / quinzenas 1 2 1 2 1 2 1 2 1 2 levantamento bibliográfico elicitação dos requisitos definição do projeto do software e interface
implementação validação e testes redação do volume final
Quadro 1 - Cronograma
7
2 REVISÃO BIBLIOGRÁFICA
Neste capítulo são abordados os temas proxy, htpasswd, sudo, ferramenta visual, MD5
e Squid, além dos trabalhos correlatos.
2.1 PROXY
Segundo Marcelo (2005, p. 3), proxy é um servidor HyperText Transfer Protocol
(HTTP), com características especiais de filtragem de pacotes, que normalmente é executado
em máquinas com firewall, que são o front-end de uma rede de computadores, ou seja, a
entrada e saída para a Internet. Ele aguarda uma solicitação da rede interna de uma estação
cliente, de dentro do proxy, repassa a solicitação para um servidor remoto, recebe a resposta e
envia de volta a estação cliente.
Uma das vantagens do proxy é o armazenamento temporário de informação em cache,
que consiste em manter, no servidor, uma cópia de uma página acessada por uma estação
qualquer. Se uma outra estação solicitar a mesma página, não haverá necessidade de recorrer
a Internet, uma vez que uma cópia da página já está no cache. Também pode conter regras de
acesso, para inibir os endereços proibidos.
Segundo Equipe Conectiva (2001, p. 133), o servidor proxy tem como principal
objetivo possibilitar a uma máquina da rede privada acessar a rede pública, como a Internet,
sem que exista uma ligação direta entre a rede privada e a rede pública. Sendo assim, o
servidor é a máquina que tem acesso direto à Internet e as demais máquinas fazem
solicitações para ele, que faz o serviço de procurador, ou seja, é um sistema que faz
solicitações em nome de outros.
O proxy pode ser considerado um firewall da camada de aplicação do modelo de
referência TCP/IP, pois atua diretamente com os protocolos de transporte e de aplicação.
8
2.2 SQUID
De acordo com Marcelo (2005, p. 3), o Squid é um dos proxies mais difundidos para
Linux, por se tratar de um sistema robusto, simples e extremamente confiável. O nome Squid
(lula, literalmente) veio somente para dar um nome diferente de proxy.
Segundo Equipe Conectiva (2001, p. 134), o Squid é um servidor proxy, para os
protocolos HTTP, HyperText Transfer Protocol Secure (HTTPS), File Transfer Protocol
(FTP) e gopher. Portanto o acesso a outros serviços, como por exemplo o correio eletrônico,
deve ser configurado com a ferramenta responsável pelo filtro de pacotes, que trabalha
diretamente na camada de rede.
Conforme Baros (2006), o squid.conf está organizado em tags que tratam de todas
as configurações, tais como porta de acesso ao servidor, programa utilizado para manipulação
de senhas, tamanho e estruturação do cache, definição e manipulação das Access Controls
Lists (ACL), que vão estipular quais são os grupos de usuários a serem utilizados, quais são os
arquivos com os sites proibidos e/ou liberados, quais são as extensões dos downloads
proibidas, entre outras tags.
O que normalmente sofre maiores alterações e com mais freqüências são justamente as
regras definidas na tag ACL, onde podem ser alterados os usuários, como também as listas de
sites proibidos e/ou liberados e as extensões dos downloads proibidos.
O servidor Squid pode ser obtido no seu site oficial Squid web proxy cache (Chadd, et
al, 2006).
2.3 HTPASSWD
O utilitário htpasswd é instalado junto com o pacote de instalação do servidor de
páginas Apache e serve para criar senhas de acesso a sites. Conforme Marcelo (2005), ele
utiliza o algoritmo MD5 para gerar um hash da senha que é armazenada.e pode facilmente ser
integrado com o Squid. É utilizado na forma de comando no console do servidor com a
utilização de alguns parâmetros, como por exemplo o parâmetro com o login do usuário e o
arquivo de senhas.
9
2.4 SUDO
O utilitário sudo é utilizado para fazer a execução de algum comando que outro
usuário é o proprietário, ou que o usuário em questão não tenha direitos de execução. Sendo
assim, ele tem um utilitário de configuração que vai dizer quem pode ou não executar o
comando na console do servidor mesmo não sendo o proprietário do arquivo que será
executado. Esta ferramenta é executada somente no console do servidor com a utilização de
alguns parâmetros, como por exemplo o comando a ser executado.
2.5 FERRAMENTA VISUAL
Segundo Visual tool (2006), ferramenta visual é qualquer programa que permita ao
usuário fazer algo como arrastar, puxar, desenhar, entre outras, com a utilização do mouse.
Ferramentas visuais são normalizadas em todas as aplicações baseadas em gráficos. O termo é
muito utilizado para operações que tipicamente seriam executadas em linha de comando.
Sendo o oposto da ferramenta de linha de comando (console), onde a tela é de uso
limitado e o mouse não tem utilidade alguma. As ferramentas visuais tendem a ser muito mais
fáceis tanto na usabilidade como no aprendizado, do que ferramentas de linha de comando. A
principal funcionalidade da ferramenta visual é disponibilizar uma tela mais agradável aos
usuários, possibilitando também sua utilização de forma mais intuitiva. Um exemplo de
ferramenta visual de desenvolvimento é o Delphi.
2.6 TRABALHOS CORRELATOS
Em Orso (2006) é relacionado o projeto open source chpasswd, que faz a alteração de
senhas dos usuários do Squid com uma ferramenta para a web, contando com uma lista de
outros colaboradores espalhados pelo mundo. Esta ferramenta foi desenvolvida em perl script
e se comunica com um programa CGI, com o intuito de distribuir uma interface web através
de um formulário para os usuários poderem alterar as suas senhas de acesso para o servidor
10
proxy.
Em Orso (2006) também é relacionado o projeto open source SARG. A ferramenta foi
desenvolvida na linguagem C e faz a análise dos logs do Squid e do cache do servidor proxy,
informando ao administrador da rede onde os usuários navegaram, quanto tempo ficaram
conectados, que arquivos foram baixados, qual os horários de acesso, quem foi o usuário que
se autenticou, quais os sites proibidos que tiveram tentativas de acesso e depois gera os
relatórios, que ficam disponíveis em uma página de Internet.
Em Borscheid (2005) é apresentada a ferramenta para gerência do Netfilter, que é um
firewall que trabalha na camada de rede e roteamento e não na camada de aplicação, como o
servidor proxy. A ferramenta foi desenvolvida em perl script, com a interface de comunicação
com usuário em forma de página web. Ela implementa os principais filtros que um firewall
deve fazer. O firewall é um filtro de pacotes TCP/IP que também possibilita fazer
direcionamento de portas de comunicação, porém não permite bloquear o acesso a algum site
pelo seu endereço DNS, somente pelo endereço IP, não bloqueia o download de arquivos da
Internet e não faz a autenticação de usuários para acesso a Internet. O firewall administrado
pela ferremanta somente manipula as políticas de input, output, forward da tabela filter e as
políticas prerouting, postrouting e output da tabela Network Address Translation (NAT).
Em Pcmaster (2005) é relacionada a ferramenta Webmin, que faz gerência de alguns
servidores (aplicações) de rede do Linux, de forma mais intuitiva para administradores de
sistemas com um conhecimento mais avançado, utilizando-se de um browser da Internet.
Manipula os serviços com certa restrição, ou seja, alguma configuração mais específica ou
personalizada tem que ser feita diretamente no arquivo de configuração no console. Conforme
Pcmaster (2005), a linguagem utilizada no Webmin é muito técnica, por este motivo exige um
conhecimento mais avançado das configurações dos serviços. Alguns dos serviços que podem
ser manipulados pelo Webmin são: DNS que é o servidor de nomes; DHCP que distribui
endereços IP para os computadores; Apache que é o servidor de páginas para Internet; Postfix
que é o servidor de mensagens eletrônicas, Samba que é o servidor de arquivos, cadastro de
usuários do Samba do console; entre outros. Normalmente com estes serviços configurados
somente são: adicionados usuários para acesso, como é o caso do Samba e Postfix; alterado o
range de endereços IP, no caso do DHCP; alterado algum registro do servidor DNS; inserido
algum domínio virtual no servidor Apache; entre outros.
11
3 REQUISITOS DO SISTEMA A SER DESENVOLVIDO
O software a ser desenvolvido deverá:
a) permitir a alteração do arquivo de configuração do servidor proxy Squid através de
formulários e múltiplas seleções utilizando checkboxes e radio buttons (Requisito
Funcional - RF);
b) permitir que sejam cadastrados usuários nos grupos: VIP, moderado e restrito
(RF);
c) permitir que sejam cadastrados horários para utilização da Internet, dos grupos
restrito e moderado(RF);
d) permitir que as senhas dos usuários da ferramenta sejam armazenadas no sistema
pelo algoritmo MD5, que faz um hash da senha e é feito pelo utilitário MD5 do
Linux (RF);
e) permitir que o servidor proxy seja reiniciado para aplicar as novas configurações
(RF);
f) permitir a alteração de usuários de um grupo para outro (RF);
g) permitir a exclusão de usuários dos grupos (RF);
h) permitir a geração e visualização de relatórios de acesso com a utilização do
SARG (Requisito Não Funcional - RNF);
i) ser disponibilizado em ambiente web, através do servidor Apache 2.0 (RNF);
j) ser implementado usando PHP, CGI e HTML (RNF);
k) utilizar shell script para integração da ferramenta com o ambiente web (RNF);
l) utilizar a ferramenta Macromedia Dreamweaver para edição de páginas (RNF).
12
4 CONSIDERAÇÕES FINAIS
Este trabalho tem por objetivo o desenvolvimento de uma ferramenta que auxilie na
administração do servidor proxy Squid através da web.
Desenvolver uma ferramenta voltada para a administração do servidor Squid, de fácil
compreensão mesmo para administradores que tem somente uma noção superficial do que é o
Squid, possibilitará fazer a configuração do mesmo por meio de simples seleções e
preenchimento de alguns formulários, conforme necessidade e possibilitará a utilização de
grupos de acesso à Internet para os usuários, levando em consideração a manipulação das
políticas e controles de acesso a sites, sendo algo totalmente diferente das ferramentas
existentes, que manipulam apenas os serviços mais utilizados de forma mais intuitiva para
usuários com um conhecimento mais avançado da plataforma de código aberto Linux, como é
o caso do Webmin. Sendo assim, o Webmin não é muito difundido porque utiliza uma
linguagem muito técnica (PCMASTER, 2006). A ferramenta desenvolvida por Borscheid
(2005) manipula somente a função de filtro de pacotes, o que não permite bloquear acessos a
sites da Internet, downloads de arquivos, gerência de usuários, saber especificamente onde os
usuários navegaram e não consegue bloquear aplicações, como por exemplo algum jogo
diretamente em um site da Internet.
Conforme Orso (2006), a ferramenta chpasswd somente manipula as senhas de acesso
dos usuários do Squid, trabalhando em conjunto com o utilitário de console htpasswd. A
alteração é muito superficial comparada com as funcionalidades que o Squid oferece, como
por exemplo alterar alguma política de acesso a sites.
O SARG é uma ferramenta muito difundida para fazer a integração com o Squid, por
se tratar do sistema que faz toda a análise de logs de acesso e que transforma estas
informações em uma linguagem de fácil entendimento para o usuário, através de uma página
da Internet.
Com o intuito de facilitar as atividades do administrador de rede, principalmente para
os iniciantes nas configurações do servidor Squid, a proposta desta ferramenta é aumentar a
confiabilidade para evitar que alguma alteração seja feita de forma indevida diretamente no
arquivo de configuração do Squid, principalmente por ser feito no editor de texto nativo do
Linux, o vi, aumentando a eficiência da manutenção do servidor proxy Squid, pois o
administrador saberá exatamente o que está alterando e como esta mudança vai refletir no
sistema.
13
REFERÊNCIAS BIBLIOGRÁFICAS
BAROS, E. B. Configurando um Squid “ninja” . [S.l.], [2006?]. Disponível em: <http://www.linuxman.pro.br/squid/>. Acesso em: 02 abr. 2006.
BORSCHEID, R. M. Protótipo de aplicação web para gerenciamento de firewall em Linux . 2005. 52 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.
CHADD, A. et al. Squid web proxy cache. [S.l.], [2006?]. Disponível em: <http://www.squid-cache.org>. Acesso em: 30 mar. 2006.
EQUIPE CONECTIVA. Segurança de redes: firewall. [Curitiba]: Conectiva S.A., 2001.
MARCELO, A. Squid: configurando o proxy para Linux. 4. ed. Rio de Janeiro: Brasport, 2005.
NEMETH, E. et al. Manual do administrador do sistema Unix. 3. ed. Tradução Edson Furmankiewicz. Porto Alegre: Bookman, 2002.
ORSO, P. SARG: Squid Analysis Report Generator. [S.l.], [2006?]. Disponível em: <http://sarg.sourceforge.net>. Acesso em: 29 mar. 2006.
PALMA, L.; PRATES, R. TCP/IP: guia de consulta rápida. São Paulo: Novatec, 2000.
PCMASTER. Administrando o Linux pela internet com o Webmin. [S.l.], [2005?]. Disponível em: <http://www.linuxnarede.com.br/tutoriais/post_art/fullnews.php?id=view&f_act=fullnews&f_id=89/>. Acesso em: 22 maio 2006.
PÉRICAS, F. A. Redes de computadores: conceitos e a arquitetura Internet. Blumenau: Edifurb, 2003.
VISUAL Tool. In: THE FREE Dictionary. [S.l.]: Farlex Inc, [2006?]. Disponível em: <http://computing-dictionary.thefreedictionary.com/visual+tool>. Acesso em: 31 out. 2006.