ver/abrir - Repositório do Departamento de Ciência da Computação
Transcrição
ver/abrir - Repositório do Departamento de Ciência da Computação
Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação Desenvolvimento e Implementação de um Kit Portátil para Gerência de Redes SNMP usando Software Livre Felipe Valdez Rangel Foscaches Monograa apresentada como requisito parcial para conclusão do Curso de Computação Licenciatura Orientador Prof. MSc. João José Costa Gondim Brasília 2011 Universidade de Brasília UnB Instituto de Ciências Exatas Departamento de Ciência da Computação Curso de Computação Licenciatura Coordenador: Prof. Dra. Carla Denise Castanho Banca examinadora composta por: Prof. MSc. João José Costa Gondim (Orientador) CIC/UnB Prof. Dr. Jorge Henrique Cabral Fernandes CIC/UnB MSc. Dino Macedo do Amaral CIC/UnB CIP Catalogação Internacional na Publicação Foscaches, Felipe Valdez Rangel. Desenvolvimento e Implementação de um Kit Portátil para Gerência de Redes SNMP usando Software Livre / Felipe Valdez Rangel Foscaches. Brasília : UnB, 2011. 89 p. : il. ; 29,5 cm. Monograa (Graduação) Universidade de Brasília, Brasília, 2011. 1. gerência, 2. redes, 3. monitoração, 4. cacti CDU 004.4 Endereço: Universidade de Brasília Campus Universitário Darcy Ribeiro Asa Norte CEP 70910-900 BrasíliaDF Brasil Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação Desenvolvimento e Implementação de um Kit Portátil para Gerência de Redes SNMP usando Software Livre Felipe Valdez Rangel Foscaches Monograa apresentada como requisito parcial para conclusão do Curso de Computação Licenciatura Prof. MSc. João José Costa Gondim (Orientador) CIC/UnB Prof. Dr. Jorge Henrique Cabral Fernandes MSc. Dino Macedo do Amaral CIC/UnB CIC/UnB Prof. Dra. Carla Denise Castanho Coordenador do Curso de Computação Licenciatura Brasília, 10 de fevereiro de 2011 Dedicatória Dedico este projeto à minha família que tanto me apoiou e incentivou a conclusão deste. Especialmente à minha esposa Fernanda e ao meu lho Lucas que tiveram que ceder momentos preciosos para que este documento pudesse ser desenvolvido e nalizado no prazo determinado. iv Agradecimentos Agradeço a todos que me ajudaram na elaboração deste projeto, em especial ao meu orientador e ao meu amigo Bertelli, além de outros amigos do trabalho, que contribuíram com seus conhecimentos e experiência no desenvolvimento do produto implementado neste, possibilitando uma base teórica e ferramentas para validar os conceitos e idéias vistos neste documento. v Resumo Este trabalho visa denir procedimentos e parâmetros mínimos para gerenciar hosts e objetos em uma rede TCP/IP, segundo a arquitetura SNMP, permitindo que usuários intermediários possam entender os principais processos e conceitos envolvidos no gerenciamento de redes, e para que possam validar essas informações de forma prática, em um kit portátil provendo ferramentas de gerência de redes. Palavras-chave: gerência, redes, monitoração, cacti vi Abstract This paper aims to set minimum standards for procedures and manage hosts and any objects on a TCP/IP network, using SNMP management architecture, allowing that intermediate users can understand the main concepts and processes involved in managing networks, and so they can also validate these informations in a practical way, in a portable kit providing tools for network management. Keywords: management, networks, monitoring, cacti vii Sumário 1 Introdução 2 Gerenciamento de Redes 2.1 2.2 2.3 2.4 2.5 Visão Geral . . . . . . . . . . . . . . . . . . . . . Denição . . . . . . . . . . . . . . . . . . . . . . Estrutura de um Sistema de Gerência de Redes . Áreas Funcionais de Gerenciamento de Redes . . Alguns Processos e Métodos da Gerência de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 Visão Geral . . . . . . . . . . . . . . . . . . . . Simple Network Management Protocol (SNMP) 3.2.1 Versões SNMP . . . . . . . . . . . . . . 3.2.2 Comandos Básicos SNMP . . . . . . . . Management Information Base (MIB) . . . . . . Structure of Management Information (SMI) . . ASN.1 . . . . . . . . . . . . . . . . . . . . . . . Remote Network Monitoring (RMON) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NMS Cacti . . . . . . . . . . . . . . NMS Nagios . . . . . . . . . . . . . . NMS Zabbix . . . . . . . . . . . . . . Outras Ferramentas . . . . . . . . . . 4.4.1 XAMPP . . . . . . . . . . . . Comparando os NMS . . . . . . . . . Estrutura do Kit de Gerência Portátil 3 Protocolos e Padrões de Gerenciamento 3.3 3.4 3.5 3.6 4 NMS e Ferramentas de Rede 4.1 4.2 4.3 4.4 4.5 4.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Requisitos e métodos . . . . . . . . . . . . . Implementando o Kit de Gerência Portátil . 5.2.1 Congurando o Xampp no Pen Drive 5.2.2 Preparando o CACTI com o XAMPP 5.2.3 Congurando o MySQL para o Cacti 5.2.4 Congurando o Cacti . . . . . . . . . Fazendo upgrade no Cacti . . . . . . . . . . Instalando Plugins no Cacti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Implementação e Utilização do Kit 5.1 5.2 5.3 5.4 viii . . . . . . . . . . . . . . . . . . . . . 1 3 3 4 6 7 9 11 11 12 13 14 15 16 16 17 18 18 19 20 20 20 21 21 23 23 24 24 32 34 40 46 49 5.5 5.4.1 Alguns Plugins do Cacti . . . . . . . . . . Utilizando o Kit de Gerência Portátil na Prática . 5.5.1 Agendamento de tarefa e Poller . . . . . . 5.5.2 Congurando SNMP em estações Windows 5.5.3 Sugestões e Solução de Problemas . . . . . 6 Conclusão 6.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 52 59 64 68 70 Sugestões para Projetos Futuros . . . . . . . . . . . . . . . . . . . . . . . . 72 A Lista de RFC 73 Referências 75 A.1 Capítulo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 A.2 Capítulo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ix Lista de Figuras 2.1 2.2 Relacionamento entre gerência de Redes, Sistemas e Aplicações [2] . . . . . Elementos de um Sistema de Gerência de Redes . . . . . . . . . . . . . . . 3.1 3.2 Modelo de Comunicação por TCP/IP e o SNMP [8] . . . . . . . . . . . . . 13 Árvore de identicadores de objetos ASN.1 [5] . . . . . . . . . . . . . . . . 16 4.1 4.2 4.3 4.4 4.5 4.6 Logo Cacti . . . . . . . . . . . . . . . . . . . . . . Logo Nagios . . . . . . . . . . . . . . . . . . . . . Logo Zabbix . . . . . . . . . . . . . . . . . . . . . Logo Xampp . . . . . . . . . . . . . . . . . . . . . Comparação entre os NMS . . . . . . . . . . . . . Relacionamento entre o NMS Cacti e os elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gerenciáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 20 20 21 22 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 Diretório do Xampp na raiz do Pen Drive . . . . . Tela inicial do Setup do Xampp . . . . . . . . . . Denindo o diretório de instalação do Xampp . . Denindo o Xampp no modo portátil . . . . . . . Congurando o fuso horário do servidor . . . . . . Tela com as opções de conguração do Xampp . . Retirando o atributo Arquivo Morto do arquivo . Ajustando os parâmetros do php.ini . . . . . . . . Adicionando recursos no arquivo httpd.conf . . . Iniciando a instalação do NetSNMP . . . . . . . . Selecionando os componentes do NetSNMP . . . . Denindo o local de instalação . . . . . . . . . . . Denindo a opção de inicialização . . . . . . . . . Redenindo os paths do NetSNMP . . . . . . . . Extraindo o Cacti no diretório \xampp\htdocs . . Extraindo o pacote RRDTools . . . . . . . . . . . Utilizando o 'xampp-portchec' e o 'xampp-control' Vericando conitos com o 'xampp-portcheck' . . Acionando os módulos Apache e MySql . . . . . . Vericando o status dos componentes do Xampp . Criando o banco de dados do Cacti . . . . . . . . Arquivo com a base de dados do Cacti . . . . . . Implementando a base de dados do Cacti . . . . . Criando o usuário cactiuser . . . . . . . . . . . . Atribuindo os privilégios do cactiuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39 5.40 5.41 5.42 5.43 5.44 5.45 5.46 5.47 5.48 5.49 5.50 5.51 5.52 5.53 5.54 5.55 5.56 5.57 5.58 5.59 5.60 5.61 5.62 5.63 5.64 5.65 5.66 5.67 5.68 5.69 5.70 5.71 Vericando se o root possue senha . . . . . . . . . . . . . . . . Atribuindo senha ao root . . . . . . . . . . . . . . . . . . . . . Tela de acesso negado ao servidor MySql . . . . . . . . . . . . Inserindo credenciais de acesso no arquivo cong.inc.php . . . Acessando o phpMyAdmin com o cactiuser . . . . . . . . . . . Atribuindo acesso do Cacti ao banco de dados MySql . . . . . Guia de instalação do Cacti . . . . . . . . . . . . . . . . . . . Nova instalação do Cacti . . . . . . . . . . . . . . . . . . . . . Inserindo os paths dos aplicativos do Cacti . . . . . . . . . . . Primeiro login no Cacti . . . . . . . . . . . . . . . . . . . . . . Editando o arquivo de conguração do Spine . . . . . . . . . . Executando e testando o Spine . . . . . . . . . . . . . . . . . . Copiando a cygz.dll para o diretório do spine . . . . . . . . . . Disponibilizando uma arquivo fonte para o RDDTool . . . . . Redenindo os paths dos aplicativos do Cacti . . . . . . . . . Denindo os intervalos e processos do poller no Cacti . . . . . Extraindo os arquivos do Plugin Architecture (PIA . . . . . . Substituindo os arquivos do Cacti com o PIA . . . . . . . . . Redenindo as credenciais para acesso ao MySql do Cacti . . . Importando as tabelas do Pia para o MySql . . . . . . . . . . Denindo as opções de acesso do usuário ao sistema do Cacti . Extraindo os plugins no diretório \xampp\htdocs\cacti\plugins Instalando os plugins inseridos no Cacti . . . . . . . . . . . . . Inserindo os plugins do estilo antigo no arquivo . Instalando os plugins do estilo antigo no Cacti . . . . . . . . . Habilitando o acesso aos novos plugins instalados no Cacti . . Vericando as interfaces dos novos plugins . . . . . . . . . . . Vericando se os paths dos aplicativos do Cacti estão corretos Vericando e cadastrando novos hosts no Cacti . . . . . . . . Inserindo os parâmetro dos hosts no Cacti . . . . . . . . . . . Congurando hosts a serem gerenciados via SNMP . . . . . . Selecionando os objetos gerenciaveis do host . . . . . . . . . . Criando grácos para o host gerenciado . . . . . . . . . . . . . Inserindo o novo gráco na árvore organizacional . . . . . . . Congurando a árvore organizacional padrão . . . . . . . . . . Congurando as opções do gráco na árvore organizacional . . Visualizando o gráco no Cacti . . . . . . . . . . . . . . . . . Acionando as Tarefas Agendadas . . . . . . . . . . . . . . . . Assistente para criar uma tarefa agendada . . . . . . . . . . . Selecionando o programa para agendamento da tarefa . . . . . Denindo período de execução da tarefa . . . . . . . . . . . . Congurando a data de início da tarefa . . . . . . . . . . . . . Denindo os privilégios de execução da tarefa . . . . . . . . . Finalizando a criação da tarefa . . . . . . . . . . . . . . . . . Inserindo os parâmetros para execução da tarefa . . . . . . . . Denindo opções avançadas de agendamento . . . . . . . . . . cong.php xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 38 38 39 39 40 40 41 42 42 43 43 44 44 45 45 46 47 47 48 48 49 50 50 51 51 52 53 54 54 55 56 56 57 57 58 58 59 59 60 60 61 61 62 62 63 5.72 5.73 5.74 5.75 5.76 5.77 5.78 5.79 5.80 5.81 5.82 5.83 5.84 Denindo os privilégios de acesso datarefa . . . . . . . . . . Ativando e vericando a tarefa agendada . . . . . . . . . . . Adicionando componentes do Windows . . . . . . . . . . . . Assistente para adicionar componentes do Windows . . . . . Ferramentas de gerenciamento e monitoramento do Windows Instalando o SNMP no Windows . . . . . . . . . . . . . . . Acionando a janela de serviços do Windows . . . . . . . . . Lista de serviços do Windows . . . . . . . . . . . . . . . . . Propriedades do serviço SNMP . . . . . . . . . . . . . . . . Congurando a comunidade SNMP no Windows . . . . . . . Ativando e encerrando o serviNMP . . . . . . . . . . . . . . Vericando se o Spine está rodando corretamente . . . . . . Vericando se o RRDTool está gerando os grácos . . . . . . xii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 64 64 65 65 66 66 67 67 68 68 69 69 Lista de Tabelas 3.1 Tipos de SNMPv2-PDUs [5] . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.1 Lista de Parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 xiii Capítulo 1 Introdução Atualmente percebe-se que há uma innidade de fabricantes de hardware e software que são aglomerados em dispositivos únicos dispostos em datacenters, universidades e outras entidades distribuídas ao redor do mundo, onde cada um deles é destinado a oferecer algum serviço vital a sua organização. O patamar tecnológico atual permite que esses equipamentos interajam entre si, por meio de padrões internacionais e protocolos, formando grandes sistemas distribuídos ou centralizados, do qual a humanidade se faz cada vez mais dependente para armazenar e manipular dados, necessários a execução das mais diversas atividades corriqueiras. Tendo em vista essa diversidade de hardware e software que compõe a maioria dos ambientes de tecnologia, surgindo a cada dia novas tendências, há uma diculdade imensa em gerenciar, administrar e monitorar a totalidade de serviços e equipamentos que compõe a topologia de rede de uma organização, seja por falta de sistemas de gerenciamento adequados, seja pela falta de recursos humanos qualicados para utilizar esses sistemas e gerenciar a rede. É possível encontrar sistemas de gerenciamento proprietários muito abrangentes e ecazes que acompanham determinados fabricantes de equipamentos de conectividade, porém a maioria só trabalha de forma otimizada com equipamentos do mesmo fabricante e seus associados, não gerenciando alguns componentes vitais do sistema como um todo, por pertencerem a plataformas diferentes ou outros sistemas proprietários. Para evitar problemas como este, há uma entidade reguladora internacional denominada IETF [13], que se dedica a padronizar funcionalidades que compõe o domínio de dispositivos de conectividade, que devem trocar dados numa topologia composta por equipamentos heterogêneos sem comprometer a integridade desses dados. Sendo assim, este projeto visa o provimento de uma base teórica envolvendo os elementos mais importantes do domínio de gerenciamento de redes, possibilitando ao usuário deste aplicar os conceitos aqui assimilados na prática, por meio de aplicativos e ferramentas de rede detalhados neste documento. Deste modo, serão demonstrados os procedimentos para a instalação de um servidor web independente de plataforma, baseado em software livre e de fácil instação e implementação, que possa ser associado a outras ferramentas livres de gerenciamento e monitoramento, permitindo a gerência de uma rede TCP/IP e assegurando certo nível de qualidade de serviço. Para alcançar essas metas utilizaremos um Pen Drive contendo o aplicativo Xamp Portátil, que será congurado como um servidor web onde serão implementados alguns softwares de gerenciamento e 1 monitoramento como o Cacti, junto de outros aplicativos portáteis que serão utilizados como utilitários em um "kit de gerenciamento de redes". Para tanto é necessário algum protocolo de comunicação para atender essa necessidade cada vez maior de um padrão para gerenciar os dispositivos IP (Internet Protocol) [8].Então abordaremos também por meio deste documento as funcionalidades e versões de um protocolo simples e amplamente difundido: o SNMP. Após a etapa de conguração, implementação e execução do monitoramento de alguns dispositivos de rede, tentaremos expor procedimentos padrões de gerenciamento de rede em nível básico. Assim será possível a demonstração das funcionalidades do kit desenvolvido durante este projeto na prática, em diferentes topologias de rede, e consequentemente conhecer metodologias e, se possível, parâmetros de monitoramento para avaliar se a utilização da rede corresponde com os requisitos esperados. Logo, neste capítulo introdutório foram expostas as motivações, o principal protocolo de gerenciamento utilizado em redes baseadas em TCP/IP, e alguns dos recursos que serão utilizados na elaboração deste projeto. 2 Capítulo 2 Gerenciamento de Redes 2.1 Visão Geral Com o surgimento da Internet foi possível a interconexão de redes locais (LANs) e a expansão de órgãos e instituições globais em diversas localidades geogracamente distantes, permitindo assim que cada unidade destas entidades se comunicasse uma com as outras, gerando um sistema composto por uma diversidade de hardware e software sem precedentes. Acompanhando a expansão tecnológica, as redes foram evoluindo e se tornando cada vez mais complexas, agregando roteadores, switches, servidores e uma innidade de dispositivos distintos, como por exemplo eletrodomésticos, que foram incorporados a Internet, para serem passíveis de gerenciamento remoto. Como as organizações são diretamente dependentes dos produtos e serviços que elas provêem e tendo em vista que sua estrutura de rede provavelmente é composta por centenas ou milhares de componentes de rede passíveis de apresentar algum problema físico ou lógico, que necessariamente trabalham em conjunto e podem interferir no sistema como um todo dependendo de sua importância. Seria demasiadamente imprudente não avaliar sistematicamente essa estrutura de rede onde é gerada grande parte dos serviços e informações vitais a existência dessa organização, que pode falir rapidamente caso algum serviço crítico seja interrompido por um período mínimo de tempo, devido a algum incidente de segurança. E sempre pode haver falhas na rede, do mesmo modo que em outros equipamentos e softwares de funções variadas, mas como diferencial, onde há gerenciamento de rede pró-ativo, essas falhas poderão ser detectadas, avaliadas, e reparadas. Além de estar constantemente monitorando a rede para detectar e prevenir problemas, o gerente de rede e sua equipe devem se preocupar em coletar e analisar dados provenientes dela (nível de utilização do enlace, gargalos, taxas de erros, etc) no intuito de gerar relatórios para prever limitações e possibilidade de crescimento da mesma, e também para car respaldado quando houver necessidade de garantir a terceiros a qualidade dos serviços prestados ou se houver necessidade de interagir com outras áreas funcionais quando componentes de uma instituição com a área de TI bem denida e segmentada. Então, sabendo da innidade de possibilidades provenientes dos recursos e serviços advindos da Internet, focaremos exclusivamente no que tange à infra-estrutura de redes no campo de gerenciamento de redes de computadores, seja de instituições coorporativas dada sua importância aos seus negócios vitais que são dependentes dela, ou até mesmo 3 gerenciamento de outras redes organizacionais. Veremos também alguns elementos e modelos que compõe os conceitos de Gerenciamento de Rede, porém aprofundar-se neles foge do foco deste projeto que visa apresentar uma visão geral de ferramentas que permitem a coleta, manipulação e interpretação de informações passiveis de serem gerenciadas. 2.2 Denição O problema em denir o que é gerenciamento de redes está no fato do mesmo ser um assunto muito abrangente, envolvendo diversos equipamentos e serviços heterogêneos que incorporam vários protocolos e outros conceitos relacionados. Então usaremos uma denição formal bem abrangente para depois adentrar em suas especicidades. Segundo Clemm [2], "Gerenciamento de Redes se refere às atividades, métodos, procedimentos, e ferramentas que pertencem à operação, administração, manutenção, e provisionamento dos sistemas que compõe a rede", como descrito a seguir: • "Operação trata de manter a rede operacional (e os serviços que a rede prove) e rodando sem problemas. Isso inclui monitorar a rede para detectar problemas o mais breve possível, preferencialmente antes do usuário ser afetado. • Administração envolve observar minuciosamente os recursos da rede e como eles são atribuídos. Refere-se a todos os procedimentos necessários para manter as coisas sob controle. • Manutenção se preocupa com os reparos e upgrades de performance - por exemplo, • quando um driver da placa de rede deve ser substituído, quando um roteador precisa de uma nova imagem de sistema operacional com alguma atualização critica, ou quando um novo switch é adicionado à rede. Manutenção envolve também medidas proativas de correção e prevenção como ajustar um parâmetro de dispositivos quando necessário, e geralmente intervindo quando preciso para fazer uma rede gerenciada operar de forma ecaz. Provisionamento se preocupa com os recursos de conguração de rede necessários para suportar determinados serviços. Por exemplo, é possível congurar a rede para que um usuário possa receber um serviço de voz." Para poder executar essas funções, os gerentes da rede idealmente são amparados por mais de uma ferramenta que são integradas para prover os recursos necessários para um gerenciamento ecaz da rede ou pelo menos um gerenciamento que permita que eles possam garantir que a rede opere, no mínimo, de acordo com os parâmetros de qualidade denidos no nível de serviço contratado. Esses recursos computacionais providos pela rede e as informações produzidas nela denem grupos que necessitam de diferentes tipos de suporte, devendo esses sistemas de gerenciamento abranger preferencialmente parâmetros passíveis de monitoramento e controle relativos às áreas de disponibilidade, desempenho e segurança da informação e serviços. Como citado anteriormente, o termo gerência de rede é muito abrangente e engloba diversos níveis de gerenciamento, podendo então ser subdividida em outras áreas dependendo do grau de estruturação da instituição. Esses níveis variam muito de uma empresa para outra, mas podemos dizer que os termos mais empregados são: Gerência de Rede, 4 quando se trata dos dispositivos de comunicação e infraestrutura de rede; Gerência de Sistemas, que diz respeito aos servidores físicos e sistemas operacionais; e Gerência de Aplicação, que envolve monitoramento contínuo dos serviços oferecidos por determinados softwares aplicativos que regem muitas vezes a missão da empresa. É importante entender que mesmo que seja feita essa divisão da gerência de redes em níveis, esses subgrupos devem planejar e executar ações em conjunto, pois qualquer alteração em um dos níveis vai afetar os outros de alguma forma já que eles são componentes de um sistema maior e operam totalmente integrados, cada um amparando o outro, gerando uma complexa estrutura organizacional de rede, como descrito na gura 2.1. E, caso haja necessidade de ser feita alguma alteração, esses subgrupos devem se envolver em todos os processos, para que essa implementação não interra no resto da rede e prejudique os usuários da mesma, e se houver qualquer problema durante a execução desses procedimentos, deve haver sempre um ponto de restauração ou uma contingência para que os serviços não sejam interrompidos ou pelo menos sejam minimamente impactados, exigindo dos mesmos sempre um planejamento prévio e integrado, visando o ambiente de rede como um todo. Figura 2.1: Relacionamento entre gerência de Redes, Sistemas e Aplicações [2] Do mesmo modo que há subníveis de gerência de rede dependendo da granularidade da estrutura da organização, há também vários componentes humanos que formam uma equipe ou que agem individualmente nos processos de gerenciamento de rede, de acordo com a conveniência ou tamanho da mesma. "Geralmente, quando há uma equipe que gerencia a rede, eles executam quatro tarefas distintas: o pessoal do help desk, o operador da rede, a equipe de suporte técnico e o gerente da equipe de gerência. Enm, o importante é que você saiba que, na realidade, o prossional que chamamos neste livro de gerente de redes pode assumir vários papéis distintos em momentos distintos, mas geralmente, estaremos falando com a equipe de suporte técnico." [6] Após nos depararmos com uma visão geral, amparada por alguns dos conceitos de Gerenciamento de Redes, concluiremos esta seção apresentando uma denição detalhada, relativa ao tema abordado até aqui, dado por Saydam[10] citado em Kurose[5]: "Gerenciamento de rede inclui o oferecimento, a integração e a coordenação de elementos de hardware, software e humanos, para monitorar, testar, consultar, 5 congurar, analisar, avaliar e controlar os recursos da rede, e de elementos, para satisfazer as exigências operacionais, de desempenho e de qualidade de serviço em tempo real a um custo razoável." 2.3 Estrutura de um Sistema de Gerência de Redes Um sistema de gerência de redes genérico deve ser capaz de monitorar e controlar os recursos da rede por meio de uma que pode ser única e centralizada ou distribuída em diversas regiões geográcas, permitindo que cada lial mantenha o controle de sua área, prestando contas para uma entidade maior, por exemplo. Para executar suas funções, essa entidade gerenciadora requer que o dispositivo a ser gerenciado seja passível de monitoramento por meio de um pré-instalado que, quando devidamente congurado, será encarregado de requisitar informações diretamente de uma base de dados especíca do dispositivo (conhecida como ), onde são centralizadas as informações necessárias para quanticar e qualicar os recursos oferecidos pelo mesmo, além de suas limitações e atributos. Mas para intermediar a comunicação entre uma entidade gerenciadora especíca e os agentes de diversos provenientes de fabricantes distintos, é necessário denir uma linguagem em comum ou um padrão de dados estruturados de forma que permitam uma comunicação entre a entidade e aqueles elementos, formando um complexo sistema composto por equipamentos e sistemas heterogêneos. Esse método de comunicação é denido por um . Os elementos que compõe essa estrutura se relacionam como mostrado a seguir: Entidade Gerenciadora Agente Management Infor- mation Base - MIB Elementos Gerenciados Protocolo de Gerenciamento Figura 2.2: Elementos de um Sistema de Gerência de Redes 6 Supondo que um sistema genérico de gerência de redes tenha supercialmente, exatamente o comportamento detalhado anteriormente, podemos inferir que a arquitetura desse sistema seja composta basicamente por cinco elementos principais: 1. Entidade Gerenciadora ou Gerente: é composto por um servidor pertencente 2. Elementos Gerenciados: são quaisquer dispositivos físicos ou elementos lógicos 3. Agente: é um software especial presente nos elementos gerenciados, podendo ele 4. MIB (Management Information Base): 5. à rede, seja ela centralizada ou distribuída (cada lial contem um cliente web da entidade gerenciadora, por exemplo), onde ele executa um software de gerenciamento cuja função é solicitar, coletar e manipular informações dos elementos gerenciados por meio do Agente, atendendo as requisições e consultas solicitadas pelo administrador da rede, de maneira síncrona e/ou assíncrona. conectados na rede, passíveis de gerenciamento quando eles possuem um software denominado Agente em seu sistema. ser integrado ou separado do sistema operacional destes elementos, permitindo uma coleta de informações diretamente na base de dados do dispositivo (conhecida como MIB), seja apenas como consulta, seja para executar ou alterar parâmetros quando solicitado pelo seu respectivo Gerente. Base de Informações de Gerenciamento é a estrutura de dados que contem as informações gerenciais relevantes do dispositivo, utilizadas na comunicação entre os Agentes e Gerente, por meio de um protocolo de gerência. Essa estrutura de dados tem seu formato padronizado pela Estrutura de Informações de Gerenciamento (SMI), e é representada em uma tabela onde são armazenados os dados gerenciais do dispositivo, que serão consultados e manipulados pelo Gerente. Protocolo de Gerenciamento: são protocolos que denem padrões baseados na linguagem que o gerente e os agentes de diversos dispositivos distintos vão se comunicar, de modo que o gerente consiga acessar todos os dispositivos da rede para realizar todas as funções de gerenciamento necessárias. Percebe-se que a junção desses elementos gera um sistema capaz de amparar o gerente de rede de uma organização a realizar os procedimentos necessários para manter a rede operando de forma satisfatória, com o auxilio de outras ferramentas diagnósticas e de monitoramento como complemento a esse sistema de gerência principal. Veremos mais detalhes a cerca dos protocolos de gerenciamento e as MIBs no Capítulo 3. 2.4 Áreas Funcionais de Gerenciamento de Redes De fato, para manter a rede operando adequadamente, há muitos parâmetros e atributos relevantes que devem ser monitorados sistematicamente nos dispositivos de rede, que irão variar dependendo das necessidades e o momento em que ela se apresenta. Denindo assim as prioridades e modelos dos recursos que serão gerenciados constantemente e os que serão agregados a esse processo gerencial a cada nova necessidade gerada acrescida da variável tempo. 7 Historicamente, essa diversidade de parâmetros, recursos e cenários de redes diferentes, dicultou um entendimento geral na modelagem de um padrão genérico a ser difundido e referenciado por gerentes de redes nas organizações, anal os elementos de rede que são essenciais para algumas delas podem ser irrelevantes a outras. Deste modo, tendo em vista que apesar das diferenças organizacionais, ainda assim há muitos cenários que são similares em suas especicidades em diversas organizações, gerando vários modelos a serem empregados em redes Ethernet e de telecomunicações. Assim, a International Organization for Standardization (ISO) gerou um modelo de gerenciamento de rede baseado no modelo OSI, útil para representar cenários funcionais em um padrão melhor estruturado, em redes Ethernet, conhecido como FCAPS (Fault, Conguration, Accounting, Performance and Security). Esse modelo serviu como base para vários outros por denir os processos funcionais no gerenciamento de redes, sendo compatível com os protocolos de rede amplamente empregados, como o SNMP. Veremos com mais detalhes cada uma dessas cinco áreas funcionais de gerenciamento de redes, citadas por Kurose[5]: 1. "Gerenciamento de Falhas: O objetivo do gerenciamento de falhas é registrar, 2. Gerenciamento de conguração: O gerenciamento de conguração permite que 3. Gerenciamento de Contabilização: O gerenciamento de contabilização permite 4. Gerenciamento de Desempenho: A meta do gerenciamento de desempenho é 5. Gerenciamento de Segurança: A meta do gerenciamento de segurança é con- 1A linha entre gerenciamento de falhas e de desempenho é muito tênue detectar e reagir às condições de falha da rede. A linha divisória entre gerenciamento de falha e gerenciamento de desempenho é bastante indenida 1 . Podemos considerar o gerenciamento de falhas como o tratamento imediato de falhas transitórias da rede (por exemplo, interrupção de serviço em enlaces, hospedeiros, ou em hardware e software de roteadores), enquanto o gerenciamento de desempenho adota uma abordagem de longo prazo em relação ao desempenho da rede em face de demandas variáveis de tráfego e falhas ocasionais na rede. Como acontece no gerenciamento de desempenho, o SNMP tem um papel fundamental no gerenciamento de falhas. um administrador de rede saiba quais dispositivos fazem parte da rede administrada e quais são suas congurações de hardware e software. O [RFC 3139] oferece uma visão geral de gerenciamento e requisitos de conguração para redes IP. que o administrador de rede especique, registre e controle o acesso de usuários e dispositivos aos recursos da rede. Quotas de utilização, cobrança por utilização e alocação de acesso privilegiado a recursos que fazem parte do gerenciamento de contabilização. quanticar, medir, informar, analisar e controlar o desempenho (por exemplo, utilização e vazão) de diferentes componentes de rede. Entre esses componentes estão dispositivos individuais (por exemplo, enlaces, roteadores e hospedeiros), bem como abstrações m-a-m, como um trajeto pela rede. Veremos, em breve, que padrões de protocolos como o SNMP [RFC 3410] desempenham um papel fundamental no gerenciamento de desempenho da Internet. trolar o acesso aos recursos da rede de acordo com alguma política denida. As 8 centrais de distribuição de chaves e as autoridades certicadoras são componentes do gerenciamento de segurança. O uso de rewalls para monitorar e controlar pontos externos de acesso à rede é outro componente crucial." Neste projeto, esses modelos de gerenciamento serão utilizados de modo supercial para amparar as metodologias de monitoramento e qualimetria que serão abordados em capítulos posteriores, relativos às congurações de parâmetros de dispositivos gerenciáveis e sistemas de gerenciamento. 2.5 Alguns Processos e Métodos da Gerência de Rede Os conceitos e denições apresentados a partir da seção 2.2 deste capítulo introduzem um embasamento teórico e agregam valores, permitindo uma noção de como os critérios e processos do gerenciamento de redes são executados na prática. Foi sugerido que gerenciar uma rede envolve basicamente o oferecimento e disponibilidade de serviços de forma que cumpra o acordo de nível de serviço (service level agreement - SLA),com qualidade e ecácia, garantindo pelo menos a integridade das informações geradas nela e exibilidade para acessar essas informações, sendo todos esses fatores adicionados a custos aceitáveis, como requisitos para satisfazer os clientes. Pode-se entender que o ato de gerenciar uma rede envolve pelo menos três processos principais: monitorar, diagnosticar e controlar. O processo de monitoramento deve ser denido por meio de critérios onde serão coletados dados de forma sistemática e periódica, no intuito de gerar uma base de dados para analise, onde serão extraídas informações relevantes para o gerente. O processo de diagnóstico é feito pelo gerente de forma automatizada ou por meio de um operador da rede, onde os dados coletados serão devidamente analisados com o objetivo de detectar erros ou comportamentos anômalos, além de suas origens e possíveis causas, permitindo uma possível remediação ou outra tomada de atitude. O processo de controle envolve congurar dispositivos para suportar recursos e serviços; remediar erros e parâmetros que não estejam em conformidade com a rede; reparar equipamentos e serviços que não estejam executando ou desempenhando suas funções de acordo com o esperado; prever novos dispositivos e recursos para suportarem o crescimento físico da organização ou alguma atualização tecnológica; ou seja, todas as medidas cabíveis para satisfazer as exigências operacionais, de desempenho e de qualidade da organização. Há basicamente duas maneiras de gerenciar uma rede: de modo pró-ativo ou reativo. Idealmente, agir proativamente reduz consideravelmente problemas inoportunos, prevendo incidentes e novas necessidades de recursos, agilizando os processos de remediação quando detectados com uma boa antecedência, permitindo assim uma maior manipulação de dados relevantes, e gerando uma documentação mais elaborada além de uma melhor qualidade de serviço. Porém, para possibilitar esse ambiente otimizado, são necessárias diversas ferramentas e recursos, além de pessoal capacitado para operá-las, exigindo um investimento bem elevado. Já o modo reativo, apesar de geralmente ser amparado por sistemas de gerencias mais simples, visa à reparação e remediação de erros e inconformidades à medida que eles vão surgindo. é um método que pode ser ecaz quando amparado por procedimentos e técnicas bem denidas, e com o auxilio de sistemas de gerência e alarmes, 9 podem solucionar problemas impactando minimamente os usuários e operar a rede com um nível aceitável de qualidade de serviço. Por motivos óbvios evitaremos expor neste documento técnicas, softwares e procedimentos genéricos de forma imperativa, pois já percebemos que cada organização exige critérios e níveis de gerenciamento distintos para atender as suas necessidades. Buscaremos por meio de alguns softwares de gerência e outros aplicativos freewares, implementar e testar sua capacidade de gerenciamento diante de dispositivos de redes aleatórios. Visando assim demonstrar a possibilidade de utilizar essas ferramentas de forma integrada para gerenciar, diagnosticar e relatar informações diversas, desde que haja uma permissão de acesso mínimo relativo aos dispositivos de uma rede especíca sem comprometer ou violar regras de segurança que regem a mesma. Então, neste capítulo, é possível entender as denições da gerência de redes, bem como as atividades, métodos e procedimentos envolvidos, como a operação, a administração, a manutenção, o provisionamento de redes e as áreas funcionais no gerenciamento de redes (FCAPS). Outro fator importante apresentado neste capítulo se refere aos elementos que compõem a estrutura de um sistema de gerência, entre eles estão os Elementos Gerenciados, a Entidade Gerenciadora, o Agente dos dispositivos, a MIB e o Protocolo de Gerenciamento. 10 Capítulo 3 Protocolos e Padrões de Gerenciamento 3.1 Visão Geral Com base no capítulo anterior, percebe-se que um dos elementos mais importantes no gerenciamento de redes são os Protocolos de Gerenciamento, pois é a partir deles que se torna viável gerenciar diversos dispositivos de rede com arquiteturas e softwares heterogêneos, provenientes de fabricantes distintos. Esses protocolos denem regras para que os elementos envolvidos na gerência de redes troquem informações gerenciais entre si. Os protocolos de gerenciamento de redes mais conhecidos são o protocolo para redes baseadas no modelo TCP/IP (Transmission Control Protocol/ Internet Protocol ) e o protocolo (Common Management Service Element/Common Manage- SNMP CMISE/CMIP ment Information Protocol Elemento de Serviço de Gerenciamento Comum/Protocolo de Informação de Gerenciamento Comum ) baseado no modelo OSI (Open System Interconnections ) [14]. Como o escopo deste projeto visa gerenciar LANs heterogêneas e/ou MANs dispersas geogracamente por meio da Internet, utilizaremos como base a estrutura de gerência padrão mais usada no mundo, o Internet-Standard Network Management Framework. Este padrão descreve o protocolo de gerência, e também um conjunto de regras que são usadas para denir as informações de gerência, além de um conjunto inicial de informações gerenciais disponíveis para serem utilizadas [16], citado em [6]. Por ser usado para gerenciamento de redes na Internet, o Internet-Standard Network Management Framework é baseado no modelo TCP/IP e utiliza o SNMP como protocolo de gerenciamento padrão. Essa estrutura é denida basicamente por três documentos: • RFC 1155, "Structure and identication of management information for TCP/Ip based internets"(SMI) • RFC 1213, "Management Information Base for network management of TCP/IP based internets: MIB-II" • RFC 1157, "A Simple Network Management Protocol (SNMP)" Sendo um protocolo amplamente difundido e teoricamente simples de ser implementado como relata sua denição, o SNMP (Simple Network Management Protocol) será utilizado como o padrão de protocolo de gerenciamento deste projeto, sendo ele essencial 11 para atingir os objetivos deste. Veremos nas seções posteriores alguns conceitos relativos a esse protocolo e alguns dos elementos que o denem. 3.2 Simple Network Management Protocol (SNMP) O protocolo SNMP (Protocolo Simples de Gerenciamento de Rede) surgiu por volta de 1988 devido à necessidade cada vez maior de um padrão para gerenciar os dispositivos de IP [8]. Ele foi criado com base no seu antecessor SGMP (Simple Gateway Monitoring Protocol), que foi projetado por um grupo de pesquisadores, usuários e administradores universitários de rede, cuja experiência com esse protocolo permitiu que eles projetassem, implementassem e oferecessem o SNMP em poucos meses [7], um feito muito distante dos processos de padronizações atuais, que são bastante prolongados. Desde então, o SNMP evoluiu do SNMPv1 para o SNMPv2 e chegou à sua versão mais recente, o SNMPv3 [RFC3410], lançada em abril de 1999 [5]. O SNMP atua provendo aos usuários um mecanismo para gerenciar não apenas ativos de rede, mas também hosts e outros elementos que compõe essa rede, tais como servidores físicos, aplicações diversas, bancos de dados, racks, fontes de energia e qualquer outro software e hardware passível de gerenciamento remoto por meio de um agente que vem integrado ao sistema operacional do dispositivo. Normalmente o NMS responsável pelo monitoramento da rede, gerencia os elementos que a compõe usando o SNMP para enviar um conjunto de operações de leitura (consultas) e escrita (comandos) para um agente previamente congurado no dispositivo, no intuito de extrair ou alterar as informações gerenciáveis desse dispositivo, concentradas num objeto MIB. Esses processos de executar regularmente, dado um intervalo de tempo, operações de consulta e escrita nos agentes, são denominados como polling (poller) no contexto de gerenciamento de redes [8]. Como o SNMP em si não é capaz de interpretar as informações gerenciáveis trocadas entre NMS e agentes para saber quando há alguma anormalidade na rede, é necessário que o agente possa emitir alertas via SNMP, denominadas como Traps, para ser analisada pelo NMS/gerente independente da requisição destes, para relatar condições extremas do dispositivo de rede possibilitando uma tomada de atitude pelos gerentes. Ou seja, as Traps são utilizadas para noticar o gerente sobre a ocorrência de eventos de extrema relevância e são enviadas de modo assíncrono, mesmo sem requisição do gerente, sendo o NMS responsável por interpretar a gravidade dessas informações relatadas nas Traps. O SNMP pode utilizar diferentes protocolos de transporte para intermediar a comunicação das informações gerenciáveis entre Gerentes e Agentes, tais como o UDP [RFC 768], Apple Talk [RFC 1419] e IPX [RFC 1420]. Apesar de o SNMP ter sido implementado através do TCP para permitir uma conexão orientada ponto a ponto e conável, ele acabou utilizando o TCP apenas para as situações de casos especiais em que alguém esta desenvolvendo um agente para um equipamento proprietário [8], pois apesar da conabilidade na comunicação, este protocolo pode onerar uma rede que já trabalha a todo vapor ao car retransmitindo pacote perdidos e mantendo conexões persistentes . Por isso o protocolo mais utilizado é o UDP, sendo um protocolo de transporte não orientado a conexão, exigindo assim menos recursos (processamento, banda, memória) dos dispositivos de rede que podem estar sobrecarregados devido ao uso intenso da rede pelos usuários e serviços, mesmo perdendo em conabilidade por não checar os datagramas 12 perdidos no nível do protocolo [8]. Deve-se saber também que por padrão, os agentes enviam as mensagens SNMP Trap via UDP para a porta 162 do NMS, e utiliza a porta 161 para todas as outras operações do SNMP, conforme demonstrado na gura 3.1: Figura 3.1: Modelo de Comunicação por TCP/IP e o SNMP [8] 3.2.1 Versões SNMP Nesta seção, veremos sucintamente algumas das características principais das versões do SNMP, no intuito de analisar a evolução desse protocolo. • • SNMPv1 é a versão padrão inicial do SNMP, denida na [RFC 1157] e é um padrão completo da IETF. A segurança do SNMPv1 baseia-se em comunidades, que não são nada mais do que senhas: strings de texto puro que permite que qualquer aplicativo baseado em SNMP (que reconheça a string) tenha acesso limitado a informações de gerenciamento de um dispositivo. Geralmente, existem três comunidades no SNMPv1: read-only, read-write e trap [8]. SNMPv2 O SNMPv2 é conhecido também como SNMPv2c numa denominação mais técnica e também é baseado em strings de comunidade como a primeira versão. Ela está denida na [RFC 1905], [RFC 1906], [RFC 1907] e [RFC 1905], sendo esta última referente a coexistência entre a versão 1 e 2 do SNMP. Ela trabalha com os mesmo tipos de mensagens utilizadas na versão anterior, conhecidas genericamente como PDUs (protocol data units) [5], sendo mais eciente e agregando novas funções como o GetBulkRequest e a SNMPv2-Trap. 13 • SNMPv3 - é a última versão do protocolo a alcançar o status standard da IETF e o primeiro a implementar de fato segurança no processo de gerenciamento. Ele inclui suporte para autenticação rigorosa checando a procedência dos PDUs, comunicação privativa por meio de criptograa nos pacotes transmitidos entre as entidades gerenciadas além de suportar as operações e consultas das versões anteriores. Para isso, ele utiliza o , denido na [RFC 3414], solicitando uma chave secreta deste e combinando-a com uma função de hash como o algoritmo ou , e utilizando o algoritmo ou para cifrar e decifrar as mensagens privadas trocadas entre o NMS e os agentes. modelo de segurança baseada em usuário (User-Based Security Model - USM) MD5 (Message-Digest algorithm 5) SHA (Secure Hash Algorithm) DES (Data Encryption Standard) AES (Advanced Encryption Standard) 3.2.2 Comandos Básicos SNMP Para entender melhor a atuação deste protocolo verique abaixo alguns exemplos de PDUs denidos pelo SNMPv2 e os principais tipos de mensagens trocadas entre o NMS e os agentes. São basicamente quatro tipos de comandos: read (leitura), write (escrita), trap (alarmes), e operações transversais: read • O tipo write é usado pelo NMS para denir ou alterar as informações nas tabelas de variáveis dos objetos MIB, por meio dos agentes dos dispositivos gerenciáveis. • O tipo trap é usado pelo agente dos dispositivos gerenciáveis para reportar algum • O tipo é usado pelo NMS para realizar consultas nos agentes dos dispositivos gerenciáveis, buscando as informações nas tabelas de variáveis dos objetos MIB. evento excepcional ao NMS, que deverá tratar e denir a severidade da informação recebida. • Operações Transversais são usadas pelo NMS para determinar quais variáveis um dispositivo gerenciável suporta e para recolher ordenadamente informações nas tabelas de variáveis dos objetos MIB [15]. Dentre os tipos de comandos citados, veja exemplos de PDUs SNMPv2 segundo Kurose[5]: Tipo de PDU SNMPv2 Remetente-Receptor GetRequest GetNextRequestt GetBulkRequest InformRequest SetRequest Response SNMPv2-Trap Gerente a agente Gerente a agente Gerente a agente Gerente a gerente Gerente a agente Agente a gerente Agente a gerente Tabela 3.1: Tipos de SNMPv2-PDUs [5] 14 As PDUs GetRequest, GetNextRequest e GetBulkRequest são requisições enviadas pelo NMS ao agente de um dispositivo gerenciado, com o intuito de coletar informações das variáveis dos módulos MIB deste. Essas PDUs de requisição diferem apenas no nível de especicação da coleta, sendo que o GetRequest pode coletar uma ou mais instâncias do objeto MIB, o GetNextRequest também faz a coleta de uma ou mais instâncias do objeto MIB só que de forma sequencial, e a GetBulkRequest pode coletar essas informações em lotes, ou seja, em grandes blocos de dados evitando sobrecarga de requisições na rede. A PDU Response é gerada em resposta as PDUs de requisição enviadas pela entidade gerenciadora, enquanto a PDU InformRequest é utilizada por um NMS para informar outra entidade gerenciadora remota as informações coletadas na MIB de algum dispositivo. A PDU SetRequest é um comando enviado pelo NMS ao agente de um dispositivo gerenciado, visando denir ou alterar a variável de algum campo correspondente ao módulo MIB solicitado [5]. E por m, a PDU SNMPv2-TRAP enviada pelo agente do dispositivo ao NMS, é responsável por enviar alertas informando eventos excepcionais ocorridos nos dispositivos gerenciados, para serem tratados e remediados pela equipe de gerência da rede em questão. É possível encontrar mais detalhes em relação aos comandos, estrutura das PDUs e as versões do SNMP, em referências aprofundadas como Stallings [14] e Kurose [5]. 3.3 Management Information Base (MIB) A Base de Informações de Gerenciamento é uma coleção de informações organizadas hierarquicamente que denem as propriedades do dispositivo gerenciado, sendo especicadas e estruturadas utilizando como padrão o modelo SMI. As MIBs são acessadas pelos agentes dos dispositivos por meio do protocolo SNMP, sendo compostas por objetos gerenciáveis agrupados em módulos MIB e classicadas por identicadores de objetos. Os objetos gerenciáveis são compostos por uma ou mais instâncias de objetos, sendo essencialmente variáveis que reetem em conjunto o estado de um dispositivo. Existem dois tipos de objetos gerenciáveis: os escalares e tabulares. Os objetos escalares denem uma única instância de objeto, enquanto os objetos tabulares denem múltiplas instâncias de objetos relacionados que são agrupadas em tabelas MIB. Os identicadores de objeto (ou Id do objeto) identica unicamente um objeto gerenciável na hierarquia MIB, que é representada por uma árvore de identicadores de objetos adotada pela ISO, a ANS.1, sendo que cada nível da árvore tem um nome e um número associado a diferentes organizações e entidades de padronização. Deste modo, é possível encontrar qualquer módulo MIB presente nessa estrutura de nomeação percorrendo sequencialmente o trajeto de nomes e números a partir da raiz da árvore, até o ramo associado ao objeto. No topo da árvore estão denidas as duas principais entidades de padronização, a ISO(1) e o ITU-T(0). Já os níveis mais baixos são alocados para organizações associadas e vendedores de dispositivos de rede já padronizados, enquanto as MIBs que não foram padronizadas podem ser alocadas em um ramo experimental. É interessante saber também que um agente pode implementar várias MIBs distintas, mas todo o agente tem que implementar uma MIB especíca denominada MIB-II [RFC 1213]. Esse padrão dene variáveis para elementos como dados estatísticos de uma interface, assim como alguns outros aspectos relacionados a informações do próprio sistema, 15 como localização, contato, fabricante, etc. O principal objetivo da MIB-II é fornecer informações gerais sobre gerenciamento de TCP/IP, tentando englobar pelo menos os itens essenciais para um gerenciamento efetivo, mas não sendo ecaz em itens mais especícos do dispositivo gerenciado [8]. Figura 3.2: Árvore de identicadores de objetos ASN.1 [5] 3.4 Structure of Management Information (SMI) A Estrutura de Informações de Gerenciamento é uma linguagem usada para denir a estrutura de informações de gerenciamento de objetos gerenciáveis e seus respectivos comportamentos. A SMI é baseada na linguagem de denição de objetos ASN.1, sendo necessária para assegurar que a sintaxe e semântica dos dados de gerenciamento de rede sejam bem denidas e não apresentem ambiguidade[5]. O conceito de SMI é similar ao de MIB, para entender a diferença entre eles, veja a denição dada por Mauro [8]: A SMI é um método para denir objetos gerenciados, enquanto a MIB é a denição (por meio da sintaxe da SMI) dos próprios objetos. Como um dicionário, que mostra como pronunciar uma palavra e, em seguida, apresenta o signicado ou a denição dessa mesma palavra, uma MIB dene um nome em texto de um objeto gerenciado e explica o seu signicado. 3.5 ASN.1 A ASN.1 é um padrão originado na ISO, sendo utilizado por diversos protocolos relacionados à Internet, especialmente no que se refere a gerenciamento de redes. Além de fornecer uma linguagem de descrição de dados, a ASN.1 oferece Regras Básicas de Codicação ( Basic Encoding Rules - BERs), que especicam como instâncias de objetos que 16 foram denidas usando a linguagem de descrição de dados ASN.1 devem se comportar ao trafegar pela rede [5]. 3.6 Remote Network Monitoring (RMON) Como a proposta deste projeto exige um conjunto de sistemas, ferramentas e protocolos não muito complexos, para que sejam efetivos nos recursos básicos que pretendemos oferecer por meio do produto gerado por este projeto. Então apenas citaremos o objetivo do RMON sem nos aprofundarmos no assunto. O SNMP quando bem implementado junto ao NMS permite um bom gerenciamento da rede, porém ele peca no requisito de visão da rede como um sistema maior, composto por vários sistemas e dispositivos heterogêneos, focando mais em monitorar os elementos de rede de forma isolada. Por isso, o comitê do IETF sentiu a necessidade de um padrão de gerenciamento de redes mais elaborado e eciente, permitindo um gerenciamento de rede mais detalhado. Esse aspecto do gerenciamento de rede gerido pelo Remote Network Monitoring (RMON) visa monitorar os elementos da rede como um todo, ou seja, monitorar uma rede inteira em vez de componentes individuais, como roteadores, hosts e outros dispositivos de rede. O RMON foi desenvolvido para ajudar a entender o funcionamento da própria rede, e como os dispositivos individuais afetam a rede em sua totalidade. E possível utilizá-lo para monitorar não somente o tráfego de LAN, como também as interfaces de WAN [8]. Por meio deste capítulo, foram aprofundados os protocolos e padrões envolvidos no processo de gerenciamento de redes baseadas em TCP/IP. Assim, foram detalhadas as principais características do protocolo SNMP e suas três versões (v1, v2c e v3), além de especicar algumas PDUs destas versões e suas funcionalidades. Também foram abordados de forma básica, como o padrão ASN.1 foi utilizado como base para a estrutura SMI, para desenvolver protocolos de gerenciamento e denir a base de informações de gerenciamento de dispositivos de redes (MIB). Já o protocolo RMON foi comentado supercialmente, no intuito de demonstrar as limitações do SNMP no gerenciamento da rede como um todo. 17 Capítulo 4 NMS e Ferramentas de Rede Sabendo da variedade de dispositivos de redes disponíveis no mercado atualmente, e observando a diversidade de dispositivos e aplicativos que compõe a rede de uma organização, escolher um NMS que possa atender os principais requisitos dos gerentes e consiga abranger a maior parte destes elementos, torna-se um desao cada vez mais complexo. Deste modo, para manter certo nível de qualidade quanto ao gerenciamento da rede, caso não haja possibilidade de adquirir uma suíte de NMS completa, surge à necessidade de integração entre Entidades Gerenciadoras de acordo com suas funcionalidades principais, somadas a ferramentas de rede auxiliares. Assim, ao selecionar um NMS que proverá a gerência na rede da organização, deve-se fundamentar essa escolha baseada na capacidade de interoperatividade com múltiplos sistemas e dispositivos heterogêneos, bem como sua viabilidade operacional e recursos humanos capacitados a manipulá-las. Mesmo considerando essas variáveis, se o projeto não for bem denido quanto as suas metas e padrões, não há garantias de que todos os elementos da rede serão englobados ao processo de gerenciamento ou se irão se comportar de acordo com o esperado na implementação deste. Para tentar resolver problemas gerenciais como este, vale usar todos os recursos disponíveis, inclusive adaptar o agente do elemento de rede para que responda as solicitações corretamente, usar mais de um tipo diferente de NMS, inserir algumas ferramentas como analisadores de trafego e protocolos, alem de usar comandos como o pathping, traceroute e netstat que são nativos em vários sistemas operacionais para complementar o processo e o sistema de gerenciamento. Tendo como base os conceitos vistos até agora, este capítulo será focado na apresentação de alguns NMS de plataforma livre e outras ferramentas projetadas para diagnosticar e corrigir problemas de rede mais simples, amparando a entidade gerenciadora no processo de gerenciamento. Essa demonstração será orientada a avaliar as principais características dos NMS selecionados, com base nos seguintes requisitos: Plataformas, Licenças, e Requisitos de Hardware e Software. 4.1 NMS Cacti Cacti é uma solução gráca de rede completa, projetada para prover uma interface amigável e aproveitar os recursos do RRDTool's, que é um sistema baseado em comando de linha que armazena e gera vários tipos de informações em grácos [9]. O Cacti proporciona um poller veloz, templates grácos avançados, vários métodos de aquisição de dados, e 18 recursos de gerenciamento de usuários "fora da caixa". Tudo isso é envolto por uma interface intuitiva, facilmente utilizada para abranger desde pequenas LANs até rede mais complexas com centenas de dispositivos [1]. Sua arquitetura prevê a possibilidade de expansão através de plugins que adicionam novas funcionalidades. Figura 4.1: Logo Cacti Plataformas: Windows e Linux 2. Licença: Cacti é baseado sob licença GNU (General Public Licence), sendo com1. pletamente livre, sem amarras. Sendo aberto a doações pelos simpatizantes da ferramenta, no intuito de incentivar no aprimoramento da mesma. 3. Requisitos de Software: • RRDTool 1.0.49 or 1.2.x or greater • MySQL 4.1.x or 5.x or greater • PHP 4.3.6 or greater, 5.x greater highly recommended for advanced features • A Web Server e.g. Apache or IIS 4.2 NMS Nagios Nagios é um sistema de monitoramento de rede e de aplicação. Ele monitora os recursos de hosts e serviços especicados pelo gerente, e envia alertas de noticação quando ocorrem eventos relevantes, alem de rodízio automático de logs [4] Figura 4.2: Logo Nagios Plataformas: Linux e Unix 2. Licença: Nagios é licenciado sob os termos da GNU General Public License versão 1. 2 conforme publicada pela Free Software Foundation. Isso lhe dá permissão legal para copiar, distribuir e/ou modicar Nagios sob certas condições. Leia o arquivo 'licença' na distribuição Nagios ou ler a versão online da licença para mais detalhes. 3. Requisitos de Hardware Software: Se desejar usar o Nagios sem seus complementos, é necessário apenas estar sendo executado em plataforma Linux com um Compilador C. Caso queira usar os CGIs que acompanham o Nagios, deve-se instalar e congurar um Servidor Web (de preferência o Apache), e a biblioteca Thomas Boutell's gd versão 1.6.3 ou maior (pré requisitos para o "statusmap"e "trends"CGIs). 19 4.3 NMS Zabbix Zabbix é um sistema de monitoramento criado por Alexei Vladishev, que suporta polling e trapping, e pode monitorar tanto ativos de rede quanto aplicações por meio de uma ferramenta Web que é o front-end do produto. Deste modo o gerente pode averiguar o status da rede e dos serviços de qualquer localização com Internet disponível, seja essa rede de uma organização pequena ou uma grande empresa com centenas de servidores[12]. Figura 4.3: Logo Zabbix Plataformas: Linux e Unix 2. Licença: Zabbix é desenvolvido e distribuído de acordo com a GPL General Public 1. License versão 2. Isso signica que seu código-fonte é distribuído gratuitamente e está disponível para o público em geral. O suporte comercial está disponível e é fornecido pela Zabbix Company. 3. Requisitos de Hardware Software: Zabbix Server pode ser executado nas plataformas AIX, FreeBSD, HP-UX, Linux, Mac OS X, Open BSD, SCO Open Server, Solaris, Tru64/OSF. Já o Agente Zabbix alem de ser compatível com as mesmas plataformas do Zabbix Server, pode ser congurado também na plataforma Microsoft Windows e Novell Netware. Quanto aos requisitos de hardware é recomendado disponibilizar 100 MB em espaço de disco, 256 MB de memória RAM, e processador Pentium IV ou equivalente. 4.4 Outras Ferramentas Nesta seção estarão disponíveis algumas ferramentas de conectividade que possam vir a auxiliar o gerente de uma rede a remediar problemas mais comuns encontrados numa organização. 4.4.1 XAMPP O XAMPP é uma compilação de softwares livres licenciado sob os termos do GNU, sendo que cada letra signica os seguintes termos respectivamente: X (relativo ao Sistema Operacional utilizado), Apache, MySQL, PHP, Perl [11]. Figura 4.4: Logo Xampp Apesar desta ferramenta não prover funcionalidades de monitoramento de rede, ela é essencial para o propósito deste projeto, pois prove um servidor web apache e um banco 20 de dados MySQL, o qual tentaremos integrar com algum dos sistemas de monitoramento vistos neste capítulo. Para esse propósito tentaremos utilizar a versão portátil deste aplicativo. 4.5 Comparando os NMS Será demonstrada nesta seção, uma breve comparação entre o Cacti, Nagios e Zabbix, deixando claro a escolha do NMS para esse projeto, que será baseado na plataforma Windows. Figura 4.5: Comparação entre os NMS 4.6 Estrutura do Kit de Gerência Portátil Para fechar este capítulo, será demonstrada a estrutura do Kit que será implementado num momento posterior, contendo a relação entre os elementos gerenciáveis e o NMS, bem como introduzir uma idéia inicial de um laboratório para validar as funcionalidades do Kit. Como o ambiente será baseado na plataforma Windows, será instalado num pen drive o Xampp para Windows no modo portátil, e posteriormente serão implementados o NMS Cacti junto com os aplicativos necessários para que o Kit funcione plenamente. Desta forma, os aplicativos dos quais o sistema de gerência implementado depende, todos de licença GNU/GPL, são o RRDTool , o Net-SNMP e o Spine (opcional). Veja as funções destes aplicativos a seguir: 21 • Spine: é um aplicativo desenvolvido para o Cacti que tem como função executar via SNMP, periódicamente, operações de leitura e escrita nos dispositivos gerenciados (poller ). Ele foi implementado para ser mais ágil e robusto que o poller padrão do Cacti (o cmd.php ), sendo assim, ligado diretamente à biblioteca do Net-SNMP. • • RRDTool: ferramenta responsável por armazenar séries de dados numéricos em uma base de dados round-robin, coletando as informações e gerando em arquivos RRD (round-robin database ), grácos relativos ao estado de dispositivos gerenciáveis. Net-SNMP: é uma suíte composta por um conjunto de aplicações executadas via linha de comando, para implementar os processos e operações do protocolo SNMP, provendo uma biblioteca para o desenvolvimento de novas aplicações SMNP (API para C e Perl), além fornecer um agente extensível e um deamon para receber traps. Com esses aplicativos integrados, o Cacti poderá realizar de modo coordenado as consultas nos dispositivos via SNMP (Net-SNMP), de acordo com o período denido pelo poller Spine, retornando como resultado os grácos gerados em arquivos RRD provenientes do RRDTool. Verique o esboço do ambiente de validação do Kit na gura 4.6. Figura 4.6: Relacionamento entre o NMS Cacti e os elementos gerenciáveis 22 Capítulo 5 Implementação e Utilização do Kit Neste ponto do projeto surgem questionamentos sobre o objetivo deste, pois os NMS citados até agora já são utilizados por diversos usuários em nível mundial e apresentam versões estáveis com vários recursos adicionais e plugins que elevam seu poder funcional. Mesmo assim, muitas organizações não têm conhecimento de como utilizar esses recursos de plataforma livre ou preferem adotar NMS proprietários para obter garantias e suporte dos fornecedores, adiando aquisições ou investimentos em recursos humanos que poderiam capacitá-los a gerenciarem sua própria rede. Logo, com base nos conceitos e objetos apresentados até este capítulo, é necessário reaver o objetivo deste projeto e questionar a viabilidade e soluções que o mesmo pretende oferecer. Então quais seriam as vantagens em desenvolver um Kit de Gerência Portátil? Primeiramente, ao se esboçar os métodos e procedimentos de instalação e conguração de uma ferramenta, é possível desmisticar a complexidade de como implementar e utilizála, possibilitando que ela se torne mais acessível a um maior número de usuários. Pelo Kit ser em sua essência portátil, ele pode ser usado como um produto ou ferramenta por usuários quaisquer que desejem gerenciar uma rede, eliminando assim variáveis de procedimentos relativos à instalação e conguração de NMS em servidores físicos. Ou seja, gerando exibilidade e agilidade no processo de gerenciamento de outros dispositivos ou redes, já que NMS não tem sua conguração xada em um servidor físico. Outra vantagem bem signicante, é o fato de selecionar apenas ferramentas livres para incrementar o Kit, possibilitando diversas possibilidades de interação e integração de softwares voltados para redes e permitindo certa independência de Sistemas Operacionais. De fato, há diversos motivos que tornam viáveis a elaboração deste produto, mas o mais importante é entender a innidade de possibilidades de como podem ser utilizados essas ferramentas para agregar funcionalidades ou solucionar problemas de forma exível e criativa. Provendo também, uma interface para que os usuários possam aprimorar o conhecimento teórico adquirido, implementando estes conceitos na prática, incluindo em um ambiente real em produção. 5.1 Requisitos e métodos Para criar o kit de Gerência Portátil poderemos utilizar ferramentas de rede variadas com o objetivo de complementar as funcionalidades oferecidas pelo NMS selecionado para a implementação deste kit. Foram abordados supercialmente alguns NMS no capítulo 4, 23 e pela simplicidade e provável compatibilidade com o servidor web Xampp, utilizaremos o CACTI na tentativa de congurá-lo neste servidor web que será disposto num pen drive, de forma que seja possível utilizar os recursos deste NMS como um aplicativo portátil. Visto a variedade de software e hardware que são envolvidos no processo de gerenciamento de redes e tendo em mente o objetivo deste projeto, deniremos alguns recursos que serão utilizados sistematicamente, de forma experimental, na elaboração deste kit: • Plataforma Windows XP SP2 ou superior; • Dispositivos quaisquer de rede compatíveis com SNMP e congurados; • Pen Drive com interface USB 2.0 e capacidade acima de 1GB; • Browser Mozilla Firefox 3.6; [3] • Xampp para Windows 1.7.3; [11] • Cacti-0.8.7g; • Net-snmp-5.5.0-1.x86; • RRDtool-1.2.15-cygwin-1.5.20; • Cacti-spine-0.8.7g. 5.2 Implementando o Kit de Gerência Portátil Será demonstrada a elaboração do Kit passo a passo de forma que cada ferramenta que tenha interdependência de outras ferramentas tenha seus requisitos previamente atendidos e implementados na ordem correta, caso haja necessidade. Os procedimentos de instalação do Cacti serão baseados no manual encontrado no endereço ocial da ferramenta: 'http://docs.cacti.net/manual:087:1_installation.2_install_windows'. 5.2.1 Congurando o Xampp no Pen Drive 'xampp-win32-1.7.3.zip' Baixe a versão no site 'www.apachefriends.org/pt_br/xamppwindows.html' para congurar posteriormente o Xampp no pen drive, de forma que se torne portátil. Após baixar o arquivo, extraia o arquivo zip na raiz do pen drive previamente formatado no sistema de arquivos FAT 32. Finalizada a extração, procure e execute o arquivo , localizado no diretório \xampp, para iniciar a conguração deste servidor web. 'setup_xampp.bat' 24 Figura 5.1: Diretório do Xampp na raiz do Pen Drive Ao executar o setup, surgirá a tela do prompt de comando (cmd.exe), questionando se ele deve criar atalhos do Xampp no Menu Iniciar e no Desktop. Escolha pois não pretendemos criar associações com o sistema já que ele será congurado no modo portátil. "n" Figura 5.2: Tela inicial do Setup do Xampp Nesta etapa ele solicita conrmação do caminho de instalação, previamente denido pelo Xampp. Conrme com e siga para a próxima etapa. "y" 25 Figura 5.3: Denindo o diretório de instalação do Xampp Esta é a etapa mais importante da conguração, onde o processo de instalação solicita que o usuário escolha se o Xampp será portátil, ou seja, sem mapeamento de drivers. Devese inserir a escolha como para que ele termine a instalação do aplicativo no modo portátil, caso escolha 'não', ele irá mapear o drive para o Xampp em algum diretório do host onde ele está sendo congurado. Verique o processo de instalação na gura abaixo e veja a conrmação do status do Xampp, que deverá estar pronto para ser usado. Pressione a tecla após o mesmo nalizar a instalação "y" Enter Figura 5.4: Denindo o Xampp no modo portátil Com o Xampp já instalado, esta ultima etapa informa o timezone selecionado e solicita que o usuário altere a conguração se necessário. Avance esta etapa com a tecla . Enter 26 Figura 5.5: Congurando o fuso horário do servidor Nesta ultima tela serão visualizadas as opções disponíveis no Xampp, insira o número como comando para habilitar somente o protocolo Ipv4, e então saia deste modo de comando inserindo para nalizar. "5" 'x' Figura 5.6: Tela com as opções de conguração do Xampp Concluído o processo de instalação do Xampp no pen drive, selecione com o botão direito o diretório \xampp e acione Propriedades. Verique se o diretório está com o Atributo selecionado, caso esteja desmarque esse atributo e aplique a alteração. 'Arquivo Morto' 27 Figura 5.7: Retirando o atributo Arquivo Morto do arquivo No intuito de preparar o ambiente do Xampp para hospedar os serviços do Cacti e outros recursos, serão necessárias algumas alterações em arquivos chaves do aplicativo. Entre no diretório \xampp\php\ e abra o arquivo para edição. Com o arquivo selecionado, procure os seguintes recursos no documento (sugestão: Ctrl + F no Bloco de Notas), sejam para descomentar alguns destes retirando o pontovirgula dos parâmetros precedidos pelo mesmo, seja para alteração de atributo devendo car exatamente como os parâmetros abaixo: 'php.ini' Lista de Parâmetros do php.ini extension_dir = "\xampp\php\ext" extension=php_sockets.dll le_uploads = On mysql.connect_timeout = 120 mssql.compatability_mode = On extension=php_snmp.dll cgi.force_redirect = 0 upload_max_lesize = 128M mysql.trace_mode = On mysql.default_port = 3306 Tabela 5.1: Lista de Parâmetros Figura 5.8: Ajustando os parâmetros do php.ini 28 'php.ini' 'httpd.conf' 'AddType' application/x-httpd-php .php' Após as alterações no arquivo salve e feche o arquivo. Procure e abra para edição o arquivo , encontrado no diretório \xampp\apache\conf. Procure onde estão localizados os argumentos no arquivo e insira a string conforme a gura, e então salve e feche o arquivo. 'AddType Figura 5.9: Adicionando recursos no arquivo httpd.conf Haverá outras congurações no Xampp e em seu banco de dados, porém nesta etapa focaremos na instalação do Net-Snmp para nalizar os arquivos e aplicativos base do kit. Vá ao site 'http://sourceforge.net/projects/net-snmp/les/net-snmp binaries/5.5-binaries/' e baixe o executável . Copie o executável para a raiz do pen drive e o execute. 'net-snmp-5.5.0-1.x86' Figura 5.10: Iniciando a instalação do NetSNMP Ao acionar o instalador, selecione avançar nas congurações padrão até encontrar a tela Choose Components. Então selecione os seguintes componentes adicionais para prosseguir a instalação: Marque a caixa e deixe as que já estavam marcadas selecionadas, e avance para próxima etapa. 'Development les' 29 Figura 5.11: Selecionando os componentes do NetSNMP Ao avançar para tela Choose Install Location, o programa solicitará que seja informado o diretório de destino da instalação. Escolha a raiz do pen drive e prossiga a instalação. Figura 5.12: Denindo o local de instalação Ao chegar à tela Choose Start Menu Folder, digite o endereço \usr\SNMP e acione o botão para nalizar a instalação do conjunto de aplicativos do Net-SNMP. O diretório \usr é criado pelo aplicativo para armazenar o conjunto de executáveis do Net-Snmp. 'Install' 30 Figura 5.13: Denindo a opção de inicialização Para nalizar esta seção transra o instalador para o diretório recém criado \usr e abra o arquivo no diretório \usr\bin para alteração. No arquivo localize os seguintes argumentos e o apontador apenas, conforme exemplo: 'snmpconf' remova c: • $confpath = "c:/usr/share/snmp"; • push @searchpath, "c:/usr/etc/snmp". c: 'snmpconf' • $opts{'c'} = " /usr/share/snmp/snmpconf-data"; Figura 5.14: Redenindo os paths do NetSNMP Ao salvar o arquivo, verique que foram removidos os argumentos que xavam algumas congurações do snmp para a raiz do host onde ele será executado, tornando assim o ambiente mais portátil e concretizando uma base exível para o Cacti. 31 5.2.2 Preparando o CACTI com o XAMPP 'cacti-0.8.7g.zip' Após instalar o Xampp portátil no pen drive, baixe o arquivo no endereço 'http://www.cacti.net/downloads/' e extraia este arquivo no diretório \xampp\htdocs do pen drive, que é o diretório padrão para documentos do tipo WWW. Se desejar, poderá renomear o diretório do para simplicar a localização, como no exemplo, o diretório foi renomeado para \cacti. cacti-0.8.7g Figura 5.15: Extraindo o Cacti no diretório \xampp\htdocs Agora é necessário instalar o núcleo do NMS para o qual o Cacti prove seus recursos e interface mais intuitiva, o sistema RRDTool's. Baixe o arquivo no endereço 'http://www.cacti.net/downloads/rrdtool/win32/' e então crie o diretório \rrdtool na raiz do pen drive. Com o diretório \rrdtool criado, extraia os componentes do arquivo dentro deste diretório 1.5.20.zip' 'rrdtool-1.2.15-cygwin- 'rrdtool-1.2.15-cygwin-1.5.20.zip' Figura 5.16: Extraindo o pacote RRDTools A partir de agora é possível utilizar a interface gráca do Xampp para fazer algumas congurações necessárias para o Kit. No diretório \xampp há dois aplicativos principais que iremos utilizar: o para vericar se há algum conito entre o 'xampp-portcheck' 32 Xampp e o host onde ele será executado, e o controle do Xampp. 'xampp-control' que ativa o painel de Figura 5.17: Utilizando o 'xampp-portchec' e o 'xampp-control' Antes de executar o Xampp em algum host, verique se há algum conito entre eles proveniente de outros aplicativos similares ou que utilizem mesma porta, executando para isso o . Se não houver nenhum conito, será demonstrada uma tela onde o status dos serviços deve ser . Caso contrario aparecerá no status do serviço, o aplicativo que esta conitando diretamente com ele. Neste ultimo caso, encerre ou desinstale o aplicativo conitante e seus serviços. 'xampp-portcheck' 'free' Figura 5.18: Vericando conitos com o 'xampp-portcheck' Finalmente o Xampp poderá ser executado a partir do pen drive em um host de plataforma Windowns XP ou superior por meio do . Na interface XAMPP Control Panel Application, estarão disponíveis os serviços oferecidos pelo Xampp, bastando acionar o para executar cada módulo que o usuário deseje utilizar como recurso. Neste caso, os recursos essenciais para o Kit com o CACTI como o NMS base, são o e . Acione os dois módulos para continuar a conguração. 'xampp-control' 'Start' Apache MySql 33 Figura 5.19: Acionando os módulos Apache e MySql Para vericar se o Xampp esta sendo executado corretamente, basta abrir o browser e inserir o endereço http://localhost/. Se estiver operando corretamente, a página padrão do Xampp será visualizada com os respectivos menus de conguração no idioma selecionado. Verique os componentes que estão habilitados no menu Status. Figura 5.20: Vericando o status dos componentes do Xampp 5.2.3 Congurando o MySQL para o Cacti Com as preparações e requisitos concluídos, é preciso congurar o banco de dados do CACTI no Xampp para que ele possa ser executado corretamente e seja possível gerar grácos, consultar e armazenar informações dos dispositivos gerenciáveis em uma base de dados MySQL. Para acessar o banco de dados no Xampp, insira o endereço 'http://localhost/phpmyadmin/' no browser para ser encaminhado a tela inicial do phpMyAdmin e crie um novo banco de dados exatamente com o nome acionando o botão . cacti 'Criar' 34 Figura 5.21: Criando o banco de dados do Cacti cacti Após criar o banco de dados com nome , vá à aba Importar e selecione o botão . Então procure e selecione por meio do botão , o arquivo localizado no diretório \xampp\htdocs\cacti. O arquivo é um script que contem todos os comandos e atributos necessários para criar o banco de dados do CACTI conforme requisitos deste NMS. 'Enviar arquivo...' 'cacti.sql' 'Abrir' 'cacti.sql' Figura 5.22: Arquivo com a base de dados do Cacti Verique se o endereço do diretório do arquivo a ser importado foi corretamente selecionado e então acione o botão no canto inferior direito da página. 'Executar' 35 Figura 5.23: Implementando a base de dados do Cacti Conrmado com sucesso a importação, vá à aba Privilégios e então acione a opção 'Adicionar Novo Usuário', para criar o usuário que será utilizado como padrão no Cacti. Para uma melhor organização e entendimento neste tutorial, será denida como padrão a senha 'cacti' para todos os módulos e aplicativos. Insira o parâmetro 'cactiuser' como usuário e dena 'localhost' como servidor. Então dena 'cacti' no campo senha, repita-a no campo seguinte, e deixe selecionada a opção 'Grant all privileges on database cacti' em Banco de Dados para usuário. Para nalizar a conta selecione a opção 'Marcar todos' em Privilégios Globais e acione o botão 'Executar' no canto inferior direito da tela. Figura 5.24: Criando o usuário cactiuser 36 'cactiuser' 'Grant' Após criar o usuário verique se o privilégio em Administração esta selecionado, caso não esteja, selecione a opção e acione o botão novamente. 'Executar' Figura 5.25: Atribuindo os privilégios do cactiuser 'root' De volta à aba Privilégios, verique que o usuário não possui senha. Para tornar o ambiente um pouco mais seguro clique no ícone parecido com um lápis para edição desta conta. Figura 5.26: Vericando se o root possue senha No campo Alterar Senha, dena a senha do . cutar' 37 'root' como 'cacti' e conrme em 'Exe- Figura 5.27: Atribuindo senha ao root Após executar a alteração de senha, atualize a página e verique que você não possui mais privilégios para acessar o banco pelo phpMyAdmin. Observe que há um aviso indicando para que o usuário verique se as informações de autenticação do servidor MySql correspondem com as informações contidas no arquivo deste servidor. 'cong.inc.php' Figura 5.28: Tela de acesso negado ao servidor MySql 'cong.inc.php' Localize o arquivo situado no diretório \xampp\phpMyAdmin e o selecione para edição. Verique que os argumentos do arquivo estavam denidos para o usuário root e sem senha. Altere o usuário para com a senha e então salve o arquivo antes de fechá-lo. 'cactiuser' 38 'cacti' Figura 5.29: Inserindo credenciais de acesso no arquivo cong.inc.php Verique que agora é possível acessar novamente o banco de dados do Xampp pelo sistema de gerenciamento phpMyAdmin, que agora está preparado para receber o NMS Cacti. Figura 5.30: Acessando o phpMyAdmin com o cactiuser 'cong.php' Antes de acessar o Cacti é necessário alterar o arquivo situado no diretório include do cacti, no endereço \xampp\htdocs\cacti\include. Insira o usuário e a senha para atribuir acesso do Cacti a sua base de dados, e salve e feche o arquivo. tiuser' 'cacti' 39 'cac- Figura 5.31: Atribuindo acesso do Cacti ao banco de dados MySql 5.2.4 Congurando o Cacti Insira em seu browser o endereço http://localhost/cacti/ para iniciar as congurações relativas ao Cacti. A seguinte página deverá ser exibida, bastando avançar para a próxima etapa selecionando o botão . 'Next' Figura 5.32: Guia de instalação do Cacti Na página seguinte você poderá visualizar algumas congurações que foram denidas anteriormente no arquivo . Selecione o tipo de instalação como e avance no botão . stall' 'cong.php' 'Next' 'New In- 40 Figura 5.33: Nova instalação do Cacti Agora será necessário denir os caminhos (paths) onde estão disponíveis os aplicativos baseados em comandos de linha, oferecido pela suíte Net-SNMP, necessários para o gerenciamento via SNMP. Para isso informe os caminhos de acordo com a localização no pen drive, mas sem inserir a unidade da raiz do mesmo ou outra partição, e nalize a conguração acionando o botão . Estas congurações poderão ser alteradas posteriormente. 'Finish' 41 Figura 5.34: Inserindo os paths dos aplicativos do Cacti 'admin' 'admin' 'cacti' e a Nesta etapa basta fazer o primeiro acesso com o usuário e senha para que seja solicitada a inserção de uma nova senha. Dena a senha como conrme. Figura 5.35: Primeiro login no Cacti Antes de iniciar a conguração do NMS, anteciparemos a instalação do 42 'spine', um deamon que será utilizado como o poller do Cacti. Para isso baixe o arquivo 'cacti-spine0.8.7g.zip' no endereço http://www.cacti.net/downloads/spine/packages/Windows/ e então o extraia na raiz do pen drive. Em seguida, altere o nome do diretório recém extraído para spine e então abra o arquivo 'spine.conf.dist' para edição. Edite o parâmetro DB_Host para '127.0.01' e o DB_Pass para 'cacti', então salve o arquivo como 'spine.conf' apenas. Figura 5.36: Editando o arquivo de conguração do Spine No prompt do DOS, acesse o diretório \spine e o execute via linha de comando. Observe que o mesmo solicita uma dll adicional para funcionar corretamente. Figura 5.37: Executando e testando o Spine 'rrdtool-1.2.15-cygwin-1.5.20.zip', 'cygz.dll' e cole no diretório \spine. Felizmente esta dll é um componente do arquivo então vá ao diretório \rrdtool e copie o arquivo 43 Figura 5.38: Copiando a cygz.dll para o diretório do spine 'AnkeCalligraph.TTF' Aproveite para copiar também o arquivo (ou outra fonte do tipo TTF) no diretório \xampp\htdocs\xampp e cole o mesmo no diretório \rrdtool. Este arquivo será utilizado como fonte dos textos que serão gerados juntamente com os grácos. Figura 5.39: Disponibilizando uma arquivo fonte para o RDDTool Concluída a cópia, será possível nalmente proceder com a conguração do Cacti pela interface gráca. Acesse o endereço //localhost/cacti no browser. Acesse o sistema e vá ao campo Conguration no menu à esquerda e selecione a opção . Em seguida, selecione nas abas superiores e dena os caminhos dos executáveis corretamente, o diretório atual denido ao pen drive. 'Settings' 'Paths' incluindo 44 Figura 5.40: Redenindo os paths dos aplicativos do Cacti 'Poller' 'spine' 'Poller Type' 2, 5, 5, 25 e 50 Congure também na aba o como o do Cacti. Em seguida aumente o valor dos argumentos abaixo para respectivamente, no intuito de incrementar os recursos e desempenho do sistema, conforme o exemplo: Figura 5.41: Denindo os intervalos e processos do poller no Cacti 45 Nesta etapa já é possível utilizar o NMS para um gerenciamento efetivo. Porem, no intuito de corrigir bugs e para incrementar recursos com as atualizações e plugins deste sistema, demonstraremos em seguida como implementar o , alem da instalação de Plugins. Sendo a PIA, uma arquitetura que substitui alguns arquivos do Cacti, corrigindo problemas e provendo uma base para instalação de Plugins adicionais neste NMS. Plugin Architecture (PIA) 5.3 Fazendo upgrade no Cacti Para montar a nova base do Cacti com arquivos corrigidos e com o alicerce para receber plugins, vá ao endereço http://www.cacti.net/downloads/pia/ e baixe o arquivo compactado . Para extrair os dados desse arquivo será necessário um programa dedicado, neste caso foi usado o , um aplicativo que pode ser baixado em qualquer site de download de utilitários. Após a extração, observem no diretório os arquivos que serão copiados e substituídos no diretório cacti em \xampp\htdocs\cacti. 'cacti-plugin-0.8.7g-PA-v2.9.tar.gz' 'les-0.8.7g' WinRar Figura 5.42: Extraindo os arquivos do Plugin Architecture (PIA todos Então copie os arquivos do diretório \les-0.8.7g e cole e substituía os arquivos correspondentes dentro do diretório cacti em \xampp\htdocs\cacti. Conrme a substituição para todos os arquivos. 46 Figura 5.43: Substituindo os arquivos do Cacti com o PIA 'cong.php' 'cacti' e altere Para voltar a utilizar o Cacti, será necessário alterar novamente o arquivo dentro do diretório \xampp\htdocs\cacti\include. Altere o password para o parâmetro exatamente como na imagem. $url_path para "/cacti/" Figura 5.44: Redenindo as credenciais para acesso ao MySql do Cacti cong.php Após alterar o arquivo vá ao endereço http://localhost/phpmyadmin, abra o Banco de Dados , selecione a aba Importar, e então procure e selecione o arquivo disponível no diretório \cacti-plugin-arch. Por ultimo, selecione o botão para nalizar o processo de importação das novas tabelas. 'pa.sql' 'Executar' cacti 47 Figura 5.45: Importando as tabelas do Pia para o MySql Agora faça login novamente no NMS, procure e selecione no menu no canto inferior esquerdo a opção . Então selecione o usuário em uso, no caso o 'admin', e verique na aba Realm Permissions que surgiu uma nova opção não selecionada, o . Marque a nova opção e salve a conguração. 'User Management' 'Plugin Manager' Figura 5.46: Denindo as opções de acesso do usuário ao sistema do Cacti 48 A partir de agora será possível inserir plugins na plataforma Cacti. Observe que surgiu no menu a esquerda, a opção abaixo de Settings, e nela que serão feita as instalações dos mesmos. 'Plugin Management' 5.4 Instalando Plugins no Cacti Há vários plugins disponíveis para o Cacti, provenientes de diversas fontes. Para utilizar os 'ociais', acesse o endereço http://cactiusers.org/downloads/ e verique a lista de opções para baixá-las. Após baixar o plugin compactado em zip, extraia seu conteúdo no diretório \xampp\htdocs\cacti\plugins. É importante que mantenha o nome do plugin no diretório onde os arquivos foram extraídos, evitando assim problemas posteriores. Figura 5.47: Extraindo os plugins no diretório \xampp\htdocs\cacti\plugins Se o plugin selecionado for preparado para ultima versão da arquitetura, basta extrair o conteúdo do plugin num diretório com o nome do mesmo, no endereço \xampp\htdocs\cacti\plugins. Assim surgirá o objeto para instalação na opção . Para instalá-lo efetivamente, acione o ícone azul com uma seta para baixo. 'Plugin Management' 49 Figura 5.48: Instalando os plugins inseridos no Cacti Caso o plugin seja do estilo antigo, será necessário inserir seus parâmetros no arquivo 'cong.php' disponível no diretório \xampp\htdocs\cacti\include. Verique o formato para inserção dos parâmetros e que atento ao nome, que deve ser exatamente o mesmo no arquivo e no diretório. Figura 5.49: Inserindo os plugins do estilo antigo no arquivo cong.php O mesmo deverá surgir no menu status de já instalado. 'Plugin Management' para instalação ou com 50 Figura 5.50: Instalando os plugins do estilo antigo no Cacti 'User Management' 'admin' Por m, retorne ao meu e selecione o usuário . Então verique se há novas opções desmarcadas e habilite-as para utilizar os novos recursos. Figura 5.51: Habilitando o acesso aos novos plugins instalados no Cacti Sabendo instalar os plugins destas duas maneiras, basta repetir estes procedimentos para inserção de novas ferramentas na plataforma Cacti. Por m, observe no Layout do NMS que surgiram novas opções conforme congurado neste projeto. 51 Figura 5.52: Vericando as interfaces dos novos plugins 5.4.1 Alguns Plugins do Cacti Veja a lista de alguns plugins do Cacti extraídos do site http://cactiusers.org/downloads/ que foram implementados neste projeto por serem ferramentas importantes, cando a critério do usuário estabelecer a necessidade da utilização destes em seu NMS. 1. 2. Discovery: Este plugin adiciona a capacidade de auto descoberta de dispositivos em uma sub-rede e informa se estes possuem SNMP habilitado. é possível criar modelos de conguração para adicionar automaticamente dispositivos de acordo com o especicado. Router Congs: Este plugin permite que seja feito backup de congurações de Roteadores Cisco via telnet. é possível também fazer comparações entre arquivos para gerenciamento de mudanças. Thold: Este plugin permite que você seja alertado quando dispositivos estiverem com status 'down' e interrompe a coleta de dados para não corromper os grácos. 4. Cycle: Este plugin permite que você visualize todos os grácos, um após o outro, depois de um determinado intervalo de tempo. 5. Boost: Este plugin aumenta a performance do Cacti, principalmente se ele estiver 3. monitorando muitos dispositivos. 5.5 Utilizando o Kit de Gerência Portátil na Prática Com o Cacti você poderá gerenciar vários tipos de dispositivos de rede por meio de templates pré denidos, responsáveis por coletar tipos de dados distintos, quando houver SNMP congurado. Caso contrário, é possível vericar o status de conectividade dos hosts 52 utilizando para isso o protocolo ICMP (ping), se não houver como congurar SNMP no equipamento. Cada vez que for inserir o kit em um novo 'servidor' para iniciar o gerenciamento, será necessário ativar o Xampp, entrar via browser no endereço \localhost\cacti e fazer logon. Dependendo de quantas partições houver no HD do host e outras variáveis, o pen drive poderá assumir uma unidade de disco diferente do que foi congurado anteriormente. Para solucionar esse problema acesse a aba Paths no menu , e então altere os caminhos com as respectivas unidades de disco corretas. 'Settings' Figura 5.53: Vericando se os paths dos aplicativos do Cacti estão corretos 'Devices' Verique no menu se há hosts cadastrados no sistema. Caso haja algum host de outro ambiente congurado anteriormente, exclua esse dispositivo do sistema, marcando a caixa de seleção no canto esquerdo da tela referente ao mesmo, e acionando a ação em Choose an action. Em seguida, acesse a opção no canto direito superior para adicionar um novo dispositivo. 'Delete' 'Add' 53 Figura 5.54: Vericando e cadastrando novos hosts no Cacti Insira os dados do dispositivo a ser gerenciado, informando seu hostname ou endereço IP, denindo uma descrição e escolhendo o template mais apropriado para o tipo de dispositivo em questão. Verique que há dois métodos de vericar a disponibilidade do dispositivo: via SNMP ou por ICMP, ou ambos. Neste caso, será inserida uma estação Windows no Cacti, onde o kit está sendo executado, após habilitação do protocolo SNMP neste host. A versão congurada foi o SNMPv1, com o parâmetro 'SauronEye' na comunidade SNMP. Figura 5.55: Inserindo os parâmetro dos hosts no Cacti 54 Se o Cacti estiver funcionando corretamente e o dispositivo devidamente congurado com o SNMP, será visualizada a informação e surgirão algumas informações do dispositivo como System, Uptime, Hostname, e outros. O dispositivo será gerenciado após seu cadastro, e para criar um gráco para o mesmo, selecione a opção . 'Save Successful' 'Create Graphs for this Host' Figura 5.56: Congurando hosts a serem gerenciados via SNMP Nesta tela, serão oferecidas diversas opções de gerenciamento de acordo com o template selecionado. No caso de uma estação, tem várias opções de hardware, como processamento, memória e rede. Escolha uma ou mais opções no menu 'Create' ou marque a caixa de seleção conforme desejado, salvando as congurações ao nal acionando o botão no canto inferior direito da tela. Neste exemplo, serão gerenciados os processos (Host MIB Processes) da estação. 'Create' 55 Figura 5.57: Selecionando os objetos gerenciaveis do host 'Cre- Selecione uma cor para a legenda do gráco gerado pelo Cacti e acione o botão . é interessante alternar cores caso sejam criados outros grácos para o mesmo dispositivo, facilitando a visualização da informação esboçada. ate' Figura 5.58: Criando grácos para o host gerenciado Após congurar os parâmetros do gráco, é necessário inserir o mesmo em um ramo da 'árvore' de grácos, que dene uma hierarquia organizacional delimitada pelo usuário. Para isso acesse no menu a opção e verique que há uma árvore padrão. Selecione a opção caso deseje criar outra árvore ou selecione a árvore padrão para inserir o gráco na mesma. 'Add' 'Graph Trees' 56 Figura 5.59: Inserindo o novo gráco na árvore organizacional Nesta tela é possível alterar o nome da árvore e denir um método de organização dos grácos inseridos nesta. Acione a opção para inserir o gráco na árvore, e caso deseje fazer alguma alteração no nome ou forma de organização, altere e utilize o botão antes de adicionar o gráco. 'Save' 'Add' Figura 5.60: Congurando a árvore organizacional padrão Para nalizar a inserção do gráco do dispositivo no sistema, selecione o tipo de item que será exibido na árvore, no caso um gráco, e em seguida surgirá à relação de grácos criados no Cacti. Selecione o gráco em questão a acione o botão para nalizar. 'Create' 57 Figura 5.61: Congurando as opções do gráco na árvore organizacional Para visualizar o gráco, vá à aba graphs no canto superior esquerdo da tela e selecione a árvore onde foi inserido o gráco. Então serão visualizados todos os grácos inseridos nesta árvore, que serão atualizados conforme o intervalo de tempo denido pelo usuário no poller do sistema. Figura 5.62: Visualizando o gráco no Cacti Repita essa operação para adicionar outros dispositivos de rede para serem gerenciados, e para criar grácos e árvores personalizadas pelo usuário, facilitando a visualização das informações disponíveis. Verique sempre se os status dos dispositivos estão como 'Up' no menu 'Devices' ou congure um plugin (thold) para enviar alertas quando houver mudanças nestes estados. 58 5.5.1 Agendamento de tarefa e Poller Para executar o Spine no ambiente Windows, no intuito de coletar dados para os grácos e vericar se os dispositivos estão operacionais, é necessário criar um agendamento de tarefas como administrador para executar este poller, conforme intervalo denido no Cacti. Para isso vá ao menu Iniciar e em seguida no menu Congurações, então acione o Painel de Controle. No Painel de Controle selecione a opção . Tarefas Agendadas Figura 5.63: Acionando as Tarefas Agendadas Adicionar tarefa agendada Surgirá então uma janela com a opção . Acione a opção e prossiga com o botão até chegar à tela onde é solicitado que se escolha o aplicativo que será executado de acordo com o intervalo denido. Acione o botão para selecionar o arquivo responsável pela função de poller. 'Avançar' 'Procurar' Figura 5.64: Assistente para criar uma tarefa agendada 'php.exe'no endereço \xampp\php, e então selecione o arquivo e 'Abrir' Procure o arquivo acione o botão . 59 Figura 5.65: Selecionando o programa para agendamento da tarefa Dena um nome para a tarefa criada, selecione a opção conguração com o botão . Avançar Diariamente e prossiga a Figura 5.66: Denindo período de execução da tarefa Avance novamente sem congurar hora e dia para o inicio da tarefa, esses parâmetros serão denidos posteriormente. 60 Figura 5.67: Congurando a data de início da tarefa Na tela para inserir usuário e senha, insira os atributos de administrador da estação para ter todos os privilégios necessários para execução da tarefa. Figura 5.68: Denindo os privilégios de execução da tarefa Concluir Na ultima tela nalize a criação da tarefa com o botão . Verique então que foi criado à tarefa abaixo da opção Adicionar tarefa agendada, selecione essa nova tarefa com o botão direito do mouse e vá em . Propriedades 61 Figura 5.69: Finalizando a criação da tarefa Na aba Tarefa em propriedades insira o seguinte parâmetro no campo Executar : Insira também no campo Iniciar em, o parâmetro: \ \ . No campo Executar como, insira os atributos do administrador do host, e por m, a ultima opção desta aba deve ser selecionada para ativar o agendamento ou desmarcada quando desejar desativar a tarefa. 'G:\xampp\php\php.exe G:\xampp\htdocs\cacti\poller.php'. 'G: xampp php' Figura 5.70: Inserindo os parâmetros para execução da tarefa Na aba Agendar, estão disponíveis os horários de agendamento denidos. Acione o botão e dena o dia de inicio do agendamento. Na opção Repetir a tarefa dena o tempo para e a Duração para . Conrme as congurações. Avançado 5 minutos 24 horas 62 Figura 5.71: Denindo opções avançadas de agendamento Para nalizar, basta conferir na aba Segurança se o administrador do host tem todos os privilégios para executar o agendamento e o serviço. Figura 5.72: Denindo os privilégios de acesso datarefa Conrme as congurações no botão Agendadas. Ok e verique o status da tarefa em Tarefas 63 Figura 5.73: Ativando e vericando a tarefa agendada 5.5.2 Congurando SNMP em estações Windows Na plataforma Windows é possível ativar e congurar o serviço de SNMP nas estações, e tendo em vista que este projeto abordou o Windows XP para implementação do NMS, será demonstrado como habilitar esse recurso neste sistema. Acesse o menu Congurações no menu Iniciar, e em seguida, selecione o Painel de Controle. No Painel de Controle, selecione a opção Adicionar ou remover programas, e então acione no menu à esquerda a opção . Adicionar/remover componentes do Windows Figura 5.74: Adicionando componentes do Windows 64 No Assistente de componentes do Windows, selecione com um clique duplo sobre a opção . Ferramentas de gerenciamento e monitoramento Figura 5.75: Assistente para adicionar componentes do Windows Na janela Ferramentas de gerenciamento e monitoramento, basta marcar a opção e conrmar acionando o botão . Simple Network Management Protocol Ok Figura 5.76: Ferramentas de gerenciamento e monitoramento do Windows Ao retornar a janela Assistente de componentes do Windows, prossiga acionando o botão e verique que o novo componente está sendo instalado. Quando a instalação for nalizada, conrme as alterações acionando o botão . Avançar Concluir 65 Figura 5.77: Instalando o SNMP no Windows Executar Volte ao menu Iniciar e selecione a opção . Na janela Executar do Windows, insira o comando para abrir a lista de serviços disponíveis e congurados no sistema. services.msc Figura 5.78: Acionando a janela de serviços do Windows Na lista dos serviços do Windows, procure e selecione com o botão direito o , e em seguida, selecione . SNMP Propriedades 66 Serviço Figura 5.79: Lista de serviços do Windows Este serviço ca disponível no sistema após ser instalado conforme demonstrado anteriormente. Verique na aba Geral o status do serviço, deixe como , para o mesmo ser ativado somente quando o usuário assim desejar. Manual Figura 5.80: Propriedades do serviço SNMP Congure na aba Segurança a comunidade SNMP. Para isso, verique se a opção Enviar interceptação de autenticação está habilitada e então acione o botão Adicionar. Dena o Nome da Comunidade e os direitos da mesma (Noticação, Somente Leitura, Leitura Gravação, Leitura Criação) e conrme no botão Adicionar. Para nalizar, selecione Aceitar pacotes SNMP de qualquer host para que qualquer NMS possa gerenciar esse host ou dena um NMS especico marcando e adicionando o servidor na opção Aceitar pacotes SNMP destes hosts. 67 Figura 5.81: Congurando a comunidade SNMP no Windows Toda vez que o usuário desejar habilitar ou nalizar o SNMP na estação, basta selecionar o Serviço SNMP com o botão direito e Iniciar ou Parar o serviço, respectivamente. Figura 5.82: Ativando e encerrando o serviNMP 5.5.3 Sugestões e Solução de Problemas Com intuito de auxiliar os usuários na solução de problemas, verique as seguintes opções caso o NMS não esteja funcionando corretamente: Verique se o spine está sendo executado corretamente utilizando o parâmetro \ no prompt de comando do Windows. g: spine>spine, 68 Figura 5.83: Vericando se o Spine está rodando corretamente g: xampp php>php Verique se o poller esta funcionando corretamente utilizando o parâmetro \ \ \ \ \ \ , no prompt de comando do Windows. Deverá haver um número maior que 0 em RRDsProcessed. g: xampp htdocs cacti poller.php Figura 5.84: Vericando se o RRDTool está gerando os grácos Verique se o Xampp está funcionado corretamente acessando \\localhost no browser e acessando o menu . Verique se a propriedades das pastas do Kit não estão denidas como . Tente utilizar outro arquivo de fonte (.ttf) caso o gráco não esteja sendo esboçado. Habilite o modo em Graph Management e as opções de log em Settings/General/Event Logging para visualizar possíveis erros e outros alertas. Morto' Status 'Arquivo Debug 69 Capítulo 6 Conclusão No decorrer do aprendizado sobre redes de computadores é perceptível a necessidade e diculdade de gerenciar e administrar os diversos elementos heterogêneos que a compõe, sendo que essa complexidade vai se agravando à medida que a rede vai aumentando, englobando mais dispositivos críticos e provendo mais serviços elementais à organização. Devido à necessidade cada vez maior de disponibilidade dos serviços providos por uma organização, é essencial que haja planos e dispositivos de contingência caso ocorram eventos excepcionais que comprometam esse ambiente em produção plena, evitando assim grandes prejuízos e fornecendo integridade e segurança da informação. Para tanto, um dos requisitos básicos é exatamente gerenciar ativamente os elementos que compõe a rede, por meio de procedimentos bem denidos, vericando se os níveis de utilização dos recursos estão operacionalmente dentro do esperado, detectando, assim, a necessidade de uma manutenção preventiva. Deste modo, é possível acompanhar também o crescimento dos ativos e serviços da organização, provisionando uma margem de crescimento para este ambiente em um determinado período de tempo. Os capítulos apresentados anteriormente foram fornecendo gradualmente conhecimentos e habilidades a cerca de gerenciamento de redes, prevendo desde os conceitos mais básicos e importantes, até a implementação de um NMS e ferramentas de rede, possibilitando a aplicação desses conceitos na prática. Assim, abordamos no capítulo 2 os elementos que compõe um sistema de gerência de redes (Entidade Gerenciadora, Elementos gerenciados, Agentes, MIB e Protocolos de gerenciamento), bem como os principais processos de gerenciamento, também conhecido como FCAPS (Gerenciamento de Falhas, de Conguração, de Contabilização, de Desempenho e de Segurança). Por m, por meio desse capítulo, foi possível inferir os elementos básicos das relações entre gerenciamento de redes, sistemas e aplicações. Em seguida, denimos e examinamos alguns detalhes referentes à um protocolo de gerência de redes baseado em TCP/IP, amplamente utilizado para gerir processos, dispositivos de rede, sistemas e aplicações heterogêneas: o SNMP. A respeito deste protocolo, foram abordadas as suas três versões e principais características, além de outros protocolos e padrões diretamente relacionados ao SNMP e ao processo de gerenciamento, como a Estrutura de Informações de Gerenciamento (SMI) e o ASN.1, ambos utilizados para linguagem de denição e como regras de codicação na comunicação entre os protocolos, denindo inclusive as estrutura da Base de Dados de Informações Gerenciáveis (MIB). Ao 70 nal do capítulo 3, há também uma breve descrição do protocolo RMON e sua utilização, no intuito de agregar mais conteúdo e conhecimento para a proposta deste documento. Após toda fundamentação teórica necessária para iniciar o processo de gerenciamento de uma rede, apresentamos no capítulo 4 alguns NMS como o Cacti, Nagios e Zabbix, além de outros aplicativos que fariam parte do kit portátil arquitetado para este projeto. Como os NMS citados já possuem versões estáveis para a plataforma de software livre, optamos por selecionar um que pudesse ser implementado também na plataforma Windows, já que boa parte das organizações e universidades ainda possui hosts baseados nesta plataforma e carece de um sistema de gerenciamento, preferencialmente sob licença livre (GNU). Por ser mais maleável, de caráter livre e apresentar maior compatibilidade com a plataforma Windows, selecionamos o NMS Cacti para implementá-lo, juntamente com o Xampp portátil, em um pen drive. Toda a implementação deste NMS portátil foi esboçada no capítulo 5, incluindo a instalação de recursos mais avançados, como a implementação da arquitetura PIA para receber novos plugins do Cacti, responsáveis por incrementar e centralizar novos recursos e funcionalidades ao sistema, dispensando ferramentas avulsas. Após muitas tentativas, ao nalizar a instalação do Cacti houve uma fase de validação onde foram detectadas algumas instabilidades, sendo elas remediadas à medida que algumas congurações do sistema foram sendo ajustadas, de acordo com as conformidades entre ele e o servidor web portátil (Xampp). Com o conjunto estável, foi possível executálo em diferentes hosts baseados na plataforma Windows, sendo necessário apenas fazer modicações relativas aos Paths nas congurações do próprio Cacti, para que o mesmo funcionasse plenamente. Durante a validação do produto, foram inseridos no NMS alguns Switches gerenciáveis e estações de trabalho baseadas na plataforma Windows (XP, Vista e 7). Os switches gerenciáveis foram inseridos no sistema e validados com as três versões do SNMP, sendo que o Cacti permitiu acessar as informações e esboçar grácos de todas as interfaces ethernet desses dispositivos. No entanto, apesar de ter cadastrado os switches via SNMPv3 com sucesso no sistema, não foi possível gerar grácos pois houve problema com suporte a criptograa. Já as estações com Windows foram gerenciadas somente via SNMPv1 e SNMPv2c (pela comunidade), após ser habilitado o Serviço SNMP nas mesmas, sendo vericadas estatísticas de alguns componentes de hardware como processamento, memória e espaço em disco. Ambos os dispositivos foram monitorados com o objetivo de se vericar a disponibilidade destes hosts e esboçar grácos a partir dos templates predenidos para cada tipo de dispositivo contemplado. Apesar da demonstração de como inserir os plugins no Cacti, não foi possível utilizar todas estas funcionalidades em produção. O Boost e o Cycle aparentemente funcionam no ambiente, porém não havia disposição de muitos dispositivos para testar plenamente esses recursos em execução. O Router Congs e o Discovery tiveram problemas para comparar dois arquivos de conguração de Switches, para acessar estes dispositivos via Telnet e para buscar dispositivos na rede via SNMP, sendo esses problemas aparentemente resolvidos alterando alguns arquivos do php relacionados a estes plugins. O Thold pareceu estável durante a implementação do produto, porém não houve como preparar um ambiente ideal com serviço de email para testar sua capacidade, tendo em vista o tempo restante para o nal do projeto. Quanto aos grácos, foram vericadas diversas opções para gerenciar elementos especícos de um dispositivo, tais como processamento, capacidade da interface de rede, 71 memória e outros. Porém, os procedimentos relativos à qualimetria e detecção de anomalias nos dispositivos de rede não foram abordados intencionalmente, já que cada um desses temas fazem referência a outros e são fortemente interligados, sendo necessário todo um livro ou disciplina somente para abordar essas propriedades do gerenciamento de redes. Analisando todas as partes desse projeto e compreendendo a relação entre os elementos da rede, o NMS e os protocolos que regem essa comunicação, podemos inferir que o objetivo principal era viabilizar a multidisciplinaridade dos processos e conceitos apresentados, a partir da preparação do usuário para a prática de gerência de redes, por meio de um Kit implementado para este m. Por meio dessa integração entre teoria e prática no âmbito de gerenciamento de redes, acredito que o projeto atendeu às expectativas de forma satisfatória. 6.1 Sugestões para Projetos Futuros Por ter sido implementado em um pen drive, não havendo a necessidade de instalação em um host, além de possibilitar a utilização de forma exível no ambiente Windows, o kit de gerência produzido neste projeto poderia ser particionado em diferentes versões, assim como o Xampp, para trabalhar em diversas plataformas. Outra possibilidade seria implementar um pacote com as congurações do Cacti pré denidas, para ser instalado sobre algum servidor Web, observando os requisitos desse sistema de gerência. Com a inserção dos recursos dos plugins disponíveis para o Cacti, considerando os recursos computacionais atuais e até mesmo com o desenvolvimento de novos plugins, é possível que em um futuro próximo seja possível implementar um NMS completo e de qualidade com base nesse kit. Podendo este kit abranger os principais processos do gerenciamento de redes, e suportando o gerenciamento de falhas, conguração, contabilização, desempenho e segurança. Sendo que esse kit poderá sempre ser melhorado, mantendo sua essência de software livre. 72 Apêndice A Lista de RFC A.1 Capítulo 2 RFC 3139 -"Requirements for Conguration Management of IP-based Networks" RFC 3410 - "Introduction and Applicability Statements for Internet Standard Management Framework" A.2 Capítulo 3 RFC 1155 - "Structure and identication of management information for TCP/Ip based internets" RFC 1213 - "Management Information Base for network management of TCP/IP based internets: MIB-II" RFC 1157 - "A Simple Network Management Protocol (SNMP)" RFC 768 - "User Datagram Protocol" RFC 1419 - "SNMP over Apple Talk" RFC 1420 - "SNMP over IPX" RFC 1905 - "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)" RFC 1906 - "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)" RFC 1907 - "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)" 73 RFC 1908 - "Coexistence between Version 1 and Version 2 of the Internet-standard Network Management Framework" RFC 2578 - "Structure of Management Information Version 2 (SMIv2)" RFC 3414 - "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3) 74 Referências [1] Ian Berry, Tony Roman, Larry Adams, J. Pasnak, Jimmy Conner, Reinhard Scheck, Andreas Braun, and Cacti Group. The cacti manual. Copyright 2010 The Cacti Group, http://www.cacti.net/downloads/docs/pdf/manual.pdf, 2010. 19 [2] Alexander Clemm. Network Management Fundamentals. Cisco Press, Indianapolis, 2006. x, 4, 5 [3] Firefox. Firefox. Copyright BR/refox/3.6/releasenotes/, 2010. 24 Firefox, [4] Ethan Galstad. Nagios. Copyright http://www.nagios.org/about/overview, 2009. 19 http://www.mozilla.com/pt2009 Nagios Enterprises, [5] James F. Kurose and Keith W. Ross. Redes de Computadores e a Internet - Uma abordagem top-down - 3 Edição. Pearson Addison Wesley, São Paulo, 2006. x, xiii, 5, 8, 12, 13, 14, 15, 16, 17 [6] Raquel V. Lopes. Melhores Práticas para Gerência de Redes de Computadores. Campus, Rio de Janeiro, 2003. 5, 11 [7] D. Lynch and M. Rose. Internet System Handbook. Addison Wesley, 1993. 12 [8] Douglas R. Mauro and Kevin J. Schmidt. Essencial SNMP. OReilly, 2001. x, 2, 12, 13, 16, 17 [9] RRDTool. Rrdtool. Copyright RRDTool, http://oss.oetiker.ch/rrdtool/download.en.html, 2010. 18 [10] T. Saydam and T. Magedanz. From Networks and Network Management into Service and Service Management - Volume 4. Journal of Networks and System Management, 1996. 5 [11] Kai Oswald Seidler, André Domarques, and Apachefriends. Xampp. Copyright 2010 Apache Friends, http://www.apachefriends.org/pt_br/xampp.html, 2010. 20, 24 [12] Zabbix SIA. Zabbix. Copyright http://www.zabbix.com/requirements.php, 2010. 20 [13] Internet Society. Internet engineering http://www.ietf.org/rfc.html, 1992. 1 75 task force. Zabbix SIA, Internet Society, [14] William Stallings. SNMP, SNMPv2,SNMPv3, and RMON 1 and 2. Addison Wesley, 1999. 11, 15 [15] CISCO Systems. Cisco university, snmp. Copyright http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.pdf, 14 CISCO, 2010. [16] Rose T.M. and McCloghrie K. How to Manage Your Network using SNMP: The Network Management Practicum. Prentice Hall, 1995. 11 76