Introdução
Neste laboratório, você aprenderá como implementar monitoramento de rede seguro em um sistema Linux usando o Simple Network Management Protocol versão 3 (SNMPv3). Você se concentrará na configuração do agente SNMP (snmpd) para impor autenticação e criptografia fortes, garantindo que os dados de gerenciamento sejam protegidos em trânsito e superando as inseguranças das versões mais antigas do SNMP.
O processo começa com a instalação das ferramentas necessárias do agente e cliente SNMP em seu sistema. Em seguida, você criará um usuário SNMPv3 dedicado com credenciais seguras diretamente no arquivo de configuração. Finalmente, você usará a ferramenta de linha de comando snmpwalk para realizar consultas seguras contra seu agente configurado, verificando sua configuração e explorando como recuperar informações específicas do sistema usando Object Identifiers (OIDs).
Instalar Agente SNMP e Ferramentas Cliente
Nesta etapa, você instalará os componentes principais necessários para o monitoramento de rede usando o Simple Network Management Protocol (SNMP). Instalaremos tanto o agente SNMP, que é executado no dispositivo a ser monitorado, quanto as ferramentas de cliente, que são usadas para consultar o agente.
Primeiro, é uma prática recomendada atualizar a lista de pacotes do seu sistema. Isso garante que você está obtendo as versões mais recentes e seguras do software disponíveis nos repositórios.
Execute o seguinte comando para atualizar o índice de pacotes em seu sistema:
sudo apt update
Você verá a saída mostrando as listas de pacotes sendo buscadas nos repositórios do Ubuntu.
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
...
Fetched 1,587 kB in 2s (924 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Agora que sua lista de pacotes está atualizada, você pode instalar o agente SNMP (daemon) e as utilidades de cliente. O agente é fornecido pelo pacote snmpd, e as ferramentas de cliente (como snmpwalk, snmpget) estão no pacote snmp.
Execute o comando abaixo para instalar ambos os pacotes. O sinalizador -y confirma automaticamente a instalação, para que você não seja solicitado.
sudo apt install snmpd snmp -y
O processo de instalação baixará e configurará os arquivos necessários. Assim que for concluído, o serviço snmpd, que é o daemon do agente, deverá ser iniciado automaticamente.
Para confirmar que o agente SNMP está em execução corretamente, você pode verificar o status do serviço snmpd usando systemctl.
sudo systemctl status snmpd
A saída deve indicar que o serviço está active (running). Isso confirma que o agente SNMP está pronto para receber requisições.
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-10-30 08:30:00 UTC; 5s ago
Main PID: 1234 (snmpd)
Tasks: 1 (limit: 4595)
Memory: 9.8M
CPU: 35ms
CGroup: /system.slice/snmpd.service
└─1234 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f
Se você vir a tela de status, pode pressionar
qno seu teclado para sair e retornar ao prompt de comando.
Com o agente em execução e as ferramentas de cliente instaladas, seu ambiente está agora preparado para a configuração e comunicação SNMP.
Criar um Usuário SNMPv3 Seguro em snmpd.conf
Nesta etapa, você configurará o agente SNMP (snmpd) para usar o SNMPv3, que fornece recursos de segurança essenciais. Ao contrário das versões mais antigas, o SNMPv3 suporta autenticação (para verificar a identidade do remetente) e privacidade (para criptografar os dados). Você conseguirá isso criando um novo usuário diretamente no arquivo de configuração do agente, /etc/snmp/snmpd.conf.
Antes de fazer quaisquer alterações, é uma prática recomendada crítica criar um backup do arquivo de configuração original. Isso permite que você o restaure facilmente se algo der errado.
Execute o seguinte comando para copiar o arquivo de configuração:
sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
Agora, você editará o arquivo de configuração principal /etc/snmp/snmpd.conf para adicionar um novo usuário SNMPv3. Usaremos o editor de texto nano para esta tarefa.
Execute este comando para abrir o arquivo com permissões sudo:
sudo nano /etc/snmp/snmpd.conf
Role até o final do arquivo e adicione as seguintes linhas. Essas linhas definem um novo usuário chamado labexuser com protocolos de autenticação (SHA) e privacidade (AES) fortes.
createUser: Esta diretiva cria o usuário SNMPv3.labexuser: O nome de usuário para seu usuário SNMPv3.SHA: O protocolo de autenticação (mais seguro que MD5).AuthPassLabEx: A frase secreta de autenticação (deve ter pelo menos 8 caracteres).AES: O protocolo de privacidade (criptografia) (mais seguro que DES).PrivPassLabEx: A frase secreta de privacidade (deve ter pelo menos 8 caracteres).
rwuser: Esta diretiva concede ao usuário acesso de leitura-escrita a toda a árvore OID ao usar o nível de segurançapriv(autenticação e privacidade).
Copie e cole o seguinte bloco de configuração no final do arquivo:
## --- LabEx SNMPv3 User Configuration ---
## Create a secure SNMPv3 user for monitoring
createUser labexuser SHA "AuthPassLabEx" AES "PrivPassLabEx"
## Grant the new user read-write access with privacy
rwuser labexuser priv
## --- End of Configuration ---
Após adicionar o texto, salve o arquivo e saia do nano pressionando Ctrl+O, depois Enter para confirmar o nome do arquivo e, finalmente, Ctrl+X para sair.
Você agora configurou com sucesso um usuário seguro para comunicação SNMPv3. Na próxima etapa, você reiniciará o serviço para aplicar essas alterações.
Reiniciar e Verificar o Serviço snmpd
Nesta etapa, você aplicará a nova configuração de usuário que adicionou na etapa anterior. Sempre que você modificar o arquivo de configuração de um serviço em execução como o snmpd, as alterações não são aplicadas automaticamente. Você deve reiniciar o serviço para que ele releia seu arquivo de configuração e carregue as novas configurações.
Primeiro, use o comando systemctl para reiniciar o serviço snmpd. Isso interromperá o processo atual e iniciará um novo com a configuração atualizada que inclui seu labexuser.
sudo systemctl restart snmpd
Este comando normalmente não produz nenhuma saída se for executado com sucesso.
Em seguida, é crucial verificar se o serviço reiniciou sem problemas. Se houvesse erros de sintaxe em seu arquivo /etc/snmp/snmpd.conf, o serviço pode falhar ao iniciar. Você pode verificar seu status atual para confirmar que ele está em execução corretamente.
sudo systemctl status snmpd
Você deverá ver uma saída confirmando que o serviço está active (running). Preste atenção ao carimbo de data/hora, que deve mostrar que o serviço foi iniciado muito recentemente.
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-10-30 08:35:00 UTC; 3s ago
Main PID: 5678 (snmpd)
Tasks: 1 (limit: 4595)
Memory: 10.1M
CPU: 40ms
CGroup: /system.slice/snmpd.service
└─5678 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f
Lembre-se de pressionar
qpara sair da visualização de status e retornar ao terminal.
Ver o status active (running) confirma que suas alterações de configuração foram válidas e o agente SNMP agora está em execução com o novo labexuser pronto para comunicação segura.
Realizar Consultas Seguras com Ferramentas SNMPv3
Nesta etapa, você usará ferramentas cliente SNMP para realizar consultas seguras contra o agente SNMP em execução em sua máquina local. Você usará as credenciais labexuser que configurou em snmpd.conf para testar a comunicação segura SNMPv3. Este é o momento de ver sua configuração segura em ação.
Comandos SNMP para SNMPv3 exigem vários sinalizadores específicos para lidar com autenticação e privacidade. Aqui está uma análise dos parâmetros que você usará:
-v 3: Especifica que você está usando a versão 3 do SNMP.-l authPriv: Define o nível de segurança comoauthPriv, o que significa que a comunicação requer autenticação e privacidade (criptografia). Este é o nível de segurança mais alto.-u labexuser: Especifica o nome de usuário, que é olabexuserque você criou.-a SHA: Define o protocolo de autenticação como SHA. Isso deve corresponder ao protocolo que você definiu emsnmpd.conf.-A "AuthPassLabEx": Fornece a frase secreta de autenticação.-x AES: Define o protocolo de privacidade (criptografia) como AES. Isso também deve corresponder à sua configuração.-X "PrivPassLabEx": Fornece a frase secreta de privacidade.localhost: O host de destino onde o agente SNMP está em execução. Neste caso, é sua própria máquina.
Primeiro, vamos testar a conexão percorrendo toda a árvore do sistema. O comando snmpwalk percorre árvores OID e retorna todos os objetos dentro de um ramo.
Entendendo a Estrutura OID: Identificadores de Objeto (OIDs) usam um sistema numérico hierárquico. O OID 1.3.6.1.2.1.1 representa o grupo "system" no MIB-II padrão do SNMP:
1.3.6.1= internet1.3.6.1.2= mgmt (gerenciamento)1.3.6.1.2.1= mib-2 (MIB padrão)1.3.6.1.2.1.1= grupo system (contém informações básicas do sistema)
Execute o seguinte comando para percorrer a árvore MIB do sistema:
snmpwalk -v 3 -l authPriv -u labexuser -a SHA -A "AuthPassLabEx" -x AES -X "PrivPassLabEx" localhost 1.3.6.1.2.1.1
Se o comando for bem-sucedido, você verá vários OIDs relacionados ao sistema e seus valores. Isso confirma que seu gerenciador SNMP autenticou com sucesso com o agente (snmpd) e a consulta foi realizada em um canal seguro e criptografado.
SNMPv2-MIB::sysDescr.0 = STRING: Linux labex-vm 5.15.0-XX-generic #XX-Ubuntu SMP ...
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (123456) 0:20:34.56
SNMPv2-MIB::sysContact.0 = STRING: Me <me@example.org>
SNMPv2-MIB::sysName.0 = STRING: labex-vm
SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
...
Uma resposta bem-sucedida prova que toda a sua configuração SNMPv3 está funcionando corretamente. Se você tivesse usado credenciais ou protocolos incorretos, o comando teria falhado com um erro de autenticação.
Consultar OIDs Específicos usando snmpget
Nesta etapa, você aprenderá a recuperar informações específicas do sistema usando o comando snmpget. Enquanto snmpwalk percorre árvores OID inteiras, snmpget é projetado para consultar Identificadores de Objeto (OIDs) específicos para recuperação precisa de informações.
Agora que você tem uma configuração SNMPv3 funcional e segura, pode consultar informações específicas do sistema. Um OID aponta unicamente para uma informação gerenciada dentro da Base de Informações de Gerenciamento (MIB) do dispositivo.
Hierarquia OID Explicada: A árvore OID do SNMP segue a hierarquia padrão internacional ISO/IEC de identificadores de objeto:
1 (iso)
└── 3 (org)
└── 6 (dod)
└── 1 (internet)
└── 2 (mgmt)
└── 1 (mib-2)
└── 1 (system)
├── 1.0 (sysDescr)
├── 3.0 (sysUpTime)
├── 4.0 (sysContact)
├── 5.0 (sysName)
└── 6.0 (sysLocation)
Isso explica por que as informações do sistema começam com 1.3.6.1.2.1.1 - é o caminho padronizado para o grupo do sistema na MIB-II.
Vamos consultar um OID específico e comumente usado: a descrição do sistema. Este OID recupera uma descrição textual básica do dispositivo gerenciado.
Entendendo OIDs Específicos: Dentro do grupo do sistema (1.3.6.1.2.1.1), cada informação possui um sub-identificador específico:
1.3.6.1.2.1.1.1.0= sysDescr.0 (descrição do sistema)1.3.6.1.2.1.1.3.0= sysUpTime.0 (tempo de atividade do sistema)1.3.6.1.2.1.1.4.0= sysContact.0 (contato do sistema)1.3.6.1.2.1.1.5.0= sysName.0 (nome do sistema)1.3.6.1.2.1.1.6.0= sysLocation.0 (localização do sistema)
O .0 no final indica que este é um valor escalar (instância única), não uma entrada de tabela.
Execute o seguinte comando para consultar a descrição do sistema:
snmpget -v 3 -l authPriv -u labexuser -a SHA -A "AuthPassLabEx" -x AES -X "PrivPassLabEx" localhost 1.3.6.1.2.1.1.1.0
A saída mostrará a descrição do sistema, confirmando que sua autenticação e privacidade SNMPv3 estão funcionando corretamente:
iso.3.6.1.2.1.1.1.0 = STRING: "Linux iZrj9ixg5sv0oem6yeu6aqZ 5.15.0-56-generic ..."
Em seguida, vamos consultar o tempo de atividade do sistema usando o OID numérico 1.3.6.1.2.1.1.3.0 (que corresponde a sysUpTime.0). Este OID relata o tempo desde que a parte de gerenciamento de rede do sistema foi reinicializada pela última vez:
snmpget -v 3 -l authPriv -u labexuser -a SHA -A "AuthPassLabEx" -x AES -X "PrivPassLabEx" localhost 1.3.6.1.2.1.1.3.0
A saída mostrará o tempo de atividade em um formato "Timeticks", que representa centésimos de segundo, juntamente com um formato legível por humanos:
iso.3.6.1.2.1.1.3.0 = Timeticks: (48642) 0:08:06.42
Finalmente, você pode consultar vários OIDs em um único comando listando-os no final. Vamos recuperar as informações de descrição e contato do sistema juntas usando seus OIDs numéricos.
Por que usar OIDs Numéricos? Em alguns ambientes, nomes simbólicos como sysDescr.0 podem não ser reconhecidos porque:
- Arquivos MIB não são carregados ou instalados
- A configuração do cliente SNMP não inclui as definições MIB necessárias
- Usar OIDs numéricos garante compatibilidade entre diferentes sistemas
Execute este comando para consultar vários OIDs simultaneamente:
snmpget -v 3 -l authPriv -u labexuser -a SHA -A "AuthPassLabEx" -x AES -X "PrivPassLabEx" localhost 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.4.0
Isso retornará ambos os valores em uma única resposta:
iso.3.6.1.2.1.1.1.0 = STRING: "Linux iZrj9ixg5sv0oem6yeu6aqZ 5.15.0-56-generic ..."
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
Ao consultar com sucesso esses OIDs específicos, você demonstrou a capacidade principal do SNMP para monitoramento seguro de rede. Agora você pode recuperar dados operacionais precisos de seus dispositivos de maneira segura, autenticada e criptografada.
Resumo
Neste laboratório, você aprendeu a implementar monitoramento seguro de rede em um sistema Linux usando SNMPv3. Você começou instalando os componentes principais, incluindo o agente SNMP (snmpd) e as ferramentas cliente (snmp), após atualizar o repositório de pacotes do sistema. O foco principal foi a segurança, que você configurou criando um novo usuário SNMPv3 no arquivo snmpd.conf, completo com protocolos fortes de autenticação e privacidade (criptografia) para proteger os dados em trânsito.
Após configurar o usuário seguro, você reiniciou o serviço snmpd para aplicar a nova configuração e verificou se ele estava em execução corretamente. Em seguida, você usou ferramentas cliente SNMP para realizar consultas seguras contra o agente, autenticando-se com as credenciais do usuário SNMPv3 que você criou. Você praticou o uso de snmpwalk para percorrer ramos inteiros da árvore MIB e snmpget para recuperar Identificadores de Objeto (OIDs) específicos. Isso demonstrou como monitorar com segurança informações do sistema, como descrição do sistema, tempo de atividade e detalhes de contato, usando tanto percorridos abrangentes da árvore quanto consultas individuais precisas.



