Capítulo 8: Gerenciamento de Redes Objetivos do capítulo: introdução ao gerenciamento de redes motivação componentes principais Ambiente de gerenciamento de redes da Internet MIB: base de informações de gerenciamento SMI: linguagem de definição de dados SNMP: protocolo para gerenciamento de redes serviços de apresentação: ASN.1 firewalls O que é gerenciamento de redes? Sistema autônomo (isto é “rede”): centenas ou milhares de componentes de hardware/software interagindo outros sistemas complexos que requerem monitoração e controle: avião a jato usinas nucleares outras? ”Gerenciamento de redes inclui o fornecimento, integração e coordenação de hardware, software e elementos humanos para monitorar, testar, configurar, consultar, analisar, avaliar e controlar a rede e recursos para atender os requisitos de desempenho, qualidade de serviço e operação em tempo real dentro de um custo razoável." Infraestrutura para Gerenciamento de Redes definições: gerenciador managing entidade de data gerenciamento entity protocolo de gerenciamento agente data Elementos gerenciados Elemento gerenciado contêm objetos gerenciados cujos dados são reunidos numa MIB agente data (Management Information Elemento gerenciado Base) agente data agente data Elemento gerenciado Elemento gerenciado Padrões de Gerenciamento de Redes OSI CMIP Common Management Information Protocol projetado nos anos 80: o padrão de gerenciamento por excelência padronização lenta demais SNMP: Simple Network Management Protocol origem na Internet (SGMP) 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 SMI: linguagem de definição de dados Propósito: criação de uma sintaxe e semântica para definição de dados de gerenciamento de forma não-ambígua tipos de dados: formato genérico dos dados OBJECT-TYPE tipo de dado, status, semântica do objeto gerenciado MODULE-IDENTITY grupos de objetos relacionados num módulo MIB Tipos de Dados Básicos INTEGER Integer32 Unsigned32 OCTET STRING OBJECT IDENTIFIER IPaddress Counter32 Counter64 Gauge32 Time Ticks Opaque 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 SMI: exemplo de Objeto e Módulo OBJECT-TYPE: ipInDelivers ipInDelivers OBJECT TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION “The total number of input datagrams successfully delivered to IP userprotocols (including ICMP)” ::= { ip 9} MODULE-IDENTITY: ipMIB ipMIB MODULE-IDENTITY LAST-UPDATED “941101000Z” ORGANIZATION “IETF SNMPv2 Working Group” CONTACT-INFO “ Keith McCloghrie ……” DESCRIPTION “The MIB module for managing IP and ICMP implementations, but excluding the management of IP routes.” REVISION “019331000Z” ……… ::= {mib-2 48} 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 emn 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 hierarquica 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 Examine www.alvestrand.no/harald/objectid/top.html protocolo SNMP Duas formas de transportar informações da MIB: comandos e eventos managing entidade gerenciadora entity pedido resposta agente data agent Managed device elemento gerenciado Modo comando/resposta managing entidade gerenciadora entity trap msg agente data agent Managed device elemento gerenciado Modo evento Protocolo SNMP: tipos de mensagens Tipo de Mensagem GetRequest GetNextRequest GetBulkRequest InformRequest SetRequest Response Trap Função Manager-to-agent: “me envie dados” (instância,próximo na lista, bloco) Manager-to-Manager: eis o valor da MIB Manager-to-agent: define valor da MIB Agent-to-manager: valor, resposta ao pedido Agent-to-manager: informa gerenciador de evento excepcional Protocolo SNMP: formatos de mensagens Cabeçalho Get/Set Cabeçalho do Trap Variáveis para Operações Informação do Trap SNMP segurança e administração criptografia: mensagem SNMP criptografada com DES autenticação: calcular, enviar MIC(m,k): calcula hash (MIC) sobre a mensagem (m), com chave secreta compartilhada (k) proteção contra playback: usar nonce controle de acesso baseado em visões A entidade SNMP mantém uma base de dados de direitos de acesso e regras para vários usuários A própria base de dados é acessível como um objeto gerenciado! O problema de apresentação Q: uma cópia perfeita dos dados de memória a memória resolve o problema de comunicação entre computadores distintos? R: nem sempre! struct { char code; int x; } test; test.x = 256; test.code=‘a’ test.code test.x a 00000001 00000011 Formato do host 1 test.code test.x a 00000011 00000001 Formato do host 2 problema: diferentes formatos de dados e convenções de armazenamento Resolvendo o problema de apresentação 1. Transladar o formato do host local para um formato independente de host 2. Transmitir os dados num formato independente de host 3. Transladar o formato independente para o formato do host remoto Serviço de Apresentação É muito bom É da pontinha! Vovózinha É muito bom Serviço de Serviço de Apresentação Apresentação Que barato! Hippie de meiaidade (anos 60) Que da hora! Adolescente século XXI ASN.1: Abstract Syntax Notation 1 padrão ISO X.208 usado extensivamente na Internet é como comer verduras: saber isto “é bom para você”! Tipos de dados definidos, construtores de objetos como SMI BER: Basic Encoding Rules especifica como os dados definidos em ASN.1 devem ser transmitidos cada objeto transmitido tem codificação Type, Length, Value (TLV) - Tipo, Tamanho, Valor Codificação TLV Idéia: os dados transmitidos são auto-identificáveis T: tipo de dados, um dos tipos definidos em ASN.1 L: tamanho dos dados em bytes V: valor do dados, codificado de acordo com as regras do ASN.1 Valor do Tag 1 2 3 4 5 6 9 Tipo Booleano Inteiro Cadeia de bits Cadeia de octeto Nulo Identificador de Objeto Real Codificação TLV exemplo Módulo de declarações de tipo de dados escritas em ASN.1 Instâncias de tipo de dados especificadas no módulo Valor, 259 Tamanho, 2 bytes Tipo=2, inteiro cadeia de bytes transmitidos Valor, 5 octetos (caracteres) Tamanho, 5 bytes Tipo=4, cadeia de octetos Firewalls firewall isola a rede interna da organização da Internet pública, permitindo que alguns pacotes passem e bloqueando outros. Dois tipo de firewal: filtros de pacotes gateways de aplicação Para evitar ataques de negação de serviço inundação de SYN flooding: atacante estabelece muitas conexões TCP falsas. O computador atacado aloca buffers para as conexões falsas e fica sem recursos para as verdadeiras. Para evitar modificações ilegais de dados internos. ex., o atacante troca a página de entrada da CIA por alguma coisa diferente Para evitar que intrusos obtenham informações secretas. Filtragem de pacotes A rede interna é conectada à Internet através de um roteador. Fabricante do roteador oferece opções para filtragem de pacotes, baseado em: endereço IP de origem endereço IP de destino Número de portas TCP/UDP de origem e destino Tipo de mensagem ICMP Bits de SYN e ACK do TCP Exemplo 1: bloquear datagramas entrantes e saintes com campo de protocolo = 17 no protocolo IP e com porta de origem ou de destino igual a 23. Todo o fluxo UDP de entrada e de saída e todas as conexões telnet ficam bloqueadas. Exemplo 2: bloquear segmentos TCP de entrada com ACK=0. Previne que clientes externos façam conexões TCP com clientes internos, mas permite que os clientes internos façam conexões para fora. Gateways de Aplicação sessão telnet Filtra os pacotes com base nos dados de aplicação, assim como em campos dos protocolos IP/TCP/UDP. Exemplo: permite usuários internos selecionados fazer uma conexão telnet para fora. host-to-gateway host-gateway telnet session sessão telnet gateway gateway-to-remote host host telnet session para remoto application gateway de gateway aplicação roteador filtro router ande filter 1. Exige que todos os usuários telnet se conectem através de um gateway. 2. Para os usuários autorizados, o gateway estabelece a conexão telnet com o host de destino. Gateway repassa os dados entre as duas conexões. 3. Roteador filtra todas as conexões telnet que não se originam no gateway. Limitações de firewalls e gateways IP spoofing: roteador não tem como saber se os dados “realmente” vêm de onde dizem que vêm Se várias aplicações necessitam de tratamento especial, cada uma deve ter seu próprio gateway. Software cliente precisa saber como contactar o gateway. ex., deve definir o endereço IP de um proxy no browser Web Filtros muitas vezes adotam uma política de tudo ou nada para UDP. Critério: grau de comunicação com o mundo exterior versus nível de segurança Sites muito protegidos também sofrem com ataques.