gerenciamento de servidores linux utilizando snmp

44
Gerenciamento de Gerenciamento de Servidores Linux Servidores Linux Utilizando SNMP Utilizando SNMP

Upload: andredeo

Post on 09-Jun-2015

19.867 views

Category:

Technology


4 download

DESCRIPTION

Material de aula da disciplina de Gerência de Redes. Esse material foi originalmente criado pelo Conrado, e depois alterado por mim, hoje chamamos de nossa apresentação de SNMP. Material Introdutório sobre o Gerenciamento de Servidores Linux utilizando o protocolo SNMP.

TRANSCRIPT

Page 1: Gerenciamento de Servidores Linux utilizando SNMP

Gerenciamento de Servidores Gerenciamento de Servidores Linux Utilizando SNMPLinux Utilizando SNMP

Page 2: Gerenciamento de Servidores Linux utilizando SNMP

Versões SNMPVersões SNMP SNMP v1SNMP v1

SNMP v2 (v2c)SNMP v2 (v2c)

SNMP v3SNMP v3

Page 3: Gerenciamento de Servidores Linux utilizando SNMP

SNMP v1SNMP v1 Características e Operações BásicasCaracterísticas e Operações Básicas

Get – Usado pelo NMS* para adquirir o valor de uma ou mais instâncias de um objeto de um agenteGet – Usado pelo NMS* para adquirir o valor de uma ou mais instâncias de um objeto de um agente

GetNext - Usado pelo NMS para adquirir o valor do próximo objeto em uma tabela ou listaGetNext - Usado pelo NMS para adquirir o valor do próximo objeto em uma tabela ou lista

Set - Usado pelo NMS para atribuir um valor a um objeto no agenteSet - Usado pelo NMS para atribuir um valor a um objeto no agente

* Network Management System* Network Management System

Page 4: Gerenciamento de Servidores Linux utilizando SNMP

SNMP v2SNMP v2Durante a “divergência” SNMPv2, foram definidos quatro variações:Durante a “divergência” SNMPv2, foram definidos quatro variações:

O SNMPv2 original (SNMPv2p) - Com o "p" referindo-se a " party-based " security; O SNMPv2 original (SNMPv2p) - Com o "p" referindo-se a " party-based " security;

SNMPv2 baseado na comunidade (SNMPv2c);SNMPv2 baseado na comunidade (SNMPv2c);

SNMPv2 baseada no usuário (SNMPv2u);SNMPv2 baseada no usuário (SNMPv2u);

““SNMPv2 Estrela” (SNMPv2*) - Combina elementos de SNMPv2p e SNMPv2u. Isso nunca foi formalmente padronizado. (Sim, isso é um asterisco no nome).SNMPv2 Estrela” (SNMPv2*) - Combina elementos de SNMPv2p e SNMPv2u. Isso nunca foi formalmente padronizado. (Sim, isso é um asterisco no nome).

Page 5: Gerenciamento de Servidores Linux utilizando SNMP

SNMP v2SNMP v2

Destes, os três primeiros foram documentados em conjuntos de padrões Destes, os três primeiros foram documentados em conjuntos de padrões SNMP RFC Standard, o quarto não foi. , o quarto não foi.

A estrutura do formato de mensagem global para cada variante é discutido em um A estrutura do formato de mensagem global para cada variante é discutido em um padrão administrativo ou de segurança para a variação em questão, que faz padrão administrativo ou de segurança para a variação em questão, que faz referência à norma SNMPv2 compartilhada para o formato de PDU (RFC 1905).referência à norma SNMPv2 compartilhada para o formato de PDU (RFC 1905).

Page 6: Gerenciamento de Servidores Linux utilizando SNMP

SNMP v2 (v2c)SNMP v2 (v2c) Características e Operações adicionaisCaracterísticas e Operações adicionais

Trap – Mensagem não solicitada, enviada por um agente para informar ao NMS sobre um evento significanteTrap – Mensagem não solicitada, enviada por um agente para informar ao NMS sobre um evento significante

GetBulk – Usado pelo NMS para adquirir eficientemente grandes blocos de dadosGetBulk – Usado pelo NMS para adquirir eficientemente grandes blocos de dados

Inform – Permite que um NMS envie traps para outro NMS e receba respostas desses trapsInform – Permite que um NMS envie traps para outro NMS e receba respostas desses traps

Page 7: Gerenciamento de Servidores Linux utilizando SNMP

Configuração Básica de umConfiguração Básica de umAgente SNMP v1/v2cAgente SNMP v1/v2c

# /etc/snmp/snmpd.conf v1/v2c básico# /etc/snmp/snmpd.conf v1/v2c básico

##

rocommunity publicrocommunity public

rwcommunity privaterwcommunity private

snmpd.conf.1snmpd.conf.1

Page 8: Gerenciamento de Servidores Linux utilizando SNMP

Acessando um AgenteAcessando um AgenteSNMP v1/v2cSNMP v1/v2c

$ snmpget -v 1 -c public localhost sysContact.0$ snmpget -v 1 -c public localhost sysContact.0

SNMPv2-MIB::sysContact.0 = STRING: rootSNMPv2-MIB::sysContact.0 = STRING: root

$ snmpset -v 2c -c private localhost sysContact.0 s conrado$ snmpset -v 2c -c private localhost sysContact.0 s conrado

SNMPv2-MIB::sysContact.0 = STRING: conradoSNMPv2-MIB::sysContact.0 = STRING: conrado

$ snmpgetnext -v 1 -c public localhost sysContact.0$ snmpgetnext -v 1 -c public localhost sysContact.0

SNMPv2-MIB::sysName.0 = STRING: debianSNMPv2-MIB::sysName.0 = STRING: debian

$ snmpwalk -v 2c -c public localhost system$ snmpwalk -v 2c -c public localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (206414) 0:34:24.14DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (206414) 0:34:24.14

SNMPv2-MIB::sysContact.0 = STRING: rootSNMPv2-MIB::sysContact.0 = STRING: root

SNMPv2-MIB::sysName.0 = STRING: debianSNMPv2-MIB::sysName.0 = STRING: debian

SNMPv2-MIB::sysLocation.0 = STRING: UnknownSNMPv2-MIB::sysLocation.0 = STRING: Unknown

......

Page 9: Gerenciamento de Servidores Linux utilizando SNMP

Acessando um AgenteAcessando um AgenteSNMP v2cSNMP v2c

$ snmpbulkget -v 2c -c public localhost system$ snmpbulkget -v 2c -c public localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (641964) 1:46:59.64DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (641964) 1:46:59.64

SNMPv2-MIB::sysContact.0 = STRING: rootSNMPv2-MIB::sysContact.0 = STRING: root

......

$ snmpbulkwalk -v 2c -c public localhost system$ snmpbulkwalk -v 2c -c public localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (641964) 1:46:59.64DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (641964) 1:46:59.64

SNMPv2-MIB::sysContact.0 = STRING: rootSNMPv2-MIB::sysContact.0 = STRING: root

......

Page 10: Gerenciamento de Servidores Linux utilizando SNMP

SNMP v3SNMP v3 Melhorias de SegurançaMelhorias de Segurança

USM - User-based Security Model (Modelo de Segurança Baseada em Usuários)USM - User-based Security Model (Modelo de Segurança Baseada em Usuários)

VACM - View-based Access Control Model (Modelo de controle de acesso baseado em visões)VACM - View-based Access Control Model (Modelo de controle de acesso baseado em visões)

Configuração dinâmica de agentes SNMP utilizando comandos SNMPConfiguração dinâmica de agentes SNMP utilizando comandos SNMP

Page 11: Gerenciamento de Servidores Linux utilizando SNMP

USMUSM Até o SNMPv2, controle baseado em communities (comunidades)Até o SNMPv2, controle baseado em communities (comunidades)

public, private, etc...public, private, etc...

A partir do SNMPv3, os usuários e suas respectivas senhas devem ser cadastrados A partir do SNMPv3, os usuários e suas respectivas senhas devem ser cadastrados na base de dados SNMP, sendo que estes são guardados criptografadosna base de dados SNMP, sendo que estes são guardados criptografados

Page 12: Gerenciamento de Servidores Linux utilizando SNMP

VACMVACM Os usuários são colocados em gruposOs usuários são colocados em grupos

São criadas views, que representam partes da árvore SNMP (semelhantes às views dos São criadas views, que representam partes da árvore SNMP (semelhantes às views dos bancos de dados)bancos de dados)

Permissões são dadas para os grupos acessarem as viewsPermissões são dadas para os grupos acessarem as views

Page 13: Gerenciamento de Servidores Linux utilizando SNMP

Modelo de Permissões VACMModelo de Permissões VACM

Page 14: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf compatívelsnmpd.conf compatívelcom v1 e v2ccom v1 e v2c

# /etc/snmp/snmpd.conf compativel com v1 e v2c (# /etc/snmp/snmpd.conf compativel com v1 e v2c (snmpd.conf.2)snmpd.conf.2)

##

# view# view name name inc/excl inc/excl tree tree maskmask

view view all all included included .1 .1 8080

#com2sec#com2sec user user source(IP,host...)source(IP,host...) communitycommunity

com2sec com2sec readonly readonly default default publicpublic

com2sec com2sec readwrite readwrite default default privateprivate

#group #group namename v1/v2c/usmv1/v2c/usm useruser

group group compat compat v1 v1 readonlyreadonly

group group compat compat v2c v2c readonlyreadonly

group group compat1 compat1 v1 v1 readwritereadwrite

group group compat1 compat1 v2c v2c readwritereadwrite

#access user context any/v1/v2c/usm level prefx read write notify#access user context any/v1/v2c/usm level prefx read write notify

access compat "" any noauth exact all none noneaccess compat "" any noauth exact all none none

access compat1 "" any noauth exact all all noneaccess compat1 "" any noauth exact all all none

Page 15: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf compatívelsnmpd.conf compatívelcom v1 e v2ccom v1 e v2c

Configurando as ComunidadesConfigurando as Comunidades

O processo de associação entre as comunidades e os niveis de acesso é realizado através das linhas O processo de associação entre as comunidades e os niveis de acesso é realizado através das linhas com2seccom2sec, que possui o seguinte formato:, que possui o seguinte formato:

com2sec "security name" origem_da_requisição communitycom2sec "security name" origem_da_requisição community

O Campo O Campo origem_da_requisiçãoorigem_da_requisição indica a máquina que pode realizar a requisição e pode ser informado no formato ip/prefixo ou pode-se utilizar indica a máquina que pode realizar a requisição e pode ser informado no formato ip/prefixo ou pode-se utilizar a palavra "default", que indica qualquer origem. Por exemplo:a palavra "default", que indica qualquer origem. Por exemplo:

com2sec com2sec readonly readonly default default publicpublic

com2sec com2sec readwrite readwrite default default privateprivate

Page 16: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf compatívelsnmpd.conf compatívelcom v1 e v2ccom v1 e v2c

O proximo passo é realizar a associação dosO proximo passo é realizar a associação dos grupos de acessos grupos de acessos à versão do protocolo snmp e a um "security name", definindo acessos a à versão do protocolo snmp e a um "security name", definindo acessos a informações diferentes dependendo da versão do protocolo utilizado. Estas linhas possuem o seguinte formato:informações diferentes dependendo da versão do protocolo utilizado. Estas linhas possuem o seguinte formato:

groupgroup grupogrupo versão_do_protocoloversão_do_protocolo “security_name”“security_name”

Por exemplo:Por exemplo:

group group compat compat v1 v1 readonlyreadonly

group group compat compat v2c v2c readonlyreadonly

group group compat1 compat1 v1 v1 readwritereadwrite

group group compat1 compat1 v2c v2c readwritereadwrite

Page 17: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf compatívelsnmpd.conf compatívelcom v1 e v2ccom v1 e v2c

A terceira seção a ser configurada são as "views" ou seja partes da árvore de OIDs, que poderão ser visualizadas. Por exemplo:A terceira seção a ser configurada são as "views" ou seja partes da árvore de OIDs, que poderão ser visualizadas. Por exemplo:

# view# view namename inc/excl inc/excl tree tree maskmask

view view all all included included .1 .1 8080

Finalmente deve-se aplicar as permissões (visualizar/alterar) as views pelos grupos. A configuração padrão irá permitir que Finalmente deve-se aplicar as permissões (visualizar/alterar) as views pelos grupos. A configuração padrão irá permitir que compatcompat possa visualizar qualquer possa visualizar qualquer configuração.configuração.

Por Exemplo:Por Exemplo:#access user context any/v1/v2c/usm level prefx read write notify#access user context any/v1/v2c/usm level prefx read write notify

access compat "" any noauth exact all none noneaccess compat "" any noauth exact all none none

access compat1 "" any noauth exact all all noneaccess compat1 "" any noauth exact all all none

Page 18: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetrosContext – Contexto ou Escopo:Context – Contexto ou Escopo:

É uma maneira de se criar filtros de acesso para determinadas situações, pode ser contexto em um dispositivo, contexto em um conjunto de dispositivos, etc.É uma maneira de se criar filtros de acesso para determinadas situações, pode ser contexto em um dispositivo, contexto em um conjunto de dispositivos, etc.

Por exemplo: Ler as informações de espaço em disco de todos os meus dispositivos, ler as informações de tráfego de portas do switch1, ler as informações de Por exemplo: Ler as informações de espaço em disco de todos os meus dispositivos, ler as informações de tráfego de portas do switch1, ler as informações de tráfego de rede de entrada da porta 24 (... ifTable.ifEntry.ifInOctets.24 ) do switch 2.tráfego de rede de entrada da porta 24 (... ifTable.ifEntry.ifInOctets.24 ) do switch 2.

Any/v1/v2c/usm – Versão do protocolo a ser usada:Any/v1/v2c/usm – Versão do protocolo a ser usada:

any – Clientes com qualquer versão do protocolo SNMPany – Clientes com qualquer versão do protocolo SNMP

v1 – Apenas cliente com versão 1 do protocolo SNMPv1 – Apenas cliente com versão 1 do protocolo SNMP

v2c – Apenas cliente com versão 2 do protocolo SNMPv2c – Apenas cliente com versão 2 do protocolo SNMP

usm – Apenas cliente com versão 3 do protocolo SNMPusm – Apenas cliente com versão 3 do protocolo SNMP

Page 19: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetrosLevel – Nível de segurança da autenticação:Level – Nível de segurança da autenticação:

noauth – Sem autenticaçãonoauth – Sem autenticação

auth – Com autenticaçãoauth – Com autenticação

priv – Autenticação com Criptografiapriv – Autenticação com Criptografia

Prefx – Prefixo:Prefx – Prefixo:

exact – A correspondência exata de prefixo e contextoexact – A correspondência exata de prefixo e contexto

prefix – Apenas o prefixoprefix – Apenas o prefixo

Page 20: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf v3 inicialsnmpd.conf v3 inicial# /etc/snmp/snmpd.conf v3 inicial# /etc/snmp/snmpd.conf v3 inicial

##

# Declarando um usuário Inicial com# Declarando um usuário Inicial com

# permissão de escrita# permissão de escrita

rwuser initialrwuser initial

# Criando o usuário na base do snmp# Criando o usuário na base do snmp

#IMPORTANTE: Esta linha deve ser apagada#IMPORTANTE: Esta linha deve ser apagada

# após a adição dos novos usuários# após a adição dos novos usuários

createUser initial MD5 setup_passphrase DEScreateUser initial MD5 setup_passphrase DES

snmpd.conf.3snmpd.conf.3

Page 21: Gerenciamento de Servidores Linux utilizando SNMP

Criar os usuários adicionaisCriar os usuários adicionais

$ snmpusm –v 3 -u initial -n "" -x DES -l authNoPriv -a MD5 -A $ snmpusm –v 3 -u initial -n "" -x DES -l authNoPriv -a MD5 -A setup_passphrase localhost create user1 initialsetup_passphrase localhost create user1 initial

$ snmpusm -v 3 -u initial -n "" -x DES -l authNoPriv -a MD5 -A $ snmpusm -v 3 -u initial -n "" -x DES -l authNoPriv -a MD5 -A setup_passphrase localhost passwd setup_passphrase senhateste user1setup_passphrase localhost passwd setup_passphrase senhateste user1

Page 22: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetrossnmpusmsnmpusm – Comando para criar e manipular usuários – Comando para criar e manipular usuários

-v 3 -v 3 – Versão do protocolo SNMP– Versão do protocolo SNMP

-u initial -u initial – (-u User) initial, nome do usuário com permissão de escrita– (-u User) initial, nome do usuário com permissão de escrita

-n “” -n “” – Contexto– Contexto

-x DES -x DES – Tipo de criptografia usada na senha (DES ou AES) – protocolo usado na privacidade– Tipo de criptografia usada na senha (DES ou AES) – protocolo usado na privacidade

Page 23: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetros-l authNoPriv -l authNoPriv – Nível de segurança na autenticação; São três níveis:– Nível de segurança na autenticação; São três níveis: noAuthNoPriv – Sem autenticação e sem privacidadenoAuthNoPriv – Sem autenticação e sem privacidade authNoPriv – Com autenticação, sem privacidadeauthNoPriv – Com autenticação, sem privacidade authPriv – Com autenticação e privacidadeauthPriv – Com autenticação e privacidade

““For privacy, the Security Model defines what portion of the message is encrypted. “ – IEEE - rfc3411For privacy, the Security Model defines what portion of the message is encrypted. “ – IEEE - rfc3411

-a MD5 -a MD5 – Tipo de Hash utilizado na senha (MD5 ou SHA)– Tipo de Hash utilizado na senha (MD5 ou SHA)

-A -A – A senha será “hasheada”, será criado um hash da senha– A senha será “hasheada”, será criado um hash da senha

setup_passphrase setup_passphrase - Senha do usuário initial (“setup_passphrase”), mínimo de 8 caracteres - Senha do usuário initial (“setup_passphrase”), mínimo de 8 caracteres

Page 24: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetroslocalhostlocalhost – Nome ou IP do Servidor – Nome ou IP do Servidor

create user1 initial create user1 initial – Criar usuário user1, clonando de initial (inclusive ele clona a senha)– Criar usuário user1, clonando de initial (inclusive ele clona a senha)

Outro exemplo:Outro exemplo:

$ snmpusm -v3 -u initial -n "" -l authNoPriv -x DES -X 123 -a MD5 -A 234 localhost create user1 initial$ snmpusm -v3 -u initial -n "" -l authNoPriv -x DES -X 123 -a MD5 -A 234 localhost create user1 initial

`-x DES -X 123 -a MD5 -A 234´ `-x DES -X 123 -a MD5 -A 234´ - Criptografia do tipo DES (-x), senha 123 criptografada com DES (-X), hash do tipo MD5 (-a), senha 234 - Criptografia do tipo DES (-x), senha 123 criptografada com DES (-X), hash do tipo MD5 (-a), senha 234 “hasheada” com MD5 (-A).“hasheada” com MD5 (-A).

Page 25: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetrossnmpusmsnmpusm – Comando para criar e manipular usuários – Comando para criar e manipular usuários

-v 3 -v 3 – Versão do protocolo SNMP– Versão do protocolo SNMP

-u initial -u initial – (-u User) initial, nome do usuário com permissão de escrita– (-u User) initial, nome do usuário com permissão de escrita

-n “” -n “” – Contexto– Contexto

-x DES -x DES – Tipo de criptografia usada na senha (DES ou AES) – protocolo usado na privacidade– Tipo de criptografia usada na senha (DES ou AES) – protocolo usado na privacidade

Page 26: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetros-l authNoPriv -l authNoPriv – Nível de segurança na autenticação; São três níveis:– Nível de segurança na autenticação; São três níveis: noAuthNoPriv – Sem autenticação e sem privacidadenoAuthNoPriv – Sem autenticação e sem privacidade authNoPriv – Com autenticação, sem privacidadeauthNoPriv – Com autenticação, sem privacidade authPriv – Com autenticação e privacidadeauthPriv – Com autenticação e privacidade

““For privacy, the Security Model defines what portion of the message is encrypted. “ – IEEE - rfc3411For privacy, the Security Model defines what portion of the message is encrypted. “ – IEEE - rfc3411

-a MD5 -a MD5 – Tipo de Hash utilizado na senha (MD5 ou SHA)– Tipo de Hash utilizado na senha (MD5 ou SHA)

-A -A – A senha será “hasheada”, será criado um hash da senha– A senha será “hasheada”, será criado um hash da senha

setup_passphrasesetup_passphrase - Senha do usuário initial - Senha do usuário initial

Page 27: Gerenciamento de Servidores Linux utilizando SNMP

ParâmetrosParâmetroslocalhostlocalhost – Nome ou IP do Servidor – Nome ou IP do Servidor

passwdpasswd – Comando para alterar a senha – Comando para alterar a senha

setup_passphrasesetup_passphrase – Senha atual do usuário user1 – Senha atual do usuário user1

senhateste user1 senhateste user1 – Nova senha (“senhateste”) para o usuário “user1”– Nova senha (“senhateste”) para o usuário “user1”

Page 28: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf v3 básicosnmpd.conf v3 básico# /etc/snmp/snmpd.conf v3 básico# /etc/snmp/snmpd.conf v3 básico

# mantive o usuário com permissão de escrita# mantive o usuário com permissão de escrita

rwuser initialrwuser initial

# Dei permissão de leitura aos 3 usuários# Dei permissão de leitura aos 3 usuários

# recém-criados.# recém-criados.

rouser user1rouser user1

rouser user2rouser user2

rouser user3rouser user3

snmpd.conf.4snmpd.conf.4

Page 29: Gerenciamento de Servidores Linux utilizando SNMP

Acessando um AgenteAcessando um AgenteSNMP v3SNMP v3

$ snmpget -v 3 -u user3 -n "" -l authNoPriv -a MD5 -A senhateste3 -x DES localhost sysContact.0$ snmpget -v 3 -u user3 -n "" -l authNoPriv -a MD5 -A senhateste3 -x DES localhost sysContact.0

SNMPv2-MIB::sysContact.0 = STRING: rootSNMPv2-MIB::sysContact.0 = STRING: root

$ snmpset -v 3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase -x DES localhost sysContact.0 s Conrado$ snmpset -v 3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase -x DES localhost sysContact.0 s Conrado

SNMPv2-MIB::sysContact.0 = STRING: ConradoSNMPv2-MIB::sysContact.0 = STRING: Conrado

$ snmpgetnext -v 3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase -x DES localhost sysContact.0$ snmpgetnext -v 3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase -x DES localhost sysContact.0

SNMPv2-MIB::sysName.0 = STRING: debianSNMPv2-MIB::sysName.0 = STRING: debian

Page 30: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf v3 com VACMsnmpd.conf v3 com VACMdevidamente configuradodevidamente configurado

# Definir as Views# Definir as Views

# nome incl/excl sub-árvore máscara# nome incl/excl sub-árvore máscara

view all included .1 80view all included .1 80

view ip included .iso.org.dod.internet.mgmt.mib-2.ipview ip included .iso.org.dod.internet.mgmt.mib-2.ip

# Agrupar os usuários# Agrupar os usuários

## nomenome modelo_de_segurançamodelo_de_segurança usuáriousuário

groupgroup rogroup1rogroup1 usmusm user1user1

GroupGroup rogroup1rogroup1 usmusm user2user2

groupgroup rogroup2rogroup2 usmusm user3user3

groupgroup rwgrouprwgroup usmusm initialinitial

Page 31: Gerenciamento de Servidores Linux utilizando SNMP

snmpd.conf v3 com VACMsnmpd.conf v3 com VACMdevidamente configurado (cont.)devidamente configurado (cont.)

# Atribuir Permissões aos grupos# Atribuir Permissões aos grupos

## grupo contexto mod_seg nível_seg coincidir ler alterar grupo contexto mod_seg nível_seg coincidir ler alterar notificarnotificar

access rogroup2 “” any noauth exact access rogroup2 “” any noauth exact ip noneip none nonenone

access rogroup1 “” any noauth exactaccess rogroup1 “” any noauth exact all noneall none nonenone

access rwgroup “” any noauth exactaccess rwgroup “” any noauth exact all allall all nonenone

snmpd.conf.5snmpd.conf.5

Page 32: Gerenciamento de Servidores Linux utilizando SNMP

Monitorando RecursosMonitorando Recursosdo Sistemado Sistema

Informações do SistemaInformações do Sistema

ProcessosProcessos

Uso de discoUso de disco

Carga do SistemaCarga do Sistema

Tamanho de ArquivosTamanho de Arquivos

Com Comandos customizadosCom Comandos customizados

Page 33: Gerenciamento de Servidores Linux utilizando SNMP

Informações do SistemaInformações do Sistema# local# local

syslocation Casa do Conradosyslocation Casa do Conrado

# Contato# Contato

syscontact Conrado [email protected] Conrado [email protected]

# Descricao# Descricao

sysdescr Notebook do Conradosysdescr Notebook do Conrado

snmpd.conf.6snmpd.conf.6

Page 34: Gerenciamento de Servidores Linux utilizando SNMP

Monitoramento de ProcessosMonitoramento de Processossnmpd.conf.7snmpd.conf.7

# # processoprocesso maximomaximo minimominimo

proc proc apache2apache2 2020 1010

proc proc mountdmountd

# As saidas estarao abaixo do OID: .1.3.6.1.4.1.2021.2.1 (enterprises.ucdavis.prTable.prEntry ())# As saidas estarao abaixo do OID: .1.3.6.1.4.1.2021.2.1 (enterprises.ucdavis.prTable.prEntry ())

# Sendo suas saidas:# Sendo suas saidas:

#.1.X prIndex = INTEGER: 1#.1.X prIndex = INTEGER: 1

#.2.X prNames = STRING: “mountd”#.2.X prNames = STRING: “mountd”

#.3.X prMin = INTEGER: 0#.3.X prMin = INTEGER: 0

#.4.X prMax = INTEGER: 0#.4.X prMax = INTEGER: 0

#.5.X prCount = INTEGER: 0#.5.X prCount = INTEGER: 0

#.100.X prErrorFlag = INTEGER: 1#.100.X prErrorFlag = INTEGER: 1

#.101.X prErrMessage = STRING: “No mountd process running.”#.101.X prErrMessage = STRING: “No mountd process running.”

#.102.X prErrFix = INTEGER: 0#.102.X prErrFix = INTEGER: 0

#.103.X prErrFixCmd = ??#.103.X prErrFixCmd = ??

Page 35: Gerenciamento de Servidores Linux utilizando SNMP

Monitoramento de uso de discoMonitoramento de uso de discosnmpd.conf.8snmpd.conf.8

## Ponto de MontagemPonto de Montagem Espaco/Porcentagem minima disponivelEspaco/Porcentagem minima disponivel

diskdisk /boot/boot 90%90%

diskdisk /home/conrado/videos/home/conrado/videos 2048000020480000

# As saidas estarao abaixo de: .1.3.6.1.4.1.2021.9.1 (enterprises.ucdavis.dskTable.dskEntry ())# As saidas estarao abaixo de: .1.3.6.1.4.1.2021.9.1 (enterprises.ucdavis.dskTable.dskEntry ())

# Sendo suas saidas:# Sendo suas saidas:

#.1.X dskIndex = INTEGER: 1#.1.X dskIndex = INTEGER: 1

#.2.X dskPath = STRING: “/boot”#.2.X dskPath = STRING: “/boot”

#.3.X dskDevice = STRING: “/dev/hda1”#.3.X dskDevice = STRING: “/dev/hda1”

#.4.X dskMinimum = INTEGER: -1#.4.X dskMinimum = INTEGER: -1

#.5.X dskMinPercent = INTEGER: 90#.5.X dskMinPercent = INTEGER: 90

#.6.X dskTotal = INTEGER: 918322#.6.X dskTotal = INTEGER: 918322

#.7.X dskAvail = INTEGER: 857335#.7.X dskAvail = INTEGER: 857335

#.8.X dskUsed = INTEGER: 11991#.8.X dskUsed = INTEGER: 11991

#.9.X dskPercent = INTEGER: 1#.9.X dskPercent = INTEGER: 1

#.10.X dskPercentNode = INTEGER: 0#.10.X dskPercentNode = INTEGER: 0

#.100.X dskErrorFlag = INTEGER: 0#.100.X dskErrorFlag = INTEGER: 0

#.101.X dskErrorMsg = ??#.101.X dskErrorMsg = ??

Page 36: Gerenciamento de Servidores Linux utilizando SNMP

Monitoramento deMonitoramento deCarga do sistema Carga do sistema snmpd.conf.9snmpd.conf.9

# Carga nos últimos# Carga nos últimos 1min1min 5min5min 15min15min

loadload 11 55 55

# As saidas estarao abaixo do OID: .1.3.6.1.4.1.2021.10.1 (enterprises.ucdavis.dskTable.dskEntry ())# As saidas estarao abaixo do OID: .1.3.6.1.4.1.2021.10.1 (enterprises.ucdavis.dskTable.dskEntry ())

# Sendo suas saidas:# Sendo suas saidas:

#.1.1 laIndex = INTEGER: 1#.1.1 laIndex = INTEGER: 1

#.1.2 laIndex = INTEGER: 2#.1.2 laIndex = INTEGER: 2

#.1.3 laIndex = INTEGER: 3#.1.3 laIndex = INTEGER: 3

#.2.1 laNames = STRING: Load-1#.2.1 laNames = STRING: Load-1

#.2.2 laNames = STRING: Load-5#.2.2 laNames = STRING: Load-5

#.2.3 laNames = STRING: Load-15#.2.3 laNames = STRING: Load-15

#.3.1 laLoad = STRING: 4.73#.3.1 laLoad = STRING: 4.73

#.3.2 laLoad = STRING: 4.73#.3.2 laLoad = STRING: 4.73

#.3.3 laLoad = STRING: 4.83#.3.3 laLoad = STRING: 4.83

#.4.1 laConfig = STRING: 1.00#.4.1 laConfig = STRING: 1.00

#.4.2 laConfig = STRING: 5.00#.4.2 laConfig = STRING: 5.00

#.4.3 laConfig = STRING: 5.00#.4.3 laConfig = STRING: 5.00

Page 37: Gerenciamento de Servidores Linux utilizando SNMP

Monitoramento deMonitoramento deCarga do sistema (cont.)Carga do sistema (cont.)

#.5.1 laLoadInt = INTEGER: 473#.5.1 laLoadInt = INTEGER: 473

#.5.2 laLoadInt = INTEGER: 473#.5.2 laLoadInt = INTEGER: 473

#.5.3 laLoadInt = INTEGER: 483#.5.3 laLoadInt = INTEGER: 483

#.6.1 laLoadFloat = Opaque: Float: 4.730000#.6.1 laLoadFloat = Opaque: Float: 4.730000

#.6.2 laLoadFloat = Opaque: Float: 4.730000#.6.2 laLoadFloat = Opaque: Float: 4.730000

#.6.3 laLoadFloat = Opaque: Float: 4.830000#.6.3 laLoadFloat = Opaque: Float: 4.830000

#.100.1 laErrorFlag = INTEGER: 1#.100.1 laErrorFlag = INTEGER: 1

#.100.2 laErrorFlag = INTEGER: 0#.100.2 laErrorFlag = INTEGER: 0

#.100.3 laErrorFlag = INTEGER: 0#.100.3 laErrorFlag = INTEGER: 0

#.101.1 laErrMessage = STRING: 1 min Load Average too high#.101.1 laErrMessage = STRING: 1 min Load Average too high

(= 4.73)(= 4.73)

#.101.2 laErrMessage = STRING:#.101.2 laErrMessage = STRING:

#.101.3 laErrMessage = STRING:#.101.3 laErrMessage = STRING:

Page 38: Gerenciamento de Servidores Linux utilizando SNMP

Monitoramento de TamanhoMonitoramento de Tamanhode arquivode arquivo

# Tamanho do arquivo# Tamanho do arquivo

## Caminho_do_arquivoCaminho_do_arquivo tamanho_maximo (kB)tamanho_maximo (kB)

filefile /etc/services/etc/services1616

# As saidas estarao abaixo de: .1.3.6.1.4.1.2021.15.1 (enterprises.ucdavis.fileTable.fileEntry ())# As saidas estarao abaixo de: .1.3.6.1.4.1.2021.15.1 (enterprises.ucdavis.fileTable.fileEntry ())

# Sendo suas saidas:# Sendo suas saidas:

#.1.X fileIndex = INTEGER: 1#.1.X fileIndex = INTEGER: 1

#.2.X fileName = STRING: /etc/services#.2.X fileName = STRING: /etc/services

#.3.X fileSize = INTEGER: 17 kB#.3.X fileSize = INTEGER: 17 kB

#.4.X fileMax = INTEGER: 16 kB#.4.X fileMax = INTEGER: 16 kB

#.100.X fileErrorFlag = INTEGER: true(1)#.100.X fileErrorFlag = INTEGER: true(1)

#.101.X fileErrorMsg = STRING: /etc/services: size exceeds #.101.X fileErrorMsg = STRING: /etc/services: size exceeds 16kb (= 17kb)16kb (= 17kb)

snmpd.conf.10snmpd.conf.10

Page 39: Gerenciamento de Servidores Linux utilizando SNMP

Monitorando utilizando umMonitorando utilizando umcomando customizadocomando customizado

## NomeNome comandocomando ParametrosParametros

execexec Teste1Teste1 /bin/cat/bin/cat /etc/fstab/etc/fstab

# As saidas estarao abaixo de: .1.3.6.1.4.1.2021.8.1 (enterprises.ucdavis.extTable.extEntry ())# As saidas estarao abaixo de: .1.3.6.1.4.1.2021.8.1 (enterprises.ucdavis.extTable.extEntry ())

# Sendo suas saidas:# Sendo suas saidas:

#.1.X extIndex = INTEGER: 1#.1.X extIndex = INTEGER: 1

#.2.X extNames = STRING: Teste1#.2.X extNames = STRING: Teste1

#.3.X extCommand = STRING: /bin/cat /etc/fstab#.3.X extCommand = STRING: /bin/cat /etc/fstab

#.100.X extResult = INTEGER: 0#.100.X extResult = INTEGER: 0

#.101.X extOutput = STRING: #.101.X extOutput = STRING: ... saída do comando ...... saída do comando ...

#.102.X extErrFix = INTEGER: 0#.102.X extErrFix = INTEGER: 0

#.103.X extErrFixCmd = STRING:#.103.X extErrFixCmd = STRING:

snmpd.conf.11snmpd.conf.11

Page 40: Gerenciamento de Servidores Linux utilizando SNMP

Monitorando utilizando umMonitorando utilizando umcomando customizado (cont.)comando customizado (cont.)

# Caso seja especificado um OID, a saida difere um pouco:# Caso seja especificado um OID, a saida difere um pouco:

## OIDOID NomeNome comandocomando ParametrosParametros

extend extend .1.1.1.1.1 .1.1.1.1.1 Teste2Teste2 /bin/cat/bin/cat /etc/fstab/etc/fstab

# As saidas estarao abaixo do OID especificado, sendo:# As saidas estarao abaixo do OID especificado, sendo:

# .1.0 = INTEGER: 1# .1.0 = INTEGER: 1

# .2.1.2.6.84.101.115.116.101.50 = STRING: "/bin/cat"# .2.1.2.6.84.101.115.116.101.50 = STRING: "/bin/cat"

# .2.1.3.6.84.101.115.116.101.50 = STRING: "/etc/fstab"# .2.1.3.6.84.101.115.116.101.50 = STRING: "/etc/fstab"

# .2.1.4.6.84.101.115.116.101.50 = ""# .2.1.4.6.84.101.115.116.101.50 = ""

# .2.1.5.6.84.101.115.116.101.50 = INTEGER: 5# .2.1.5.6.84.101.115.116.101.50 = INTEGER: 5

# .2.1.6.6.84.101.115.116.101.50 = INTEGER: 1# .2.1.6.6.84.101.115.116.101.50 = INTEGER: 1

# .2.1.7.6.84.101.115.116.101.50 = INTEGER: 1# .2.1.7.6.84.101.115.116.101.50 = INTEGER: 1

# .2.1.20.6.84.101.115.116.101.50 = INTEGER: 4# .2.1.20.6.84.101.115.116.101.50 = INTEGER: 4

# .2.1.21.6.84.101.115.116.101.50 = INTEGER: 1# .2.1.21.6.84.101.115.116.101.50 = INTEGER: 1

# .3.1.1.6.84.101.115.116.101.50 = STRING: "# /etc/fstab: static file system information."# .3.1.1.6.84.101.115.116.101.50 = STRING: "# /etc/fstab: static file system information."

snmpd.conf.12snmpd.conf.12

Page 41: Gerenciamento de Servidores Linux utilizando SNMP

Outros comandos snmpOutros comandos snmp$ snmptable -v 3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase -x DES localhost sysORTable$ snmptable -v 3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase -x DES localhost sysORTable

$ snmptranslate -Of -IR sysDescr$ snmptranslate -Of -IR sysDescr

.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.iso.org.dod.internet.mgmt.mib-2.system.sysDescr

$ snmptranslate -On -IR sysDescr$ snmptranslate -On -IR sysDescr

.1.3.6.1.2.1.1.1.1.3.6.1.2.1.1.1

Page 42: Gerenciamento de Servidores Linux utilizando SNMP

Algumas Extensões ao SNMPAlgumas Extensões ao SNMPRFC 1155 RFC 1155 - Structure and Identification of Management Information for - Structure and Identification of Management Information for TCP/IP based internets TCP/IP based internets

RFC 1156 RFC 1156 - Management Information Base Network- Management Information Base Network

RFC 1441 RFC 1441 - Introduction to SNMP v2 - Introduction to SNMP v2 

RFC 2579 RFC 2579 - Textual Conventions for SNMP v2- Textual Conventions for SNMP v2

RFC 2580 RFC 2580 - Conformance Statements for SNMP v2 - Conformance Statements for SNMP v2 

RFC 2578 RFC 2578 - Structure of Management Information for SNMP v2- Structure of Management Information for SNMP v2

RFC 3416 RFC 3416 - Protocol Operations for SNMP v2- Protocol Operations for SNMP v2

RFC 3417 RFC 3417 - Transport Mappings for SNMP v2- Transport Mappings for SNMP v2

RFC 3418 RFC 3418 - Management Information Base for SNMP v2- Management Information Base for SNMP v2

RFC 3410 RFC 3410 - Introduction and Applicability Statements for Internet - Introduction and Applicability Statements for Internet Standard Management Framework Standard Management Framework

RFC 3411 RFC 3411 - Architecture for Describing SNMP Frameworks- Architecture for Describing SNMP Frameworks

RFC 3412 RFC 3412 - Message Processing and Dispatching for the SNMP- Message Processing and Dispatching for the SNMP

RFC 3413 RFC 3413 - SNMP Applications- SNMP Applications

RFC 3414 RFC 3414 - User-based Security Model (USM) for SNMP v3- User-based Security Model (USM) for SNMP v3

RFC 3415 RFC 3415 - View-based Access Control Model for the SNMP- View-based Access Control Model for the SNMP

RFC 3584 RFC 3584 - Coexistence between SNMP v1, v2 and v3- Coexistence between SNMP v1, v2 and v3

Page 43: Gerenciamento de Servidores Linux utilizando SNMP

ReferênciasReferênciashttp://lrodrigo.lncc.br/~lrodrigo/wiki9/index.php/Configuracoes_Basicas_-_V1_e_V2chttp://net-snmp.sourceforge.net/wiki/index.php/Vacmhttp://www.ietf.org/rfc/rfc3411.txthttp://www.ietf.org/rfc/rfc3415.txthttp://www.net-snmp.org/docs/man/snmpusm.htmlhttp://www.net-snmp.org/docs/man/snmpd.conf.html

http://www.net-snmp.org/docs/man/snmpd.conf.html#lbAHhttp://www.net-snmp.org/docs/man/snmpd.conf.html#lbAH

http://www.net-snmp.org/docs/man/snmpd.conf.html#lbAIhttp://www.net-snmp.org/docs/man/snmpd.conf.html#lbAI

http://www.webnms.com/simulator/help/sim_network/netsim_conf_snmpv3.htmlhttp://www.webnms.com/simulator/help/sim_network/netsim_conf_snmpv3.html

http://net-snmp.sourceforge.net/wiki/index.php/Vacmhttp://net-snmp.sourceforge.net/wiki/index.php/Vacm

http://docstore.mik.ua/orelly/networking_2ndEd/snmp/appf_02.htmhttp://docstore.mik.ua/orelly/networking_2ndEd/snmp/appf_02.htm

Page 44: Gerenciamento de Servidores Linux utilizando SNMP

ReferênciasReferênciashttp://www.net-snmp.org/wiki/index.php/TUT:SNMPv3_Optionshttp://www.net-snmp.org/wiki/index.php/TUT:SNMPv3_Options

http://www.webnms.com/agenttester/help/snmptester/sat_v3_security_testing.htmlhttp://www.webnms.com/agenttester/help/snmptester/sat_v3_security_testing.html

http://tcpipguide.com/free/t_SNMPVersion2SNMPv2MessageFormats.htmhttp://tcpipguide.com/free/t_SNMPVersion2SNMPv2MessageFormats.htm

http://www.tcpipguide.com/free/t_TCPIPInternetStandardManagementFrameworkandSNMPVer-3.htmhttp://www.tcpipguide.com/free/t_TCPIPInternetStandardManagementFrameworkandSNMPVer-3.htm

Palestra: Gerenciamento de Servidores Linux Utilizando SNMP – Conrado Pinto:Palestra: Gerenciamento de Servidores Linux Utilizando SNMP – Conrado Pinto:

http://www.box.net/shared/fu0ynqfckzhttp://www.box.net/shared/fu0ynqfckz