gerenciamento de servidores linux utilizando snmp
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
Gerenciamento de Servidores Gerenciamento de Servidores Linux Utilizando SNMPLinux Utilizando SNMP
Versões SNMPVersões SNMP SNMP v1SNMP v1
SNMP v2 (v2c)SNMP v2 (v2c)
SNMP v3SNMP v3
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
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).
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).
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
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
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
......
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
......
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
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
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
Modelo de Permissões VACMModelo de Permissões VACM
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
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
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
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
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
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
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
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
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
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
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).
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
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
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”
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
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
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
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
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
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
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 = ??
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 = ??
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
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:
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
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
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
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
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
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
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