Vista panorâmica. Quem precisa administrar muitos. Capa. Simple Network Management Protocol - PDF
Vista panorâmica. Quem precisa administrar muitos. Capa. Simple Network Management Protocol
Download "Vista panorâmica. Quem precisa administrar muitos. Capa. Simple Network Management Protocol"
Jónatas Wagner Santiago
1 Capa Simple Network Management Protocol Vista panorâmica Administradores precisam estar sempre atentos sobre o que está acontecendo na sua rede para detectar possíveis fontes de erros com antecedência. Graças ao isso não é problema. por Michael Schwarzkopff Volker Schumann Quem precisa administrar muitos computadores à distância costuma usar o (Simple Network Management Protocol) (links de [1] a [3]). Além de computadores, o protocolo também é suportado por equipamentos como roteadores e switches. Muitas impressoras também são compatíveis com esse protocolo e várias aplicações contêm agentes. Um terminal de gerenciamento é suficiente para monitorar a fauna de equipamentos da maioria das empresas, perceber quedas de serviços rapidamente ou mesmo realizar toda a administração da rede. Parece, no entanto, que mais de 15 anos depois da padronização da versão 1 [1], o velho protocolo está caindo no esquecimento. Muitos desenvolvedores preferem inventar protocolos e procedimentos de gerenciamento próprios ao invés de aplicarem o consagrado. Dessa maneira eles estão renunciando à grande vantagem da padronização: sua enorme difusão e flexibilidade. O ainda não está ultrapassado; os RFCs (Request For Comments) para a versão 3 do protocolo acabam de completar três anos [4]. A comunidade Nagios [5], conhecida também por seus requintes de criatividade, desenvolveu com o Nagios uma das melhores e mais apreciadas ferramentas de gerenciamento e monitoramento para Linux. A aplicação web utiliza um protocolo cliente-servidor próprio e vem com agentes e plugins [6]. Analisando bem, muitos desses plugins são desnecessários, visto que o Nagios também usa o. ao invés de plugins Nas mensagens em listas de discussão sobre o Nagios sempre aparecem perguntas sobre plugins, cujas funções seriam muito mais facilmente executadas via. A tendência é a mesma entre os fornecedores comerciais. Por exemplo, a HP e a IBM fornecem conectores a partir de 500 euros, que prometem garantir uma melhor supervisão através do Openview ou Tivoli, respectivamente. Mas administradores experientes abrem mão tranqüilamente desses aplicativos, uma vez que cada agente também disponibiliza as informações necessárias. Esses agentes estão disponíveis sem custo adicional em quase todos os sistemas e, na maioria dos casos, podem ser customizados e expandidos em funcionalidade. O gerenciamento por [7] funciona de acordo com o princípio clienteservidor (figura 1). O administrador opera na rede uma ou mais estações de gerenciamento, chamadas de NMS (Network Management Stations), que monitoram os seus respectivos elementos de gerenciamento NMEs (Network Management Elements). Em uma NMS, o aplicativo de gerenciamento reúne dados sobre o estado dos NMEs. Para isso, a NMS contata agentes que rodam nos NMEs e reagem a comandos através da porta UDP 161. O serve como protocolo de comunicação entre o aplicativo de gerenciamento (que é o cliente) e o agente (servidor, que fica no dispositivo de rede que envia os dados). As informações são estruturadas no que se convencionou chamar uma árvore MIB (Management Information Base; veja também a tabela 1 com uma lista de siglas). A SMI (Structure of Management Information) mostra como os MIBs são construídos. Caso o agente comunique que está tudo em ordem, a interface do aplicativo de gerenciamento mostra, por exemplo, uma lâmpada verde, e, caso haja problemas, uma vermelha. Para consultar o estado da estação, o gerenciador envia primeiro um pacote GetRequest (PDU Protocol Data Unit), que é respondido pelo agente com um GetResponse. O valor que estiver na próxima posição no MIB é requisitado pelo aplicativo de gerenciamento via GetNextRequest. A isso o agente também responde com um GetResponse. 38 junho 2006 edição 20
2 Capa Para controlar o comportamento de um NME, o gerenciador envia comandos ao agente, que então altera a configuração do NME. Um comando pode, por exemplo, modificar o roteamento. Para isso acontecer, o aplicativo de gerenciamento envia ao agente um SetRequest, ao qual o agente um tanto inesperadamente responde com um GetResponse. A resposta contém os novos valores após a modificação. O pacote trap é um ponto fora da curva, quando se pensa na costumeira divisão de papéis entre cliente e servidor. Quando um agente percebe um problema e quer informá-lo ao gerenciador, ele espontaneamente envia um trap ao gerente (UDP, porta 162). Isso ocorre por padrão no caso de um problema de autenticação ou quando um link (por exemplo, uma porta no switch) modifica o seu status. O princípio das mensagens está resumido na figura 1. Tudo em MIBs Agentes rodam em equipamentos bem diferentes, e há aplicativos de gerenciamento de diversos fabricantes é exatamente aí que reside a vantagem da ASN.1 BER CIX IANA ISO MIB MO MRTG NME NMS OID PDU RBL RFC SMI VACM Tabela 1: Siglas Abstract Syntax Notation Number One Basic Encoding Rules Commercial Internet Exchange Internet Assigned Numbers Authority International Standards Organization Management Information Base Managed Object Multi Router Traffic Grapher Network Management Element Network Management Station Object ID Protocol Data Unit Realtime Blackhole List Request For Comments Structure of Management Information Simple Network Management Protocol View based Access Control Model MIB Aplicativo Gerente Gerente UDP IP padronização. Um protocolo de comunicação por si só não é, entretanto, suficiente para abranger o processo de intercomunicação de forma global. Para resolver essa limitação, o também especifica uma estrutura e uma forma de apresentação para o gerenciamento da informação. Quais informações serão concretamente fornecidas e como o aplicativo de gerenciamento e o agente irão acessar esses dados é determinado pela base de gerenciamento da informação, chamada de MIB (Management Information Base). Os OIDs (Object Identifier) são responsáveis por um endereçamento bem definido de cada informação dentro de uma MIB. Informações sobre objetos da Internet são encontradas, por exemplo, em uma árvore hierárquica sob iso(1) org(3) dod(6) internet(1) (listagem 1a). Para o endereçamento, basta usar a seqüência de números entre parênteses: GetRequest GetNextRequest SetRequest GetResponse Trap MIBs descrevem uma expressão de objetos incluindo OID, nome, sintaxe, definição, permissões de acesso, status e uma breve explicação. Os RFCs definem o MIB-II [10] como padrão. Cada agente fornece um MIB-II com dados através da pilha TCP/IP. Para consultar algo, como, por exemplo, há quanto tempo o sistema já está funcionando, o aplicativo de gerenciamento solicita o SysUpTime (listagem 1b). O seu OID Rede Objetos Gerenciados Agente Figura 1: Em cada equipamento administrado via (Objetos gerenciados, à direita) roda um agente (servidor). Ele responde a consultas do aplicativo de gerenciamento (cliente: GetRequest, GetNextRequest) e a solicitações de modificação (SetRequest) ou envia avisos (trap). UDP IP é , ou seja: iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysuptime(3) sysuptimeinstance(0). A descrição do OID (na linha 8 da listagem 1b) revela que esse objeto não mostra o Uptime do computador, mas o intervalo de tempo desde a última inicialização do agente. Muitos fabricantes colocam informações adicionais em MIBs próprios. A Cisco, por exemplo, tem o número de fabricante 9. MIBs dessa empresa são encontrados sob o código (ou seja: iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) cisco(9)). Para a especificação MIB, o utiliza a linguagem de descrição SMI (Structure of Management Information, RFC 1155, [1]). A SMI define tanto a estrutura como a identificação das informações de gerenciamento da rede. A própria SMI é descrita no padrão ASN.1 (Abstract Syntax Notation Number 1), que permite definir tipos de dados complexos e os valores associados a eles. MIB Já o padrão ASN.1 BER (Basic Encoding Rules) define regras de codificação para os diferentes tipos de dados. Também elimina a dúvida se, por exemplo, deve ser interpretado como uma cadeia de caracteres ou se é o número 165 escrito de forma binária. Além do valor, as junho 2006 edição 20 39
3 Capa (ASN.1 BER) UDP IP BER codificam também o tipo de dado. O número da versão 0 para o v1 na representação BER é A primeira posição significa que segue um campo do tipo inteiro (02), com 1 byte de tamanho e que contém o número 0. A vantagem desse arranjo é que mesmo que um aplicativo de gerenciamento não conheça a definição de uma MIB de um de seus agentes, o programa consegue representar os valores da MIB corretamente. Além disso, é importante conhecer o tipo de dados para um processamento posterior dos dados. O grande ponto fraco do v1 é a autenticação deficiente. Apenas uma senha comunitária a chamada community string comunica ao agente se uma instrução é legítima. Cada agente diferencia esse tipo de senha para solicitações Get ou para comandos Set. Cada programa de gerenciamento que conhecer essa cadeia de caracteres pode ler dados do agente ou mesmo enviar-lhe instruções. -PDU Senha comunitária (Senha octeto) Versão (Inteiro) Pseudo-autenticação Por padrão, a senha public está prédefinida para solicitações do tipo Get e private para os comandos Set. Essa escolha tem razões históricas: em uma conferência da Interop, os participantes queriam demonstrar que a comunicação entre implementações de Mensagem PDU Tipo PDU Figura 2: Cada pacote v1 começa com o número da versão e a senha comunitária infelizmente como texto puro. A PDU (Protocol Data Unit) em si consiste em uma informação sobre o tipo e o conteúdo da informação sendo trafegada. diferentes fabricantes de fato funcionava. Eles selecionaram para essa conferência ambas as senhas mencionadas. Como tudo funcionou bem, essas senhas acabaram por se estabelecer como um padrão. Por motivos semelhantes, muitos administradores se abstêm de mudá-las. Para piorar, essas senhas são passadas como texto puro a cada pacote na comunicação, fato que levou muitos administradores de sistema a criar um significado diferente para a sigla : Security is not my problem ( Segurança não é problema meu ). Com tão pouca proteção, é compreensível que agentes v1 quase não forneçam suporte para comandos Set. Essa falta de segurança foi determinante para o desenvolvimento das versões seguintes e levou ao surgimento do sec (Secure ) e do SNM- Pv2 [2], que introduziu alguns comandos novos, mas se dispersou infelizmente em muitas subvariantes. Hoje, o SNM- Pv3 (veja o quadro 1: Versão 3 e [3]), reconhecido como o sucessor oficial da versão original, implementa um modelo de segurança complementar. Algumas das novas técnicas foram, inclusive, portadas de volta para o v1. Aplicação: Net- No Linux, a mais conhecida implementação de um agente vem do projeto Net- ([7], o antigo UCD-, da Universidade da Califórnia em Davis). O pacote contém também ferramentas de linha de comando, para encaminhar solicitações aos agentes. Muitas distribuições já incluem um pacote Net-. Para quem prefere compilar, o pacote está disponível no SourceForge, podendo ser compilado com o comando./configure && make && make install. Pacotes de distribuição e instalações de arquivos binários se diferenciam sobretudo pelos caminhos para diretórios utilizados. A maioria das MIBs fornecidas disponibiliza um script de configuração próprio fica faltando apenas o preenchimento das opções HOST RESOURCES, EVENT e MTA. Quem precisar deles, deve declará-los explicitamente na configuração. A documentação do Net- contém um modelo da configuração (EXAMPLE.conf), que o agente espera encontrar em /etc/snmp.conf. Para testes iniciais, bastam configurações de segurança básicas. Listagem 1a: Árvore MIB 01 internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } 02 mgmt OBJECT IDENTIFIER ::= { internet 2 } 03 experimental OBJECT IDENTIFIER ::= { internet 3 } 04 private OBJECT IDENTIFIER ::= { internet 4 } 05 enterprises OBJECT IDENTIFIER ::= { private 1 } Listagem 1b: MIB-II 01 mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } 02 system OBJECT IDENTIFIER ::= { mib-2 1 } sysuptime OBJECT-TYPE 05 SYNTAX TimeTicks 06 MAX-ACCESS read-only 07 STATUS current 08 DESCRIPTION 09 "The time (in hundredths of a second) since the 10 network management portion of the system was last 11 re-initialized." 12 ::= { system 3 } 40 junho 2006 edição 20
4 Capa As linhas que começam com com2sec devem ser alteradas como segue: # sec.name source community U com2sec local localhost public # com2sec mynetwork NETWORK/24 U COMMUNITY Isso libera o acesso do localhost para o agente. A senha comunitária é public. Acessos externos permanecem por hora proibidos, de modo que não é um problema usar public como senha no teste. Quando o sistema estiver em operação, entretanto, ela deve ser trocada sem falta! Quadro 1: versão 3 O v1 tem grandes problemas de segurança. Por exemplo, qualquer um que conheça a senha comunitária pode acessar os agentes. Não há mais nenhum controle de acesso e nenhuma comunicação criptografada. O v3 incorpora os melhores recursos das diferentes implementações do intermediário v2. A isso soma-se o pacote Inform. Ele funciona como um trap, complementado com uma confirmação do gerente. View based Access Control Model Uma das extensões de segurança chama-se VACM (View based Access Control Model). O VACM oferece a diferentes usuários uma visão diferenciada (Views) na árvore MIB. O administrador define os usuários na rede através das diretivas básicas com2sec, group, access e view, ou com a ajuda do wrapper rocommunity, rouser ou rwuser. As instruções para uso da senha são análogas ao v1: rocommunity community source OID Nesse comando, o parâmetro community fornece a senha comunitária, o parâmetro opcional source, os endereços (com máscara de rede) dos computadores, aos quais os agentes podem fazer solicitações, e o parâmetro (também opcional) OID à parte da árvore MIB à qual essa community tem acesso. Muito mais detalhada é a distribuição de permissões de acesso com as diretivas básicas. A diretiva com2sec assinala uma regra de acesso (security name, por exemplo readonly) a um Aventura na selva MIB Depois de iniciar o daemon com o arquivo de configuração devidamente alterado (snmpd -c /etc/snmpd.conf), o agente fica a espera de solicitações. O modo mais simples de fazê-lo é com o comando snmpwalk, com o qual se consulta um ramo da árvore MIB. A solicitação começa em um determinado ponto definido como parâmetro do comando, através de um GetRequest, percorrendo todo esse ramo da árvore através de solicitações GetNextRequest. Uma solicitação interessante, por exemplo, é a da MIB System: o resultado do comando snmpwalk -v1-c public localhost.system pode ser visto na listagem 2. par source/community (onde source representa a fonte da solicitação e community a comunidade utilizada para fazê-la). A diretiva group relaciona um grupo de acesso a um par regra de acesso/modelo de segurança. Na prática, os modelos de segurança nada mais são do que as diversas versões do protocolo (v1, v2, USM, esta última sendo o modelo de segurança do v3 USM é um acrônimo para User-based Security Model). Seguindo esse mesmo esquema, a diretiva access determina qual visão no sistema (View) um grupo com um determinado modelo de segurança vai obter. Nesse contexto, a diretiva view determina a porção correspondente da árvore MIB a ser mostrada. Um modelo de arquivo de configuração, o EXAMPLE.conf, contém um exemplo de configuração básica e explicações. As páginas de manual (man pages) trazem, como de costume, esclarecimentos detalhados sobre as possibilidades de configuração do arquivo snmpd.conf. O Net- usa os recursos de segurança do v3 também para a versão 1, de modo que o agente obtém assim um nível de segurança adequado. Autenticado e cifrado O Net- lida ainda com autenticação de usuários e criptografia. Para começar, o administrador precisa criar manualmente um primeiro usuário, antes de iniciar o agente: net-snmp-config --create-snmpv3-user -a senha nome-do-usuário O resultado do comando indica que uma linha foi inserida em /var/net-snmp/snmpd. Figura 3: Taxa de transferência de dados no DE-CIX (nó central de Internet da Alemanha). O MRTG solicita os dados via, os armazena no tempo e constrói um gráfico com eles. O próprio agente se encarrega das informações para o kernel em sysdescr. A localização e o syscontact (informações sobre o responsável pelo sistema, de prefe- conf (ou /var/lib/net-snmp/snmpd. conf, de acordo com a distribuição). Na inicialização, o agente cria o usuário e salva os dados de sua conta criptografados. O administrador não deve alterar os arquivos manualmente ele deve, no entanto, completar as linhas rwuser nome-do-usuário no arquivo de configuração /etc/snmpd.conf e iniciar o agente como de costume. A partir daí os demais usuários podem ser criados em tempo de execução. Agora é possível fazer solicitações aos agentes com v3 e criptografados (com o algoritmo DES): snmpwalk -v3 -u nome-do-usuário -1 authpriv -A senha -X senha localhost.system Ao invés de ter que digitar sempre todos os dados de acesso (que, ainda por cima, vão parar em texto puro na listagem de processos do computador), é aconselhável armazenar esses parâmetros em $HOME/.snmp/snmp.conf: defsecutityname nome-do-usuário defcontext "" defauthtype MD5 defsecuritylevel authpriv defauthpassphrase senha defversion 3 defprivpassphrase senha defprivtype DES Das próximas vezes, basta digitar snmpget localhost.sysuptime.o para realizar solicitações ao agente. junho 2006 edição 20 41
5 Capa Figura 4: O Nagios reúne informações sobre a situação dos computadores e roteadores disponíveis na rede. Ele pode usar um protocolo próprio. Mas, caso desejado, pode utilizar o e, com isso, obter também informações de equipamentos de rede (como roteadores e switches). rência com telefone) devem ser fornecidos pelo administrador no arquivo de configuração snmpd.conf. O comando mostra também que as ferramentas procuram o OID fornecido em cada MIB, caso o caminho do OID não tiver sido fornecido de forma completa. A IF-MIB fornece todas as informações sobre as interfaces do sistema, entre outras a tabela de roteamento completa. As contagens dessa MIB servem, por exemplo, como base de dados para o MRTG (Multi Router Traffic Grapher). A figura 3 mostra a taxa de transferência de dados no DE-CIX [9], o nó central de Internet na Alemanha (Commercial Internet Exchange). Pode-se fazer o mesmo com a própria conexão à Internet. Acessos de leitura para o roteador são concedidos pela maioria dos provedores sob solicitação. Quem se interessa pelos recursos do seu sistema e compilou seu agente com a MIB HOST RESOURCES (./configure --withmib-modules=host) pode dar uma olhada na tabela.host. Ela fornece informações sobre o hardware (sistema, memória, dispositivos etc.) e software (o que está instalado, o que está rodando atualmente, o que necessita de quanto recurso...). Olhar penetrante O pacote Net- contém também uma MIB privada, desenvolvida pelo próprio projeto. Ela está registrada na IANA (Internet Assigned Numbers Authority) como enterprises Percorrendo essa MIB com snmpwalk -v1 -c public localhost.enterprises.2001 somos informados, por exemplo, sobre a memória livre (memtotalfree), a alocação das partições (dskpercent) e a taxa média de utilização do processador (laload). Quem necessitar de um único valor da MIB, deve recorrer ao comando snmpget. Com isso também é possível configurar programas de monitoramento como o Nagios [6], que supervisiona valores individualmente e dispara um alarme quando um valor limite é excedido. Em condições ideais em uma rede bem administrada, o Nagios deveria ter a aparência mostrada na figura 4. Importando MIBs A viagem de reconhecimento não precisa se limitar ao agente local. Como a senha comunitária normalmente não é alterada e continua sendo public, os equipamentos de rede mais próximos (switches, roteadores) fornecem prontamente informações a respeito do seu funcionamento. Portanto o serviço é uma ferramenta excepcional para realizar a documentação de uma rede, fornecendo endereços IP e MAC, situação de roteamento, sistemas operacionais disponíveis, patches (correções) de hardware e software instaladas, aplicações instaladas e muito mais. Listagem 2: Sistema MIB Informações interessantes estão escondidas nas MIBs adicionais, específicas de cada fabricante. O Net- mostra o significado dos OIDs adicionais, quando a definição da MIB está disponível no software do sistema gerenciador. Com essa definição os OIDs numéricos são traduzidos no seu formato de texto. Os arquivos de definição são encontrados nos CDs dos equipamentos a serem administrados, bem como nos servidores FTP dos fabricantes ou no MIB Depot [10]. Os arquivos terminam normalmente com a extensão.txt,.mib ou.my. 01 v2-mib::sysdescr.0 = STRING: Linux notebook default #1 Wed U Nov 17 11:08:17 02 v2-mib::sysobjectid.0 = OID: NET--MIB::netSnmpAgentOIDs DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1137) 0:00: v2-mib::syscontact.0 = STRING: Me 05 v2-mib::sysname.0 = STRING: notebook 06 v2-mib::syslocation.0 = STRING: Right here, right now. 07 v2-mib::sysorlastchange.0 = Timeticks: (2) 0:00: junho 2006 edição 20
6 Capa A tabela 2 mostra uma pequena lista de exemplos de OIDs. Todos (à exceção dos da HP) são encontrados no ramo.enterprises. Assim, o caminho completo começa com A coluna Significado foi traduzida da descrição original das MIBs, e traz, ocasionalmente, verdadeiras pérolas de humor (como por exemplo, a seguinte contribuição da Microsoft: erros imprevistos normalmente indicam problemas ). Caso um administrador não queira disponibilizar a definição MIB no diretório /usr/share/snmp/mibs (ou em /usr/local/share/snmp/mibs, conforme a instalação) para todo o sistema, basta copiá-la em ~/.snmp/mibs/. Em ambos os casos as ferramentas precisam saber quais MIBs adicionais elas devem considerar. Essa informação é fornecida pelas variáveis MIBS do sistema. Se o seu conteúdo for, por exemplo, +Name, então as ferramentas irão considerar, além das MIBs padrão, novas MIBs que forem adicionadas. O seu nome fica no início do arquivo de definição MIB, antes da linha DEFINITIONS::= BEGIN. Como freqüentemente MIBs são construídas a partir de outras, é mais fácil informá-las ao sistema todas de uma vez, bastando para isso o comando export MIBS=ALL. Missão especial O mostra sua verdadeira flexibilidade quando administradores complementam os agentes com recursos próprios. Assim, eles podem desenvolver suas próprias MIBs e expandir a funcionalidade dos agentes com programas próprios, escritos na linguagem C. Na prática, entretanto, isso raramente é necessário, uma vez que os agentes da aplicação Net- já são muito eficientes. Todas as possibilidades de configuração são mostradas com o comando man snmpd.conf ou através de uma busca na página do [7]. Por exemplo, o Net- pode supervisionar especificamente processos em particular. A configuração de exemplo sugere por padrão monitorar os daemons mountd, ntalkd e sendmail. Além dos nomes, o agente também reconhece com que freqüência máxima e mínima esse processo deve ser executado: proc sendmail 10 1 Essa configuração em /etc/snmpd. conf determina que um número de processos sendmail entre um e dez rodando em um servidor é normal. Caso a condição não se aplique, o agente emite o sinal prerrorflag correspondente e produz o texto de erro via prerrmessage. Ao perceber um erro, o sistema gerenciador pode até mesmo providenciar primeiros socorros através do : a configuração do agente pode conter um comando que tenta contornar o problema, como por exemplo: procfix sendmail /etc/init.d/sendmail U restart Se o aplicativo de gerenciamento escrever o valor 1 no registrador do agente prerrfix, o agente executará o comando. No comando snmpset deve ser indicado o OID pertencente ao programa monitorado: prerrorfix.número. Depois disso, seguem o tipo de dado (aqui i, para inteiro) e o valor desejado: snmpset -v1 -c private localhost U prerrfix.1 i 1 O arquivo de registro (logfile) deveria mostar que o sendmail foi realmente reiniciado. Conduzir tais ações de forma totalmente automática é, no entanto, crítico: ser executado várias vezes em seguida reduz consideravelmente a sua utilidade. Seria melhor disparar o comando manualmente ou acionar o sistema de gerenciamento em várias fases: por exemplo tentando primeiro a reparação automática e se o erro se repetir, em um dado espaço de tempo alertar o administrador. Espaço no disco rígido O espaço disponível de uma partição do disco rígido é monitorado pelo agente se o arquivo de configuração contiver a seguinte linha: disk / Figura 5a: Essa instalação do Nagios monitora o uso de processador e a utilização de espaço em disco de um computador com a ajuda do. Além disso, o Nagios ainda solicita diretamente informações sobre a operação de cada serviço isoladamente. Figura 5b: O aplicativo Nagiostat mostra a utilização de processador de forma gráfica. As variações ao longo do ano são claramente reconhecíveis é um computador que fica em uma escola, por isso durante as férias o uso de CPU diminui. junho 2006 edição 20 43
7 Capa Caso o espaço livre na partição do diretório raíz (/root) esteja abaixo do limite de 10 MB, o agente irá emitir o erro dskerrorflag. Em dskpercent fica a informação sobre o percentual de espaço livre em disco no momento. O mesmo vale para o uso do processador, que fica na tabela loadtable. Com a extensão Nagiostat [6], o Nagios lê (semelhante ao MRTG) valores de um agente e cria uma representação gráfica do conteúdo. As figuras 5a e 5b mostram a utilização de CPU medida em um servidor. Um agente Net- pode supervisionar até mesmo arquivos de registro (logfiles). Infelizmente a documentação desse recurso é escassa. No arquivo de configuração devem ser indicados o nome do teste, o arquivo de registro a ser monitorado, o intervalo entre as verificações e a expressão procurada (como expressão regular). Se o agente, por exemplo, tiver que procurar no arquivo de registro do servidor de por mensagens de usuários desconhecidos a cada 30 segundos, a configuração será: logmatch unknown_user /var/log/mail 30 U User unknown Tabela 2: Seleção OID O agente fornece em logmatchglobalcount a quantidade de eventos encontrada, bem como o número de vezes Fabricante OID Nome Significado APC upsadvbatterycapacity Duração da bateria Apache apscoreboardaccesscount Número de acessos nesse servidor Checkpoint hastate Status der Hochverfügbarkeit Cisco avgbusy5 Carga média da CPU nos últimos cinco minutos F globalstatcurrentconn Número total das atuais conexões HP mib gdstatuspaperout Mostra que o aparelho está sem papel Microsoft serverrorssystem Quantidade de erros internos registrados; erros imprevistos normalmente indicam problema Oracle oradbsysusercalls O parâmetro user calls do v$sysstat Rittal statusdoor1 Status de porta: aberta/ fechada/ bloqueada critappoperstatus Mostra se as aplicações críticas Research estão de fato rodando Squid cachehttphits Número do acessos HTTP Veritas jobstate Status de um Netbackup-Jobs Listagem 3: Status do disco 01 UCD--MIB::extIndex.1 = INTEGER: 1 02 UCD--MIB::extNames.1 = STRING: diskstatus 03 UCD--MIB::extCommand.1 = STRING: /usr/sbin/smartctl -q silent /dev/hda 04 UCD--MIB::extResult.1 = INTEGER: 0 05 UCD--MIB::extOutput.1 = STRING: 06 UCD--MIB::extErrFix.1 = INTEGER: 0 07 UCD--MIB::extErrFixCmd.1 = STRING: Listagem 4: Carga do processador 01 trapsink trapcommunity public 03 agentsecname internal 04 monitor -u internal -o sysuptime.0 -o laloadint -r 30 "high processor load" laloadint>40 que a entrada ocorreu desde a última solicitação em logmatchcount. Ativo automaticamente A cada 30 segundos, o agente se encarrega pessoalmente mesmo sem solicitação do aplicativo de gerenciamento de vasculhar o arquivo de registro por demais ocorrências e de ajustar os valores na MIB. Em outros casos, o agente verifica um valor somente quando há realmente uma solicitação para isso. Através de uma estatística das entradas User unknown no arquivo de registro do sendmail, o sistema de gerenciamento pode descobrir os chamados ataques Rumplestiltskin. Através dessa técnica, os spammers tentam descobrir endereços de válidos testando vários nomes de usuários. Ataques de força bruta contra o SSH também são feitos dessa forma. A figura 6 mostra um exemplo de estatística de SPAM em um servidor de . Em verde estão os s válidos processados e em azul os SPAMs reconhecidos. A técnica mais fácil para armar um agente com comandos próprios consiste em deixá-lo executar comandos externos. Por exemplo, solicitar o status do disco rígido /dev/hda com smartctl: 44 junho 2006 edição 20
8 Capa exec diskstatus /usr/sbin/smartct1 -q U silent /dev/hda Uma solicitação de parte da árvore exttable inicia o comando diskstatus e fornece o resultado. A saída do snmpwalk -v1 -c public localhost.exttable pode ser vista na listagem 3. O valor 0 em extresult.1 (linha 4) mostra que o disco rígido está em ordem, na opinião das Smartmoontools não é necessária mais nenhuma investigação. Diante de valores anormais, um sistema gerenciador poderia ativar uma luz vermelha em um painel de controle. Em extoutput a primeira linha da saída padrão poderia ser vista, se existisse. Trap e Inform Ao invés de esbanjar o tempo do processador e a banda da rede com constantes solicitações de estado, é melhor que o próprio agente supervisione o sistema e informe ao aplicativo de gerenciamento assim que um estado crítico ocorra. Para isso foram criadas as Traps. Por padrão, o agente envia traps ao iniciar e finalizar, caso uma interface mude entre os estados up e down e também na ocorrência de senhas falsas (authentication failures). A listagem 4 um excerto do snmpd.conf se encarrega de que ele também se comunique caso o uso do processador suba acima de 40 por cento. A linha 1 define quem vai receber a notificação de erro; a senha comunitária correspondente segue abaixo dela. O Net- precisa ainda de um nome de usuário (para o v3), com o qual o agente executa o teste que neste caso se chama internal. O comando monitor na última linha define o teste. O agente verifica, a cada 30 segundos (-r 30), se em algum lugar da tabela laloadint (ela contém valores médios para 1, 5 e 15 minutos) há um valor maior que 40 (que significa um uso de processador maior que 40 por cento). Se isso ocorrer, o agente dispara uma notificação trap. Ela contém a informação sysuptime e todas as entradas da tabela laloadint. Depósito central Um trap daemon recolhe as traps no sistema de gerenciamento. Para a configuração da listagem 4 ele precisa estar rodando na própria máquina (e é iniciado com o comando.snmptrapd -f -Lo). Na ocorrência de uma carga maior no sistema, o agente envia uma primeira notificação trap. Caso o estado se prolongue, não são enviados mais avisos. Somente depois de a solicitação que gerou a trap ter sido retirada (aqui, quando a carga ficar novamente abaixo de 40%) é que o monitoramento é ativado novamente. Como os pacotes percorrem a rede através do protocolo UDP, o agente não é informado se o seu trap chegou até o aplicativo de gerenciamento. O v3 (veja o quadro 1, versão 3, na página 41) resolve essa deficiência através do uso das novas mensagens Inform. O aplicativo de gerenciamento deve confirmar o seu recebimento. Além disso, o Net- pode enviar os traps convencionais também usando o protocolo TCP. O é uma ferramenta extraordinária para muitas das tarefas diárias de administração de redes de pequeno e grande porte, e o seu uso prescinde da existência de (mas não exclui) aplicações complexas como o HP Openview, o IBM Tivoli ou o CA Unicenter. Administradores se beneficiam em usar esse padrão, seja pela disponibilidade de ferramentas Figura 6: Estatística de tráfego de um servidor de . Os s processados aparecem em verde e os SPAMs em azul. Em abril, uma nova verificação RBL (Realtime Blackhole List) diminuiu o número de s processados em 50 por cento. Mais treinada, entretanto, a aplicação Spamassassin conseguiu reter mais s não solicitados desde fevereiro. de linha de comando simples ou de aplicativos como o MRTG e o Nagios. Resta somente esperar que, com suas dificuldades de trabalho diárias, os administradores voltem a descobrir as vantagens desse padrão simples e facilitem suas vidas, resolvendo de modo mais fácil as suas mais complicadas tarefas. Informações [1] versão 1, definida nas RFCs 1155 a 1157: [2] versão 2, definida nas RFC 1441 a 1452 e 1901 a 1910: [3] versão 3, definida nas RFC 3410 a 3418: [4] RFC 1213, Management Information Base for Network Management of TCP/IP based Internets: MIB-ll : [5] Nagios: [6] Plugins e extensões do Nagios: [7] Net-: [8] Extensão de estatística do Nagiostat: [9] Tráfego da rede no DE-CIX: [10] MIB Depot: O autor O Dr. Michael Schwarzkopff trabalha na empresa Multinet Services GmbH como consultor nas áreas de segurança e redes. Sua especialidade é o. Ele foi infectado pelo vírus do Linux em 1994 através da distribuição Yggdrasil. junho 2006 edição 20 45
Compartilhar Denunciar abuso Próximo blog» Criar um blog Login Início Facebook Feeds do Elfo PESQUISAR ESTE BLOG powered by Pesquisar QUINTA-FEIRA, 14 DE ABRIL DE 2011 Instalando e configurando SNMP no
Trabalho de base. Ao instalar um sistema Nagios[1], CAPA. GroundWork
CAPA GroundWork Afonso Lima - www.sxc.hu Trabalho de base O Nagios possui uma interface web bastante básica. O GroundWork é uma interface mais amigável e com visual profissional para essa ferramenta. por