centro de ciÊncias exatas e naturais departamento de...

21
TURNO: Noturno VERSÃO: 1.0 N o 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:

Upload: others

Post on 27-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

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.