guidini - daroncho
Transcrição
guidini - daroncho
FACULDADE DE TECNOLOGIA DA ZONA LESTE JULIANO ALVES GUIDINI O USO DA VIRTUALIZAÇÃO DE SERVIDORES COMO FORMA DE REDUÇÃO DOS CUSTOS DE TI São Paulo 2009 JULIANO ALVES GUIDINI O USO DA VIRTUALIZAÇÃO DE SERVIDORES COMO FORMA DE REDUÇÃO DOS CUSTOS DE TI Monografia apresentada no curso de Tecnologia em Informática para gestão de negócios da Faculdade de Tecnologia da Zona Leste para obtenção do título de Tecnólogo em Informática para gestão de negócios. Orientador: Prof. Msc. Celio Daroncho São Paulo 2009 Autorizo a reprodução parcial ou total desta obra, para fins acadêmicos, desde que citada a fonte. DADOS INTERNACIONAIS DE CATALOGAÇÃO-NA-PUBLICAÇÃO (Biblioteca Virginie Buff D’Ápice da Faculdade de Medicina Veterinária e Zootecnia da Universidade de São Paulo) Guidini, Juliano Alves O uso da virtualização de servidores como forma de redução dos custos de TI / Juliano Alves Guidini. – 2009. 87 f. : il. Monografia apresentada no curso de Tecnologia em Informática para Gestão de Negócios na Faculdade de Tecnologia da Zona Leste. (FATECZL), São Paulo, 2009. Orientador: Prof. Msc. Celio Daroncho. 1. Virtualização. 2. Sistema operacional. 3. VPN. I. Título. Nome: GUIDINI, Juliano Alves Título: O USO DA VIRTUALIZAÇÃO DE SERVIDORES COMO FORMA DE REDUÇÃO DOS CUSTOS DE TI Monografia apresentada no curso de Tecnologia em Informática para gestão de negócios na FATEC-ZL como requerimento parcial para obter o título de Tecnólogo em Informática para gestão de negócios. Aprovado em: ____/____/____ Banca Examinadora Prof __________________________ Instituição______________________________ Julgamento: ___________________ Assinatura ______________________________ Prof __________________________ Instituição______________________________ Julgamento: ___________________ Assinatura ______________________________ Prof __________________________ Instituição______________________________ Julgamento: ___________________ Assinatura ______________________________ Dedico a Deus, por sempre ter me carregado quando não pude andar por mim mesmo, aos meus pais por todo o apoio, amor e carinho, à minha namorada Graciella pela compreensão, amor e ajuda em nossa caminhada, aos inúmeros amigos que me ajudaram nesse trabalho, cada um à sua maneira, mas que foram fundamentais para que a obra progredisse no tempo correto. Agradeço ao Centro Tecnológico da Zona Leste, atualmente extinto, mas que proporcionou grandes oportunidades na minha formação pessoal e profissional, à Faculdade de Tecnologia da Zona Leste pelo apoio fundamental nos meus trabalhos, ao Professor Doutor Geraldo da Silva, pessoa que me apresentou aos caminhos do CTZL/FATEC-ZL, aos amigos que aqui fiz em toda a administração e corpos docentes e discentes, os quais não serão listados, pois temo esquecer algum nome, mas todos estão guardados no meu coração. Por fim ao meu chefe, orientador e amigo Célio Daroncho. As dificuldades fizeram-se para serem vencidas. Barão de Mauá - Irineu Evangelista de Souza GUIDINI, Juliano Alves. O uso da virtualização de servidores como forma de redução dos custos de TI. 2009. 87 f. Trabalho de conclusão de curso (Tecnólogo) – Faculdade de Tecnologia da Zona Leste, São Paulo, 2009. RESUMO No cenário tecnológico atual tecnologias que foram esquecidas no passado ganham novas formas e funcionalidade voltando ao papel principal no campo da tecnologia da informação e comunicação, especificamente a virtualização de hardware, a qual vem sendo utilizada em larga escala pelos profissionais que mantém serviços de informação baseados em dispositivos digitais. Notadamente essa tecnologia recebeu melhorias e tornou-se atraente em relação ao investimento necessário para manter e utilizá-la, além do que, com ela é possível reduzir custos com energia, recursos humanos, equipamentos e espaço físico sendo ainda benéfica para o meio ambiente no sentido de permitir melhor gestão dos recursos naturais. Com auxílio da virtualização foi construída infra-estrutura de acesso remoto com uso de rede virtual privada obtendo-se uma melhor gerência do parque tecnológico por parte da equipe responsável por administrar a infra-estrutura de tecnologia de informação e comunicação. Palavras-chave: Virtualização. Sistema Operacional. VPN. GUIDINI, Juliano Alves. Use of server virtualization as a way of reducing IT costs. 2009. 87 f. Trabalho de conclusão de curso (Tecnólogo) – Faculdade de Tecnologia da Zona Leste, São Paulo, 2009. ABSTRACT In the tech scene today, technologies that have been forgotten in the past take on new forms and functionality, back to the lead role in the field of information technology and communication, specifically the hardware virtualization, which has been used widely by professionals that keeps intelligence-based on digital devices. Notably, this technology was improved and became attractive for the investment necessary to maintain and use it, beyond that, it is possible to reduce energy costs, human resources, equipment and physical space, is also beneficial to the environment in to enable better management of natural resources. With the help of virtualization has built infrastructure for remote access using virtual private network, resulting in better management of the technology park by the team responsible for managing the infrastructure of information technology and communication. Keywords: Virtualization. Operating System. VPN. LISTA DE FIGURAS Figura 1– Réplica da máquina analítica criada por Babbage. .................................................. 20 Figura 2 – Painel de controle do Eniac. .................................................................................... 21 Figura 3 – Proteção hierárquica de camadas do 386. ............................................................... 27 Figura 4 – Visão do túnel criado por uma VPN. ...................................................................... 41 Figura 5 – Visão da funcionalidade de uma VPN interligando duas redes locais. ................... 42 Figura 6 – Acesso remoto com VPN. ....................................................................................... 43 Figura 7 – VPN site-to-site. ...................................................................................................... 43 Figura 8 – Visão do papel do VMM. ........................................................................................ 48 Figura 9 – Tipos de VMs. ......................................................................................................... 49 Figura 10 – Servidor Itautec MX-201. ..................................................................................... 61 LISTA DE TABELAS Tabela 1 – Valores dos equipamentos compatíveis com as funções de servidor VPN e Radius .................................................................................................................................................. 64 Tabela 2 – Comparação dos recursos dos servidores Itautec MX-201 e Dell PowerEdge T105 .................................................................................................................................................. 65 Tabela 3 – Custo dos servidores Dell PowerEdge T105 para substituição do Itautec MX-201 .................................................................................................................................................. 66 Tabela 4 – Comparação do consumo energético dos servidores MX-201 e T105 ................... 67 LISTA DE SIGLAS AD Active Directory – Diretório Ativo AMD Advanced Micro Devices – Fabricante de Processadores AMD-V AMD Virtualization – Virtualização da AMD ARPA Advanced Research Project Agency - Agência de Pesquisa em Projetos Avançados BIND Berkley Internet Name Domain – Nome de Domínio da Internet de Berkley C.I.S.C Computador com conjunto de instruções complexas no seu assembly CA Certificate authority – Autoridade de Certificação CD-ROM Compact Disc - Read Only Memory – Disco Compacto - Memória Somente de Leitura CHAP Challenge-Handshake Autentication Protocol – Protocolo de Autenticação por Desafios de Identidade CI Circuito Integrado CPU Central Processing Unit – Unidade Central de Processamento DC Domain Controller – Controlador de Domínio DES Data Encryption Standard – Padrão de Criptografia de Dados DHCP Dynamic Host Configuration Protocol – Protocolo de Configuração Dinâmica de Cliente DN Distinguished Name – Nome Distinto DNS Domain Name System – Sistema de Nome de Domínio DoD Department of Defense - Departamento de Defesa DTI Departamento de Tecnologia da Informação da FATEC-ZL EAP Extensible Authentication Protocol – Protocolo de Autenticação Extensível EUA Estados Unidos da América FATEC-ZL Faculdade de Tecnologia da Zona Leste FQDN Fully Qualified Domain Name – Domínio Completamente Expressado hypervisor O mesmo que VMM Hz Hertz IA-32 Intel Architecture-32 – Arquitetura Intel-32 IBM International Business Machines ICP Infra-estrutura de Chaves Públicas IEEE Institute of Eletrical and Eletronics Engineers – Instituto de Engenheiros Elétricos e Eletrônicos IP Internet Protocol –Protocolo de Internet IPSec IP Security Protocol – Protocolo de IP Seguro ISA Instruction Set Architecture – Arquitetura de Conjunto de Instruções L2F Layer 2 Forwarding – A Frente da Camada 2 “tradução livre” L2TP Layer Two Tunneling Protocol – Protocolo de Túnel Camada Dois LSI Large Scale Integration – Integração de Larga Escala LWP Lightweight process – Processos leves MAC Media Access Control – Controle de Acesso de Mídia MMU Memory Management Unit – Unidade de Gerenciamento de Memória MPPE Microsoft Point-to-Point Encryption – Criptografia Ponto a Ponto da Microsoft MS-CHAP Microsoft Challenge-Handshake Authentication Protocol – Protocolo de Autenticação por Desafios de Identidade da Microsoft MS-CHAP v2 Microsoft Challenge-Handshake Authentication Protocol version 2 – Protocolo de Autenticação por Desafios de Identidade da Microsoft versão 2 MS-DOS Microsoft Disk Operating System – Sistema Operacional de Disco da Microsoft NAS Network Access Server – Servidor de Acesso a Rede NCP Network Control Protocol – Protocolo de Controle de Rede PAP Password Authentication Protocol – Protocolo de Autenticação de Senha PPP Point-to-Point Protocol – Protocolo Ponto a Ponto PPTP Point-to-Point Tunneling Protocol – Protocolo de Túnel Ponto a Ponto R.I.S.C Computadores com conjunto de instruções reduzidas no seu assembly R2 Release 2 – Programas instalados no Microsoft Windows Server 2003 que aumentam a sua funcionalidade Radius Remote Authentication Dial-In User Service – Serviço Remoto de Autenticação de Usuário Discada RAID Redundat Array of Inexpensive Discs – Matriz de Discos Baratos Redundates RAM Random Access Memory – Memória de Acesso Aleatório RRAS Routing and Remote Access Server - Servidor de Roteamento e Acesso Remoto RSA Rivest-Shamir-Adleman – Ron Rivest, Adi Shamir e Leonard Adleman, criadores do método. SCSI Small Computer System Interface –Sistema de Interface para Computadores Portáteis SimOS Um simulador completo de sistema desenvolvido pela Universidade de Stanford. SO Sistema Operacional SPAP Shiva Password Authentication Protocol – Protocolo de Autenticação de Senha Shiva SQL Structured Query Language – Linguagem de Consulta Estruturada TCP Transmission Control Protocol - Protocolo de Controle de Transmissão TIC Tecnologia da Informação e Comunicação TLS Transport Layer Security – Segurança de Camada de Transprote VM Virtual Machine – Máquina Virtual VMI Virtual Machine Interface – Interface de Máquina Virtual VMM Virtual Machine Monitor – Monitor de Máquina Virtual VMWare VMWare – Empresa que desenvolve VMM comercialmente VPN Virtual private network – Rede Privada Virtual VT-x Intel Virtualization Technology for the IA-32 architecture – Tecnologia de Virtualização da Intel para arquitetura IA-32 SUMÁRIO 1 INTRODUÇÃO ................................................................................................................... 17 2 HARDWARE ....................................................................................................................... 19 2.1 Origem da informática e do hardware ....................................................................... 19 2.2 Plataforma x86 .............................................................................................................. 23 2.3 Sistemas Operacionais .................................................................................................. 27 2.3.1 Memória .................................................................................................................. 30 2.3.2 Arquivos .................................................................................................................. 31 2.4 Arquitetura cliente-servidor ........................................................................................ 32 2.5 Rede e Serviços.............................................................................................................. 33 2.5.1 Infra-estrutura de rede ............................................................................................. 34 2.5.2 Protocolo TCP/IP..................................................................................................... 34 2.5.3 DNS e DHCP ........................................................................................................... 36 2.5.4 Criptografia e Certificados Digitais ......................................................................... 37 2.5.5 Serviço de diretório ................................................................................................. 39 2.5.6 VPN ......................................................................................................................... 41 2.5.7 Radius e Autenticação ............................................................................................. 45 3 VIRTUALIZAÇÃO ............................................................................................................. 47 3.1 Conceituando virtualização ......................................................................................... 47 3.2 Emuladores.................................................................................................................... 50 3.3 Formas de virtualização ............................................................................................... 51 3.3.1 Virtualização total ................................................................................................... 51 3.3.2 Paravirtualização ..................................................................................................... 52 3.3.3 Tradução binária ...................................................................................................... 53 3.3.4 Assistência via hardware ......................................................................................... 54 4 APLICAÇÕES ..................................................................................................................... 55 4.1 Ensino ............................................................................................................................ 55 4.2 Consolidação de servidores .......................................................................................... 56 4.3 Migração de aplicações legadas e plano de contingência .......................................... 57 5 ESTUDO DE CASO ............................................................................................................ 59 5.1 Local ............................................................................................................................... 59 5.2 Métodos e Procedimentos ............................................................................................ 60 5.3 Análise............................................................................................................................ 64 6 CONSIDERAÇÕES FINAIS .............................................................................................. 68 REFERÊNCIAS ..................................................................................................................... 70 ANEXO A – ORÇAMENTOS E ESPECIFICAÇÕES TÉCNICAS ................................. 77 17 1 INTRODUÇÃO Atualmente as organizações buscam meios de tornarem-se mais competitivas no mercado, uma das formas de se alcançar tal objetivo é a redução de custos. A informática vem em auxílio possibilitando melhor gestão com o controle dos processos e automação das tarefas. Atualmente a informática estende-se por todos os braços das organizações, representando com isso uma demanda constante de recursos financeiros, os quais muitas vezes são vistos como custos, porém é possível converter esses recursos em investimentos em infra-estrutura para as mesmas. Resgatam-se os fundamentos da computação, suas tecnologias e princípios de comunicação das redes de computadores e da internet. As empresas desenvolvedoras de sistemas de informática reintroduziram no mercado técnicas e conceitos já consagrados que ajudam na economia de recursos financeiros, energéticos e humanos, proporcionando uma melhoria dos processos internos de um sistema eletrônico de informação refletindo em menores investimentos em informática e maiores realizações nesse campo. Empresas como a VMWare e a Microsoft resgataram tecnologias de virtualização que possibilitam que os custos com informática sejam transformados em investimentos pela utilização de produtos robustos, escaláveis e de fácil gestão com custos atraentes ou mesmo sem custo algum. Tem-se o objetivo de demonstrar que com a utilização da virtualização é possível economizar recursos financeiros com equipamentos, energia elétrica e recursos humanos utilizando-se menor quantidade de equipamentos consumidores de energia elétrica. A virtualização poder ser aplicada em diversos recursos da informática tais como na virtualização de computadores inteiros, o que permite que funcionem como um computador real, virtualização de dispositivos de rede, permite que computadores virtuais utilizem a rede reduzindo a necessidade de dispositivos de rede reais. Aplicando-se essas técnicas pode-se 18 reduzir o consumo de energia elétrica e recursos financeiros apenas pela eliminação da existência de computadores e dispositivos de rede. A redução da quantidade de equipamentos reais em uma organização pode ajudar a reduzir e melhor aproveitar os recursos humanos, pois a gestão dos equipamentos virtuais pode ser efetivada de maneira centralizada, muitas vezes não mais se faz necessário deslocar equipe técnica até um equipamento para configurá-lo ou efetuar manobra de cabos, até mesmo ligar o equipamento pode ser feito fora do local físico. O menor número de equipamentos trás uma redução na necessidade de espaço físico e redução das necessidades de refrigeração dos equipamentos. Assim sendo, promover uma melhor utilização dos recursos computacionais no Departamento de Tecnologia de Informação (DTI) da Faculdade de Tecnologia da Zona Leste (FATEC-ZL) com a utilização de virtualização de computadores e implantação de serviço de acesso remoto permitindo a gestão dos recursos de qualquer computador conectado com a internet. Desta forma para desenvolver este trabalho foi utilizada pesquisa em referências bibliográficas, páginas da internet que abordem o tema, artigos técnicos e científicos com a finalidade de elucidar as teorias e tecnologias envolvidas no processo, além disso, será efetuado um estudo de caso no DTI da FATEC-ZL utilizando-se dos recursos computacionais disponíveis bem como sua infra-estrutura. Além disso, uma das maiores preocupações notadas nas áreas de tecnologia é a preservação ambiental onde se buscam produtos que não contribuam para a degradação do planeta Terra. A virtualização vem de encontro com a preservação ambiental na forma de consumir menores quantidades de energia e proporcionar menor emissão térmica. A hipótese que se deseja verificar é se há uma redução de valores monetários com uso de virtualização, seja com economia de espaços físicos, compra de equipamentos ou mesmo na gerência dos recursos 19 2 HARDWARE Segundo Bittencourt (2006), os sistemas computacionais são organizados em módulos que interagem entre si, desta forma cada um dos dispositivos possui finalidades específicas definidas por diversos padrões, padrões estes que irão determinar suas características elétricas e eletrônicas, permitindo portabilidade, expansibilidade e conectividade a outros equipamentos e dispositivos. “O hardware de um computador consiste em seus dispositivos físicos – processador(es), memória principal e dispositivos de entrada/saída” (DEITEL; DEITEL; CHOFFNES, 2005, p. 32). 2.1 Origem da informática e do hardware O primeiro computador digital verdadeiro foi projetado pelo matemático inglês Charles Babbage (1792-1871), era totalmente mecânico, como pode ser visto na figura 1, e devido a tecnologia da época não foi possível produzir as peças necessárias para que funcionasse adequadamente, chamava-se motor analítico e não tinha um sistema operacional desenvolvido para ele, porém Babbage sabia ser necessário um e contratou então uma jovem mulher chamada Ada Lovelace como programadora do sistema. (TANENBAUM; WOODHULL, 2000). 20 Figura 1– Réplica da máquina analítica criada por Babbage. Anos após Babbage (1945-1955), com seus esforços mal sucedidos, foi criada a primeira geração de computadores compostos por válvulas e painéis de conectores, como pode ser visto na figura 2, eram máquinas de calcular enormes, ocupando salas inteiras e utilizando-se de dezenas de milhares de válvulas e muito mais lentos que as mais simples calculadoras de hoje. Na época o mesmo grupo de pessoas que projetava também construía, programava e operava a máquina, programação que era feita em linguagem de máquina pura utilizando-se de painéis de conectores para controlar as funções do computador (DEITEL; DEITEL; CHOFFNES, 2005). 21 Figura 2 – Painel de controle do Eniac. Segundo Deitel, Deitel e Choffnes (2005) a linguagem de máquina é definida em projeto de hardware e consiste geralmente em cadeias de números reduzidos a 0 (zero) e 1 (um) instruindo o computador a executar operações. A operação dependia de o operador inserir as conexões no computador e esperar por horas o processamento e que nenhuma das muitas válvulas queimasse durante a execução. Não existiam linguagens de programação e ninguém nunca tinha ouvido falar de sistema operacional. Em geral eram executadas tarefas simples de cálculo com os computadores dessa geração. A segunda geração de computadores (1955-1965), por sua vez, era composta por transistores e sistemas de lote. Com a introdução do transistor os computadores tornaram-se confiáveis para serem fabricados e vendidos com expectativa de que continuariam funcionando para executar algum trabalho útil, pois já existiam programadores e linguagens de programação tais como assembly 1e Fortran (TANENBAUM; WOODHULL, 2000). A entrada de dados era feita por meio de cartões perfurados e fitas magnéticas e para a saída das informações já eram utilizadas impressoras. Dizia-se sistema de lote, pois se utilizavam de um computador de baixa capacidade de processamento para gravar as fitas com 1 Assembly é uma linguagem de montagem, ou seja, é uma notação legível de um código de máquina, especifico, possibilitando o entendimento por parte dos seres humanos. A linguagem de máquina torna-se legível pela substituição dos valores por símbolos chamados mnemônicos (SUN MICROSYSTEMS, 2005). 22 as instruções do programa e imprimir os relatórios e um computador de maior capacidade de processamento para executar o programa. (TANENBAUM; WOODHULL, 2000). A terceira geração de computadores tem início por volta de 1964, estendendo-se até 1980, e foi a era dos Circuitos Integrados (CI) e da Multiprogramação, nessa era computacional existiam os computadores científicos de grande escala, baseados em palavras, e os computadores comerciais, baseados em caracteres, utilizados para classificar e para imprimir fitas para bancos e companhias de seguros. A International Business Machines (IBM) tentou resolver esses problemas introduzindo o System/360, uma série de máquinas compatíveis em software, mas que variavam em capacidade de processamento (DEITEL; DEITEL; CHOFFNES, 2005). O System/360 foi projetado para manipular cálculos científicos e comerciais e foi a primeira linha importante de computadores a utilizar circuitos integrados - CIs, de pequena escala, trazendo com isso uma vantagem competitiva importante relativa a preço e desempenho sobre as máquinas de segunda geração, que se utilizavam de válvulas. A maior força do System/360 era ao mesmo tempo sua fraqueza, pois foi concebido para que todo software funcionasse em qualquer máquina da série, incluindo o sistema operacional, tais requisitos tornavam muito complexa a tarefa de escrever programas para esse sistema ocasionando, assim, milhares de erros nos programas e sistema operacional. (TANENBAUM; WOODHULL, 2000). Os sistemas dispunham de compartilhamento de tempo, uma variante da multiprogramação, em que os usuários ou trabalhos que estavam sendo processados dividiam o tempo de processamento entre si e no caso de um trabalho ou usuário não estar consumindo processador outro trabalho poderia ocupar esse espaço de processamento, assim o computador pode oferecer serviço rápido e interativo (TANENBAUM; WOODHULL, 2000). A quarta geração de computadores, iniciada em 1980, vai até os dias de hoje, e é chamada de geração de computadores pessoais. Esta geração foi viabilizada pela tecnologia Large Scale Integration (LSI – integração de larga escala), que são pastilhas contendo milhares de transistores por centímetro quadrado de silício, também conhecidos como microprocessador. Não dispõem de arquitetura diferente dos minicomputadores, mas sim de 23 preços menores. “O microprocessador permitiu que uma pessoa tivesse seu próprio computador pessoal” (TANENBAUM; WOODHULL, 2000, p. 24). Os computadores pessoais mais poderosos são chamados de estações de trabalho, mas são apenas computadores pessoais de maior porte. Os sistemas operacionais que dominaram a cena foram o MS-DOS da Microsoft e o Unix, bem como a Central Processing Unit (CPU Unidade Central de Processamento) Intel 8088 e seus sucessores, como os 80286, 80386, 80486, referidos apenas como 286, 386 e 486 e mais tarde a família Pentium e atualmente a família Core (DEITEL; DEITEL; CHOFFNES, 2005). 2.2 Plataforma x86 A plataforma x86 ou Intel Architecture-32 (IA-32 – Arquitetura Intel-32) foi precedida pelos processadores de 16 bits como o 8086 e 8088, que datam de 1978, estes introduziram a segmentação de memória na IA-32, para os programas a memória aparece como um grupo de endereços independentes, chamados segmentos, e para acessar o seu conteúdo é necessário um endereço lógico que consiste em um seletor de segmentos e uma faixa de endereços (INTEL CORPORATION, 2009). O Intel 286 introduziu na IA-32 a operação em modo protegido, estado nativo do processador em que, dentre outras característica, tem a capacidade de executar, em modo de endereçamento real, programas do 8086 em ambiente multitarefa, o endereçamento real é o modelo de memória para o processador 8086, suportado, no Intel 286, para prover compatibilidade estes diferentes processadores, que usa um implementação específica do modelo de segmentação de memória que consiste em uma ordenação de segmentos de até 64Kbytes. Já em 1985 surge o Intel 386, que foi o primeiro processador de 32 bits da IA-32 (INTEL CORPORATION, 2009). 24 O que diferencia uma CPU de 16 bits de uma de 32 bits é a largura máxima de palavra de dados, a existência de vias ou barramentos internos ou externos de 32 bits implica que as operações serão executadas de uma só vez dentro do microprocessador como exemplo tem-se o 8086, uma máquina de 16 bits de dados e o 8088 uma versão de 8 bits do 8086 que internamente trabalha em 16 bits mas se liga aos periféricos e memória em 8 bits (FERRI, 1990). Os processadores Intel da família 80x86, como os 8086, 286, 386 e 486, são considerados máquinas Complex Instruction Set Computer (C.I.S.C. – Computador com Conjunto de Instruções Complexas), mas também existem as máquinas chamadas de Reduced Instruction Set Computer (R.I.S.C. – Computador com Conjunto de Instruções Reduzidas) (FERRI, 1990). Os processadores C.I.S.C. provêm da década de 1980 com a idéia de incorporar seções de código de programação freqüentemente utilizadas, esses processadores surgiram na época em que a maioria dos sistemas era escrita em linguagem de montagem, assembly, com conjunto de instruções únicas que executavam diversas operações proporcionando aos programadores construir programas com menor quantidade de linhas. Os processadores que utilizam dessa tecnologia tentar transferir a complexidade do software para o hardware (DEITEL; DEITEL; CHOFFNES, 2005). As máquinas R.I.S.C possuem características como o pequeno número de instruções do assembly com um formato fixo em termos de bytes, com a maioria das instruções operando somente nos numerosos registradores internos; separação de barramentos interno de dados e instruções quando a CPU for um CI ou externo, caso a CPU seja formada por vários CI; execução da maioria das instruções em um único ciclo de relógio 2 da CPU; possui grande número de registradores na CPU; recursos de instruções e dados facilitando a implementação de compiladores do tipo otimizantes; possibilidade de fazer o máximo de operações de acesso à memória externa da CPU utilizando-se registradores e caches internos; e previsão de caches 2 Tempo do computador, sendo este medido em ciclos, que refere-se a uma oscilação completa de um sinal elétrico, provindo do gerador de relógio do sistema, que estabelece a cadência do mesmo, determinando a freqüência de funcionamento deste, comumente medida em ciclos por segundo ou Hertz (Hz) (DEITEL; DEITEL; CHOFFNES, 2005). 25 para instruções de desvio não permitindo que a fila de instruções se esvazie e provoque perda de desempenho da CPU (FERRI, 1990). Os primeiros processadores R.I.S.C. surgiram como projetos universitários, os quais se tornaram comerciais mais tarde com o lançamento do primeiro componente dessa espécie pela empresa A MIPS Computers, com a família R2000. O desenvolvimento comercial da tecnologia R.I.S.C. iniciou-se em 1986 por diversos fabricantes internacionais como a Hewlett Packard (HP), IBM, Piramid e Ridge Computers, mas antes disso, em 1984, foi introduzido o PC AT com o microprocessador 286 da Intel e relógio de 6 MHz. O 286 era de 3 a 4 vezes mais rápido que os 8088 (FERRI, 1990). No final de 1985 a Intel anunciou o seu primeiro processador de 32 bits, chamado 386, mas na prática este só esteve disponível no segundo semestre de 1986 e em larga escala em 1987. As principais diferenças entre o 8088, 286, 386 e 486 podem ser resumidas dizendo-se que o 8088 não permite multitarefa por hardware, enquanto os outro sim, o 8088 só endereça 1 Megabyte de memória e não possui modo protegido ou gerenciamento de memória virtual, uma extensão da memória principal, em contrapartida o 286 endereça 16 Megabytes de memória física, quando em modo protegido, e os 386/486 endereçam 4 Gigabytes em modo protegido, o 8088 e o 286 não possuem instruções e registradores de 32 bits e o 286 não possui o modo virtual 86 do 386/486 (FERRI, 1990). A arquitetura de modo protegido proporciona a total utilização da capacidade do 386, quando ele trabalha em modo de endereçamento virtual protegido, aumentando linearmente o espaço de endereçamento para quatro Gigabytes, adicionalmente o modo protegido permite que todos os programas criados para 8086 e 80286 sejam executados provendo um gerenciamento de memória sofisticado e um mecanismo de proteção assistido por hardware. (INTEL CORPORATION, 1995). O modo virtual 86 traz diversos benefícios para o 386, pois possibilita a execução do Unix no 386, e em modo protegido a emulação virtual do processador 8086 permitindo assim utilizar-se da maioria dos pacotes de software para MS-DOS escritos para IBM-PC que existiam no mercado. Mais tarde na década de 1990 ficaram mais claras estas vantagens, pois foi possível a utilização simultânea de um sistema Unix com o MS-DOS sendo executado como uma tarefa do Unix, possibilitando-se assim, ao hardware, emular em uma tarefa do 26 modo protegido o funcionamento do 8086 quanto ao endereçamento de memória e instruções de 16 bits, sem com isso perder as características de um sistema operacional multitarefas ou multiusuários como está previsto nos recursos da arquitetura do 386 (FERRI, 1990). No 286 o Sistema Operacional (SO) fica limitado pela não existência do modo virtual de emulação de outro ambiente de hardware na operação de modo protegido. “Esta é a característica de software mais importante no 80386” (FERRI, 1990, p. 27). O usuário poderia alternar entre MS-DOS e Unix mediante comando apropriado, sendo possível executar os sistemas operacionais originalmente escritos para 286 como o QNX, FLEX-OS 286 da Digital Research e o Xenix da Microsoft (FERRI, 1990). Comercialmente o utilitário VP/ix, desenvolvido pela Phoenix Technologies, em conjunto com o 386/ix da Iteractive ou o SCO Xenix/386, concretizaram a capacidade de executar dois SO simultâneos, de forma transparente ao usuário. Porém não se tratava de novidade na década de 1980 já que as versões iniciais do OS/360, da década de 1970, da IBM foi modificado para tornar-se um sistema de tempo compartilhado, chamado TSS/360, lançado tardiamente, segundo Tanenbaum e Woodhull (2000). Um grupo no Centro Científico da IBM em Cambridge, Massachusetts, produziu um sistema radicalmente diferente, que a IBM acabou aceitando como um produto utilizado em seus mainframes, sistemas de grande porte, remanescentes, o sistema foi chamado de VM/370, e proporcionava máquinas virtuais (TANENBAUM; WOODHULL, 2000). “O propósito de qualquer arquitetura de sistemas em um microprocessador, é suportar os requisitos de um sistema operacional, que pode ou não ser bastante específico em suas necessidades.” (FERRI, 1990, p. 97). O conceito de proteção no 386 dispõe de quatro níveis hierárquicos que suportam as necessidades de SO multitarefas para isolar e proteger cada programa do usuário e o sistema operacional. Os níveis de privilégio controlam o uso de instruções privilegiadas, instruções de entrada/saída (E/S), acesso a segmentos de memória e descritores de segmentos (INTEL CORPORATION, 1995). Diferentemente dos tradicionais processadores onde a proteção é provida por circuitos externos complexos, o 386 possui integrado no Memory Management Unit (MMU), unidade de gerenciamento de memória, nos sistemas de proteção. Como pode-se verificar na figura 3 o 27 nível 0 é o mais privilegiado, o núcleo do sistema operacional é executado com nível 0, e o 3 o menos, as aplicações do usuário possuem esse nível (INTEL CORPORATION, 1995). Figura 3 – Proteção hierárquica de camadas do 386. 2.3 Sistemas Operacionais Conforme Deitel, Deitel e Choffnes (2005, pag 27), na década de 1960 definia-se SO como o software que controlava o hardware, porém houve evolução significativa até a atualidade o que torna necessário uma descrição mais rica, sendo então SO o “[...] software que habilita as aplicações a interagir com o hardware de um computador.” 28 Um SO é o programa gerenciador de recursos de hardware e software do equipamento no qual é executado. O termo multitarefas pode descrever duas funções, sendo uma a possibilidade de o usuário mover entre duas ou mais aplicações sem precisar deixar uma delas para ir à outra, pode-se conseguir isso com chaveamento por comandos ou escalonamento de tarefas pelo sistema operacional, a outra possibilidade é a do sistema poder executar múltiplas aplicações ao mesmo tempo (FERRI, 1990). Os sistemas operacionais do tipo multitarefa são baseados na emulação do funcionamento simultâneo de múltiplos processadores fornecendo a cada tarefa um processador virtual o qual na realidade é a divisão do tempo do processador real entre as tarefas em execução (FERRI, 1990). Um sistema operacional é composto por diversos componentes, dentre os quais podese destacar como componentes principais (DEITEL; DEITEL; CHOFFNES, 2005): Escalonador de processo que determina a que tempo e por quanto tempo um processo é executado no processador, em geral muitos processos competem para utilizarem-se do processador, logo o escalonador pode basear suas decisões em critérios como a importância de um processo ou o tempo estimado que ele executará o mesmo; Gerenciador de memória que determina quando e de que maneira a alocação da memória se dará ocupando-se de encontrar uma saída em caso de a memória principal estar cheia, ele garante que os processos não interfiram entre si e menos ainda no sistema operacional impedindo que acessem áreas da memória que não lhes pertencem; Gerenciador de E/S (Entrada e Saída) que atende às solicitações de entrada e saída dos componentes de hardware, esses componentes podem ser dispositivos como teclado, mouse e impressora; Gerenciador de comunicação entre processos (IPC) que permite a comunicação entre os processo, freqüentemente os processos cooperam entre si para cumprir uma meta comum então se utilizam do IPC e mecanismos de sincronização que simplificam a programação concorrente; Gerenciador de sistema de arquivos que organiza as coleções nomeadas de dados nos dispositivos de armazenamento e provê interface para acesso aos dados, este reordena as requisições para o dispositivo de armazenamento secundário, normalmente um 29 disco magnético, com a finalidade de maximizar o desempenho minimizando perdas de tempo no acesso aos dados. Todo programa que é executado em um computador, inclusive o SO, é organizado em processos seqüenciais, ou somente processos, conceitualmente cada processo é um programa em execução, com seus valores de variáveis, e possui seu próprio processador virtual, na realidade o escalonador de processos alterna de um processo para outro rapidamente executando apenas um processo por unidade de tempo, porém para melhor entendimento facilita pensar em diversos processos que estão em execução paralelamente (TANENBAUM; WOODHULL, 2000). Os processos possuem treads, que podem ser denominados como Lightweight Process (LWP – processos leves) que compartilham muitos atributos de um processo e podem ser escalonadas, tendo como função a execução de um conjunto de instruções independentes de outros processos e threads, entretanto não são planejados para existirem sozinhas, como os processos, os threads de um processo compartilham recursos melhorando a eficiência da execução das tarefas. Em um sistema multiprocessador mais de um thread é capaz de ser executado simultaneamente (DEITEL; DEITEL; CHOFFNES, 2005). Três níveis de escalonamento podem ser considerados, sendo o escalonamento de alto nível, também chamado de escalonamento de longo prazo, o escalonamento de nível intermediário e o escalonamento de baixo nível, também designado com despachante. O primeiro determina quais tarefas o sistema operacional permite que disputem os recursos do sistema, sendo admitidos tornam-se processos, escalonadores de alto nível são mais comuns em sistemas de grande porte, mainframes. O segundo determina quais processos terão permissão para competir por processador, tal política leva em conta a carga do sistema e faz remanejamento de processos com a finalidade de uma operação tranqüila do sistema. A terceira determina quais processos ativos do sistema serão designados a um processador, assim que este estiver disponível, nesse nível é atribuída uma prioridade ao processo, prioridade esta que reflete a sua importância (DEITEL; DEITEL; CHOFFNES, 2005). Existem prioridades estáticas, as quais são fixas e os mecanismos baseados nesse tipo são fáceis de programar, mas não respondem às mudanças do ambiente, e prioridades dinâmicas que respondem às mudanças no ambiente podendo ser aumentada ou reduzida 30 segundo a necessidade de outros processos ou de acordo com as necessidades de desempenho (DEITEL; DEITEL; CHOFFNES, 2005). 2.3.1 Memória O dispositivo em que as informações podem ser retidas é chamado de memória, no computador esse dispositivo é composto de CI e normalmente apresenta-se com uma peça que se encaixa no sistema eletrônico do equipamento. Random Access Memory (RAM – Memória de Acesso Aleatório) é a memória principal, também chamada por memória real, memória física ou memória primária, é volátil e de acesso aleatório, no sentido de que os processos podem acessar dados em qualquer ordem, as latências para os endereços da RAM são essencialmente iguais. Os fabricantes de RAM procuram reduzir a diferença entre a velocidade do processador e a velocidade de transferência da memória, já os desenvolvedores de SOs buscam organizar e gerenciar o armazenamento principal (DEITEL; DEITEL; CHOFFNES, 2005). O armazenamento secundário, como disco rígido e unidades de fita, fornecem grandes capacidades e baixo custo para guardar os programas e dados, porém são lentos e não acessíveis diretamente pelo processador. Para que um programa seja executado deve estar carregado na memória principal, mas esta tem tamanho limitado (muito menor que a secundária) sem mencionar o seu alto custo (DEITEL; DEITEL; CHOFFNES, 2005). Surge desta forma o conceito de memória virtual, a idéia por traz disso é criar a ilusão de que existe mais memória principal do que realmente há, utilizando-se para isso a memória secundária como uma extensão da principal. Se um processo acessar um endereço da memória virtual o sistema deve traduzir para um endereço na memória real, mas a ocorrência dessas 31 traduções é tão freqüente que existe um hardware especial para isso a MMU (TANENBAUM; WOODHULL, 2000). Diferentemente da memória principal a secundária oferece acesso ao seu conteúdo com velocidade variável. A velocidade em que um dado é recuperado ou gravado é dependente da posição física do cabeçote no disco e do cabeçote de leitura-escrita (considerando um disco rígido que é composto de pratos onde os dados ficam efetivamente armazenados e são lidos e gravados por um cabeçote de leitura-escrita o qual paira a uma pequena distância da superfície do disco), o cabeçote deve se deslocar até imediatamente acima do dado e deve efetuar a operação somente quando o dado passar pelo cabeçote, já que o disco gira (DEITEL; DEITEL; CHOFFNES, 2005). Toda a operação requer um tempo que é composto pelo tempo de latência rotacional, relativo ao giro do disco, somado ao tempo de busca, relativo ao movimento do cabeçote. Esses tempos são da ordem de milissegundos para um disco rígido e durante ele um processador pode executar dezenas ou centenas de milhões de instruções o que, são utilizadas técnicas de escalonamento de discos e tecnologias de associação de discos para reduzir os tempos de acesso permitindo maior aproveitamento do sistema (DEITEL; DEITEL; CHOFFNES, 2005). 2.3.2 Arquivos Os arquivos são uma abstração, que possibilitam uma maneira de armazenar informações em dispositivos de armazenamento e obtê-las em outro momento, feito de maneira que o usuário não tenha que saber como e onde as informações estão realmente armazenadas no dispositivo físico nem mesmo como manipulá-las. Para que se organizem os arquivos os sistemas de arquivos têm diretórios, que internamente ao sistema são um tipo de arquivo, os arquivos podem ser acessados de maneira seqüencial, como em fitas magnéticas, 32 onde não é possível ler fora de ordem ou de maneira aleatória em que podem ser lidos em qualquer ordem. Os arquivos possuem atributos, como o nome e seus dados, mas também outras informações como data e hora de criação, tamanho e sinalizadores que indicam a ativação ou não de alguma propriedade como se é oculto, somente leitura e sinalizador de backup (TANENBAUM; WOODHULL, 2000). 2.4 Arquitetura cliente-servidor A utilização de diversos computadores independentes desempenhando uma função comum denominou-se computação distribuída, houve uma proliferação acentuada dessa modalidade de computação com o modelo cliente/servidor, pois reduziam-se os custos de tecnologia e aplicações via rede, como correio eletrônico e transferência de arquivos entre computadores interconectados por redes, que cresciam exponencialmente. Clientes são computadores de usuários que requisitam serviços e servidores são computadores que executam os serviços requisitados, geralmente os servidores são dedicados a tarefas específicas (DEITEL; DEITEL; CHOFFNES, 2005). O modelo cliente/servidor é organizado como um conjunto de serviços, servidores e clientes associados e possui como principais componentes um conjunto de servidores oferecendo serviços para outros subsistemas, conjunto de clientes os quais solicitam os serviços e que normalmente são subsistemas independentes e uma rede que permita aos clientes conectarem-se com os servidores (SOMMERVILLE, 2007). Há o caso de o servidor e o cliente estarem na mesma máquina em que não é necessária uma rede, pois os clientes e servidores são processos separados em um mesmo computador, não havendo necessariamente um mapeamento de rede entre eles, a referência a clientes ou servidores não é relacionada à computadores e sim aos processos lógicos em execução, mas a maioria dos sistemas cliente/servidor são desenvolvidos de maneira 33 distribuída, utilizando-se rede. Geralmente os clientes precisam saber os nomes dos servidores e quais serviços estes dispõem, mas nem sempre os servidores necessitam saber a identidade dos clientes, para que os clientes acessem os serviços são utilizadas chamadas de procedimento remoto utilizando-se para isso algum protocolo (SOMMERVILLE, 2007). Nos sistemas operacionais modernos existe uma tendência em mover a maior quantidade de código de programa do núcleo do SO para a área do usuário, deixando assim um mínimo de componentes de núcleo. Para requisitar um serviço, um processo de usuário, conhecido como processo cliente, envia uma requisição para um processo servidor, que efetua o trabalho e remete o resultado ao cliente. Nesse modelo o trabalho do núcleo do SO é gerenciar a comunicação entre clientes e servidores, isso possibilita que existam diversos serviços disponíveis, independentes, pequenos e gerenciáveis, impedindo que tais serviços tenham acesso direto ao hardware, evitando assim, em caso de problemas na execução de algum serviço, que os outros processos sejam afetados (TANENBAUM; WOODHULL, 2000). 2.5 Rede e Serviços Redes de computadores possibilitam que os clientes, usuários de serviços diversos, conectem-se com os servidores, provedores dos serviços, atualmente são importantes para as comunicações, transações comerciais, bancos, acesso á internet entre outras atividades. Para que as redes funcionem é necessário um conjunto de elementos que compões sua infraestrutura básica como endereçamento IP, resolução de nomes e serviços de certificados digitais (DEITEL; DEITEL; CHOFFNES, 2005). 34 2.5.1 Infra-estrutura de rede Infra-estrutura de rede é o conjunto de componentes físicos e lógicos que provêem conectividade, segurança, roteamento, gerenciamento, acesso e outras funcionalidades. Implementar uma rede é o processo de avaliação, compra, montagem e instalação dos componentes que fazem parte do projeto, sendo dividido em hardware tais como computadores, cabos, dispositivos de conectividade como hubs, switches e roteadores, impressoras e outros periféricos e software como o sistema operacional, o software primário tratando-se de infra-estrutura de rede, devido a ele incorporar os protocolos e rotinas que possibilitam a comunicação em rede (ZACKER; STEVEN, 2006). A infra-estrutura física da rede é sua topologia, ou seja, o desenho físico da rede ao longo dos componentes de hardware, tais componentes freqüentemente dependem da infraestrutura lógica da rede que compreende os vários programas que conectam, gerenciam e mantêm a segurança dos computadores na rede, ainda, consiste nos elementos abstratos de software, como os protocolos de rede, e nos elementos concretos, como produtos específicos de software, permitindo a comunicação entre computadores através da infra-estrutura física (ZACKER; STEVEN, 2006). 2.5.2 Protocolo TCP/IP O protocolo TCP/IP (Transmission Control Protocol/Internet Protocol – Protocolo de Controle de Transmissão/Protocolo de Internet) é um conjunto de programas criado ao longo dos anos, iniciando-se por volta da década de 1970, ajudado pelos fundos de pesquisas do governo norte americano, em especial pelo Departamento de Defesa (DoD), pois estes órgãos 35 efetuavam grande quantidade de compra de equipamento que em sua maioria era incompatível entre si, então nasce o TCP/IP como uma linguagem de comunicação, inicialmente alternativa, para interligar os diversos equipamentos que somente dispunham de protocolos de comunicação proprietários, tornando-se, com o passar do tempo, o protocolo padrão de comunicação (MINASI et al., 2001). Originalmente, segundo o autor, a rede do DoD interligava sites militares e de pesquisas básicas nos Estados Unidos da América (EUA), fundadas por um braço do DoD chamado Advanced Research Project Agency (ARPA – Agência de Pesquisa em Projetos Avançados), que achou conveniente a comunicação dos pesquisadores entre si e com o DoD. A rede formada, chamada ARPAnet, foi então colocada em funcionamento, conectando os professores universitários entre si e com os líderes de projetos civis e militares por todo o país, tornando-se então a rede das redes, já que interligava redes particulares e independentes das redes militares . Inicialmente, segundo Minasi et al. (2001), a ARPAnet utilizava um protocolo chamado Network Control Protocol (NCP – Protocolo de Controle de Rede) que mais tarde foi aperfeiçoado e originou dois protocolos, o Internet Protocol (IP – Protocolo de Internet) e o Transmission Control Protocol (TCP – Protocolo de Controle de Transmissão), tal mudança configura-se como a diferença técnica entre a ARPAnet e a Internet. “Em 1º de janeiro de 1983, os dispositivos de comutação de pacotes da ARPAnet pararam de aceitar pacotes NCP, aceitando somente pacotes TCP/IP. De certa forma, 1º de janeiro de 1983 é o dia do nascimento “oficial” da Internet”. Algumas das características básicas do TCP/IP são (MINASI et al., 2001): Boa recuperação de falhas; Capacidade de conectar novas redes sem parada nos serviços; Capacidade de manipular altas taxas de erro; Ser independente de fornecedor específico; Acréscimo de dados extra, chamado de overhead, muito baixo. O endereçamento IP possui 32 bits, definidos por um administrador de rede, em cada equipamento conectado à rede, sendo formado por quatro octetos e estes são convertidos e exibidos em números decimais, processo este que facilita a compreensão, este endereço é 36 atribuído via software para a placa de rede. Uma placa de rede possui um endereço ethernet, que é um código de identificação único, gravado fisicamente na mesma, possuindo 48 bits, expressos em forma hexadecimal, tal endereço também é conhecido por Media Access Control (MAC – Controle de Acesso de Mídia) e é controlado centralmente3 sendo vendido aos fornecedores de componentes. (MINASI et al., 2001). 2.5.3 DNS e DHCP Domain Name System (DNS – Sistema de Nome de Domínio) permite que seja localizado computador ou outro recurso na rede pelo nome em uma rede TCP/IP, provê uma estrutura hierárquica e métodos automáticos de armazenar e resolver nomes de computadores em endereços IP solucionando muitas das dificuldades associadas a estrutura de nomes na internet. Cada registro em um domínio DNS pode ser identificado pelo Fully Qualified Domain Name (FQDN – Domínio Completamente Expressado) que não permite ambigüidade e indica a localização relativa à raiz da árvore do domínio DNS (MACKIN; MCLEAN, 2006). O DNS permite que seja possível localizar serviços em uma rede TCP/IP, como o domínio www.fateczl.edu.br, e o resultado da consulta ao DNS seja o endereço IP do serviço, no caso, 201.55.32.185. Os componentes do DNS são (MACKIN; MCLEAN, 2006): Servidores DNS são computadores que executam o programa DNS, como o Berkley Internet Name Domain (BIND – Nome de Domínio da Internet de Berkley), que possuem bases de dados com informações sobre a parte da árvore hierárquica que lhe 3 O IEEE é a autoridade certificadora que controla os endereços MAC, disponível em <http://standards.ieee.org/regauth/index.html> 37 pertence, ao serem consultados pelos clientes, podem fornecer a informação solicitada, ou indicar outro servidor DNS para ajudar na solução do nome desejado; Zonas DNS é um local da árvore hierárquica sob autoridade de um servidor DNS, um servidor DNS será autoridade para uma zona se ele armazenar esta zona; DNS Resolvers é o serviço que utiliza o protocolo DNS para solicitar informações de um servidor DNS. Por sua vez o Dynamic Host Configuration Protocol (DHCP – Protocolo de Configuração Dinâmica de Cliente) permite que endereços IP sejam entregues automaticamente aos computadores, bem como configurações relacionadas, como endereço dos servidores DNS entre outras possibilidades. A principal vantagem de seu uso é a redução do tempo requerido para configurar todos os parâmetros manualmente a cada vez que um equipamento é instalado na rede, aliado a isso o DHCP reduz, ou mesmo elimina, erros de configuração que poderiam ser causados com a configuração manual de cada computador na rede (MACKIN; MCLEAN, 2006). 2.5.4 Criptografia e Certificados Digitais Atualmente as empresas utilizam redes de computador, como a internet, para troca de informações com fornecedores, clientes, parceiros externos ou mesmo entre unidades geograficamente separadas da mesma empresa criando a necessidade de garantir a segurança destas informações. Para isso são requeridas certas validações ou identificações por parte dos usuários (TODD; JOHNSON JR, 2002). Inicialmente a identificação dos usuários era feita somente com um nome de usuário (login) e senha, mas não a identificação do cliente e servidor possibilitando ataques do tipo man-in-the-midle, ou seja, quando há comunicação entre duas partes que acreditam estarem se comunicando somente uma com a outra, mas na verdade há um ouvinte silencioso 38 intermediário na comunicação. O rápido crescimento do uso da internet trouxe novas preocupações de segurança, pois pessoas inescrupulosas podem roubar ou modificar informações. Desta forma, para proteger a informação as empresas passaram a utilizar de tecnologias de criptografia, que provêem maneiras de identificar os usuários e servidores durante o uso da rede (TODD; JOHNSON JR, 2002). Criptografia vem a ser o ato de transformar uma mensagem de texto simples em um texto ilegível com a finalidade de proteger o seu conteúdo. Existem três tipos de funções criptográficas, sendo estas (TODD; JOHNSON JR, 2002): Função hash, que não envolve o uso de chave criptográfica valendo-se de algoritmos matemáticos para embaralhar os dados; Criptografia de chave simétrica, que é um método que é um método que utiliza chaves secretas, este utiliza uma única chave para criptografar e descriptografar a informação; Criptografia de chave assimétrica; Também conhecida por criptografia de chave pública, em que cada lado da comunicação possui duas chaves sendo uma a chave pública e a outra a chave privada, as públicas são deixadas disponíveis para todos que desejarem e a privada apenas o dono tem acesso. Os dados são criptografados com a chave pública e descriptografados com a chave privada. Esse método elimina a vulnerabilidade no compartilhamento de chaves, no caso do método de chaves secretas. Para publicar e gerenciar chaves públicas, aos que necessitam das mesmas, faz-se uso da Infra-estrutura de Chaves Públicas (ICP), além disso, a ICP também gerencia os Certificados Digitais e a Assinatura Digital. A ICP define os meios e regras técnicas que validam documentos produzidos, transmitidos ou obtidos de forma eletrônica. A Certification Authority (CA – Autoridade Certificadora) constrói o certificado para o usuário onde constará um Distinguished Name (DN Nome Distinto), único em todo o sistema e contendo diversas informações sobre o usuário, uma das quais a chave pública (SILVA, 2005). O Certificado contém uma Assinatura Digital da CA garantindo um relacionamento de confiança, ou seja, qualquer entidade que confiar na legitimidade da CA irá acreditar no conteúdo dos Certificados emitidos por ela e conseqüentemente, na identidade dos usuários que receberam os Certificados. (SILVA, 2005, p. 111) A CA tem três processos básicos, sendo estes a certificação, a validação e a revogação de certificados. A certificação é a união entre uma entidade ou atributo com a chave pública, 39 essa união juntamente com algumas informações únicas é colocada em um documento digital chamado certificado. Uma terceira entidade, confiável, assina digitalmente o certificado garantindo o seu conteúdo, essa terceira entidade é a CA. A validação é o processo de verificação da autenticidade do certificado para que as informações nele contidas tenham credibilidade, neste processo é verificada a assinatura da CA com a chave pública dela, analisando se o certificado esta ou não na lista de certificados revogados, tal lista possui todos os certificados que foram revogados pela CA, portanto não são mais válidos, é verificada ainda a data de validade do certificado (SILVA, 2005). Finalmente a revogação de certificados é o processo que adiciona um certificado à lista de certificados revogados antes que este expire pela sua data de validade. Para que seja revogado, alguns dos diversos atributos do certificado devem ter sofrido alteração então este é inserido na lista de certificados revogados. É responsabilidade de a CA manter todos os certificados que ela distribuiu até mesmo revogá-los se for necessário. A lista de certificados revogados é composta do número de série do certificado e deve ser publicada pela CA periodicamente (SILVA, 2005). 2.5.5 Serviço de diretório O Active Directory (AD – Diretório Ativo) é um serviço de diretório extensível e escalonável que permite a gerencia eficiente dos recursos de rede, o AD é o coração do Microsoft Windows 2000, tendo sua base em protocolos padrão da internet e possui um desenho que permite claramente definir a estrutura da rede. O DNS é uma parte integrante do AD, logo deve ser configurado na rede antes que se faça a instalação do AD, e fornece estruturas lógicas e físicas para os componentes de rede (STANEK, 2009). Algumas das estruturas lógicas são domínios, grupo de computadores que compartilham uma base de dados comum do diretório e unidades organizacionais, um 40 subgrupo do domínio sendo um espelho do negócio ou da estrutura funcional da companhia. As estruturas físicas são sub-redes, um grupo de rede com uma faixa de IP específica e sites, uma ou mais sub-redes que são configuradas para acesso e replicação do AD. Um domínio do AD é um grupo de computadores que compartilham uma base de dados do diretório com seus nomes de domínio, FQDN, únicos, cada domínio possui sua própria política de segurança e confiança com outros domínios, estes também podem dividir-se em mais de uma localidade física. Com uma base de dados de diretório é possível encontrar objetos na rede como contas de usuários, grupos de usuários, computadores bem como recursos compartilhados como pastas e impressoras (STANEK, 2009). No contexto de rede de computadores um diretório, também chamado de data store, é uma estrutura hierárquica que armazena informações sobre objetos na rede, objetos são recursos compartilhados como servidores, discos compartilhados, impressoras, usuários, computadores, domínios, aplicações, serviços, políticas de segurança, dentre outros, que possam existir na rede de computadores (MICROSOFT CORPORATION, 2009). Um serviço de diretório difere do diretório, pois torna a topologia de rede transparente, então um usuário pode acessar qualquer recurso sem conhecer onde ou como ele esta conectado fisicamente. O AD é um serviço de diretório central do Windows 2000 Server e posteriores, que somente executa em Domain Controllers (DC – Controlador de Domínio) – Controladores de Domínio, adicionalmente ao provimento de um local para armazenar dados e serviços tornando-os disponíveis, também protege os objetos de acessos não autorizados e proporciona replicação dos objetos através da rede com isso não há perda de dados se um DC falhar, considerando que existem no mínimo dois DC na rede (MICROSOFT CORPORATION, 2009). 41 2.5.6 VPN Virtual Private Network (VPN – Rede Privada Virtual) são redes lógicas que cruzam a internet, com elas os pacotes são primeiro criptografados e então enviados para o destino, o tráfego de pacotes com conteúdo criptografado na rede pública forma um túnel através da internet, como pode ser visto na figura 4, até o destino dos pacotes, onde são descriptografados pelo receptor. Uma característica importante de uma VPN, é que existe transparência entre as pontas conectadas pela mesma, ou seja, não importa o caminho tomado pelos pacotes na estrutura de internet pública, pois parecerá aos envolvidos que estão em um segmento isolado de rede, como uma rede local, por exemplo, conforme pode ser visto na figura 5. Tipicamente a VPN é utilizada para permitir que usuários remotos acessem uma rede privada (MACKIN; MCLEAN, 2006). Figura 4 – Visão do túnel criado por uma VPN. 42 Figura 5 – Visão da funcionalidade de uma VPN interligando duas redes locais. Uma VPN possui algumas premissas básicas, como privacidade, integridade, autenticidade, não-repúdio e facilidade. A privacidade faz com que somente pessoas que podem receber alguma informação possam recebê-la; a integridade é a garantia de que a informação enviada será recebida sem modificações e isso pode ser obtido por meio da função hash; a autenticidade é a garantia da identidade do remetente, normalmente fornecida pela assinatura digital; não-repúdio vem da garantia de o emissor não negará a informação posteriormente; e facilidade é a garantia de que o sistema de segurança escolhido e implantado foi feito de forma consistente e adequada para todas as aplicações da empresa sem restringir a capacidade de indivíduos e organizações de empreender suas tarefas diárias (SILVA, 2005). Pode haver dois tipos de conexão VPN, sendo uma o acesso remoto, que consiste em um único computador de usuário que se conecta em uma rede a partir de um local remoto, visto na figura 6, e o site-to-site, que conecta duas partes de uma rede privada ou duas redes privadas distintas, visto na figura 7. Tunelamento é a tecnologia que permite encapsular um 43 tipo de protocolo em um outro protocolo distinto, um túnel é similar a uma sessão onde ambas as partes terminais devem aceitar o túnel e negociar configurações variáveis como endereçamento, criptografia e compressão, depois de o túnel ser estabelecido dados podem ser enviados (MICROSOFT CORPORATION, 2003). Figura 6 – Acesso remoto com VPN. Figura 7 – VPN site-to-site. O Windows Server 2003 suporta dois tipos de VPN, Point-to-Point Tunneling Protocol (PPTP – Protocolo de Túnel Ponto a Ponto) e Layer Two Tunneling Protocol/IP Security Protocol (L2TP/IPSec – Protocolo de Túnel Camada Dois/Protocolo de IP Seguro), em geral o tipo PPTP é mais fácil de implementar porém menos seguro que o L2TP/IPSec. (MACKIN; MCLEAN, 2006). O PPTP encapsula o Point-to-Point Protocol (PPP – Protocolo Ponto a Ponto) no IP para transmissão através da uma rede TCP/IP. A autenticação ocorre durante a criação da VPN e usa o mesmo mecanismo do PPP como Extensible Authentication Protocol (EAP – Protocolo de Autenticação Extensível), Microsoft Challenge-Handshake Authentication Protocol (MS-CHAP – Protocolo de Autenticação por Desafios de Identidade da Microsoft), Microsoft Challenge-Handshake Autentication Protocol version 2 (MS-CHAP v2), CHAP, Shiva Password Authentication Protocol (SPAP – Protocolo de Autenticação de Senha Shiva) e Password Authentication Protocol (PAP – Protocolo de Autenticação de Senha), para que a 44 criptografia seja utilizada deve-se utilizar EAP-Transport Layer Security (EAP-TLS – Protocolo de Autenticação Extensível-Segurança de Camada de Transprote), MS-CHAP ou MS-CHAP v2 sendo criptografado pelo Microsoft Point-to-Point Encryption (MPPE – Criptografia Ponto a Ponto da Microsoft), que provê apenas criptografia entre cliente remoto e servidor VPN (MICROSOFT CORPORATION, 2003). O L2TP é uma combinação do PPTP com o Layer 2 Forwarding (L2F – A Frente da Camada 2 “tradução livre”), uma tecnologia desenvolvida pela Cisco Systems, onde a autenticação também ocorre durante a criação do túnel e utiliza-se dos mesmos mecanismos do PPP, descritos anteriormente, a criptografia é provida pelo encapsulamento IPSec (MICROSOFT CORPORATION, 2003). O protocolo IPSec surgiu para unir as premissas básicas de uma VPN, não é uma padronização de criptografia e sim um padrão para se estabelecer uma VPN entre dois pontos de maneira a não depender de fabricantes ou aplicações envolvidas. O IPSec é um conjunto de protocolos que provêem serviços de segurança para o IP, oferecendo seus serviços independentemente do algoritmo de criptografia utilizado, pois com a arquitetura aberta podem ser acrescentados algoritmos de autenticação e criptografia (SILVA, 2005). O L2TP/IPSec requer autenticação do computador adicionalmente a autenticação dos usuários, a autenticação do computador é a primeira a ser feita na seqüência o túnel é estabelecido e, então, o usuário é autenticado pelos mesmos métodos suportados pelo PPTP. A maioria das VPNs L2TP/IPSec são autenticadas pelo uso de certificados digitais, fazendose necessário uma CA, os certificados possuem uma finalidade descrita nos seus atributos, e para serem utilizados na VPN a finalidade deve ser a autenticação de cliente (no lado do cliente) e a autenticação do servidor (no lado do servidor) (MACKIN; MCLEAN, 2006). 45 2.5.7 Radius e Autenticação O Remote Authentication Dial-In User Service (RADIUS – Serviço Remoto de Autenticação de Usuário Discada), desenvolvido pela empresa Livingston, divisão da Lucent Technologie, utiliza uma arquitetura cliente-servidor adicionando um novo elemento o Network Access Server (NAS – Servidor de Acesso a Rede), que permite a conexão remota, gerencia a conexão e liberando ou não a mesma. O NAS pode ser configurado como um cliente RADIUS, nesse caso cada pedido passa pelo NAS, que envia para o RADIUS, e recebe um retorno, que é também encaminhado ao cliente. Se a autenticação confere, o RADIUS envia ao NAS uma autorização que inclui informações da rede do cliente e serviço que poderá utilizar (SILVA, 2005). O servidor VPN, da Microsoft, pode ser configurado para utilizar a autenticação do Windows ou a RADIUS, que por sua vez pode responder a solicitações de autenticação baseado em sua própria lista de contas de usuários, ou pode utilizar-se de uma base de dados externa utilizando-se para isso de Structured Query Language (SQL – Linguagem de Consulta Estruturada) ou um DC disponível na rede. A autenticação através do protocolo MSCHAP v2 é uma atualização do MS-CHAP que provê um mecanismo forte de segurança para troca de nome de usuário e senha e na determinação de chave criptográfica (MICROSOFT CORPORATION, 2003). Com o MS-CHAP v2 o NAS envia um desafio, como uma charada, para o cliente, que consiste em um identificador de sessão e um desafio arbitrário, e o cliente responde com o nome de usuário, resposta a charada, um desafio par ao recebido, o desafio recebido criptografado, um desafio par, o identificador de sessão e a senha do usuário em um formulário criptografado, com o desafio recebido pelo servidor. Já o EAP permite um método de autenticação arbitrário, já que não faz autenticação efetivamente, na fase 2 o EAP apenas negocia o uso do método comum de autenticação, a autenticação, efetivamente, é feita apenas após a fase 2 (MICROSOFT CORPORATION, 2003). 46 Durante a fase 2 o NAS coleta os dados de autenticação e valida na sua base de dados ou numa base central de autenticação, como um DC ou um RADIUS. O EAP-TLS é utilizado em ambiente com base em certificados digitais, esse método provê autenticação mútua, negociação de criptografia e determinação de chave de criptografia entre o cliente e o servidor. Criptografia para PPTP somente está disponível se utilizar MS-CHAP, MS-CHAP V2 ou EAP-TLC, já o L2TP com IPSec não requer autenticação baseada em PPP. O MPPE é baseado no Rivest-Shamir-Adleman (RSA) e disponível apenas para PPTP (MICROSOFT CORPORATION, 2003). 47 3 VIRTUALIZAÇÃO Serão tratados os conceitos de virtualização, seus tipos e algumas técnicas de virtualização bem como o funcionamento do Virtual Machine Monitor (VMM – Monitor de Máquina Virtual) focando não somente VMM genéricos, mas em particular o da empresa VMWare, o qual será utilizado no estudo de caso. 3.1 Conceituando virtualização Uma Instruction Set Architecture (ISA – Arquitetura de Conjunto de Instruções), como a IA-32, exemplifica a vantagem de uma interface bem definida, que permite ao desenvolvedor de diferentes organizações e em diferentes tempos interagir com sistemas computacionais desenvolvendo programas e dispositivos compatíveis, por exemplo, as empresas Intel e Advanced Micro Devices (AMD) desenvolvem microprocessadores que trabalham com instruções Intel IA-32 (x86) enquanto a Microsoft desenvolve programas que utilizam-se dessas mesmas instruções, logo espera-se que os programas executem corretamente em qualquer computador construído com processadores baseados em IA-32 (SMITH; NAIR, 2005). Componentes, sistemas e dispositivos desenvolvidos para uma interface não irão funcionar com aqueles que foram desenvolvidos para outra interface. A virtualização é uma maneira de contornar essa limitação das interfaces, pois ela fornece um sistema detalhado, que parece real para a interface, esse técnica difere da abstração a qual oculta os detalhes da implementação física reduzindo a complexidade e facilitando a utilização pelas interfaces (SMITH; NAIR, 2005). 48 Uma Virtual Machine (VM - Máquina Virtual) deve ser uma duplicação isolada e eficiente de uma máquina real, para explicar será utilizado o conceito de VMM, visto na figura 8, o qual possui três características essenciais, o VMM provê um ambiente para programas essencialmente idêntico à máquina original; os programas executam no ambiente virtual, na pior das hipóteses, com pequena queda de velocidade; o VMM tem controle completo dos recursos do sistema real. Qualquer programa que execute sob o VMM deve produzir um resultado idêntico se executasse diretamente na máquina real (POPEK; GOLDBERG, 1974). Figura 8 – Visão do papel do VMM. Uma VM é o ambiente criado pelo VMM e possui três propriedades interessantes, quando nenhum outro programa é executado enquanto o programa de controle, VMM, está em execução, eficiência, todas as instruções inócuas são executadas diretamente pelo hardware; controle de recursos, deve ser impossível para qualquer programa afetar os recursos do sistema, como memória; equivalência de propriedades, qualquer programa executando enquanto o VMM executa atuará de maneira não distinguível à do caso em que o VMM não esteja em execução (POPEK; GOLDBERG, 1974). Muitas propriedades das VM ajudam em uma ampla gama de soluções, pois primeiro criam a ilusão de múltiplas VM em uma máquina real, essas VM podem ser utilizadas para executarem programas em diferentes sistemas operacionais permitindo, por exemplo, experimentação de sistemas e simulação rede de computadores. VMM provê um forte isolamento entre as VM permitindo assim que um único hardware servidor execute múltiplas 49 aplicações, em VM distintas, como programas que monitoram sistemas à procura de intrusões (KING; DUNLAP; CHEN, 2003). Uma das maneiras de classificar-se o VMM é de acordo com a plataforma, conforme visto na figura 9, o VMM funciona como uma camada de software é uma interface que provê uma plataforma de baixo-nível para acomodar as VM, a classificação tipo 1, como os VM/370 da IBM e o VMWare ESX da VMWare, o VMM é instalado diretamente sobre o hardware real, já na classificação tipo 2, o VMM é instalado como um processo de um SO real instalado sobre o hardware, como o SimOS e User-Mode Linux (KING; DUNLAP; CHEN, 2003). Figura 9 – Tipos de VMs. O tipo 1 diminui perdas por processamento devido a diminuição de camadas de software, pois não há o SO entre o VMM e o hardware, e o VMM tira todo o proveito do hardware em que está instalado, o tipo 2 apesar de não aproveitar totalmente o hardware em que está instalado torna-se mais simples de implementar, pois utiliza-se do SO que está instalado no equipamento (KING; DUNLAP; CHEN, 2003). 50 3.2 Emuladores Emuladores podem ser definidos como hardware, micro-programas e softwares que adicionados a um sistema computacional permitem habilitar o sistema computacional a executar programas desenvolvidos para outros sistemas. Não são necessários todos os componentes para que seja considerado um emulador, mas ao menos hardware ou microprogramas, normalmente chamados de firmwares devido a sua incorporação em um hardware, devem estar presentes, caso contrário considera-se um simulador (MALLACH, 1975). “Um emulador é o oposto da máquina real” (LAUREANO, 2006, p. 18), implementando todas as instruções realizadas pela máquina real em ambiente abstrato de software possibilitando que um programa criado para uma interface execute em outra. É um programa que transcreve instruções de um processador alvo para outro no qual esta executando (LAUREANO, 2006). Tipo de emuladores segundo Laureano (2006): Firmware: Define-se como programação em hardware, armazenados em CI. Tecnologia mais rápida de emulação, porém mais complexa; Software: Toda emulação é feita em programa de computador, o emulador reconfigura a máquina para a aplicação que deseja emular; Combinação: Emulador composto de hardware e software, normalmente o software faz a emulação e o hardware provê partes chave do processo. De acordo com o autor, atualmente os emuladores são classificados como: Totalmente baseado em hardware: Não depende de software para funcionar, como exemplo, um processador, como o 386, emulando uma arquitetura antiga, do 8086, para que programas antigos funcionem; Parcialmente baseada em hardware: O hardware suporta emulação, mas necessita de um programa para que seja possível utilizar a emulação. 51 Parcialmente baseada em software: Obtida via programa, mas utiliza-se de recursos do hardware para funcionar. Totalmente baseada em software: Não necessita de nenhum hardware para a emulação. 3.3 Formas de virtualização Atualmente são mais utilizadas as técnicas de virtualização total, paravirtualização e recompilação dinâmica. 3.3.1 Virtualização total Uma estrutura completa de hardware é virtualizada não necessitando nenhuma alteração do sistema a ser virtualizado, chamado de sistema convidado. Seu principal benefício está em não ter que alterar o sistema convidado, mas em contrapartida o convidado executa de forma mais lenta e o VMM necessita implementar alternativas para tratar instruções privilegiadas, aquelas que utilizam-se no nível 0 de privilégio da IA-32 (LAUREANO, 2006). Os processadores IA-32 não prendem todas as instruções privilegiadas, logo o VMM da VMWare utiliza técnica de reescrita binária, ou também chamada de tradução binária, na qual todas as instruções são examinadas antes de serem executadas, então, é inserida uma 52 marcação no ponto do código em que exista instrução privilegiada para que VMM emule a instrução, provendo assim um conjunto completo de instruções da IA-32 (KING; CHEN, 2002). O VMWare utiliza-se de uma combinação das técnicas de tradução binária e execução direta, esse enfoque traduz as instruções do núcleo do SO convidado substituindo instruções não virtualizáveis por novas instruções com efeito no hardware virtual provido pelo VMM, já o código do nível de usuário, nível 3 da IA-32, é executado diretamente pelo processador real melhorando assim a velocidade do sistema computacional. A combinação das técnicas mencionadas provê virtualização total e o sistema convidado é totalmente desacoplado do hardware pela camada de virtualização, o VMM (VMWARE, 2007). 3.3.2 Paravirtualização É a técnica onde o sistema convidado sofre modificações para que a interação com o VMM seja mais eficiente, permite que o sistema convidado acesse diretamente recursos de hardware real tendo o acesso monitorado pelo VMM o qual fornece os limites para acesso, como exemplo acesso direto à memória principal e secundária. Essa técnica diminui a portabilidade dos sistemas convidados, diferentemente da virtualização total que não altera o sistema convidado (LAUREANO, 2006). Enquanto é muito difícil construir os tradutores binários mais sofisticados, necessários para a virtualização total, modificar o SO convidado, habilitando a paravirtualização, é relativamente simples. A VMWare utiliza-se de alguns aspectos da paravirtualização como as ferramentas que são instaladas no sistema convidado e os drivers de dispositivos. As ferramentas servem como apoio para uso do VMM, como na sincronização de tempo. Dispositivos paravirtualizados compartilham dados como o VMM tirando proveito dos 53 dispositivos físicos aumentando a transferência de dados e reduzindo o uso da CPU real (VMWARE, 2007). As ferramentas e drivers da VMWare não são totalmente paravirtualização, são modificações mínimas e não intrusivas instaladas no sistema convidado e não requerem modificações no núcleo do SO convidado. A VMWare desenvolve uma interface padrão que explora a paravirtualização, uma camada transparente chamada Virtual Machine Interface (VMI – Interface de Máquina Virtual) que proporciona um mecanismo de comunicação entre o sistema convidado e o VMM (VMWARE, 2007). 3.3.3 Tradução binária O sistema pode, durante a execução do programa, adequar o código gerado para que reflita o sistema para o qual o programa foi desenvolvido originalmente, visando maior eficiência ou otimização adaptável. A tradução binária é composta por (LAUREANO, 2006): Agrupamento de bits: Utilizando-se de conhecimento sobre o programa executável e técnicas de heurísticas de análise recupera e reordena o conjunto de bits do executável; Desmontagem ou disassembling: Os bits são desmontados e transformados em um conjunto de instruções e operadores em pares; Geração intermediária de código: Transformam-se as instruções para representação independente de máquina; Decompilação: A representação é transformada em uma linguagem de alto-nível, como a linguagem C; Compilação: É gerado código para a nova plataforma; Montagem ou assembling: É preparada a criação de um novo executável; Armazenagem dos bits: Os bits são agrupados formando um novo executável. 54 3.3.4 Assistência via hardware Os fabricantes de hardware envolveram-se rapidamente na tecnologia de virtualização desenvolvendo novas características para simplificar as técnicas de virtualização como as tecnologias Intel Virtualization Technology for the IA-32 architecture (VT-x – Tecnologia de Virtualização da Intel para a arquitetura IA-32) e AMD-V (AMD Virtualization – Virtualização da AMD). Essas tecnologias provêem um método de execução de instruções privilegiadas que permite ao VMM executar em um novo modo, abaixo do nível 0, e acima do hardware, com isso é removida a necessidade de tratar as chamadas privilegiadas via tradução binária (VMWARE, 2007). A primeira geração da Intel VT-x para IA-32 entrega suporte via hardware que simplifica a virtualização proporcionando redução do tamanho e complexidade do VMM possibilitando assim que o VMM suporte uma grande variedade de SO legados e futuros na mesma plataforma física de hardware (NEIGER et al., 2006). O foco central da VT-x é eliminar a necessidade de paravirtualização e da tradução binária necessária para a CPU simplificando a construção de VMM robustas que suportem uma grande variedade de SO convidados e mantenham um alto nível de performance. A VT-x introduz dois novos modos de operação da CPU, a operação raiz e a não raiz. A operação raiz é para uso do VMM e possui um comportamento parecido com o da IA-32 sem a VT-x, e a não raiz é uma alternativa para a IA-32 controlada por um VMM e desenhada para suportar VM (NEIGER et al., 2006). 55 4 APLICAÇÕES Como forma de melhorar a utilização da capacidade dos computadores da era atual, os quais dispõem de grande capacidade de processamento e alta complexidade para configuração, a virtualização ganha espaço no papel de ocultar do usuário final a complexidade dos computadores tornando o sistema computacional fácil de utilizar. Em sistemas focados ao mercado corporativo, as VM têm potencialidades de sandbox (caixa de areia) e jail (jaula), permitindo o controle de recursos para programas que estão em execução internamente aos sistemas convidados, possibilitando inspecionar o sistema do convidado e ter acesso a dispositivos que podem ter sido desativados ou restringidos no convidado (LAUREANO, 2006). 4.1 Ensino A utilização de VM facilita o processo de ensino, pois nos casos de treinamento para administração de sistemas, necessita de equipamentos e estruturas específicas, o que eleva o custo, caso sejam utilizadas máquinas reais. Em laboratórios de informática utilizados por várias turmas em uma unidade de ensino, permite que cada aluno disponha de sua VM reduzindo assim o esforço em manter os equipamentos, ainda, poderão ter-se diversas aplicações, ou diversos laboratórios, sobre um único hardware (LAUREANO, 2006). As crescentes demandas nos cursos de TIC causam um esgotamento dos recursos específicos em laboratórios utilizados para ministrar aulas de TIC, então com a utilização de VM pode-se promover disponibilidade de recursos para que aulas sejam viabilizadas com facilidade, entendimento e portabilidade dos recursos didáticos, dependendo do VMM 56 utilizado. Possibilita, ainda, com a portabilidade que os estudantes desenvolvam suas atividades em outros locais que não o laboratório, como em suas casas (AGREN, 1999). 4.2 Consolidação de servidores Com a consolidação de servidores procura-se obter melhor eficiência do hardware utilizado no parque tecnológico de uma organização, consolidar significa possuir um ou um grupo de equipamentos que terão VMM instalados e VM trabalhando como se fossem servidores em equipamentos distintos, criando a ilusão de que se têm mais servidores do que realmente existem (BAIN; DIPPOLD; WATTS, 2004). A consolidação, com a utilização de VM, aumenta a produtividade do administrador do sistema, que pode utilizar-se de ferramentas fornecidas pelos fabricantes das soluções de virtualização, as quais geralmente integram-se com as plataformas de SO padrão de mercado e seus serviços como o AD permitindo automação de tarefas rotineiras e administração remota do VMM (BAIN; DIPPOLD; WATTS, 2004). Ambientes de teste e desenvolvimento de programas e serviços são beneficiados com a virtualização, pois para que um programa ou serviço possua alta qualidade é necessário um ambiente de testes tão idêntico quanto possível ao do ambiente de produção, porém não se pode utilizar o ambiente de produção devido a possíveis erros que podem gerar custos para a organização, logo uma VM é criada para trabalhar lado a lado da aplicação em produção, utilizando-se o mesmo hardware, permitindo consolidar o ambiente de teste e o de produção minimizando gastos e tornando o ambiente de testes tão parecido ao de produção quanto seja possível (BAIN; DIPPOLD; WATTS, 2004). Elencando as vantagens da consolidação, tem-se (LAUREANO, 2006): Redução do custo total de propriedade: relativo à diminuição de equipamentos; 57 Redução da complexidade e melhor gerenciamento: permite gerenciar um único ponto, diminuindo a complexidade da manutenção dos servidores; Redução do número de servidores: utilização de servidores de maior capacidade e com mais recursos para evitar paradas do equipamento e com isso elimina-se os equipamentos de pequeno porte; Redução dos custos de hardware e software: redução dos custos de manutenção com esses componentes; Redução de imóveis e instalações: utiliza-se menor quantidade de espaço físico com a consolidação de servidores; Redução no consumo de energia: com menor número de equipamentos e utilização de equipamentos modernos o consumo a energia elétrica é reduzido, além de a demanda por refrigeração ser reduzida economizando-se com a energia utilizada para a refrigeração dos equipamentos; Aumento da segurança: com a centralização a administração do ambiente torna-se mais segura; Melhoria no serviço ao cliente: são estabelecidos níveis de serviço devido a melhoria da administração; Aumento na utilização da capacidade dos servidores: com uso de equipamentos de maior capacidade é possível administrá-los de forma a utilizar todos os recursos disponíveis pela maior quantidade de tempo possível. 4.3 Migração de aplicações legadas e plano de contingência Mais uma forma de utilizar-se da virtualização é a migração de aplicações legadas, pois pode ser necessário manter um sistema computacional antigo em funcionamento devido às imposições do negócio e esse sistema pode operar em hardware e SO obsoletos aumentando as chances de uma parada nos serviços gerando custos para a organização, então 58 pode-se migrar esse SO antigo com a aplicação suportada por ele para uma VM, executando em hardware robusto e moderno garantindo assim a continuidade do negócio. Os fabricantes de VMM costumam fornecer ferramentas que auxiliam na importação dos sistemas legados verificando sua viabilidade e auxiliando o profissional responsável no procedimento de importação (BAIN; DIPPOLD; WATTS, 2004). Com o objetivo de manter o negócio da organização disponível a virtualização pode auxiliar no plano de contingência, um plano para respostas de emergência, operações de cópia de segurança dos dados vitais dos sistemas e restauração dos mesmos. Tal plano faz parte do programa de segurança assegurando a disponibilidade de recursos de sistemas fundamentais facilitando a continuidade do negócio após algum incidente nos sistemas computacionais, também conhecido com desastre (LAUREANO, 2006). Com a utilização de VM é possível criar redundância de serviços a custos aceitáveis além do que um servidor virtual pode ser restaurado rapidamente devido à possibilidade de se efetuar cópia de segurança das VMs. Uma VM geralmente é um arquivo que é interpretado pelo VMM, logo o arquivo pode ser copiado e posteriormente restaurado, proporcionando um rápido retorno do serviço (LAUREANO, 2006). 59 5 ESTUDO DE CASO Com a finalidade de aplicar os conceitos teóricos vindos do embasamento apresentado neste trabalho, optou-se por um estudo de caso aproveitando-se do momento tecnológico atual em que a menina dos olhos, daqueles que lidam com Tecnologia da Informação e Comunicação (TIC), é a virtualização, seja de servidores, dispositivos de armazenamento ou redes. 5.1 Local O local de execução do trabalho foi a Faculdade de Tecnologia da Zona Leste (FATEC-ZL) situada na cidade de São Paulo, capital do estado de São Paulo, na região leste da cidade, no endereço Rua Sonho Gaúcho, 641 e Avenida Águia de Haia, 2633, bairro Cidade Antonio Estevão de Carvalho. A organização da equipe de TIC é fundamentada em um docente, o coordenador de TIC, e estagiários, em número de treze, revezando-se em três turnos e colaboradores à título de voluntários que variam em número. O coordenador do Departamento de Tecnologia da Informação (DTI) atualmente é o professor Mestre Celio Daroncho o qual permitiu e apoiou este estudo de caso. Toda a infra-estrutura documental da administração da FATEC-ZL, como secretaria, coordenações de curso, diretoria e biblioteca, utilizam-se de computadores e mantêm seus arquivos armazenados centralmente nos dispositivos de armazenamento do DTI e efetivamente dependem do correto funcionamentos dos sistemas, muitas vezes é necessário a intervenção do coordenador para efetuar reparo ou configuração, mas ele nem sempre se encontra fisicamente na FATEC-ZL. 60 Valendo-se da infra-estrutura de equipamentos que se encontra na unidade observouse que era necessário e possível dispor de mais serviços aos usuários e prover o gerenciamento da estrutura mesmo não estando fisicamente na unidade com a aplicação de técnicas de virtualização de hardware, especificamente virtualizando servidores. Dessa forma espera-se que seja executado o devido suporte a infra-estrutura, com auxílio de uma VPN, mesmo não estando na unidade e que novos serviços sejam disponibilizados para os usuários sem investimentos em equipamentos, programas e energia, ou seja, sem aumentar o custo de operação do DTI. 5.2 Métodos e Procedimentos Para que seja configurada a VPN é necessário que alguns outros serviços estejam disponíveis na rede sendo: Serviço de diretório; DNS; DHCP; Radius; Servidor VPN. Na FATEC-ZL já existe uma infra-estrutura de serviços de rede, implantada e funcionando, que conta com o AD, DNS, DHCP e uma ligação de internet com capacidades de provedor de serviços de internet contando com endereços IP válidos e disponibilidade de prover serviços com páginas de internet e a VPN. Faltam, na infra-estrutura existente, os serviços específicos para uma VPN. Escolheu-se a plataforma Microsoft para prover os serviços faltantes devido à melhor integração com os serviços já existentes, todos em plataforma Microsoft. Tomou-se um equipamento servidor, marca Itautec e modelo MX-201visto na figura 10, disponível na FATEC-ZL em que foi instalado o VMWare ESXi 4.0 e como procedimento de boa prática foi verificado se o hypervisor é compatível com o hardware do 61 servidor evitando assim problemas de instabilidade ou mau funcionamento posteriormente. Procede-se a instalação do hypervisor da VMWare apenas seguindo pelas telas de configuração apresentadas e fornecendo os dados solicitados pelo assistente de instalação. Figura 10 – Servidor Itautec MX-201. Para a gerência do virtualizador é necessário um computador em que será instalado o cliente do VMWare ESXi 4.0 chamado VSphere Client o qual permite que sejam criadas, alteradas e excluídas máquinas virtuais, permite gerir e monitorar o servidor físico, gerenciar usuários e suas permissões de acesso. Para a instalação deve-se indicar em um navegador de internet o endereço IP do hypervisor, logo será exibida uma página onde será possível obter o programa. A instalação é simples, não requer nenhuma configuração, somente avançar pelas telas que são exibidas. Ao final um ícone é exibido na tela permitindo acesso ao programa. Para acessar a interface de gerenciamento é solicitada a senha que foi criada na instalação do servidor, após isso é permitido o acesso. O VMWare ESXi dispõe da capacidade de criar e gerir redes virtuais, ou seja, de maneira totalmente lógica é possível montar uma rede que execute as mesmas funções que uma rede real, porém sem a necessidade de configurar ativos de rede, cabeamento ou manobras de cabos em painéis de conexão, tal funcionalidade vem de encontro a necessidade desse estudo de caso, pois teremos que ligar o servidor de VPN em duas redes distintas, uma 62 com IP válido na internet e outra com IP não válido, no caso o IP da rede local da FATECZL. É necessário acrescentar uma rede virtual para utilização com a conexão de IP público, para isso o VSphere Client fornece uma interface, encontrada opções de hardware e software, na qual é possível a configuração da nova rede virtual, deve-se fornecer um nome para a rede, que chamaremos de Rede Pública para facilitar a gerência das redes virtuais. Inicialmente foram criadas duas máquinas virtuais, sendo uma para o servidor Radius e outra para o servidor VPN, com sistema operacional Microsoft Windows Server 2003 Enterprise, a escolha desse sistema deu-se, como já foi dito, pois toda a infra-estrutura da unidade utilizar-se de servidores com SO Microsoft. Tomou-se o cuidado de na criação da VM para servidor VPN acrescentar-se uma placa de rede virtual extra, pois são necessárias duas placas de rede nesse servidor. Durante a criação das VMs no VSphere Client optou-se por máquinas do tipo Typical, as VMs foram nomeadas para identificá-las no hypervisor, facilitando com isso o gerenciamento no VSphere Client, mantivemos os valores padrão de disco rígido, 8 Gigabytes, evitando-se desperdício do espaço em disco rígido. O procedimento de criação das VMs foi executado duas vezes, uma para o servidor VPN e outra para o servidor Radius, porém com uma diferença, no Radius não é necessário editar as configurações da VM para adicionar placa de rede já que esse pode desempenhar suas funções com uma apenas. É necessário informar nas configurações das VM a qual rede elas estarão conectadas, por padrão elas estarão conectadas na rede criada pelo hypervisor no momento da instalação deste. Para que seja configurada a rede é necessário editar as propriedades da VM que abrigará o servidor de VPN e conectar uma de suas placas de rede na Rede Pública criada anteriormente. Instalados os SO, foi instalado o pacote R2 que traz benefícios como novos serviços de rede como filtro de arquivos e novos consoles de gerenciamento, a instalação do R2 foi efetivada para manter o padrão de SO dos servidores da unidade os quais todos possuem o R2 instalado. Foram atualizados os SO com uso do Windows Update, site da fabricante que detecta e fornece as atualizações de segurança necessárias via internet, e protegidos com software anti-vírus corporativo da marca Panda, já presente na infra-estrutura da FATEC-ZL. 63 Após isso, e com base na literatura de apoio do fabricante How VPN Works Microsoft (2003) procedeu-se a instalação do servidor de VPN. Apenas para esclarecimento as operações de configuração descritas devem ser executadas com usuário membro do grupo de administradores. Inicialmente optou-se pela instalação de uma VPN tipo PPTP devido à facilidade com que é configurada apesar da baixa segurança, mas não nula, pois conta com criptografia de 128 bits caso configurada para trabalhar com MS-CHAP v2 e MPPE. Definiu-se um nome e um IP válido na internet para o servidor de VPN. Nesse servidor foi necessário configurar o Routing and Remote Access Server (RRAS – Servidor de Roteamento e Acesso Remoto) não sendo necessário instalar o mesmo, pois já vem instalado por padrão no SO. Acessando o console do RRAS foi configurado o servidor para permitir conexões VPN com autenticação via servidor Radius e configurado o redirecionador de DHCP para fornecer endereços IPs da rede interna aos usuários que se conectam via VPN. Faz-se necessário alterar a ordem em que as conexões de rede são acessadas pelos serviços de rede no SO a fim de permitir o bom funcionamento do servidor de VPN. No servidor Radius definiu-se um nome e endereço IP da rede interna. Esse servidor foi ingressado no AD com a finalidade de proporcionar integração do Radius com o AD. A Microsoft denominou seu servidor Radius de Serviço de autenticação da Internet e para que possa ser utilizado deve ser instalado no SO como um componente do mesmo. No console do Serviço de autenticação da Internet, foi configurado novo cliente Radius, o servidor de VPN, nessa etapa é configurada uma senha entre o Radius e o servidor VPN para que estes possam se comunicar. Deve-se registrar o Radius no AD permitindo assim que ele acesse as informações dos objetos do AD. Para que seja simplificada a gestão dos usuários que podem utilizar-se da VPN cria-se uma diretiva de acesso remoto permitindo que apenas usuários pertencentes a um grupo específico possam utilizar-se da VPN, dessa forma foi criado um grupo no AD para tal finalidade, ainda foi configurada criptografia máxima (MPPE de 128 bits ou DES triplo IPSEC) com a finalidade de aumentar a segurança criptográfica da conexão. 64 Após configurada a VPN para acesso remoto à FATEC-ZL acrescentou-se no servidor DNS o registro para que seja resolvido o FQDN do servidor VPN em IP com a finalidade de facilitar a configuração dos clientes remotos, como Microsoft Windows XP. 5.3 Análise Efetivamente o custo de implantação da VPN na FATEC-ZL foi nulo, pois em termos de equipamento não foi adquirido nenhum novo para prover o serviço, em software o método de licenciamento proporcionado pela Microsoft permitiu que esse ensaio ocorresse sem nenhum custo e em mão-de-obra nada foi gasto, já que foi efetuada por aluno da unidade. Para precificar o investimento que foi feito considerando que não existissem os recursos que foram utilizados e compará-los com os existentes, para isso foram feitos alguns orçamentos e cálculos a se demonstrarem. Serão considerados, como visto na tabela 1, em termos de custo equipamentos capazes de executar minimamente as funções de servidor VPN e Radius, com SO incluído e sistemas de fornecimento de energia ininterrupta, além do sistema condicionador de ar. Os orçamentos encontram-se em anexo apropriado para apreciação. Tabela 1 – Valores dos equipamentos compatíveis com as funções de servidor VPN e Radius Equipamento Quantidade Preço Unitário Preço Total Servidor Dell PowerEdge T105 para Radius 01 R$4.275,00 R$4.275,00 Servidor Dell PowerEdge T105 para VPN 01 R$4.374,00 R$4.374,00 Switch 24 Portas 3CR17333-91 3COM 02 R$1.722,00 R$3.444,00 Condicionado de ar 24000 BTU 01 R$2.394,00 R$2.394,00 Total Orçamentos efetuados encontram-se no Anexo A R$14.487,00 65 No servidor Itautec MX-201 utilizado na FATEC-ZL foi pago à época de sua compra aproximadamente R$14.000,00, já incluídos todos os acessórios como teclado, mouse, monitor, conjunto de montagem em armário e SO, notadamente a categoria de equipamento não é compatível como o equipamentos Dell PowerEdge T105, pois este é desenhado para pequenas empresas e não dispõe de montagem em armário. Pode-se analisar a tabela 2 que discorre sobre as características dos servidores utilizados. Tabela 2 – Comparação dos recursos dos servidores Itautec MX-201 e Dell PowerEdge T105 Característica Itautec MX-201 Dell PowerEdge T105 Fonte redundante Sim Não Número de processadores 02 01 Sim Não 02 01 Sim Não Classe do Servidor Médias e Grandes Empresas Pequenas e Médias Empresas Montagem em armário de telecomunicações Sim Não Consumo elétrico 760 Watts 305 Watts Oito Quatro 08 02 Sim Sim 06 04 Sistema de disco de alto desempenho Número de Placas de Rede incluídas na placa principal Processador desenvolvido para altas cargas de trabalho corporativo Quantidade de soquetes para memória RAM Quantidade de baias para disco rígido Possibilita dispositivo de cópia de segurança interno Quantidade de soquetes para placas internas de expansão Ficha técnica dos equipamentos encontra-se no Anexo A. O MX-201 possui três fontes redundantes, o T105 apenas uma fonte não redundante, que possibilitam conexão em diversas origens de energia elétrica, como rede comercial, gerador de energia e Uninterruptible Power Supply (UPS – Fonte de Energia Ininterrupta), possibilitando que sua operação não seja interrompida por uma falha de alimentação, além 66 disso, cada uma das fontes pode ser substituída com o equipamento em funcionamento não prejudicando o fornecimento dos serviços. Conta, o MX-201, com dois processadores, o T105 apenas um, Intel Xeon 5310 já com tecnologia VT-x sendo apropriados para virtualização, conta com sistema de controladora de disco rígido e discos rígidos de alta performance, permitindo que seus discos sejam substituídos enquanto o equipamento está em funcionamento não interrompendo as atividades dos usuários que utilizam o serviço. No período de execução desse trabalho houve a necessidade de a FATEC-ZL montar seu próprio servidor de páginas de internet, tal estrutura foi composta por dois servidores DNS, um servidor de conteúdo de internet e um servidor de banco de dados, todos eles foram criados em VM com SO Windows Server 2003 Entreprise no hardware alvo desse estudo de caso, o Itautec MX-201. Avaliando-se a tabela 3 e o fato de utilizar-se o mesmo servidor, MX-201, com seis VM pode-se concluir que é mais vantajoso para a continuidade do negócio da FATEC-ZL utilizar um servidor médio como o MX-201. Tabela 3 – Custo dos servidores Dell PowerEdge T105 para substituição do Itautec MX-201 Equipamento Quantidade Preço Unitário Preço Total Servidor Dell PowerEdge T105 para Radius 01 R$4.275,00 R$4.275,00 Servidor Dell PowerEdge T105 para VPN 01 R$4.374,00 R$4.374,00 Servidor Dell PowerEdge T105 para DNS 02 R$4.275,00 R$8.550,00 01 R$4.275,00 R$4.275,00 01 R$4.275,00 R$4.275,00 Switch 24 Portas 3CR17333-91 3COM 02 R$1.722,00 R$3.444,00 Condicionado de ar 24000 BTU 01 R$2.394,00 R$2.394,00 Servidor Dell PowerEdge T105 para conteúdo de internet Servidor Dell PowerEdge T105 para banco de dados Total R$31.587,00 Ficha técnica dos equipamentos encontra-se na totalidade no Anexo A. Sob o ponto de vista energético, observando-se a tabela 4, pode-se calcular apenas a energia consumida por seis servidores T105 comparando tal consumo com o do MX-201. 67 Tabela 4 – Comparação do consumo energético dos servidores MX-201 e T105 Consumo Quantidade Consumo Equipamento Nominal (W) (unidades) Total (W) Servidor Dell PowerEdge T105 305 06 1830 Servidor Itautec MX-201 750 01 750 Ficha técnica dos equipamentos encontra-se na totalidade no Anexo A. Pode-se concluir, pela tabela 4, que não é interessante sob o ponto de vista energético manter servidores separados, reais, para as aplicações. Sob o ponto de vista econômico, tabela 3, é muito mais custosa a compra de diversos servidores para cada aplicação, não sendo interessante para o negócio. 68 6 CONSIDERAÇÕES FINAIS Pôde-se observar que a utilização de virtualização na infra-estrutura de sistemas de informação eletrônico proporciona uma economia de recursos financeiros, não de maneira imediata, pois como visto no estudo de caso, é vantajoso adquirir equipamentos de maior capacidade ao invés dos de menor capacidade visto que com isso obtêm-se vantagens tais como utilização de um equipamento o qual fornece recursos importantes como sistema de disco rígido de alto desempenho, maior número de processadores, processadores desenvolvidos para altas cargas de trabalho em ambiente profissional, equipamento adequado para instalação em armário, gerando economia de espaço, e maior possibilidade de expansão de hardware futura. Percebe-se que um equipamento de maior capacidade é economicamente mais vantajoso já que seu custo é inferior à metade do custo total de equipamentos de menor capacidade, como visto na tabela 3, sendo assim é gerada uma economia que pode ser utilizada na aquisição de equipamentos necessários como condicionador de ar e dispositivos de rede. Além disso, existem ganhos em relação ao consumo de energia elétrica, pois um único equipamento consome uma quantidade menor de energia, menos que a metade como visto na tabela 4, se comparado ao consumo total de equipamentos de menor capacidade. Não se pode deixar de notar que uma quantidade de energia é necessária para refrigerar os sistemas, conforme tabela 4, e que havendo menor consumo haverá menor dissipação de energia térmica no ambiente e com isso uma menor quantidade de energia será gasta com sistemas de refrigeração. Deve-se considerar que a montagem em armário, proporcionada por equipamento de maior capacidade, reduz à ocupação de espaço físico obtendo-se também uma melhor organização dos equipamentos, tais fatos podem valer-se de economia monetária em relação ao espaço para acomodação dos equipamentos e na melhoria da refrigeração dos mesmos já 69 que havendo uma menor quantidade de equipamentos a eficiência da refrigeração é maximizada, pois não se atrapalha o fluxo de ar por entre os equipamentos. Visto que existe uma menor demanda por recursos energéticos, pode-se dizer que a virtualização é uma tecnologia que se alinha com a preservação dos recursos naturais do planeta, tão em voga nos mais variados meios de comunicação, bem como preserva os recursos financeiros da organização. A virtualização mostrou-se escalar no estudo de caso, quando inicialmente se dispõe de apenas duas VMs, e por uma necessidade organizacional foram criadas outras quatro, o fato de ser uma tecnologia flexível no sentido de facilmente podermos aumentar a quantidade de VMs, a sua cópia de segurança ser facilitada pelo fato de ser a cópia de um conjunto de arquivos, sua portabilidade e a gestão centralizada dos recursos vem ao encontro do melhor aproveitamento dos recursos, tanto de equipamentos, quanto humanos quanto financeiros. 70 REFERÊNCIAS AGREN, O. Teaching Computer Concepts Using Virtual Machines. SIGCSE Bulletin, 31, no 2 , jun. 1999. 84-85. Disponível em: <http://portal.acm.org/citation.cfm?id=571578>. Acesso em: 31 out. 2009. BAIN, K.; DIPPOLD, M.; WATTS, D. Introducing Microsoft Virtual Server 2005 on IBM eserver xSeries Servers, p. 98, nov. 2004. Disponível em: <http://www.redbooks.ibm.com/redpapers/pdfs/redp3912.pdf>. Acesso em: 31 out. 2009. BITTENCOURT, R. A. Montagem de computadores e hardware. 5 ed. ed. Rio de Janeiro: Brasport, 2006. 276 p. DEITEL, H. M.; DEITEL, P. J.; CHOFFNES, D. R. Sistemas operacionais. 3. ed. São Paulo: Pearson Prentice Hall, 2005. FERRI, E. H. H. Introdução 80386. 10. ed. São Paulo: Érica, 1990. INTEL CORPORATION. Advanced processor documentation. MAD Max - Extreme Computing With Micro Channel (*not* affiliated with IBM), 1995. Disponível em: <http://www.tampham.com/madmax/files/cpudata/23163011.pdf>. Acesso em: 08 set. 2009. INTEL CORPORATION. Intel® 64 and IA-32 architectures software developer's manuals. Intel corpotarion, 2009. Disponível em: <http://www.intel.com/Assets/PDF/manual/253665.pdf>. Acesso em: 25 out. 2009. INTEL CORPORATION. INTEL386 DX MICROPROCESSOR 32-BIT CHMOS MICROPROCESSOR WITH INTEGRATED MEMORY MANAGEMENT. Disponível em: <http://www.tampham.com/madmax/files/cpudata/23163011.pdf>. Acesso em: 08 set. 2009. KING, S. T.; CHEN, P. M. Operating System Extensions to Support Host Based Virtual Machines. Techical Report CSE-TR-465-02, Michigan, 2002. KING, S. T.; DUNLAP, G. W.; CHEN, P. M. Operating system support for virtual machines. Proceedings of the 2003 USENIX Techinical Conference, jun. 2003. Disponível em: <http://www.eecs.umich.edu/virtual/papers/king03.pdf>. Acesso em: 10 out. 2009. LAUREANO, M. Máquinas virtuais e emuladores: conceitos, técnicas e aplicações. São Paulo: Novatec Editora, 2006. 184 p. 71 MACKIN, J. C.; MCLEAN, I. Implementing, managing, and maintaining a Microsoft Windows Server 2003 network infrastructure. 2. ed. Redmond: Microsoft Press, 2006. MALLACH, E. G. Emulator Architecture. Computer, v. 8, no. 8, p. 24-32, ago. 1975. doi:10.1109/C-M.1975.219049. MICROSOFT CORPORATION. How VPN Works. Microsoft TechNet, 2003. Disponível em: <http://technet.microsoft.com/en-us/library/cc779919>. Acesso em: 18 outubro 2009. MICROSOFT CORPORATION. Active Directory architecture. Microsoft TechNet, 2009. Disponível em: <http://technet.microsoft.com/en-us/library/bb727030>. Acesso em: 18 outubro 2009. MINASI, M. et al. Dominando o Microsoft Windows 2000 Server. São Paulo: Pearson Education do Brasil, 2001. NEIGER, G. et al. Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization. Intel Techology Journal, 10, no 3, 10 ago. 2006. 167-178. Disponível em: <http://download.intel.com/technology/itj/2006/v10i3/v10-i3-art01.pdf>. Acesso em: 31 out. 2009. POPEK, G. J.; GOLDBERG, R. P. Formal requirements for virtualizable third generation architectures, New York, v. 17, p. 412-421, jul 1974. Disponível em: <http://delivery.acm.org/10.1145/370000/361073/p412popek.pdf?key1=361073&key2=8288996521&coll=GUIDE&dl=GUIDE&CFID=59227845 &CFTOKEN=85978066>. Acesso em: 31 out 2009. SILVA, L. S. D. Virtual private network - VPN. 2. ed. São Paulo: Novatec, 2005. SMITH, J. E.; NAIR, R. The Architecture of Virtual Machines. Computer, v. 38, no 5, p. 3238, mai 2005. Disponível em: <http://www.computer.org/portal/web/csdl/abs/mags/co/2005/05/r5032abs.htm>. Acesso em: 31 out. 2009. SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson Addison-Wesley, 2007. STANEK, W. R. Using Active Directory service. Microsoft TechNet, 2009. Disponível em: <http://technet.microsoft.com/en-us/library/bb726976>. Acesso em: 18 outubro 2009. SUN MICROSYSTEMS. x86 assembly language reference manual. Sun microsystems, Santa Clara, p. 86, jan. 2005. Disponível em: <http://dlc.sun.com/pdf/817-5477/8175477.pdf>. Acesso em: 25 out. 2009. 72 TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais: projeto e implementação. 2. ed. Porto Alegre: Bookman, 2000. TODD, C.; JOHNSON JR, N. L. Rede segura Windows 2000 Server. Rio de Janeiro: Alta Books, 2002. VMWARE. Understanding Full Virtualization, Paravirtualization, and Hardware Assit. VMWare, 2007. Disponível em: <http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf>. Acesso em: 31 out. 2009. ZACKER, C.; STEVEN, A. Planning and maintaining a Microsoft Windows Server 2003 network infrastructure. 2. ed. Redmond: Microsoft Press, 2006. 73 GLOSSÁRIO Árvore hierárquica É a conexão de registros em uma estrutura de dados em árvore através de ligações de modo que cada registro tenha apenas um possuidor. Assembly Linguagem de montagem, notação legível de um código de máquina, possibilitando o entendimento por parte dos seres humanos. Backup Cópia de segurança. Bit Unidade mínima de um sistema digital a qual pode assumir dois valores, geralmente zero ou um. Byte Conjunto de oito bits que constitui unidade básica de informação. Cache Técnica que copia parte das informações a que se refere um determinado processo em um dispositivo de armazenamento, memória, mais rápido que a memória principal. Ciclo de relógio Tempo do computador, medido em ciclos, que se refere a uma oscilação completa de um sinal elétrico, provindo do gerador de relógio do sistema, que estabelece a cadência do mesmo, determinando a freqüência de funcionamento deste, comumente medida em ciclos por segundo ou Hertz (Hz). Core 2 Duo Modelo de processador da Intel, atualmente última geração. Dell PowerEdge T105 Equipamento da marca Dell modelo PowerEdge T105, desenvolvido para prover serviços em uma rede de computadores DNS Resolver O mesmo que cliente do DNS. Drivers Programas de computador, normalmente fornecido pelo fabricante do dispositivo, necessário para que um dispositivo físico seja suportado pelo sistema operacional. Emulador Programa que permite habilitar o sistema computacional a executar programas desenvolvidos para outros sistemas computacionais. Ethernet Padrão de rede normatizado pelo Instituto dos Engenheiros EletroEletrônicos, localizado nos Estados Unidos da América. 74 Firmware Instruções executáveis armazenadas em memória persistente ligada a um dispositivo, programado com micro-programação, camada de programação abaixo da linguagem de máquina do computador. Normalmente contém instruções simples, fundamentais, necessárias para implementar operações em linguagem de máquina. Gerador de Relógio Dispositivo físico, circuito, que determina a freqüência de funcionamento do computador. Gigabyte Conjunto de 1024 Megabytes. Hardware Consiste nos dispositivos físicos do computador ou equipamento. Hash A partir de uma mensagem, texto ou senhas geralmente, de entrada, que é processada por um algoritmo matemático, produz na saída uma mensagem única, como uma impressão digital que corresponde à mensagem de entrada. hexadecimal Sistema de numeração que representa números em base 16. Hub Equipamento de rede que possui duas ou mais portas e repete os sinais elétricos que recebe em qualquer porta para todas as demais portas. Utilizado para interligar computadores em rede. Itautec MX-201 Equipamento da marca Itautec modelo MX-201, desenvolvido para prover serviços em uma rede de computadores. Jail Mecanismo de virtualização, interno ao SO, geralmente FreeBSD, que permite a divisão deste em mini sistemas chamados Jaula. Kilobyte Conjunto de 1024 bytes. Latência Demora. Mainframe Sistema Computacional de Grande Porte Man-in-the-midle Tipo de interceptação de comunicação em que duas partes acreditam estarem se comunicando somente uma com a outra, mas na verdade há um ouvinte silencioso intermediário na comunicação. Máquina Virtual Duplicação isolada e eficiente de uma máquina real normalmente 75 proporcionada por um monitor de máquina virtual (VMM). Megabyte Conjunto de 1024 Kilobytes. Memória virtual Área de memória com endereços virtuais permitindo assim que programas se refiram a endereços memória não correspondentes ao limitado conjunto de endereços físicos disponíveis. Modo protegido Proteção de memória que impede processos de acessarem a memória que não lhes foi designada. Multiprogramação Comutação rápida do processador entre os programas em execução visando o compartilhamento de recursos do computador dando a impressão de que os programas são executados todos ao mesmo tempo. Paravirtualização Técnica onde o sistema a ser virtualizado sofre modificações para que a interação com o monitor de máquina virtual seja mais eficiente. Processador virtual Duplicação isolada e eficiente do processador real destinada exclusivamente para um determinado processo em execução. Tempo de uso do processador real que é destinado a um processo. Roteador Equipamento de rede que permite a interconexão entre redes distintas, protocolos de comunicação distintos, meios físicos de interconexão distintos, não necessariamente efetua todas essas funções de uma só vez ou em um único roteador. Sandbox Caixa de Areia, mecanismo para separação de programas em execução que provê um ambiente controlado e monitorado, por um VMM por exemplo. Software Programa de computador juntamente com sua documentação. Switch Equipamento de rede, evolução do Hub, que interpreta os sinais recebidos nas portas e conecta diretamente a porta de origem na de destino. Threads Subconjunto dos recursos contidos em um processo, podem executar um conjunto de instruções independentes de outros processo ou threads. 76 Tradução binária Técnica em que o sistema pode, durante a execução do programa, adequar o código gerado para que reflita o sistema original para o qual o programa foi desenvolvido originalmente, visando maior eficiência ou otimização adaptável. User-Mode Linux Monitor de máquina virtual (VMM) criado com base no Sistema Operacional Linux e com o objetivo de executar Linux em máquina virtual. Virtualização total Técnica de virtualização em que uma estrutura completa de hardware é virtualizada não necessitando nenhuma alteração do sistema a ser virtualizado. VMWare Empresa que produz e comercializa monitores de máquinas virtuais (VMM). VMWare ESXi 4.0 Programa de computador da empresa VMWare, VMM tipo I. VSphere Client Programa cliente do VMWare ESXi 4.0 que permite o gerenciamento do VMM. Windows Update Sistema fornecido pela Microsoft, através da internet, que verifica o SO e fornece atualizações para o mesmo. 77 ANEXO A – ORÇAMENTOS E ESPECIFICAÇÕES TÉCNICAS Especificações técnicas do servidor Dell PorwerEdger T105 obtido no site <http://www.dell.com.br > acesso em 08 nov. 2009. 78 79 80 Orçamento de preço do servidor PowetEdge T105 utilizado para servidor VPN obtido no simulador disponível no site <http://www.dell.com.br> acesso em 08 nov. 2009. 81 82 Orçamento de preço do servidor PowetEdge T105 utilizado para servidor Radius obtido no simulador disponível no site <http://www.dell.com.br> acesso em 08 nov. 2009. . 83 84 Orçamento de preço do ativo de <http://www.ccanetwork.com.br> acesso em 08 nov. 2009. rede disponível no site 85 86 Orçamento de preço do condicionador <http://www.ambientair.com.br> acesso em 08 nov. 2009. de ar disponível no site 87