Ferramentas Livres para Gerência de Redes e Sistemas Finais Fábio Pereira Botelho, M.Sc [email protected] Recife-PE, 06 de maio de 2006 Objetivos Apresentar os conceitos básicos de redes relacionados ao uso das ferramentas estudadas Apresentar ferramentas eficientes oriundas da comunidade de software livre para gerenciamento dos elementos computacionais da infraestrutura de redes TCP/IP e dos sistemas finais Tópicos Abordados Sistemas Finais X Infraestrutura de Redes TCP/IP Intranet / Internet e Protocolos Protocolos Básicos Utilizados pelas Ferramentas ICMP SNMP Gerenciamento de Rede Ferramentas Auxiliares snmpwalk (linux) getif (windows) Nagios MRTG RRDTOOL Sistemas Finais X Infraestrutura de Redes Sistemas Finais: Localizados nas bordas da rede Executam aplicações Elementos mais complexos Infra-estrutura das redes TCP/IP: Núcleo da rede Roteadores Possibilitam a interconexão entre as redes Redes de acesso, meio físico: Formada por switchs nível 2 ou 3, hubs, pontos de acesso wireless e enlaces de comunicação que estão interligados ao roteador que dá acesso à Internet Redes TCP/IP - Internet X Intranet Protocolos: controlam o envio e a recepção de mensagens ex.: TCP, IP, HTTP, FTP, SNMP, ICMP, PPP Internet X Intranet Implementam a pilha de protocolos TCP/IP Internet é uma rede de comutação de pacotes - datagrama pública Intranets são “Internets” privadas Protocolos definidos através das RFCs mantidas pelo IETF RFC: Request for comments IETF: Internet Engineering Task Force O que é um protocolo? Um protocolo humano e um protocolo de rede de computadores: Protocolos SNMP e ICMP no Modelo Genérico de Camadas da Internet Sistema Final de Origem Sistema Final de Destino fim-a-fim SNMP SNMP UDP UDP ICMP ICMP ICMP: Internet Control Message Protocol Usado por computadores e roteadores para troca de informação de controle da camada de rede Error reporting: hospedeiro, rede, porta ou protocolo Echo request/reply (usado pela aplicação ping) Tipo 0 3 3 3 3 3 3 4 Transporte de mensagens: Mensagens ICMP transportadas em datagramas Ip ICMP message: tipo, código, mais primeiros 8 bytes do datagrama IP que causou o erro 8 9 10 11 12 Código descrição 0 echo reply (ping) 0 dest. network unreachable 1 dest host unreachable 2 dest protocol unreachable 3 dest port unreachable 6 dest network unknown 7 dest host unknown 0 source quench (congestio control - not used) 0 echo request (ping) 0 route advertisement 0 router discovery 0 TTL expired 0 bad IP header ICMP: Internet Control Message Protocol Funcionamento do ping ICMP Echo Request Tipo 8, Código 0 ICMP Echo Reply Tipo 0, Código 0 192.168.0.136/24 192.168.0.171/24 ICMP: Internet Control Message Protocol C:\Documents and Settings\Administrador>ping 192.168.0.171 Pinging 192.168.0.171 with 32 bytes of data: Reply from 192.168.0.171: bytes=32 time<1ms TTL=64 Reply from 192.168.0.171: bytes=32 time<1ms TTL=64 Reply from 192.168.0.171: bytes=32 time<1ms TTL=64 Reply from 192.168.0.171: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.0.171: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms ICMP e Nagios ICMP é usado pelo Nagios para verificar se os hosts, switchs, roteadores, servidores de impressão e outros elementos da rede estão acessíveis (up) ou não (down) dentre outras verificações disponíveis Infra-estrutura para gerenciamento de redes Definições: Padrão de fato para gerenciamento de redes SNMP: Simple network management protocol Origem na Internet (SGMP) Usa o protocolo de transporte UDP Começou simples Desenvolvido e adotado rapidamente Crescimento: tamanho e complexidade Atualmente: SNMP V3 Padrão de fato para gerenciamento de redes SNMP visão geral: 4 partes-chave Management Information Base (MIB): Base de dados distribuída com dados de gerenciamento de rede Structure of Management Information (SMI): Linguagem de definição para objetos da MIB Protocolo SNMP Transporta informações e comandos sobre objetos entre o gerenciador e o elemento gerenciado Segurança, capacidades administrativas característica nova do SNMPv3 SNMP usado tradicionalmente apenas para monitorar e não para controlar os elementos computacionais da rede SNMP MIB Um módulo MIB é especificado pela SMI como: MODULE-IDENTITY (100 MIBs padronizadas, mais proprietárias) MODULE OBJECT TYPE: OBJECT TYPE:OBJECT TYPE: objetos especificados via construção OBJECT-TYPE da SMI Exemplo de MIB: módulo UDP Object ID Nome Tipo Comentários 1.3.6.1.2.1.7.1 UDPInDatagrams Counter32 número total de datagramas entregues neste nó 1.3.6.1.2.1.7.2 UDPNoPorts Counter32 número de datagramas com app destino inexistente 1.3.6.1.2.1.7.3 UDInErrors 1.3.6.1.2.1.7.4 UDPOutDatagrams Counter32 número de datagramas enviados 1.3.6.1.2.1.7.5 udpTable Counter32 número de datagramas não entregues por outras razões SEQUENCE uma linha para cada porta em uso por uma aplicação fornece o número da porta e o endereço IP Nomeação de objetos Questão: como nomear cada possível objeto padrão (protocolos, dados, outros...) em cada possível padrão de rede?? Resposta: ISO object identifier tree: Nomeação hierárquica de todos os objetos Cada ramificação tem um nome e um número 1.3.6.1.2.1.7.1 ISO ISO-ident. org. US DoD Internet udpInDatagrams UDP MIB2 management ISO object identifier tree Protocolo SNMP Duas formas de transportar informações da MIB: comandos e eventos managing entidade gerenciadora entity pedido resposta agente agent data elemento gerenciado Managed device modo comando/resposta managing entidade gerenciadora entity trap msg agente agent data elemento gerenciado Managed device modo evento Ferramentas Auxiliares Getif (Windows) Snmpwalk (Linux) Ferramentas Auxiliares Getif É uma ferramenta free desenvolvida para Windows baseada na ferramenta de rede desenvolvida por Philippe Simonet. Entre outras funcionalidades é um excelente cliente SNMP que permite identificar, coletar e criar gráficos das variáveis MIB dos dispositos que possuem o agente SNMP. http://www.wtcs.org/snmp4tpc/getif.htm Ferramentas Auxiliares Ferramentas Auxiliares snmpwalk É um cliente SNMP disponível para as plataformas LINUX e UNIX que permite a coleta de informações das MIBs dos objetos gerenciáveis executando o agente SNMP Ferramentas Auxiliares [fabio@server1 fabio]$ snmpwalk -Os -c public -v 1 192.168.0.5 system sysDescr.0 = STRING: 1 port Print Server sysObjectID.0 = OID: enterprises.722.2.6.1 sysUpTime.0 = Timeticks: (29140926) 3 days, 8:56:49.26 sysContact.0 = STRING: Fábio Botelho sysName.0 = STRING: PrintServer sysLocation.0 = STRING: [email protected] sysServices.0 = INTEGER: 79 Servidor de impressão Entidade gerente consulta agente SNNP para obter o valor das MIBs Responde informando os valores das MIBs solicitadas 192.168.0.136/24 192.168.0.5/24 Nagios Nagios Disponível para download em http://www.nagios.org Documentação disponível em http://nagios.sourceforge.net/docs/1_0/toc. html Nagios É uma aplicação para gerenciamento dos elementos computacionais da rede e dos sistemas finais. Os hosts e os serviços especificados ou as switchs e roteadores são monitorados, alertando ao administrador ou equipe de administradores quando as coisas não vão bem e quando voltam a melhorar. Utiliza os protocolos ICMP, SNMP através de plugins instalados Os plugins podem definir quaisquer aplicações gerente e agente para obtenção de informações dos hosts. Nagios Características Desenvolvido para rodar no linux, mas pode rodar em qualquer unix Monitoramento de serviços (SMTP, POP3, HTTP, etc) Monitoramento dos recursos dos hosts (carga do processador, uso do disco, swap, uso da memória RAM) Desenvolvimento de plugins simplificado Necessita de um servidor web configurado (Apache) Nagios Características Realização de várias atividades ao mesmo tempo Possibilidade de se definir uma hierarquia de hosts com dependências entre equipamentos de rede Notificação dos contatos (via e-mail) quando da ocorrência de problemas em serviços e hosts e quando os problemas são resolvidos Nagios Características Possibilidade de se configurar manipuladores de eventos que executarão quando da ocorrência de problemas em hosts e serviços Interface web para a observação do status atual da rede, dos hosts e dos serviços de rede; das notificações e histórico de problemas; dos arquivos de log. Nagios Escopo dos objetos de dados Serviços tais como HTTP, SMTP, POP3, DNS, etc Host Grupos de Host Contatos Grupos de Contatos Comandos (onde se configuram os plugins do Nagios) Períodos de tempo (usados para notificar os administradores da rede apenas durante a semana ou 24 X 7) Dependências de serviços (Se o servidor web cair, as aplicações por ele servidas estarão indisponíveis) Dependências de elementos computacionais (host, switch e roteadores) Caso o servidor Server1 caia, o serviço DNS e todos os outros nele mantidos estarão indisponíveis Nagios Nagios MRTG Multi Router Traffic Grapher (MRTG) foi desenvolvido em 1994 basicamente para monitorar a carga de tráfego em links da rede Extendida a fim de coletar, registrar e representar qualquer variável MIB disponível em qualquer equipamento de rede que implemente SNMP MRTG Gera páginas HTML contendo imagens gráficas que oferecem uma representação visual da situação do tráfego Ou de qualquer outra variável MIB coletada de um dispositivo executando a agente SNMP Encontrado em http://oss.oetiker.ch/mrtg/ MRTG firewall.algumlugar.com.br MRTG Arquivo de configuração do mrtg para o servidor proxy.algumlugar.com.br gerado após a execução do comando cfgmaker cfgmaker --global 'WorkDir: /var/www/html/mrtg' --global 'Options[_]: bits,growright' --output /etc/mrtg/proxy.cfg [email protected] Target[proxy.algumlugar.com.br_2]: 2:[email protected]: SetEnv[proxy.algumlugar.com.br_2]: MRTG_INT_IP="192.168.0.203" MRTG_INT_DESCR="eth0" MaxBytes[proxy.algumlugar.com.br_2]: 12500000 Title[proxy.algumlugar.com.br_2]: Traffic Analysis for 2 -- proxy.algumlugar.com.br PageTop[proxy.algumlugar.com.br_2]: <H1>Traffic Analysis for 2 -- proxy.algumlugar.com.br</H1> <TABLE> <TR><TD>System:</TD> <TD>proxy.algumlugar.com.br in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR> <TR><TD>Maintainer:</TD> <TD>Fabio <[email protected]> (configure /etc/snmp/snmp.local.conf)</TD></TR> <TR><TD>Description:</TD><TD>eth0 </TD></TR> <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR> <TR><TD>ifName:</TD> <TD></TD></TR> <TR><TD>Max Speed:</TD> <TD>100.0 Mbits/s</TD></TR> <TR><TD>Ip:</TD> <TD>192.168.0.203 (webmail.algumlugar.com.br)</TD></TR> </TABLE> MRTG Pode representar visualmente através de gráficos outras informações tais como disponibilidade dos processadores, memória RAM utilizada, utilização dos discos Quaisquer outras informações disponíveis nas MIBs dos elementos gerenciáveis Logs não crescem com o tempo MRTG Arquivos de log do MRTG não crescem com o tempo condensados estatísticamente Mantém condensações dos valores para apresentação de gráficos Diário Semanal Mensal Anual MRTG Execução como Daemon,ou através da configuração da crontab MRTG Execução como Daemon MRTG Dicas importantes para o funcionamento do MRTG Disponibilização do serviço SNMP nos dispositivos gerenciáveis Identificação das MIBs cujos valores irão ser coletados nos dispositivos gereciáveis MRTG Dicas Importantes Disponibilização do serviço SNMP nos dispositivos gerenciáveis Linux Windows XP Switch 3COM Servidores de impressão MRTG Serviço SNMP Hosts Linux Gerenciados Instalação dos pacotes snmp disponíveis na distribuição usada (e.g *snmp*.rpm) libucd-snmp4-4.2.6-45970cl net-snmp-utils-5.0.9-58894cl net-snmp-5.0.9-58894cl Configuração do arquivo /etc/snmp/snmpd.conf Conectiva 10 Toda árvore MIB é habilitada para consulta MRTG Serviço SNMP Hosts Windows XP/2000 Gerenciados Instalação dos pacotes snmp Serviço iniciado MRTG Dicas Importantes Identificação das MIBs cujos valores irão ser coletados nos dispositivos gerenciáveis Uso da ferramenta Getif Acesso a sites com repositórios MRTG MRTG Identificação das MIBs a serem coletadas nos dispositivos gerenciáveis Ferramenta Getif Necessidade de baixar os arquivos com as MIBs dos dispositivos a serem gerenciados Diferentes para cada tipo de equipamento As MIBs baixadas são postas no diretório de MIBs a fim de que o Getif possa descrever cada MIB além de obter o valor MRTG Identificação das MIBs a serem coletadas nos dispositivos gerenciáveis Ferramenta Getif MRTG Identificação das MIBs a serem coletadas nos dispositivos gerenciáveis Ferramenta Getif Permite que o Getif identifique, descreva e consulte cada MIB do elemento gerenciado MRTG Dicas Importantes Acesso a sites com repositórios MRTG MRTG Onde Encontrar Configurações prontas MRTG Onde Encontrar Configurações prontas RRDTOOL RRDTOOL Encontrado em http://oss.oetiker.ch/rrdtool/ RRD significa Round Robin Database Ferramenta concebida para armazenamento e apresentação visual de séries temporais Pode ser considerado uma evolução do MRTG Permite gráficos mais elaborados Usado conjuntamente com o MRTG