UNIVERSIDADE ESTADUAL DE GOIAS       UNIDADE UNIVERSITARIA DE TRINDADE        MARCUS WINICIUS OLIVEIRA COSTA          RAYN...
MARCUS WINICIUS OLIVEIRA COSTA             RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY            ...
Costa, Marcus Winicius Oliveira;          Lima, Rayner Max Fernandes          Análise de Desempenho de um Servidor Proxy V...
MARCUS WINICIUS OLIVEIRA COSTA           RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY              ...
DEDICATÓRIAEste trabalho é dedicado aos nossos pais, que acreditaram emnós desde o início. São eles, os principais respons...
AGRADECIMENTOSÉ de Jean Cocteau a frase: “Não sabendo que era impossível, foilá e fez”. E é com ela, que iniciamos nossos ...
“Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do homem foram conquistadas doq...
SUMÁRIORESUMO ...............................................................................................................
2.2.3 Squid .................................................................................................................
3.2 Red Hat Enterprise Linux 6 ..............................................................................................
11                                         RESUMO       A área de Tecnologia da Informação – TI, é uma das que mais têm ap...
12                                         ABSTRACT       The area of Information Technology - IT is one of the fastest gr...
13                                                 LISTA DE ILUSTRAÇÃOFIGURA: 1 – INFORMAÇÕES DE DOWNLOAD E LICENCIAMENTO ...
14FIGURA: 28 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 ................................... 88FIGURA: 29 – CRIAÇÃO DE NOVOS ...
15                                                    LISTA DE TABELASTABELA 1 – COMPARAÇÃO ENTRE OS PRODUTOS RED HAT ENTE...
16                    LISTA DE SÍMBOLOS E ABREVIATURASABNT: Associação Brasileira de Normas TécnicasACL: (Access Control L...
17MMV: Monitor de Máquina VirtualNAT: (Network Address Translation) Tradutor de Endereços de RedeNIC: (Network Information...
18                                     1 INTRODUÇÃO       A evolução tecnológica aliada ao aumento da utilização da intern...
19       A virtualização traz uma série de vantagens sólidas. Dentre elas podemos destacar aredução do consumo de energia,...
20       Até o presente momento, não constatamos um estudo aprofundado visando umasolução para a problemática apresentada,...
211.3 Justificativa       Na atualidade, o crescimento das redes de computadores é sempre colocado emquestionamento. É com...
22                            2 FUNDAMENTAÇÃO TEÓRICA2.1 Máquina Virtual           Um dos primeiros conceitos de máquina v...
232.1.1 Monitor de máquina virtual       Segundo LAUREANO (2006, p. 19) uma máquina virtual é um ambiente criado porum mon...
24de simulação é realizado com maior eficácia, pois não necessita representar os estados deexecução do hardware.2.1.2.2 Pa...
25        Segundo: Os bits agrupados anteriormente são divididos em instruções, juntamente           com os parâmetros de...
26      Manutenção de Equipamentos: A manutenção é facilitada, pois os serviços estarão       centralizados em uma mesma ...
27plataforma de hardware. Este isolamento lógico é o escudo que protege as máquinas virtuaisno nível mais baixo devido que...
282.1.5 Utilização       Define-se a virtualização como uma maneira de se executar vários serviços, programase sistemas op...
292.1.7 Ferramenta Escolhida       De acordo com as necessidades apresentadas durante a execução desta pesquisa, foiescolh...
302.1.7.1 Diferenças entre VMware ESX e VMware ESXi       Na arquitetura original do VMware ESX vSphere, o kernel de virtu...
312.2 Servidor Proxy       O Proxy pode ser entendido como “um software que atua como gateway de aplicaçãoentre o cliente ...
32      Compartilhamento de conexão de Internet: As máquinas da rele local possuem       endereços inválidos e, por causa...
332.2.2.2 Controlado       Diferentemente do Proxy Transparente, este tipo de serviço exige uma configuraçãonos navegadore...
342.2.2.3.2 Vantagens do Proxy Controlado       Possui mais recursos que um Proxy Transparente, como por exemplo, algumas...
35proporciona, a usuários mal intencionados, mais uma ferramenta para cometer crimescibernéticos e acessar conteúdo proibi...
362.2.3 Squid         O Squid é um Servidor WebProxy que tem suporte para protocolos como HTTP,HTTPS, FTP e outros. “O Squ...
372.2.3.2 Características do Squid       O Squid possui as seguintes características:      Políticas de controle de acess...
382.2.3.3 Requisitos Específicos para o Squid        Em comparação com algumas ferramentas oferecidas pelo sistema, é poss...
392.2.3.4.1 Arquivo de Configuração       Toda a configuração do Squid é feita em um único arquivo chamado squid.conf, que...
40       As Listas de Controle de Acesso são escritas, de uma maneira geral, em forma delinhas dentro do arquivo de config...
41   SRCDOM_REGEX: Avalia e classifica o domínio da origem da requisição usando    expressões regulares;   DSTDOM_REGEX:...
42   IDENT: Permite classificar o acesso de acordo com o usuário logado no computador    do cliente. Esta classe exige um...
43      REQ_MIME_TYPE: Classe de acesso que classifica o tipo de conteúdo solicitado       através de seu cabeçalho conte...
44      IDENT_LOOKUP_ACCESS: Uma lista de elementos em uma ACL, os quais, se       encontrados, irão gerar uma requisição...
45    respectivamente, os diretórios de primeiro nível e segundo nível que devem ser    criados.   CACHE_ACCESS_LOG: Dete...
462.2.4 Microsoft ISA Server       O Microsoft ISA Server é uma solução de segurança de borda que inclui firewall demúltip...
47   As principais características dessa ferramenta são:      Especificação de portas/endereço de origem/destino;      M...
482.3 Sistema Operacional       De acordo com Tanenbaum, Woodhull (2000) o sistema operacional controla todos osrecursos d...
49   Sistema de Tempo Compartilhado: também denominado multitasking, é uma extensão    lógica da multiprogramação. Consis...
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado
Upcoming SlideShare
Loading in …5
×

TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado

927 views
846 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
927
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
48
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

TCC Marcus Winicius e Rayner Max - Analise de Desempenho de um Servidor Proxy Virtualizado

  1. 1. UNIVERSIDADE ESTADUAL DE GOIAS UNIDADE UNIVERSITARIA DE TRINDADE MARCUS WINICIUS OLIVEIRA COSTA RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY VIRTUALIZADO Trindade - GO 2012
  2. 2. MARCUS WINICIUS OLIVEIRA COSTA RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY VIRTUALIZADO Trabalho de Conclusão de Curso apresentado como parte dos requisitos básicos para a obtenção do Título de Tecnólogo em Redes de Computadores ao Curso Superior de Tecnologia em Redes de Computadores da Universidade Estadual de Goiás. Orientador: Prof. Esp. Antônio Cruvinel Borges Neto Trindade - GO 2012
  3. 3. Costa, Marcus Winicius Oliveira; Lima, Rayner Max Fernandes Análise de Desempenho de um Servidor Proxy Virtualizado/ MarcusWinicius Oliveira Costa, Rayner Max Fernandes Lima. – Trindade: 2012. XXp. :il. Orientador Esp. Professor Antônio Cruvinel Borges Neto. Trabalho de Conclusão de Curso Superior de Tecnologia em Redes deComputadores UEG (Universidade Estadual de Goiás), Trindade, 2012. Incluibibliografia.
  4. 4. MARCUS WINICIUS OLIVEIRA COSTA RAYNER MAX FERNANDES LIMAANÁLISE DE DESEMPENHO DE UM SERVIDOR PROXY VIRTUALIZADO Trabalho submetido à Banca Examinadora como parte dos requisitos para Conclusão do Curso de Tecnologia em Redes de Computadores. BANCA EXAMINADORA: ___________________________________________ Prof. Esp. Antônio Cruvinel Borges Neto ___________________________________________ Prof. Esp. Pabllo Borges Cardoso ___________________________________________ Prof. Esp. George Mendes Marra Trindade - GO 2012
  5. 5. DEDICATÓRIAEste trabalho é dedicado aos nossos pais, que acreditaram emnós desde o início. São eles, os principais responsáveis pelaconstrução de nosso caráter. Aos nossos amigos e as pessoaspróximas a nós, que estiveram ao nosso lado, sempre àdisposição para nos ajudar e apoiar nos momentos difíceis. E porúltimo, mas não menos importante, aos nossos professores, sereshumanos formidáveis, detentores do saber e, que fizeram, fazeme farão toda a diferença em nossas vidas, tanto profissional,quanto pessoal.
  6. 6. AGRADECIMENTOSÉ de Jean Cocteau a frase: “Não sabendo que era impossível, foilá e fez”. E é com ela, que iniciamos nossos agradecimentos.Primeiramente a Deus, pois sabemos que, sem Ele, nada somose nenhuma conquista é possível. Aos nossos pais os maissinceros e profundos agradecimentos. Agradecemos também aosnossos familiares e amigos, que apoiaram e foram pacientesconosco nos momentos mais difíceis e desafiantes. Ao corpodocente e demais profissionais da UEG - Unidade Universitáriade Trindade, que nos acolheu com tanto carinho, nossoreconhecimento. Ao Professor George Marra que acompanhoude perto nossa trajetória e, em especial, ao Professor AntônioCruvinel, que não só nos orientou, mas, acreditou em nós e nesteprojeto desde o início.
  7. 7. “Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do homem foram conquistadas doque parecia impossível.” Charles Chaplin
  8. 8. SUMÁRIORESUMO ................................................................................................................................................ 11ABSTRACT .............................................................................................................................................. 12LISTA DE ILUSTRAÇÃO ........................................................................................................................... 13LISTA DE TABELAS.................................................................................................................................. 15LISTA DE SÍMBOLOS E ABREVIATURAS .................................................................................................. 161 INTRODUÇÃO...................................................................................................................................... 18 1.1 Objetivo geral .............................................................................................................................. 20 1.2 Objetivos específicos ................................................................................................................... 20 1.3 Justificativa .................................................................................................................................. 21 1.4 Metodologia ................................................................................................................................ 212 FUNDAMENTAÇÃO TEÓRICA .............................................................................................................. 22 2.1 Máquina Virtual ........................................................................................................................... 22 2.1.1 Monitor de máquina virtual ................................................................................................. 23 2.1.2 Técnicas de Virtualização ..................................................................................................... 23 2.1.2.1 Virtualização Completa ................................................................................................. 23 2.1.2.2 Paravirtualização ........................................................................................................... 24 2.1.2.3 Recompilação Dinâmica ................................................................................................ 24 2.1.3 Vantagens de se utilizar a virtualização ............................................................................... 25 2.1.4 Desvantagens ....................................................................................................................... 27 2.1.5 Utilização .............................................................................................................................. 28 2.1.6 Segurança ............................................................................................................................. 28 2.1.7 Ferramenta Escolhida ........................................................................................................... 29 2.1.7.1 Diferenças entre VMware ESX e VMware ESXi ............................................................. 30 2.2 Servidor Proxy ............................................................................................................................. 31 2.2.1 Características do Servidor Proxy ......................................................................................... 31 2.2.2 Tipos de Proxy ...................................................................................................................... 32 2.2.2.1 Transparente ................................................................................................................. 32 2.2.2.2 Controlado ..................................................................................................................... 33 2.2.2.3 Proxy Transparente x Controlado.................................................................................. 33 2.2.2.3.1 Vantagens do Proxy Transparente ......................................................................... 33 2.2.2.3.2 Vantagens do Proxy Controlado ............................................................................. 34 2.2.2.4 Proxy Anônimo .............................................................................................................. 34 2.2.2.5 Proxy Reverso ................................................................................................................ 35
  9. 9. 2.2.3 Squid ..................................................................................................................................... 36 2.2.3.1 Breve história do Squid ................................................................................................. 36 2.2.3.2 Características do Squid ................................................................................................ 37 2.2.3.3 Requisitos Específicos para o Squid .............................................................................. 38 2.2.3.4 Estrutura do Squid ......................................................................................................... 38 2.2.3.4.1 Arquivo de Configuração ........................................................................................ 39 2.2.3.4.2 Restrições de acessos ............................................................................................. 39 2.2.3.4.3 Lista de Controle de Acesso ................................................................................... 39 2.2.3.4.4 Parâmetros administrativos ................................................................................... 44 2.2.4 Microsoft ISA Server ............................................................................................................. 46 2.2.5 Escolha da ferramenta ......................................................................................................... 46 2.2.6 Firewall Iptables ................................................................................................................... 46 2.3 Sistema Operacional.................................................................................................................... 48 2.3.1 Arquitetura ........................................................................................................................... 48 2.3.2 Tipos de Sistemas Operacionais ........................................................................................... 50 2.3.3 Principais finalidades de um S.O. ......................................................................................... 51 2.3.4 Red Hat Enterprise Linux 6 ................................................................................................... 54 2.4 Software de Benchmark .............................................................................................................. 57 2.4.1 Definição............................................................................................................................... 57 2.4.2 Características ...................................................................................................................... 58 2.4.3 Tipos de Benchmark ............................................................................................................. 59 2.4.4 Utilização dos Benchmarks ................................................................................................... 59 2.4.5 Estratégias do Benchmark .................................................................................................... 60 2.4.6 Erros do processo de Benchmarking .................................................................................... 61 2.4.7 Análise dos dados ................................................................................................................. 62 2.4.8 Benchmarking do Servidor Proxy ......................................................................................... 62 2.4.9 WebPolygraph ...................................................................................................................... 63 2.4.9.1 Metas da ferramenta WebPolygraph ............................................................................ 63 2.4.9.2 Visão geral sobre a arquitetura ..................................................................................... 643 INSTALAÇÃO DAS FERRAMENTAS ...................................................................................................... 66 3.1 VMware vSphere ESXi 5.0 ........................................................................................................... 66 3.1.1 Primeiros passos ................................................................................................................... 67 3.1.2 Instalando o VMware vSphere ESXi 5.0 ............................................................................... 68 3.1.3 Instalação do VMware vSphere Client ................................................................................. 74
  10. 10. 3.2 Red Hat Enterprise Linux 6 .......................................................................................................... 82 3.2.1 Instalação ............................................................................................................................. 82 3.2.2 Configuração ........................................................................................................................ 88 3.2.3 Registro do Red Hat Enterprise Linux 6 ................................................................................ 91 3.3 Squid ............................................................................................................................................ 94 3.4 WebPolygraph ............................................................................................................................. 954 ESTUDO DE CASO ............................................................................................................................... 98 4.1 Projeção do estudo de caso ........................................................................................................ 99 4.2 Maquina 1 – Servidor Proxy Nativo ............................................................................................. 99 4.3 Maquina 2 – Servidor Proxy Virtualizado .................................................................................. 107 4.4 Configuração física e lógica da Rede de Computadores ........................................................... 108 4.5 Utilizando o WebPolygraph ....................................................................................................... 112 4.6 Problemas encontrados ............................................................................................................ 124 4.7 Resultados obtidos .................................................................................................................... 1255 CONCLUSÃO ..................................................................................................................................... 1316 TRABALHOS FUTUROS ...................................................................................................................... 1337 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................................................ 134
  11. 11. 11 RESUMO A área de Tecnologia da Informação – TI, é uma das que mais têm apresentadocrescimento no mundo moderno. A informatização nos diversos setores é uma realidade quevivenciamos cotidianamente. As inúmeras economias de mercado buscam hoje umaotimização no sentido de garantir eficiência e eficácia na produção e prestação de serviço. Nointuito de garantir estes requisitos, as empresas vêm buscando a implementação de técnicas etecnologias que garantam economia de tempo e custos, melhorando assim a produtividadesem perder a qualidade dos serviços prestados. Dentre as várias técnicas e ferramentasempregadas neste sentido, está a virtualização. Com o emprego da virtualização, podem-se criar várias máquinas virtuais em umamesma máquina física, o que torna possível oferecer os mais distintos serviços, em sistemasoperacionais e servidores diferentes, de forma concomitante. Entretanto a utilização dessatécnica vem gerando uma série de discussões no que se refere ao desempenho ou ausênciadele, como é o caso da virtualização do Servidor Proxy. Este trabalho objetiva, portanto, analisar o desempenho de um Servidor ProxyVirtualizado. O conhecimento necessário para realizar esse procedimento, será adquiridoatravés de consultas e pesquisas a fontes diversas como livros, artigos, web sites, revistas eoutros. A análise se efetivará, através de ferramentas que verifiquem o tráfego da rede decomputadores, mediante a comparação dos dados obtidos, levando-se em conta, ocomportamento de um Servidor Proxy na máquina física e o desempenho do mesmo em umambiente virtualizado.Palavras-chave: Virtualização, máquina virtual, análise, Servidor Proxy, desempenho.
  12. 12. 12 ABSTRACT The area of Information Technology - IT is one of the fastest growth are presented inthe modern world. Computerization in various sectors is a reality that we experience daily.The many market economies have now sought an optimization to ensure efficiency andeffectiveness in production and service delivery. To ensure these requirements, companieshave been seeking the implementation of techniques and technologies to ensure saving timeand costs, improving productivity without losing the quality of services provided. Among thevarious techniques and tools used in this sense, is virtualization. With the use of virtualization, you can create multiple virtual machines on a singlephysical machine, which makes it possible to offer the most distinguished services in differentoperating systems and servers, concomitantly. However the use of this technique hasgenerated a lot of discussions regarding the performance or lack of it, as is the case of theProxy Server virtualization. This paper aims, therefore, to analyze the performance of a Virtualized Server Proxy.The knowledge required to perform this procedure, will be acquired through consultations andsurveys to various sources such as books, articles, web sites, magazines and other. Theanalysis become effective, using tools that check the network traffic from computers, bycomparing the data, taking into account the behavior of a proxy server on the physicalmachine and the same performance in a virtualized environment.Keywords: Virtualization, Virtual Machine, analysis, Proxy Server, performance.
  13. 13. 13 LISTA DE ILUSTRAÇÃOFIGURA: 1 – INFORMAÇÕES DE DOWNLOAD E LICENCIAMENTO .......................... 67FIGURA: 2 – ESCOLHA DO BOOT ...................................................................................... 68FIGURA: 3 – TELA DE INSTALAÇÃO DO VMWARE VSPHERE ESXI 5 ...................... 69FIGURA: 4 – CONFIRMAÇÃO DE ESCOLHA DE DISCO ................................................ 70FIGURA: 5 – DEFINIÇÃO DA SENHA DO ROOT.............................................................. 70FIGURA: 6 – TELA DE REINICIO DO SERVIDOR APÓS INSTALAÇÃO DAFERRAMENTA ....................................................................................................................... 71FIGURA: 7 – TELA DE LOGIN DO VMWARE VSPHERE ESXI 5 ................................... 72FIGURA: 8 – DEFINIÇÃO DO ENDEREÇO IP .................................................................... 73FIGURA: 9 – DEFINIÇÃO DO SERVIDOR DNS................................................................. 73FIGURA: 10 – TELA DE INÍCIO DE INSTALAÇÃO DO VMWARE VSPHERE CLIENT5.0 ............................................................................................................................................. 74FIGURA: 11 – TERMOS DE CONTRATO E LICENÇA ...................................................... 75FIGURA: 12 – ESCOLHA DA PASTA DE INSTALAÇÃO ................................................. 76FIGURA: 13 – TELA DE FINALIZAÇÃO DE INSTALAÇÃO DO VMWARE VCLIENT 76FIGURA: 14 – CONEXÃO COM O VMWARE VSPHERE ESXI 5 .................................... 77FIGURA: 15 – TELA INICIAL DO VCLIENT ...................................................................... 78FIGURA: 16 – CRIAÇÃO DE UMA MÁQUINA VIRTUAL ............................................... 78FIGURA: 17 – ESCOLHA DA VERSÃO DA MÁQUINA VIRTUAL ................................. 79FIGURA: 18 – DEFINIÇÃO DAS PLACAS DE REDE DA NOVA MÁQUINA VIRTUAL.................................................................................................................................................. 80FIGURA: 19 – FINALIZAÇÃO DA CRIAÇÃO DA NOVA MÁQUINA VIRTUAL .......... 80FIGURA: 20 – INICIANDO A MÁQUINA VIRTUAL CRIADA ......................................... 81FIGURA: 21 – TELA INICIAL DE INSTALAÇÃO DO RED HAT ENTERPRISE LINUX 6.................................................................................................................................................. 82FIGURA: 22 – ESCOLHA DO IDIOMA PADRÃO .............................................................. 83FIGURA: 23 – ESCOLHA DO NOME DA MÁQUINA ........................................................ 84FIGURA: 24 – ESCOLHA DO PARTICIONAMENTO DE DISCO ..................................... 85FIGURA: 25 – PERSONALIZAÇÃO DA INSTALAÇÃO DO RED HAT ENTERPRISELINUX 6 .................................................................................................................................. 86FIGURA: 26 – DEFINIÇÃO DE INSTALAÇÃO DOS PACOTES ADICIONAIS .............. 87FIGURA: 27 – TELA DE REINICIO DO SERVIDOR .......................................................... 87
  14. 14. 14FIGURA: 28 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 ................................... 88FIGURA: 29 – CRIAÇÃO DE NOVOS USUÁRIOS ............................................................. 89FIGURA: 30 – TELA INICIAL DE LOGIN ........................................................................... 90FIGURA: 31 – REGISTRO DO RED HAT ENTERPRISE LINUX 6 ................................... 91FIGURA: 32 – LOGIN E SENHA PARA REGISTRAR O S.O. ............................................ 92FIGURA: 33 – CONCLUSÃO DO REGISTRO ..................................................................... 93FIGURA: 34 – TERMINAL CONTENDO AS INFORMAÇÕES DE INSTALAÇÃO DOSQUID 3.1 ................................................................................................................................ 94FIGURA: 35 – PÁGINA DE DOWNLOAD DO PACOTE DA FERRAMENTAWEBPOLYGRAPH ................................................................................................................. 96FIGURA: 36 – TERMINAL CONTENDO O PROCESSO DE INSTALAÇÃO DOWEBPOLYGRAPH ................................................................................................................. 97FIGURA: 37 – ESTRUTURA INICIAL ............................................................................... 109FIGURA: 38 – ESTRUTURA DESEJADA .......................................................................... 110FIGURA: 39 – ESTRUTURA OBTIDA ............................................................................... 111FIGURA: 40 – EXEMPLIFICAÇÃO DO WEBPOLYGRAPH ........................................... 123FIGURA: 41 – REPRESENTAÇÃO MÉDIA DE TEMPO DE RESPOSTA DE 1 CLIENTE................................................................................................................................................ 129FIGURA: 42 – REPRESENTAÇÃO MÉDIA DE TEMPO DE RESPOSTA DE 200CLIENTES ............................................................................................................................. 130
  15. 15. 15 LISTA DE TABELASTABELA 1 – COMPARAÇÃO ENTRE OS PRODUTOS RED HAT ENTERPRISE LINUX- RED HAT INC. ..................................................................................................................... 56TABELA 2 – RESULTADOS DO SERVIDOR PROXY NATIVO .................................... 125TABELA 3 – RESULTADOS DO SERVIDOR PROXY VIRTUALIZADO ...................... 126TABELA 4 – COMPARAÇÃO DE RESULTADOS............................................................ 127TABELA 5 – RESULTADOS DO ACESSO DE 200 CLIENTES AO SERVIDOR PROXYNATIVO................................................................................................................................. 128TABELA 6 – RESULTADOS DO ACESSO DE 200 CLIENTES AO SERVIDOR PROXYVIRTUALIZADO .................................................................................................................. 128TABELA 7 – COMPARAÇÃO DE RESULTADOS DA SIMULAÇÃO DE 200 CLIENTES................................................................................................................................................ 128
  16. 16. 16 LISTA DE SÍMBOLOS E ABREVIATURASABNT: Associação Brasileira de Normas TécnicasACL: (Access Control List) Listas de Controle de AcessoBIOS: (Basic Input/Output System) Sistema Básico de Entrada/SaídaCD: Disco CompactoCPU: (Central Processing Unit) Unidade Central de ProcessamentoDHCP: (Dynamic Host Configuration Protocol) Protocolo de configuração dinâmica de hostDNS: (Domain Name System) Sistema de Nomes de DomínioDVD: Disco Versátil DigitalFTP: (File Transfer Protocol) Protocolo de Transferência de Arquivos)GB: GigaByteGUI: (Graphical User Interface)- Interface gráfica com o usuárioHD: (Hard Disk) Disco RígidoHTTP: (HyperText Transfer Protocol) - Protocolo de Transferência de HipertextoHTTPS: (HyperText Transfer Protocol Secure) Protocolo de Transferência de HipertextoSeguroI/O: (Input/Output) Entrada/SaídaICP: (Public Key Infrastructure) Infra-estrutura de Chaves PúblicasICQ: A sigla “ICQ” é um acrônimo feito com base na pronúncia das letras em inglês: I SeekYou, que traduzido para o português: eu procuro vocêIP: (Internet Protocol) Protocolo de InternetISO: Organização Internacional para PadronizaçãoJVM: (Java Virtual Machine) Máquina Virtual JavaKB: KiloByteKDE: (K Desktop Environment) Ambiente de Desktop EspecialKVM: (Kernel-based Virtual Machine) Máquina Virtual de Kernel baseadoMB: MegaBytes
  17. 17. 17MMV: Monitor de Máquina VirtualNAT: (Network Address Translation) Tradutor de Endereços de RedeNIC: (Network Information Center) Centro de Informação de RedesNTLM: (New Technology Local Area Network Manager) Novo Gerente de Tecnologia deRede de Área LocalOSI: (Open Systems Interconnection) Sistema Aberto de InterconexãoPC: (Personal Computer) Computador PessoalPDA: (Personal Digital Assistants) Assistentes Pessoais DigitaisRAM: (Random-Access Memory) Memória de Acesso AleatórioRAS: (Reliability, Availability and Serviceability) Confiabilidade, Disponibilidade e UtilidadeS.O.: Sistema OperacionalSELinux: (Security-Enhanced Linux) Segurança Linux AprimoradaSGBDs: Sistema de Gerenciamento de Banco de DadosSMTP: (Simple Mail Transfer Protocol) Protocolo Simples de Transferência de EmailSNMP: (Simple Network Management Protocol) Protocolo simples de gestão de redeSPEC: (Standard Performance Evaluation Corporation) Corporação Padrão de Avaliação deDesempenhoSSH: Secure ShellSSL: (Security Sockets Layer) Segurança da Camada de TransporteTI: Tecnologia da InformaçãoTPC: (Transaction Processing Performance Council) Conselho de Desempenho deProcessamento de TransaçõesTSL: Segurança da Camada de Transporte.UEG: - UnU: Universidade Estadual de Goiás - Unidade UniversitáriaURL: (Uniform Resource Locator) Localizador-Padrão de RecursosVMM – (Virtual Machine Monitor) Monitor de Máquina VirtualVMM: (Virtual Machine Monitor) Monitor de Máquina VirtualVPN: (Virtual Private Network) Rede Privativa Virtual
  18. 18. 18 1 INTRODUÇÃO A evolução tecnológica aliada ao aumento da utilização da internet vem obrigando asempresas a se adequarem a um novo contexto no que se refere à área da informática: anecessidade de maquinas cada vez mais potente. Naturalmente, os servidores utilizados nasempresas, necessitam a cada dia, de maior poder de processamento, memória, espaço e outrosrequisitos, que os faça cada vez mais eficientes, capacitando assim as empresas a atuarem emum mercado altamente competitivo. De acordo com MIGUEL (2009), em seu artigo, publicado no site Tecnologia doGlobo, intitulado “O que é um servidor, um servidor dedicado e um mainframe?”, umservidor pode ser entendido como um sistema ou equipamento que disponibiliza serviçosespecíficos à outras máquinas na rede de computadores. Uma das principais funções de um servidor é centralizar o acesso a estes serviços,tornando uma informação disponível em um maior tempo possível, em vários lugaresdiferentes, de maneira segura e íntegra. Em contrapartida ao uso deste tipo de equipamento, as empresas, na maioria dos casos,tem como meta, oferecer o mesmo serviço, com a menor despesa possível. Embora os custosatuais dos equipamentos necessários aos servidores terem diminuindo, se comparado háalguns anos atrás, as controvérsias do lucro e gastos, acabam levando estas mesmas empresasa adotarem medidas específicas no intuito de resolverem este tipo de questão. Dentre as medidas adotadas para aumentar a disponibilidade lógica, diminuindo oscustos físicos, está a virtualização. Segundo LAUREANO (2006), o conceito de máquinavirtual não é novo. Suas origens remetem ao início da história dos computadores, no final dosanos 50 e inicio dos anos 60. A virtualização pode ser definida, como a capacidade de repartirdiferentes estações lógicas ou virtuais em uma mesma máquina hospedeira, com isso épossível instalar diferentes Sistemas Operacionais em uma mesma máquina física, estandoestes funcionando ao mesmo tempo e paralelamente. “Virtualizar virou sinônimo de abstraire, portanto, praticamente tudo que tem um conceito de abstração leva virtualização em seunome” (SCHAFFER, 2008). Todas essas máquinas virtuais são gerenciados por um midlleware, uma camadamediana que fica entre o sistema nativo e o hardware. Esta camada, que também é conhecidacomo Hypervisor, MMV - Monitor de Máquina Virtual - ou VMM – Virtual MachineMonitor-, tem o controle sobre os recursos do hardware e permite criar várias maquinasvirtuais sobre uma maquina real (LAUREANO, 2006, p. 19).
  19. 19. 19 A virtualização traz uma série de vantagens sólidas. Dentre elas podemos destacar aredução do consumo de energia, facilidade para exercícios de teste e desenvolvimento, maiorsegurança e disponibilidade, melhor aproveitamento do espaço físico e do hardware,flexibilidade para migrar ambientes dentre outras importantes características, o que acabampor fazer com que esta tecnologia caminhe a passos largos. Com o processo acima citado, as empresas podem implantar um ou mais servidoresem uma mesma máquina, satisfazendo assim o seu objetivo de redução de custos, além demaximizar o uso das máquinas físicas, diminuir a ociosidade do servidor e reduzir gastos cominfraestrutura, refrigeração e energia, vantagens descritas por MOREIRA (2008). Paraexemplificar, em um mesmo computador, pode-se implantar um Servidor de Fax e umServidor de Impressão virtualizados em um Servidor Web devido a pouca demanda deexecução que estes exigem do hardware. Mas este procedimento, de virtualização demáquinas, acabou por gerar algumas discussões a respeito do desempenho dos servidores,principalmente devido às limitações que este tipo de técnica possui. A virtualização de umServidor Proxy, é um tópico importante dessas discussões. Um Servidor Proxy nada mais é do que um computador que fica localizado na rede decomputadores, entre o usuário e a Internet, e que segundo MARCELO (2006), pode serutilizado para armazenar um cache das páginas Web, controlar e registrar o acesso do usuárioà Internet, além de providenciar anonimato e também bloquear o acesso a determinados sites. Este tipo de servidor atua da seguinte maneira: um cliente ou usuário conecta-se a umServidor Proxy, requisitando um serviço - como uma conexão, um arquivo, entre outros - oservidor avalia a solicitação e a atende de acordo com as políticas estabelecidas. Dentre asvantagens de se utilizar esse Servidor podemos citar: o aumento na velocidade de resposta deuma requisição feita por um cliente e economia de banda larga, pois, com o cachearmazenado, o servidor não precisará buscar todas as informações novamente na Internet,sendo necessária apenas uma atualização das informações locais (MARCELO, 2006). A maior problemática gerada sobre esse conceito e a virtualização deste tipo deserviço está na perda de desempenho. Isto porque uma máquina virtual, de acordo comLAUREANO (2008, p. 34), não possui o mesmo desempenho que uma máquina nativadevido à introdução de uma camada extra de software, além de que um simples gargalo nessacamada extra ou até mesmo na máquina física pode atrapalhar o normal funcionamento damáquina virtual.
  20. 20. 20 Até o presente momento, não constatamos um estudo aprofundado visando umasolução para a problemática apresentada, sendo assim, será proposto, neste trabalho, a criaçãode um Servidor Proxy que funcionará em uma máquina virtualizada para que possamos fazera análise de desempenho do mesmo. A análise dos resultados pode vir a ser, uma contribuiçãoa aos profissionais da área de Tecnologia da Informação, como tecnólogos e administradoresde rede, no que se refere à comprovação ou não da provável perda de desempenho de umServidor Proxy virtualizado.1.1 Objetivo geral Realizar um estudo sobre o desempenho de um Servidor Proxy Virtualizado através daanálise de desempenho do mesmo na rede de computadores.1.2 Objetivos específicos - Compreender os conceitos de máquina virtual, Servidor Proxy e análise dedesempenho das redes de computadores bem como a usabilidade dos mesmos; - Elencar se comprovado for, as vantagens existentes para as empresas em virtualizarum servidor; - Elucidar os benefícios do Servidor Proxy; - Montar um ambiente virtualizado visando o estudo de caso; - Analisar e quantificar o desempenho do serviço Proxy em uma máquina nativa e emuma máquina virtual; - Oferecer um material de apoio a acadêmicos e a profissionais de redes decomputadores.
  21. 21. 211.3 Justificativa Na atualidade, o crescimento das redes de computadores é sempre colocado emquestionamento. É comum nos depararmos com empresas que pretendem ter um excelenteparque tecnológico e oferecerem os mais diferentes tipos de serviços, e mesmo não dispondode um gasto excessivo, acabam por atingir esses objetivos, após se depararem com algumassoluções, como é o caso da virtualização. Quando uma empresa possui um grande número de servidores físicos, a virtualização ébem aceita, apesar de trazer consigo problemas antes não existentes, como por exemplo, anecessidade de um maior monitoramento nestes equipamentos, tanto física quantologicamente, haja vista que, um mesmo equipamento, oferece dois ou até mais serviços. Outroexemplo são os servidores que não podem trabalhar compartilhando os mesmos recursos, poisnecessitam de um alto poder de processamento, armazenamento, largura de banda, memóriaentre outros recursos. Além desses exemplos, existe um em particular, em torno do qual muitose especula, mas sem comprovação ate o momento, que é a não virtualização do ServidorProxy devido a uma possível perda de desempenho. Devido ao contexto desta questão de não se virtualizar um Servidor Proxy devido adiminuição do desempenho, justifica-se a criação do ambiente virtualizado para análise dedesempenho da máquina nativa, da máquina virtual e da rede de computadores, ou seja, oestudo de caso a fim de que, tenhamos elementos concretos que subsidiem nossas conclusõesa cerca da problemática exposta. Ao término deste projeto, pretende-se esclarecer,compreender, e/ou comprovar, a questão sobre a perda de desempenho de um Servidor Proxyvirtualizado é real ou não.1.4 Metodologia A metodologia adotada para a realização deste Trabalho de Conclusão de Curso constade parte teórica fundamentada em pesquisas de livros, artigos, revistas, jornais, vídeos epáginas web e outra parte prática, visando gerar novos conhecimentos e o êxito do projeto,para tanto será explorado, além dos itens citados, um estudo de caso real. O estudo de casoreal será feito com base na implantação, pelos próprios acadêmicos, de um Servidor Proxy emuma máquina virtualizada, no intuito de analisar o desempenho deste serviço na rede decomputadores e assim através de elementos concretos comprovar a perda ou não dodesempenho supracitado.
  22. 22. 22 2 FUNDAMENTAÇÃO TEÓRICA2.1 Máquina Virtual Um dos primeiros conceitos de máquina virtual foi elaborado pela IBM. Segundo esteconceito, uma máquina virtual era considerada como uma cópia isolada de um sistema físico,sendo que esta cópia estaria totalmente protegida. Em uma perspectiva mais atual, comoafirma LAUREANO (2006, p. 17), esta definição pode ser entendida como “uma duplicataeficiente e isolada de uma máquina real”. No pensar de SILVA (2011), máquina virtual podeser considerada como um software que simula todas as condições de um computador real. Emsuma, máquinas virtuais são programas que permitem que em uma mesma máquina, sejamexecutadas simultaneamente dois ou mais ambientes distintos e isolados, no qual trabalhamexatamente iguais a uma máquina física sendo controladas por um monitor de máquinavirtual. A definição de máquina virtual não é um conceito recente, pois sua origem se remeteao final da década de 50 e inicio de 1960. Inicialmente, elas foram criadas com o intuito deconcentrar todos os sistemas disponíveis em um só computador, sendo que cada maquinavirtual tinha as mesmas configurações da máquina física. Na década de 1980, a virtualização perdeu importância com a popularização deplataformas de hardware baratas, como o computador pessoal, pois se apresentava a um customenor, tornando simples o fornecimento de um computador completo a cada usuário do queinvestir em sistemas de grande porte, caros e complexos. “Além disso, o hardware do PCtinha desempenho modesto e não provia suporte adequado à virtualização, o que inibiu o usode ambientes virtuais nessas plataformas.” (LAUREANO; MAZEIRO 2006, p. 139).
  23. 23. 232.1.1 Monitor de máquina virtual Segundo LAUREANO (2006, p. 19) uma máquina virtual é um ambiente criado porum monitor de máquina virtual (Virtual Machine Monitor – VMM), também denominado“sistema operacional para sistemas operacionais”. O monitor de máquina virtual - MMV ouVirtual Machine Monitor – VMM pode ser entendido como uma camada de softwareintroduzida entre o hardware e as máquinas virtuais, cuja finalidade é abstrair a máquinavirtual do sistema operacional visitante. Essa camada realiza uma interface entre os sistemasvirtualizados e o hardware que é compartilhado por eles, sendo assim responsável pelogerenciamento de todas as estruturas de hardware, fornecendo então, um ambiente completono qual os sistemas virtualizados irão funcionar. Na computação o VMM também é conhecido como Hypervisor, uma plataforma devirtualização, que possibilita a execução simultânea, porém independente de vários sistemasoperacionais em um único hardware. Existem duas maneiras distintas de atuação doHypervisor para realizar a virtualização: monitor nativo e monitor convidado.2.1.2 Técnicas de Virtualização Para o processo de virtualização podemos utilizar métodos, sendo que os maisutilizados são a virtualização completa, paravirtualização e recompilação dinâmica. De ummodo geral vale destacar o que diz WILLIAMS e GARCIA (2007) que, para criar partiçõesvirtuais em um servidor, uma fina camada de software chamada de Virtual Machine Monitor(VMM), é executado diretamente sobre a plataforma do hardware físico. Sendo que um oumais sistemas operacionais hospedeiros podem executar as aplicações sobre do VMM.2.1.2.1 Virtualização Completa O método da virtualização completa, é utilizado para que qualquer software possa serexecutado sem alterações. Para isso um software de baixo nível é executado diretamente sobreo hardware, carregado no computador antes de qualquer sistema operacional. Esta simulaçãorepresenta o conjunto de instruções do processador, a memória principal, interrupções,exceções e acesso aos diversos dispositivos existentes. Um ponto que deve ser consideradorelevante, é que este tipo de virtualização, precisa de um hardware com característicasespecíficas, para que seja possível atender instruções de execução privilegiada. Esse método
  24. 24. 24de simulação é realizado com maior eficácia, pois não necessita representar os estados deexecução do hardware.2.1.2.2 Paravirtualização O segundo método é chamado de paravirtualização, no qual a máquina virtual éexecutada sobre um sistema operacional nativo, sendo reconhecido apenas como um processo.Na paravirtualização o sistema que será virtualizado sofre algumas alterações no kernel paragarantir a eficácia na interação com o monitor de máquinas virtuais. Apesar de se perder emportabilidade devido a essas alterações, ele tem permissão de acessar diretamente os recursosdo hardware, sendo que esse acesso é monitorado pelo monitor de máquinas virtuais, quefornece ao sistema convidado, os limites do sistema. A paravirtualização reduz a complexidade existente no desenvolvimento de máquinasvirtuais. Como afirma LAUREANO - 2006, historicamente os processadores não suportam avirtualização nativa, sendo que a principal razão para utilizar a paravirtualização é odesempenho obtido, que compensa as modificações que deverão ser implementadas nossistemas convidados Entre os softwares que realizam a paravirtualização, citamos como citarexemplos o VMware Workstation, Virtual Box, Microsoft Virtual Server, Xen.2.1.2.3 Recompilação Dinâmica A técnica da Recompilação Dinâmica, também recebe o nome de tradução dinâmica eseu funcionamento se faz, traduzindo durante a execução de um programa, as instruções deum formato para outro. Segundo (LAUREANO, 2006) com a compilação durante a execução,o sistema pode adequar o código gerado de forma a refletir o ambiente original do programa,onde informações que normalmente não estão disponíveis para um compilador estáticotradicional são exploradas, para que o código gerado seja mais eficiente. Uma de suas aplicações pode ser notada em compiladores JIT (just-in-time), quetraduzem de uma linguagem Bytecode para o código nativo da CPU onde o compiladorexecuta-o. A recompilação segue determinados passos:  Primeiro: O código binário é escaneado para que seja identificada uma sequência de bits correspondentes à seção de código do programa em execução.
  25. 25. 25  Segundo: Os bits agrupados anteriormente são divididos em instruções, juntamente com os parâmetros delas.  Terceiro: As instruções são transformadas para uma representação mais próxima do sistema operacional Host.  Quarto: Um código em uma linguagem de alto nível é gerado a partir da representação anterior, sendo que esse código que é compilado e reescrito na linguagem nativa.  Quinto: Temos uma sequência de bits agora executáveis no sistema operacional Host. O VMWare Workstation utiliza essa técnica, recompilando apenas parte do código, uma vez que boa parte dele pode executar nativamente (a arquitetura de hardware subjacente é a mesma da VM). No VMWare Workstation apenas instruções que não podem ser executadas diretamente são recompiladas. Um exemplo desse tipo de técnica é a JVM (Java Virtual Machine), uma máquinavirtual desenvolvida especialmente para aplicações Java, sendo esta capaz de carregar eexecutar aplicativos, convertendo os Bytecodes em um código executável.2.1.3 Vantagens de se utilizar a virtualização A virtualização traz consigo uma larga escala de vantagens, dentre as quais poderão sercitadas:  Segurança: Cada máquina virtual é isolada das demais devido à estrutura da camada de software do Hypervisor, portanto, a vulnerabilidade de um sistema que opera em uma máquina virtual não afeta as outras máquinas virtuais. Segundo MATTOS (2008), através das máquinas virtuais pode ser definido quais são os melhores ambientes para executar cada serviço, com diferentes ferramentas, requerimentos de segurança e até sistemas operacionais.
  26. 26. 26  Manutenção de Equipamentos: A manutenção é facilitada, pois os serviços estarão centralizados em uma mesma maquina física, também sendo possível espelhar a máquina virtual a fim de realizar manutenções de hardware, o que se traduz na não paralisação dos serviços.  Redução de Gastos: Procurando cada vez mais manter o mesmo nível de serviço com menor custo, as empresas encontraram na virtualização um modo de economizar com gastos de equipamentos, espaço físico, refrigeração, entre outros. De acordo com MATTOS (2008), essa redução pode variar de 29% até 64%.  Confiança e Disponibilidade: Como as máquinas virtuais funcionam independentes umas das outras, se ocorrerem falhas de software, estas não prejudicarão os demais serviços das outras máquinas virtuais.  Escalabilidade: Todas as máquinas virtuais estão encapsuladas no VMM, possibilitando assim a mudança da plataforma de configuração da máquina virtual para aumentar ou diminuir seu desempenho, de acordo com as necessidades.  Suporte a aplicações legadas: Caso ocorram mudanças de sistema operacional em uma empresa, a virtualização pode ser utilizada com a finalidade de manter vários tipos de sistemas operacionais em um mesmo hardware, ou seja, “é possível manter o sistema operacional antigo sendo executado em uma máquina virtual, o que reduz os custos com a migração” (MATTOS, 2008).  Tecnologia Verde: A virtualização já deixou de ser uma tendência e se tornou no mundo corporativo, trazendo inúmeras vantagens a todos já que, pela economia de recursos e equipamentos, também se trata de uma tecnologia verde. E conforme WILLIAMS e GARCIA (2007), a virtualização juntamente com aconsolidação de servidores, contribuirá para aumentar a utilização do poder computacionaldos servidores, enquanto diminui o número de plataformas físicas necessárias. Esta técnicafornece elevado isolamento entre a execução das máquinas virtuais. Uma falha em um sistemada máquina virtual ou partição, não irá afetar as outras partições sendo executadas na mesma
  27. 27. 27plataforma de hardware. Este isolamento lógico é o escudo que protege as máquinas virtuaisno nível mais baixo devido que, elas se desconhecem, e, portanto não sofrem impactos, porcondições de alocações. “É uma chave da virtualização, tornar cada partição como se fosseexecutar em um hardware dedicado” (WILLIAMS & GARCIA, 2007).2.1.4 Desvantagens Porém, como toda tecnologia não tem apenas pontos positivos, pode-se citar como ospontos negativos mais relevantes:  Segurança: Todos os softwares estão sujeitos a apresentar falhas. Se o sistema operacional hospedeiro apresentar vulnerabilidades, todas as demais máquinas virtuais hospedadas na mesma máquina física apresentarão vulnerabilidade, já que o VMM é uma camada de software.  Gerenciamento: Segundo MATTOS (2008), as máquinas virtuais precisam ser monitoradas, instanciadas, configuradas e salvas constantemente. Existem ferramentas das quais facilitam tais serviços, mas este é o campo de maior investimento na área da virtualização, pois tais contratempos precisam ser resolvidos.  Poder de processamento: Por ser uma camada extra de software, a máquina virtualizada necessita de uma maior quantidade de processamento do que se teria sem a virtualização, aumentando assim o custo final do equipamento. Isto porque ele necessitará de mais ou de melhores processadores e uma quantidade maior de memória RAM, que são periféricos responsáveis pelo aumento do poder de processamento.  Limitações do hardware: Também é muito importante ter consciência sobre as limitações dos equipamentos físicos do computador, pois o processamento, a capacidade de armazenamento da memória virtual e o espaço em disco do equipamento são compartilhados pelos ambientes virtuais, e, com isso, o hardware pode se tornar o maior problema da virtualização.
  28. 28. 282.1.5 Utilização Define-se a virtualização como uma maneira de se executar vários serviços, programase sistemas operacionais em um único equipamento físico, possibilitando também simularvários tipos de hardwares em um único equipamento, como servidores, switches, entre outros.Um dos maiores exemplos de serviços virtualizados é o cloud computing (computação emnuvem) no qual a maioria dos servidores são virtualizados e formam uma grande redefisicamente distribuída, elaborada para oferecer serviços específicos. Algumas empresas utilizam a virtualização em seus projetos tanto para simularcenários diferentes de redes ou até mesmo simular plataformas diferentes como diversos tiposde serviços. Para cada serviço de virtualização pode ser encontrado um ou mais virtualizadores. Nocaso de servidores voltados para testes em sistemas desktops podemos utilizar os softwares,Virtual Box, VMware, Microsoft Virtual PC. Já no caso da virtualização de servidores emambiente de produção pode-se usar Xen, VMware, KVM entre outros.2.1.6 Segurança Usando máquinas virtuais, pode ser definido qual é o melhor ambiente para executarcada tipo de ocupação, com diferentes requerimentos de segurança, ferramentas e o sistemaoperacional mais adequado para cada serviço. Além disso, cada máquina virtual é isolada dasdemais, logo, usando uma máquina virtual para cada serviço, a vulnerabilidade de um serviçonão prejudica os demais. As máquinas virtuais podem ficar isoladas e independentes umas dasoutras, inclusive independente da máquina hospedeira. Correm-se riscos neste momento, das máquinas virtuais se tornarem menos segurasque as máquinas físicas, justamente por causa do seu host. Este ponto é interessante, pois, se osistema operacional hospedeiro tiver alguma vulnerabilidade, todas as máquinas virtuais queestão hospedadas nessa máquina física também estarão vulneráveis.
  29. 29. 292.1.7 Ferramenta Escolhida De acordo com as necessidades apresentadas durante a execução desta pesquisa, foiescolhido uma ferramenta que será útil para alcançar os objetivos propostos. Referimo-nos aoVMware vSphere ESXi 5. Ela é um software modelo para criação de infraestruturasvirtualizadas. O uso do VMware vSphere ESXi 5 é voltado para servidores de grande porte. Essaferramenta é um sistema operacional dedicado, que usa um núcleo proprietário conhecidocomo VMkernel baseado em uma kernel Linux. O Red Hat Linux é usado para prover osdiversos serviços, como gerenciamento remoto. Por rodar em um nível mais próximo dohardware, elimina-se o overhead, que é o termo utilizado para descrever ou identificar umprocessamento e/ou armazenamento excessivos, além de aumentar a segurança. Com a utilização dessa ferramenta, temos um kernel Linux chamado VMkernel, que éresponsável por realizar todo o controle do hardware e também tornar possível, a criação demáquinas virtuais devido aos módulos que gerencia. Duas das principais vantagens dessa ferramenta são:  Custos reduzidos: o VMware vSphere é um auxílio para as organizações fornecerem os serviços necessários com mais eficiência, eliminando os gastos desnecessários além de eliminar a complexidade do gerenciamento e da manutenção da infraestrutura de TI.  Melhor eficiência: Ganho de desempenho, que se deve principalmente a ausência de um Sistema Operacional propriamente dito, instalado na máquina hospedeira. Desta maneira, diminui-se uma camada de software, reduzindo os possíveis gargalos e garantindo uma maior eficiência do servidor.
  30. 30. 302.1.7.1 Diferenças entre VMware ESX e VMware ESXi Na arquitetura original do VMware ESX vSphere, o kernel de virtualização ouVMkernel, existe uma partição adicionada de gestão conhecido como Service Console ouConsole de Serviço. O objetivo principal desse sistema é fornecer uma interface de gestão dohospedeiro. Vários agentes da VMware foram implantados juntamente com essa console,como por exemplo serviço de nome, tempo de serviço, registro. Entretanto, nessa arquitetura,essa interface é considerada como uma camada extra de software que serve de apoio para oVMkernel, o que além de aumentar o tamanho final da ferramenta, pode ocasionar gargalosdevido ao incremento dessa camada. Na nova arquitetura do VMware ESXi vSphere, essa Console de Serviço foi removidae todos os agentes da VMware são executados diretamente no VMkernel. Com isso, além daferramenta final ser mais leve e robusta do que na arquitetura ESX, a configuração e omonitoramento das máquinas virtuais são feitas por agentes externos e acessados via interfacede rede, através da instalação de aplicativos como o vClient para a execução destas tarefas.
  31. 31. 312.2 Servidor Proxy O Proxy pode ser entendido como “um software que atua como gateway de aplicaçãoentre o cliente e o serviço a ser acessado, interpretando as requisições e repassando-as aoservidor de destino” (RICCI; MENDONÇA 2006, p. 1). Já para LUNARDI (2005, p. 1), otermo “servidor Proxy” ou “serviço Proxy” é um software que tem a “procuração” de um oumais hosts para buscar na Internet uma informação solicitada. Em outras palavras, ServidorProxy é um computador intermediário, localizado entre os usuários da rede de computadores ea Internet, e que atende as requisições realizadas pelos mesmos. Devido fatores como a segurança em redes privadas e a limitação de quantidade deendereços IP válidos na Internet, as máquinas da rede possuem endereços inválidos e,portanto, não se conectam diretamente com Internet. O Servidor Proxy surgiu então danecessidade de se conectar a rede local na Internet através de um computador quecompartilhasse a conexão com as outras máquinas da rede. Desta maneira, toda solicitaçãooriginada em uma das máquinas localizadas na mesma seguem para o Proxy e este realiza ocontato com o destino da requisição, repassando assim a resposta ao solicitante. O Servidor Proxy é capaz de analisar os pacotes na camada 7 ou camada de aplicaçãodo modelo OSI. Segundo RICCI e MENDONÇA (2006, p. 2), “isto oferece uma flexibilidademuito maior, porque permite que o tráfego dentro de um serviço, como o tráfego da porta 80(HTTP) possa ser filtrado”. É devido a esse fato que o Proxy consegue analisar e determinarse um trafego HTTP ou FTP, por exemplo, deve ou não passar da Internet para a rede local.2.2.1 Características do Servidor Proxy Um Servidor Proxy pode ser usado com basicamente quatro objetivos:  Aumento na velocidade de resposta das requisições: O serviço Proxy também fornece a funcionalidade de armazenamento de cache. Para RICCI e MENDONÇA (2006, p. 2), o cache “significa a capacidade de um sistema armazenar em memória (ou em áreas reservadas do disco rígido) o conteúdo mais frequentemente acessado”. Os objetivos deste recurso é disponibilizar esse conteúdo salvo de forma mais rápida e eficiente ao solicitante e economizar, assim, a largura da banda, pois não será necessário ir à Internet novamente para responder a requisição;
  32. 32. 32  Compartilhamento de conexão de Internet: As máquinas da rele local possuem endereços inválidos e, por causa disso, não se conectam na Internet diretamente. Então, todas as requisições feitas por estas são direcionadas ao Servidor Proxy, que acessa a Internet com um endereço de IP válido e atende estas solicitações;  Controle de acesso: Através do procedimento de interpretação das requisições pela análise do seu conteúdo, é possível ao Proxy fazer um controle de acesso dos usuários da rede de computadores. Além de registrar cada acesso feito, o sistema permite a criação de ACLs (Access Control List) ou Listas de Controle de Acesso que gerenciam as permissões de acesso de cada usuário;  Relatório de acesso: todos os acessos são armazenados em forma de log, permitindo, assim, a possibilidade de criação de relatórios dos acessos realizados através do servidor pelos clientes.2.2.2 Tipos de Proxy Devido a grande flexibilidade que o serviço Proxy possui, muitos administradores deredes de computadores e outros utilizadores deste tipo de sistema começaram a descobrirmaneiras diferentes de se aproveitar deste recurso. Com isso, diferentes tipos de Proxy foramsendo criados e estes podem ser encontrados em diferentes lugares na atualidade, como naInternet, nas redes locais empresariais e até mesmo nas redes domésticas. Dentre eles, osprincipais são: Proxy Transparente, Proxy Controlado, Proxy Anônimo e Proxy Reverso.2.2.2.1 Transparente Neste tipo de Proxy, não é necessário configurar os serviços da máquina do usuário,como o navegador Internet Explorer, Mozilla Firefox ou Google Chrome por exemplo, para assolicitações serem direcionadas para o servidor. Resumidamente, esta técnica “consiste noadministrador criar um redirecionamento de portas utilizando regras de firewall”. Em outraspalavras, todo o tráfego da rede de computadores de acesso à web será redirecionadotransparentemente para a porta em que o serviço Proxy é oferecido, tornando, assim, apassagem obrigatória pelo Servidor Proxy.
  33. 33. 332.2.2.2 Controlado Diferentemente do Proxy Transparente, este tipo de serviço exige uma configuraçãonos navegadores para que estes direcionem suas requisições para o Servidor Proxy. SegundoREIS; RAIMUNDO; CARMO (2006, p. 10) o Proxy Controlado possui certas opções que oProxy Transparente não tem para facilitar o controle de quem pode ou não utilizar o Proxy, ea sua configuração deve estar como padrão em todos os browsers com o IP do servidor.2.2.2.3 Proxy Transparente x Controlado A escolha do tipo de Proxy a ser utilizado depende da situação em que ele seráaplicado. Se, por exemplo, em uma empresa os administradores preferirem colocar o IP doservidor em cada máquina ou se desejarem não colocar nenhuma informação nos navegadoresdo usuário.2.2.2.3.1 Vantagens do Proxy Transparente  É mais simples de ser configurado do que o Proxy Controlado quando está habilitado no Kernel;  Programas como o ICQ funcionam plenamente com ele, ao contrário do servidor Proxy Controlado, que possui certa instabilidade quanto a este tipo de programa e a protocolos como o SMTP;  Não precisa que as máquinas clientes sejam configuradas para direcionar as requisições ao Servidor Proxy, evitando assim que os usuários removam as definições do Proxy de dentro do navegador;  No Proxy Transparente, o cliente é forçado a passar pelo Proxy e com a configuração deste serviço, todos os serviços oferecidos por ele ficam disponíveis aos usuários, como SSH, Telnet, E-mail, entre outros;
  34. 34. 342.2.2.3.2 Vantagens do Proxy Controlado  Possui mais recursos que um Proxy Transparente, como por exemplo, algumas listas de controles de acesso (ACL’s) que controlam quem pode e quem não pode utilizar o Servidor Proxy;  Não precisa de configurações no Kernel, ao contrário do Proxy Transparente, que necessita dessas configurações e que leva, em determinados casos, a necessidade de recompilação do mesmo;  Pode servir para liberar a Internet através de autenticação do usuário, o que não é possível através do Servidor Proxy Transparente.  Possui um melhor controle das portas que utilizam SSL, uma camada do protocolo de rede, responsável por gerenciar um canal de comunicação seguro entre o cliente e o servidor.2.2.2.4 Proxy Anônimo O acesso à Internet pode expor dados do usuário, possibilitando sua identificaçãoatravés de endereço IP, localização geográfica, informações sobre o Sistema Operacional e onavegar utilizado. Proxy anônimo é uma ferramenta que tem por objetivo geral realizaratividades na Internet sem deixar vestígios, provendo assim ao usuário anonimidade eprivacidade. Ele também pode ser utilizado para contornar restrições de acesso que existam narede. Este tipo de Servidor Proxy é, muitas das vezes, disponibilizado livremente naInternet. O usuário digita no navegador o site de um Proxy anônimo e, ao acessar esse site,basta digitar no campo oferecido pelo mesmo o endereço que deseja acessar. Desta maneira, oProxy mascara algumas informações da pessoa, como o endereço IP, e, consequentemente,torna mais difícil sua possível identificação. Entretanto, este tipo de técnica traz consigo algumas problemáticas. Dentre elas, está alentidão e instabilidade desses sites de Proxy Anônimo, isso porque os mesmos podemreceber centenas e até milhares de conexões simultâneas, além do anonimato em si, que
  35. 35. 35proporciona, a usuários mal intencionados, mais uma ferramenta para cometer crimescibernéticos e acessar conteúdo proibido, desrespeitando os direitos autorais.2.2.2.5 Proxy Reverso Um Proxy Reverso é um servidor de rede que fica localizado entre a Internet e osServidores Web. Com isso, todas as conexões provindas da rede externa são endereçadas paraum dos servidores Web através de um roteamento feito pelo Proxy. Esse tipo de serviço temcomo objetivo principal prover segurança aos Servidores Web, evitando que os clientestenham contato direto com ele. Além do roteamento e da segurança proporcionada por ele, oProxy Reverso possui mais algumas características, como:  Criptografia: a criptografia SSL pode ser transmitida ao Servidor Proxy ao invés dos servidores internos. Para um melhor desempenho nessa função específica, podem ser acrescentados ao Proxy aceleradores criptográficos;  Balanceamento de carga: o Proxy Reverso pode distribuir a carga para vários servidores da rede, sendo cada servidor responsável por sua aplicação;  Cache: esse tipo de Proxy também pode manter em cache o conteúdo estático e dinâmico das requisições realizadas, ajudando assim a diminuir a carga dos Servidores Web;  Compressão: Através da compressão do conteúdo, ele pode otimizar o acesso, tornando-o mais rápido. Dentre as desvantagens da utilização deste tipo de técnica, podemos citar um refinonas regras de bloqueio, pois uma requisição válida pode ser confundida com uma inválida eser bloqueada pelo Proxy, além da necessidade de um equipamento com alta disponibilidade,pois como ele centraliza os acessos aos servidores Web, uma falha pode indisponibilizar todoo acesso ao ambiente.
  36. 36. 362.2.3 Squid O Squid é um Servidor WebProxy que tem suporte para protocolos como HTTP,HTTPS, FTP e outros. “O Squid é um Proxy com cache de alta performance para clientesweb, resumindo, ele é um servidor Proxy utilizado para acelerar a navegação dos usuários desua rede pela web” (LUNARDI 2005, p. 3). Ele caracteriza-se por ser um softwareespecializado, que faz operação de Proxy de Web e FTP, livre e com um ótimo suporte paraservidores Linux. Dentre todos os seus recursos, o que mais atrai a atenção desta ferramenta é o cache depáginas. Devido a característica das redes de computadores de terem alta velocidade na parteinterna (máquinas clientes e servidores locais) e um acesso mais lento na parte dos servidoresaté a Internet, torna mais atrativa a função de cache do Squid, de forma que ele salva aspáginas mais visitadas localmente, não precisando acessá-las externamente a todo momento.2.2.3.1 Breve história do Squid O Squid é baseado no projeto Harvest desenvolvido no início da década de 1990. Esseprojeto era um conjunto de ferramentas integradas para coletar, extrair, organizar, localizar,fazer cache e replicar informações da Internet. O cache Harvest forneceu três melhoriasimportantes em relação ao cache CERN, que foi o primeiro servidor HTTP de Proxy e cache:maior velocidade no uso do sistema de arquivos, design de processo único e hierarquias decache. No final do ano de 1995, muitos membros da equipe do Harvest abandonaram oprojeto e os autores originais do código de cache desse projeto tornaram-no um produtocomercial. Em 1996, ao Duane Wessels começar a trabalhar no Projeto IRCache, o código docacher do projeto Harvest foi renomeado para Squid, liberado sob a licença GNU GPL. Mesmo com o fim do financiamento ao projeto IRCache em julho de 2000, voluntáriosde todo o mundo continuaram a desenvolver o Squid, o que fez esta ferramenta crescer muitoem tamanho e funcionalidades. Atualmente, ele suporta funções como controles de acessosofisticados, diversos módulos de autenticação, armazenamento avançado, entre outrasfunções.
  37. 37. 372.2.3.2 Características do Squid O Squid possui as seguintes características:  Políticas de controle de acesso flexíveis: O controle de acesso é uma das características do Squid que administradores de redes utilizam com muita frequência. Nessa ferramenta, essas políticas são escritas através de ACL’s ou Listas de Controle de Acesso no arquivo de configuração do Squid e podem ser feitas baseando-se em fatores como: conteúdo do endereço da requisição, origem desta e o destino da solicitação.  Suporte para Proxy Transparente e Controlado: Através de sua configuração, um administrador de rede, por exemplo, pode configurar o Squid para trabalhar de modo transparente, no qual todos os usuários obrigatoriamente passam por ele para acessar a Internet ou de modo controlado, que exige a configuração nos navegadores.  Logs Avançados: O Squid registra em seu log uma linha para cada objeto requisitado pelos clientes. Nessa linha, podem ser encontradas informações como: hora, duração do uso do cache, endereço IP do cliente, códigos de resultados, tamanho dos dados, método de requisição, URL, código de hierarquia, tipo de conteúdo, entre outros.  Suporte a HTTP, FTP, ICP, entre outros: Essa ferramenta suporta aplicações como páginas web, criando cache dos arquivos dinâmicos e estáticos delas, como figuras e textos, transferência de arquivos, salvando uma cópia do arquivo baixado por um usuário e retransmitindo o conteúdo quando este for solicitado novamente, consulta em outros servidores de caches sobre determinado conteúdo.
  38. 38. 382.2.3.3 Requisitos Específicos para o Squid Em comparação com algumas ferramentas oferecidas pelo sistema, é possível perceberque o Squid utiliza mais recursos específicos do que outros aplicativos. Segundo RICCI eMENDONÇA (2006, p. 2), “os dois principais subsistemas de hardware que o Squid utiliza, eque deve ter um bom desempenho, é o tempo de busca aleatória e a quantidade de memóriano sistema”.  Tempo de busca aleatória em disco: O tempo de busca de um arquivo no cache do Squid deve ser o mais baixo possível. Isto porque quanto mais rápido ele encontrar a informação no cache, mais rápido ele responderá a solicitação feita pelo usuário.  Quantidade de memória no sistema: A memória RAM é muito importante para a utilização do cache. O Squid mantém apenas uma tabela dos objetos do cache na memória RAM. Como ele é um processo no Sistema Operacional, então qualquer processo de swapping, que é uma técnica de gerência de memória que leva dados do programa desta para o disco rígido, tornará o programa mais lento. Ainda segundo RICCI e MENDONÇA (2006, p. 2), outros requisitos do sistema,como velocidade de CPU, são menos importantes, pois a velocidade do processador somenteserá notada durante a inicialização do Squid.2.2.3.4 Estrutura do Squid Como descrito anteriormente, o Servidor WebProxy Squid é utilizado em larga escalapor sua facilidade e flexibilidade de configuração, além de uma exigência mínima derequisitos para que este entre em funcionamento. As estruturas deste serviço que justificamestes itens são:
  39. 39. 392.2.3.4.1 Arquivo de Configuração Toda a configuração do Squid é feita em um único arquivo chamado squid.conf, quegeralmente fica localizado no diretório /etc/squid/squid.conf, podendo variar de acordo com aversão do Squid, do sistema operacional utilizado e da escolha do usuário que for instalar essetipo de serviço. O arquivo original que é instalado junto com o software é muito grande, pois contémcomentários e exemplos para praticamente todas as opções que o Squid disponibiliza. Nointerior do arquivo squid.conf será o local onde toda as configurações do serviço de Proxy-cache serão criadas. Dentre elas estão as políticas de acesso, a ocupação de memória etambém a localização e a validade dos arquivos do cache, sendo que estas são escritas emformato de linhas e estas são lidas de cima para baixo. Caso estas linhas entrem em algumtipo de conflito, a linha posterior sobrepõe a linha anterior.2.2.3.4.2 Restrições de acessos O controle de acesso é uma das características mais úteis para administradores deredes de computadores que lidam com grandes acessos públicos de usuários, pois isto acabasaturando o link da Internet com acessos a sites que não estão relacionados as atividadesdiárias da empresa. Através de regras e arquivos textos simples, pode-se restringir o acesso decada usuário da rede de computadores, permitindo ou negando, assim, o acesso a determinadosite ou conteúdo da Internet.2.2.3.4.3 Lista de Controle de Acesso As ACL – Access Control List – ou Lista de Controle de Acesso “são regras de acessooferecidas pelo sistema que devem ser utilizadas pelo administrador da rede como meio deliberar ou bloquear acesso a determinado conteúdo web” (RICCI; MENDONÇA 2006, p. 22). É através dela, por exemplo, que é possível manter os usuários da rede decomputadores sob controle, otimizar o desempenho da banda e facilitar a administração. Istoporque, ao restringir os usuários a um mínimo de permissões na web, estes não irão perder ofoco do trabalho facilmente com sites que não tenham nada a acrescentar a seu trabalho,tornando-os assim mais produtivos.
  40. 40. 40 As Listas de Controle de Acesso são escritas, de uma maneira geral, em forma delinhas dentro do arquivo de configuração squid.conf e lidas pelo Squid de cima para baixo.“Com isso, elas permitem especificar endereços de origem ou destino, domínios, horários,usuários, portas ou métodos de conexão ao Proxy, que servirão de base para permitir ou negaracesso baseando-se em conjunto dessas ACL’s.” (LUNARDI 2005, p. 31). Isto permite umagrande flexibilidade na configuração do Squid, pois podemos especificar, por exemplo, quaisendereços podem e quais não podem ser acessados, qual horário que determinado endereçopode ser acessado, além de permitir ou bloquear o uso de determinado tipo de protocolo edelimitar um usuário a acessar a Web somente a partir de uma máquina especifica. A sintaxe de uma linha de controle de acesso pode ser feita, basicamente, da seguintemaneira: “acl nome tipo argumentos”, no qual “acl” é o comando de criação da ACL, “nome”será o nome escolhido para a identificação da mesma, “tipo” diz a respeito a qual objeto queserá referido na linha e “argumentos”, que diz a respeito do domínio e as opções da ACL. Um exemplo prático de um ACL seria a linha “acl MinhaRede src192.168.1.0/255.255.255.0”, no qual cria a lista de acesso chamada “MinhaRede” do tipo“src” (que significa a origem da requisição) e especifica o domínio da rede e seu endereçoMAC “192.168.1.0/255.255.255.0”, de modo que o Squid responda as requisições doscomputadores que tenham faixa de IP entre 192.168.1.1 e 192.168.1.254. Os tipos de ACL mais conhecidas e comumente utilizadas são:  SCR: Classe de acesso que se baseia no endereço IP da origem da requisição, ou seja, do cliente que solicitou a requisição de acesso;  DST: Ao contrário da classe de acesso SCR, esta se baseia no endereço IP do destino da requisição, ou seja, do IP do servidor solicitado na requisição;  SRCDOMAIN: Classe de acesso que se baseia no domínio DNS do computador cliente que solicita a requisição de acesso, sendo que este domínio é obtido por resolução reversa de IP. O uso excessivo desta regra pode prejudicar a performance do WebProxy devido a constante resolução do endereço IP no Servidor DNS;  DSTDOMAIN: Semelhante ao srcdomain, com a diferença de que esta se refere ao endereço de destino;
  41. 41. 41 SRCDOM_REGEX: Avalia e classifica o domínio da origem da requisição usando expressões regulares; DSTDOM_REGEX: Avalia e classifica o domínio de destino da requisição usando expressões regulares; TIME: Classe que permite ao administrador da rede determinar o dia da semana e o horário da requisição de acesso e permitir ou negar o acesso a Internet baseando-se nessas informações; URL_REGEX: Classe de acesso na qual é possível analisar uma URL a procura de determinadas expressões e assim bloquear ou liberar o acesso do usuário. Utiliza-se nesse tipo a opção –i, que desativa o uso do case-sensitive; URLPATH_REGEX: Este tipo é semelhante à url_regex, sendo que sua procura as expressões descartam nome do servidor e o protocolo utilizado. Utiliza-se também nesse tipo a opção –i, que desativa o uso do case-sensitive; PORT: Realiza o controle pela porta de destino do servidor solicitado pelo cliente ao WebProxy. Neste tipo deve ser especificado o número da porta ou a série de portas; PROTO: Classe na qual é possível especificar o protocolo utilizado na conexão (HTTP, FTP entre outros); METHOD: Especifica o tipo de método usado na requisição, ou seja, Get ou Post. O método Get utiliza a URL para enviar dados ao servidor e o método Post envia as informações no corpo da mensagem. BROWSER: Classe que permite, através de expressões regulares, determinar o navegador web de onde foi enviada a solicitação de acesso web;
  42. 42. 42 IDENT: Permite classificar o acesso de acordo com o usuário logado no computador do cliente. Esta classe exige um servidor Ident na máquina cliente, o que atualmente é pouco comum. Com isso, utiliza-se mais a identificação de um usuário através da autenticação; IDENT_REGEX: Similar a classe Ident, mas utilizando-se de expressões regulares; SRC_AS: Classe de acesso responsável por liberar ou bloquear o acesso baseado no sistema autônomo do computador de origem da solicitação; DST_AS: Classe de acesso responsável por liberar ou bloquear o acesso baseado no sistema autônomo do computador de destino da solicitação; PROXY_AUTH: Classe de acesso que permite utilizar a autenticação de usuários através de suas credenciais, sendo geralmente nome de usuário (username) e a respectiva senha. Esta regra necessita de um recurso externo de autenticação, responsável por validar as informações, ela não pode ser usada em um Proxy Transparente; PROXY_AUTH_REGEX: Classe de acesso na qual é possível classificar os usuários autenticados através da combinação de expressões regulares; SNMP_COMMUNITY: Classifica os acessos de acordo com a comunidade SNMP. Faz-se necessário que o WebProxy Squid tenha sido instalado e compilado com suporte a este tipo de protocolo; MAXCONN: Especifica um limite máximo de conexões originadas de um determinado cliente através de seu endereço IP. Utilizado principalmente para fazer controle de banda;
  43. 43. 43  REQ_MIME_TYPE: Classe de acesso que classifica o tipo de conteúdo solicitado através de seu cabeçalho content-type. Analisando as principais possibilidades de criação de ACL’s citadas anteriormente, “ficaclaro que o WebProxy Squid oferece uma diversidade de opções para classificar o acesso deseus usuários.” (RICCI; MENDONÇA 2006, p. 32). Após a criação e configuração de todasas listas de acesso que serão utilizadas no WebProxy Squid, faz-se necessário definir a açãotomada pelo Servidor Proxy ao encontrar uma solicitação que se adeque à determinada classe,ou seja, deve-se definir se o Squid irá permitir ou bloquear o acesso baseado em determinadaregra de acesso. Dentre as opções mais utilizadas, podemos citar:  HTTP_ACCESS: Após definidas as listas de acesso, pode-se definir as restrições propriamente ditas, permitindo ou proibindo o acesso ao serviço http baseado nas ACL’s criadas anteriormente. Sua estrutura básica é constituída de 3 partes: “http_access acl allow/deny”, no qual “http_access” é o comando de permissão, “acl” é o nome da lista de controle de acesso criada anteriormente e “allow/deny” que é o comando que permite (allow) ou nega (deny) o acesso da acl citada. Após a configuração de todo o arquivo de configuração do Squid, é aconselhável definir uma última regra que negue todas as solicitações de acesso que não forem previamente liberadas, através da regra “http_access deny all”. De acordo com RICCI, MENDONCA (2006, p. 32), esta diretiva define para o WebProxy Squid que todas as solicitações não liberadas anteriormente devem ser explicitamente bloqueadas;  ICP_ACCESS: Este recurso é utilizado quando se trabalha com múltiplos webproxies em um ambiente de árvores-cache hierárquica. Esta função força que outros servidores webproxies utilizem este servidor Proxy como um filho ao invés de um pai, ou seja, ela faz com que este WebProxy Squid verifique, através de mensagens ICP, quais caches de servidores ele poderá se comunicar;  MISS_ACCESS: Limita os domínios que podem fazer requisições ao cache do servidor utilizando os recursos de regras de acesso;
  44. 44. 44  IDENT_LOOKUP_ACCESS: Uma lista de elementos em uma ACL, os quais, se encontrados, irão gerar uma requisição IDENT;  HTTP_REPLY_ACCESS: Permite ou nega que clientes recebam a resposta das suas solicitações de acesso. É utilizado em conjunto à regra de acesso criada em req_mime_type;  NO_CACHE: Define respostas que não devem ser armazenadas em cache.2.2.3.4.4 Parâmetros administrativos Além das regras de controle de acesso criadas com a finalidade de permitir oubloquear determinadas requisições e acesso a Internet, o Squid permite a criação de regras eparâmetros destinados a uma melhor administração do Servidor de WebProxy, como porexemplo: controle de cache, local de armazenamento do cache, mensagens de erros, entreoutros. Dentre as mais comuns, podemos citar:  HTTP_PORT: Diretiva responsável por especificar a porta na qual o servidor de WebProxy Squid deve oferecer o serviço. O valor padrão é 3128, mas caso precise alterar, basta alterar este valor e trocar por uma porta que não esteja sendo utilizada.  CACHE_MEM: Regra responsável por especificar a quantidade de memória RAM a ser disponibilizada para o WebProxy Squid, sendo que o valor a ser utilizado deverá ter como unidade de medida Megabytes.  CACHE_DIR: Diretório onde serão armazenados os objetos que comporão o cache do Squid. A regra possui uma estrutura com basicamente: “cache_dir tipo diretório MB L1 L2”, no qual “cache_dir” é o comando de criação do cache, “tipo” será o tipo de sistema de armazenamento do cache, “diretório” no qual será definido o caminho absoluto para o diretório que armazenará o cache, “MB” que definirá o tamanho do espaço utilizado em disco para os objetos do cache e “L1” e “L2” que definem,
  45. 45. 45 respectivamente, os diretórios de primeiro nível e segundo nível que devem ser criados. CACHE_ACCESS_LOG: Determina a localização exata do arquivo onde o Squid deve armazenar os logs detalhados de acessos a conteúdos web. Através dele é possível responder perguntas como: quem acessou o que em determinado dia? CACHE_LOG: Especifica o arquivo responsável pelo log de informações relacionadas ao cache do WebProxy. Este arquivo é muito útil na fase de implementação do sistema como meio de depuração de eventuais erros que possam impedir a inicialização correta do serviço. CACHE_STORE_LOG: Faz log detalhado de todo objeto web armazenado. Este detalha quais objetos web saírem e quais entraram no cache e quanto tempo eles permaneceram armazenados. PID_FILENAME: É responsável por obter o número do processo Squid em execução no sistema. VISIBLE_HOSTNAME: Define o nome do servidor e seu domínio. Este nome aparecerá nas telas de erro, ou seja, quando o usuário solicitar uma página web e a solicitação dele for negado pelo Squid. CACHE_MGR: E-mail do administrador ou do webmaster que aparecerá nas mensagens de erro. Isto é importante para que os usuários tenham informações do responsável pelo servidor caso de problemas com um acesso bloqueado de forma errada. LOGFILE_ROTATE: Especifica o número de rotações executadas quando se digita o comando “squid -k rotate”. O padrão são 10 arquivos de log, sendo armazenado o atual e mais 9 logs antigos. Quando o comando é executado novamente, o arquivo de log mais antigo é apagado, o atual fica em seu lugar e um novo arquivo desse tipo é gerado.
  46. 46. 462.2.4 Microsoft ISA Server O Microsoft ISA Server é uma solução de segurança de borda que inclui firewall demúltiplas camadas, Web Proxy e VPN, garantindo segurança contra as ameaças oriundas daInternet e facilidade de gerenciamento através de sua integração com o Windows Server. Atualmente, o ISA Server 2006 é a última versão lançada pela Microsoft, mantendosempre o esquema de edições padrão (standard) e Enterprise. A partir de fevereiro de 2007, a Microsoft liberou uma edição especial do ISA Serverchamada Intelligent Application Gateway 2007. IAG 2007 é um serviço de VPN através deSSL, que também incorpora políticas de segurança como zonas restritas, verificações desegurança nas conexões acessando a rede, e definição de perfis de uso dos programaspublicados. IAG 2007 é o produto da compra realizada pela Microsoft da empresa WhaleCommunications em Junho de 2006.2.2.5 Escolha da ferramenta No contexto atual da área da informática, existem centenas de softwares que fornecema função de Proxy. Dentre elas, a escolhida para o desenvolvimento do projeto é o Servidor deWebProxy Squid. Isto porque essa ferramenta, além de ser OpenSource (Código Aberto ouSoftware Livre) e gratuita, ela é simples de manusear, é a mais conhecida e utilizada na áreade T.I., possui um excelente suporte para operação em servidores Linux e oferece uma grandevariedade de recursos, o que permite uma maior modelagem e flexibilidade nas suasconfigurações.2.2.6 Firewall Iptables O iptables é uma ferramenta de software livre, baseado em GNU/Linux, que permite acriação de regras de firewall e NATs. O Iptables é uma ferramenta que vem integrada aoKernel Linux, além de frequentemente ser utilizado como referência ao conjunto completo defuncionalidades do netfilter, é parte de todas as distribuições modernas do Linux e trabalhaem nível de pacotes.
  47. 47. 47 As principais características dessa ferramenta são:  Especificação de portas/endereço de origem/destino;  Manipula serviços de proxy na rede;  Tratamento de tráfego dividido em regras ou chains;  Muito rápido, estável e seguro;  Suporte a módulos externos para expansão das funcionalidades padrões oferecidas pelo código de firewall;  Limitação de passagem de pacotes/conferência de regra; Neste trabalho será feito a integração do Serviço de Proxy Squid com o FirewallIptables, pois é através desta segunda ferramenta que será realizado o redirecionamento dasrequisições feitas pelos usuário na porta 80 para a porta que o Squid irá trabalhar.
  48. 48. 482.3 Sistema Operacional De acordo com Tanenbaum, Woodhull (2000) o sistema operacional controla todos osrecursos do computador e fornece a base sobre a qual os programas e aplicativos podem serescritos. Segundo Silberschatz, (2001) Sistemas operacionais foram desenvolvidos nosúltimos 40 anos para alcançar dois objetivos principais, escalonar as atividadescomputacionais para garantir um bom desempenho e fornecer um ambiente conveniente parao desenvolvimento e a execução de programas. Pode ser entendido como um sistema operacional (SO) uma coleção de programas queinicializam o hardware do computador. Essa coleção de programas fornece rotinas básicaspara controle de dispositivos, também gerência, realiza escalonamento e interação de tarefas emantém a integridade de sistema. No início da computação os primeiros sistemas operacionais eram únicos, pois cadamainframe vendido necessitava de um sistema operacional específico. Esse problema eraresultado de arquiteturas diferentes e da linguagem que cada máquina utilizava. Após essafase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas(jobs), pois os sistemas eram monousuários e tinham cartões perfurados como entrada, assimo computador não necessitava da operação humana.2.3.1 Arquitetura Procurando melhorar o desempenho geral dos sistemas de computação, osdesenvolvedores introduziram o conceito de multiprogramação onde vários jobs são mantidosna memória e a CPU alterna entre eles para aumentar a sua utilização e diminuir o tempo deexecução dos jobs, também permitindo o compartilhamento de tempo o que possibilitou quemuitos usuários utilizem um sistema de computação ao mesmo tempo. As principaisarquiteturas existentes são:  Sistema Batch: também conhecido por sistemas em lote, foram os primeiros sistemas multiprogramáveis a serem implementados. Eles se caracterizam por terem seus programas, quando submetidos, armazenados em disco ou fita, onde esperam para ser executados sequencialmente;
  49. 49. 49 Sistema de Tempo Compartilhado: também denominado multitasking, é uma extensão lógica da multiprogramação. Consiste basicamente em alternar entre diferentes processos de forma que o usuário tenha a percepção que todos os processos estão sendo executados simultaneamente, permitindo a interação com múltiplos processos em execução. Esta percepção é dada pela velocidade em que as trocas de tempos de execução em CPU ocorrem, sendo tão frequentes que se tornam não perceptíveis do ponto de vista do usuário; Sistemas Mainframe: Os sistemas operacionais desenvolvidos para mainframe são criados especialmente para a finalidade de cada modelo, por exemplo: para processar textos, bancos de dados, efetuar cálculos ou gerenciar dispositivos. Podemos citar sistemas baseados em sistemas próprios: z/OS, z/VSE, z/VM, z/TPF (da IBM), OS2200, MCP (da Unisys), GCOS (da Bull), e outros de empresas como Fujitsu, Hitachi e Amdhal; Sistema Desktop: Um sistema que oferece soluções com interface gráfica com o usuário (GUI) para operar um computador. O nome é derivado da metáfora de desktop, ou "tampo de mesa", hoje usado por essas interfaces. Um ambiente de desktop fornece ícones, pastas, barra de ferramentas, papéis de parede e habilidades como arrastar e soltar; Sistema Distribuído: Um sistema distribuído é aquele que é definido como um conjunto de unidades de processamento independentes, que através da troca de comunicação e gerenciamento de sincronização pode processar uma aplicação em diferentes localidades em sistemas com características próprias diferentes, dando a impressão ao usuário que toda a aplicação é gerenciada por um sistema único; Sistemas Handheld: Os sistemas handheld são adaptados para dispositivos móveis, como PDAs – Personal Digital Assistants e telefones celulares. Sua memória é limitada, processador mais lento e contém display de pequenas dimensões. O S.O e as aplicações são projetados para minimizar o uso do processador (redução do consumo da bateria). Podem utilizar tecnologias wireless, como Bluetooth, para acesso remoto a

×