One place for hosting & domains

      Cómo instalar y configurar un demonio y cliente SNMP en Ubuntu 18.04


      El autor seleccionó el lnternet Archive para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Ser un administrador de sistemas implica principalmente recopilar información exacta acerca de servidores e infraestructuras. Existen diversas herramientas y opciones para recopilar y procesar este tipo de información. Muchas de estas herramientas se compilan con una tecnología denominada SNMP.

      SNMP significa “protocolo simple de administración de redes”. Es una alternativa a través de la cual los servidores pueden compartir información sobre su estado actual y, a la vez, un canal por el cual un administrador puede modificar valores predefinidos. Aunque el protocolo es ligero, la complejidad de la estructura de los programas que lo implementan puede aumentar rápidamente. Si desea obtener más información sobre los aspectos básicos del protocolo SNMP, consulte nuestro artículo Introducción al SNMP.

      En esta guía, configurará las herramientas para comunicarse mediante SNMP. Usará dos servidores de Ubuntu 18.04. para la demostración. Uno tendrá el administrador de SNMP, que se comunicará con el agente para implementar dispositivos de red. Este se citará como servidor administrador. El otro servidor tendrá el agente SNMP, que cumplirá las órdenes del servidor administrador. Este se citará como servidor agente. Podría optar por instalar el agente en la máquina administradora también, pero mantenerlos separados hace que sea más sencillo demostrar la funcionalidad que ofrece cada componente.

      Requisitos previos

      Para este tutorial, necesitará lo siguiente:

      Paso 1: Instalar el demonio y las utilidades SNMP

      Puede empezar por conocer la manera en que se puede implementar el SNMP en un sistema instalando el demonio y las herramientas en sus servidores de Ubuntu.

      Desde su máquina local, inicie sesión en el servidor administrador como usuario no root:

      • ssh your_username@manager_server_ip_address

      Actualice el índice de paquetes del administrador de paquetes APT:

      A continuación, instale el software de SNMP:

      • sudo apt install snmp snmp-mibs-downloader

      El paquete snmp ofrece un conjunto de herramientas de líneas de comando para emitir solicitudes de SNMP a los agentes. El paquete snmp-mibs-downloader ayudará a instalar y administrar los archivos de base de información gestionada (MIB), que realizan un seguimiento de los objetos de red.

      Luego, abra una nueva terminal en su máquina local e inicie sesión en el servidor agente:

      • ssh your_username@agent_server_ip_address

      En el servidor agente, actualice el índice de paquetes:

      Luego, instale el demonio SNMP.

      Tenga en cuenta que no necesita el paquete snmp-mibs-downloader, debido a que el servidor agente no administrará archivos MIB.

      Ahora que instaló estos componentes, configurará su servidor de administrador.

      Paso 2: Configurar el servidor administrador del SNMP

      Como se mencionó anteriormente, la mayor parte de la carga de trabajo tiene lugar en el servidor agente, de manera que su configuración en el servidor administrador tendrá menos participación. Solo debe modificar un archivo para asegurarse de que las herramientas SNMP puedan usar los datos MIB adicionales que instaló.

      Desde el servidor administrador, abra el archivo /etc/snmp/snmp.conf en el editor de texto con privilegios sudo. En este tutorial, se usará nano:

      • sudo nano /etc/snmp/snmp.conf

      En este archivo, existen algunos comentarios y una sola línea sin ellos. Para que el administrador pueda importar los archivos MIB, ingrese un comentario en la línea mibs:

      /etc/snmp/snmp.conf

      # As the snmp packages come without MIB files due to license reasons, loading
      # of MIBs is disabled by default. If you added the MIBs you can reenable
      # loading them by commenting out the following line.
      #mibs :
      

      Guarde y cierre snmp.conf; para ello, presione CTRL+X, Y y luego INTRO si usa nano.

      De esta manera, terminó de configurar el servidor administrador, pero aun debe usarlo para configurar el servidor agente, lo cual sucederá en el siguiente paso.

      Paso 3: Configurar el servidor agente del SNMP

      Como verdadero sistema servidor-cliente, el servidor agente no tiene ninguna de las herramientas externas necesarias para configurar sus propios ajustes de SNMP. Puede modificar algunos archivos de configuración para realizar algunos cambios, pero la mayoría de los que son necesarios se harán mediante la conexión al servidor agente del servidor administrador.

      En este tutorial, usará la versión 3 del protocolo SNMP. A diferencia de las versiones 1 y 2 de SNMP, en SNMPv3 cada mensaje contiene parámetros de seguridad que están codificados. En este paso, configurará reglas de autenticación y control de acceso del SNMPv3.

      Para comenzar, en el servidor agente, abra el archivo de configuración del demonio con privilegios sudo:

      • sudo nano /etc/snmp/snmpd.conf

      Dentro de este, deberá realizar algunos cambios. Estos se utilizarán principalmente para iniciar la configuración, de modo que pueda administrarla desde su otro servidor.

      Primero, debe cambiar la directiva agentAddress. Por el momento, está configurada para permitir solo las conexiones que se originan desde la computadora local. Deberá excluir la línea actual y quitar el comentario de la que está debajo de ella, que es la que permite todas las conexiones.

      /etc/snmp/snmpd.conf

      #  Listen for connections from the local system only
      #agentAddress  udp:127.0.0.1:161
      #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
      

      Nota: Debido a que permitir todas las conexiones como esta no es la mejor práctica de seguridad, lo ideal es asegurarse de volver a bloquearlo una vez que haya finalizado el arranque.

      A continuación, introducirá temporalmente una línea createUser. Lo normal es que estas directivas no se guarden en este archivo; volverá a eliminarlo en un momento.

      El usuario que creará se llamará bootstrap y se usará como una plantilla en la cual creará su primer usuario real. Los paquetes SNMP lo hacen por medio de un proceso de clonación de las propiedades del usuario.

      Cuando defina un usuario nuevo, debe especificar el tipo de autenticación (MD5 o SHA) y también suministrar una contraseña que tenga al menos ocho caracteres. Si desea usar cifrado para la transferencia, como lo hará en este tutorial, también debe especificar el protocolo de privacidad (DES o AES) y, opcionalmente, una frase de contraseña del protocolo de privacidad. Si no proporciona una frase de contraseña de protocolo de privacidad, la frase de contraseña de autenticación se usará para el protocolo de privacidad también.

      Añada esta línea createUser al final del archivo:

      /etc/snmp/snmpd.conf

      ...
      createUser bootstrap MD5 temp_password DES
      

      Ahora que ya especificó un usuario nuevo, puede configurar el nivel de acceso que este tendrá. A través de este tutorial, configurará el usuario bootstrap y también el usuario nuevo que creará, llamado demo. Les permitirá acceso de lectura y escritura mediante la directiva rwuser (la alternativa es rouser para el acceso de solo lectura).

      Además, también impondrá el uso de cifrado especificando priv después de su usuario. Si quisiera restringir el usuario a una parte específica del MIB, podría especificar el identificador de objetos (OID) de mayor nivel al cual el usuario debería tener acceso al final de la línea.

      A los efectos de este tutorial, ambas líneas serán como las siguientes:

      /etc/snmp/snmpd.conf

      ...
      rwuser bootstrap priv
      rwuser demo priv
      

      Una vez que termine de hacer estos cambios, guarde y cierre el archivo.

      Para implementar estos cambios, reinicie el servicio snmpd en el servidor agente:

      • sudo systemctl restart snmpd

      El demonio SNMP escuchará conexiones en el puerto :161. Configure UFW para permitir conexiones del servidor administrador a este puerto:

      • sudo ufw allow from manager_server_ip_address to any port 161

      Puede obtener más información sobre UFW en Cómo configurar un firewall con UFW en Ubuntu 18.04.

      Ahora que el servidor agente ya está configurado, podrá conectar el servidor agente del servidor administrador para verificar la conexión.

      Paso 4: Verificar la autenticación en el servidor agente

      En este paso, probará para asegurarse de que pueda establecer conexión con la cuenta de bootstrap en el servidor agente. No obstante, antes de esto, en este tutorial verá la estructura general del envío de un comando SNMP.

      Cuando use el conjunto de herramientas que se incluye en el paquete snmp (el conjunto de software net-snmp), existen algunos patrones en la manera que debe invocar los comandos. Lo primero que debe hacer es autenticarse con el demonio SNMP con el que desea comunicarse. Esto generalmente implica proporcionar cierta información. La más común es la siguiente:

      • -v: este indicador se usa para especificar la versión del protocolo SNMP que le gustaría usar. En este tutorial, se usará la versión 3.
      • -c: este indicador se usará si usa cadenas de comunidad tipo SNMP v1 o v2 para la autenticación. Debido a que usará autenticación basada en el usuario tipo v3, no necesita hacerlo.
      • -u: este parámetro se usa para especificar el nombre de usuario con el cual se desea autenticarse. Para leer o modificar algo con SNMP, debe autenticarlo con un nombre de usuario conocido.
      • -l: esto se usa para especificar el nivel de seguridad con el que establecerá conexión. Los posibles valores son noAuthNoPriv sin autenticación ni cifrado, authNoPriv para la autenticación sin cifrado y authPriv para la autenticación y el cifrado. Debe configurar el nombre de usuario que usará para operar en el nivel de seguridad que especifique; de lo contrario, no se realizará la autenticación.
      • - a: este parámetro se usa para especificar el protocolo de autenticación que se usa. Los posibles valores son MD5 o SHA. Esto debe coincidir con la información que se especificó cuando se creó el usuario.
      • - x: este parámetro se usa para especificar el protocolo de cifrado que se usa. Los posibles valores son DES o AES. Esto debe coincidir con la información que se especificó cuando se creó el usuario. Esto es necesario siempre que figura priv después de la especificación de privilegios del usuario, lo cual hace obligatorio el cifrado.
      • -A: esto se usa para indicar la contraseña de autenticación que se especificó cuando se creó el usuario.
      • -X: esta es la frase de contraseña de cifrado que se especificó cuando se creó el usuario. Si no se especificó ninguno, pero se indicó un algoritmo de cifrado, se usará la contraseña de autenticación. Esto se necesita cuando se indica el parámetro -x o cuando después de la especificación de privilegio de un usuario se incluye priv, que exige cifrado.

      Con esta información, puede crear sus comandos. Según la manera en la que configuró el usuario bootstrap, los comandos que se usarán con esa cuenta tendrán el siguiente aspecto:

      snmp_command -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password remote_host snmp_sub_command_or_options
      

      Desde el servidor administrador, pruebe para asegurarse de que esté disponible su cuenta de bootstrap. Escriba lo siguiente para mostrar la información de sistema del servidor agente:

      • snmpget -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address 1.3.6.1.2.1.1.1.0

      La cadena 1.3.6.1.2.1.1.1.0 es el OID que permite ver la información del sistema. Mostrará el resultado uname -a en el sistema remoto.

      Esto generará el siguiente resultado:

      Output

      SNMPv2-MIB::sysDescr.0 = STRING: Linux agent 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64

      Ahora que verificó que puede autenticarse en el servidor cuando ejecuta el demonio SNMP, podrá seguir creando su cuenta de usuario normal.

      Paso 5: Configurar la cuenta de usuario normal

      Aunque especificó los privilegios de la cuenta de usuario demo en el archivo snmpd.conf, aún no creó este usuario en realidad. En este paso, usará el usuario bootstrap como una plantilla para su nuevo usuario. Para ello, usará la herramienta snmpusm, que se utiliza para la administración de usuarios.

      En el servidor administrador, puede crear el usuario desde la plantilla con la herramienta snmpusm y la siguiente sintaxis general:

      snmpusm authentication_info agent_server_ip_address create new_user existing_user
      

      Con lo que se conoce sobre los indicadores de autenticación que necesita para emplear, y aprovechando la cuenta de usuario que ya tiene (bootstrap), puede crear un usuario que tenga los privilegios de usuario que ya definió (prueba).

      El comando tendrá el siguiente aspecto:

      • snmpusm -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address create demo bootstrap

      Recibirá el siguiente mensaje:

      Output

      User successfully created.

      Ahora tiene un usuario plenamente activo llamado demo en su servidor agente. No obstante, todavía usa la misma información de autenticación que la cuenta bootstrap. Para aumentar la seguridad, puede cambiar la contraseña por otra. Esta vez, usará la cuenta demo para la autenticación. Recuerde que las contraseñas deben tener ocho caracteres como mínimo:

      • snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password

      Como respuesta, recibirá el siguiente mensaje:

      Output

      SNMPv3 Key(s) successfully changed.

      Puede probar sus credenciales y contraseña nuevas preguntando al servidor agente por la cantidad de tiempo que hace que el servicio SNMP se encuentra en ejecución. Usará el comando snmpget para obtener un solo valor del servidor agente.

      Esta vez, aproveche las definiciones MIB adicionales que descargó para solicitar el valor por nombre en lugar del ID numérico del OID.

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Obtendrá un valor que representa la última vez que se reinició el demonio SNMP remoto:

      Output

      DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (53309) 0:08:53.09

      Ahora dispone de una cuenta de usuario en funcionamiento llamada demo. En el siguiente paso, simplificará el trabajo con los comandos SNMP si configura el cliente.

      Paso 6: Crear un archivo de configuración de cliente

      Es probable que ya haya notado a esta altura que los datos de autenticación de todos los comandos SNMP son bastante estáticos con cada respuesta. En vez de escribirlos cada vez, puede crear un archivo de configuración de cliente que contenga las credenciales con las que establece conexión.

      El archivo de configuración de cliente se puede colocar en dos lugares distintos según la amplitud con la que quiera compartirlo.

      Si desea compartir sus credenciales de inicio de sesión con algún usuario válido en su máquina de administración, puede disponer sus datos de configuración en el archivo snmp.conf global del servidor administrador. Será necesario que abra ese archivo con privilegios sudo:

      • sudo nano /etc/snmp/snmp.conf

      No obstante, si desea definir las credenciales de autenticación solo para su usuario, puede crear un directorio .snmp oculto en el directorio principal de su usuario en el servidor administrador y crear el archivo allí:

      • mkdir ~/.snmp
      • nano ~/.snmp/snmp.conf

      Independientemente de su decisión acerca de dónde ubicar su configuración, el contenido será el mismo.

      Los comandos que usará para la autenticación se encuentran en la siguiente tabla. En la columna derecha, puede ver los nombres de directivas que se utilizan para establecer esos datos de configuración dentro del archivo snmp.conf:

      Indicador de comandos Descripción Directiva snmp.conf traducida
      -u username Nombre de usuario de SNMPv3 para la autenticación. defSecurityName username
      -l authPriv Nivel de seguridad para la autenticación. defSecurityLevel authPriv
      -a MD5 El protocolo de autenticación que se usará. defAuthType MD5
      -x DES Protocolo de privacidad (cifrado) que se usará. defPrivType DES
      -Una passphrase Contraseña de autenticación para el nombre de usuario proporcionado. defAuthPassphrase passphrase
      -X passphrase Frase de contraseña de privacidad del nombre de usuario proporcionado. defPrivPassphrase passphrase

      Con esta información, puede crear un archivo snmp.conf correspondiente. A los efectos de esta guía, tendrá el siguiente aspecto:

      snmp.conf

      defSecurityName demo
      defSecurityLevel authPriv
      defAuthType MD5
      defPrivType DES
      defAuthPassphrase new_password
      defPrivPassphrase new_password
      

      Cuando termine, guarde y cierre el archivo.

      Ahora, podrá emitir comandos sin proporcionar los datos de autenticación. Solo necesitará el comando SNMP, el host y los argumentos del comando.

      En vez de escribir lo siguiente:

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Puede escribir esto:

      • snmpget agent_server_ip_address sysUpTime.0

      Como puede ver, esto reduce significativamente la cantidad de información que debe proporcionar en cada solicitud. A continuación, eliminará la cuenta bootstrap para reforzar la seguridad de la red.

      Paso 7: Eliminar la cuenta bootstrap

      Ahora que configuró su cuenta normal de manera correcta, podrá eliminar la cuenta bootstrap insegura.

      En el servidor agente, abra el archivo /etc/snmp/snmpd.conf de nuevo con privilegios sudo.

      • sudo nano /etc/snmp/snmpd.conf

      Encuentre y excluya (o elimine) las dos líneas que agregó anteriormente, que hacen referencia al usuario bootstrap:

      /etc/snmp/snmpd.conf

      ...
      #createUser bootstrap MD5 temp_password DES
      #rwuser bootstrap priv
      ...
      

      Guarde y cierre el archivo.

      Ahora, reinicie el demonio SNMP:

      • sudo systemctl restart snmpd

      Esto cumplirá con la recomendación de que no haya directivas createUser en el archivo snmpd.conf normal. También eliminará privilegios de ese usuario temporal.

      Si desea eliminar por completo el usuario bootstrap de usmUserTable, puede hacerlo emitiendo este comando del servidor administrador:

      • snmpusm agent_server_ip_address delete bootstrap

      Recibirá la siguiente respuesta:

      Output

      User successfully deleted.

      Conclusión

      A esta altura, habrá definido completamente una configuración cliente-servidor que se puede comunicar de manera segura con el protocolo SNMP. Ahora podrá agregar demonios adicionales en otros hosts y configurar el acceso a la cuenta en toda la infraestructura.

      Si desea obtener más información, puede consultar nuestro tutorial Cómo usar el conjunto de herramientas Net-SNMP para administrar y supervisar servidores para conocer las herramientas SNMP, la forma de usarlas a fin de obtener valores uno por uno o en conjunto y la forma de modificar datos.



      Source link

      Comment installer et configurer un démon et un client SNMP sur Ubuntu 18.04


      L’auteur a choisi Internet Archive pour recevoir un don dans le cadre du programme Write for DOnations.

      Introduction

      Le rôle d’un administrateur système consiste en grande partie à recueillir des informations précises sur les serveurs et l’infrastructure. Il existe un certain nombre d’outils et d’options pour la collecte et le traitement de ce type d’informations. Beaucoup d’entre eux sont construits sur la base d’une technologie appelée SNMP.

      SNMP est l’abréviation de simple network management protocol (protocole simple de gestion de réseau). C’est un moyen pour les serveurs de partager des informations sur leur état actuel, et aussi un canal par lequel un administrateur peut modifier des valeurs prédéfinies. Si le protocole lui-même est léger, la structure des programmes qui implémentent SNMP peut rapidement gagner en complexité. Pour plus d’informations sur les bases du protocole SNMP, consultez notre article Introduction au SNMP.

      Dans ce guide, vous allez configurer les outils pour communiquer en utilisant le SNMP. Vous utiliserez deux serveurs Ubuntu 18.04 pour la démonstration. L’un contiendra le manager SNMP, qui parle à l’agent pour implémenter des dispositifs réseau. Il sera appelé manager server. L’autre serveur contiendra l’agent SNMP, qui agira sur les ordres du manager server. Il sera appelé agent server. Vous pouvez également choisir d’installer l’agent sur la machine manager, mais en les gardant séparés, il est plus facile de démontrer les fonctionnalités fournies par chaque composant.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin de :

      Étape 1 – Installation du démon et des utilitaires SNMP

      Vous pouvez commencer à explorer comment le SNMP peut être implémenté sur un système en installant le démon et les outils sur vos serveurs Ubuntu.

      Depuis votre machine locale, connectez-vous au manager server en tant qu’utilisateur non root :

      • ssh your_username@manager_server_ip_address

      Mettez à jour l’index des paquets pour le gestionnaire de paquets APT :

      Ensuite, installez le logiciel SNMP :

      • sudo apt install snmp snmp-mibs-downloader

      Le paquet snmp fournit un ensemble d’outils en ligne de commande pour émettre des requêtes SNMP aux agents. Le paquet snmp-mibs-downloader aidera à installer et à gérer les fichiers MIB (Management Information Base), qui gardent la trace des objets du réseau.

      Ensuite, ouvrez un nouveau terminal sur votre machine locale et connectez-vous à l’agent server :

      • ssh your_username@agent_server_ip_address

      Sur l’agent server, mettez à jour l’index des paquets :

      Ensuite, installez le démon SNMP :

      Notez que vous n’avez pas besoin du paquet snmp-mibs-downloader, puisque l’agent server ne gérera pas de fichiers MIB.

      Maintenant que vous avez installé ces composants, vous allez configurer votre manager server.

      Étape 2 – Configuration du manager server SNMP

      Comme mentionné précédemment, la majeure partie du travail se fait dans l’agent server, de sorte que votre configuration sur le manager server sera plus simple. Il vous suffit de modifier un fichier pour vous assurer que les outils SNMP peuvent utiliser les données MIB supplémentaires que vous avez installées.

      Sur votre manager server, ouvrez le fichier /etc/snmp/snmp.conf dans votre éditeur de texte avec des privilèges sudo. Ce tutoriel utilisera nano :

      • sudo nano /etc/snmp/snmp.conf

      Dans ce fichier, il y a quelques commentaires et une seule ligne non commentée. Pour permettre au manager d’importer les fichiers MIB, commentez la ligne mibs : :

      /etc/snmp/snmp.conf

      # As the snmp packages come without MIB files due to license reasons, loading
      # of MIBs is disabled by default. If you added the MIBs you can reenable
      # loading them by commenting out the following line.
      #mibs :
      

      Enregistrez et fermez snmp.conf en appuyant sur CTRL+X, suivi de Y, puis ENTER (ENTRÉE) si vous utilisez nano.

      Vous avez maintenant terminé la configuration du manager server, mais vous devrez encore utiliser ce serveur pour vous aider à configurer votre agent server, ce que vous ferez à l’étape suivante.

      Étape 3 – Configuration de l’agent server SNMP

      En tant que véritable système client-serveur, l’agent server ne dispose d’aucun des outils externes nécessaires pour effectuer sa propre configuration SNMP. Vous pouvez modifier certains fichiers de configuration pour effectuer quelques changements, mais la plupart des changements que vous devez effectuer se feront en vous connectant à votre agent server à partir de votre manager server.

      Dans ce tutoriel, vous utiliserez la version 3 du protocole SNMP. Contrairement à SNMPv1 et v2, dans SNMPv3 chaque message contient des paramètres de sécurité qui sont codés. Dans cette étape, vous allez configurer les règles d’authentification et de contrôle d’accès SNMPv3.

      Pour commencer, sur votre agent server, ouvrez le fichier de configuration du démon avec des privilèges sudo :

      • sudo nano /etc/snmp/snmpd.conf

      À l’intérieur, vous devrez effectuer quelques modifications. Elles seront principalement utilisées pour bootstrapper votre configuration afin que vous puissiez la gérer à partir de votre autre serveur.

      Tout d’abord, vous devez modifier la directive agentAdress. Actuellement, elle est réglée pour n’autoriser que les connexions provenant de l’ordinateur local. Vous devrez commenter la ligne actuelle, et décommenter la ligne en dessous, qui autorise toutes les connexions.

      /etc/snmp/snmpd.conf

      #  Listen for connections from the local system only
      #agentAddress  udp:127.0.0.1:161
      #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
      

      Remarque : étant donné qu’autoriser toutes les connexions n’est pas une bonne pratique en termes de sécurité, il est préférable de reverrouiller les connexions rapidement une fois le bootstrap terminé.

      Ensuite, vous insérerez temporairement une ligne createUser. Ces directives ne sont normalement pas conservées dans ce fichier ; vous allez les supprimer à nouveau dans un instant.

      L’utilisateur que vous créez sera appelé bootstrap et sera utilisé comme modèle pour créer votre premier utilisateur réel. Les paquets SNMP le font par un processus de clonage des propriétés de l’utilisateur.

      Lorsque vous définissez un nouvel utilisateur, vous devez spécifier le type d’authentification (MD5 ou SHA) et fournir une phrase de passe d’au moins huit caractères. Si vous prévoyez d’utiliser le cryptage pour le transfert, comme vous le ferez dans ce tutoriel, vous devez également préciser le protocole de confidentialité (DES ou AES) et, éventuellement, une phrase de passe de protocole de confidentialité. Si aucune phrase de passe de protocole de confidentialité n’est fournie, la phrase de passe d’authentification sera également utilisée pour le protocole de confidentialité.

      Ajoutez cette ligne createUser à la fin du fichier :

      /etc/snmp/snmpd.conf

      ...
      createUser bootstrap MD5 temp_password DES
      

      Maintenant que vous avez un nouvel utilisateur spécifié, vous pouvez configurer le niveau d’accès de cet utilisateur. Dans ce tutoriel, vous le configurerez pour votre utilisateur bootstrap, mais aussi pour le nouvel utilisateur que vous allez créer, appelé demo. Vous leur permettrez l’accès en lecture et en écriture en utilisant la directive rwuser (l’alternative est rouser pour l’accès en lecture seule).

      Vous imposerez également l’utilisation du cryptage en spécifiant priv après votre utilisateur. Si vous souhaitez restreindre l’utilisateur à une partie spécifique de la MIB, vous pouvez spécifier à la fin de la ligne l’identificateur de l’objet (OID) de plus haut niveau auquel l’utilisateur doit avoir accès.

      Pour les besoins de ce tutoriel, vos deux lignes seront les suivantes :

      /etc/snmp/snmpd.conf

      ...
      rwuser bootstrap priv
      rwuser demo priv
      

      Lorsque vous avez terminé d’effectuer ces modifications, enregistrez et fermez le fichier.

      Pour implémenter ces modifications, redémarrez le service snmpd sur votre agent server :

      • sudo systemctl restart snmpd

      Le démon SNMP écoutera les connexions sur le port :161. Configurez UFW pour autoriser les connexions depuis le manager server vers ce port :

      • sudo ufw allow from manager_server_ip_address to any port 161

      Pour savoir plus sur UFW, consultez le tutoriel Comment configurer un pare-feu avec UFW sur Ubuntu 18.04.

      Maintenant que l’agent server est configuré, vous pouvez vous connecter à votre agent server depuis le manager server pour vérifier la connexion.

      Étape 4 – Vérification de l’authentification par l’agent server

      Dans cette étape, vous allez effectuer un test pour vous assurer que vous pouvez vous connecter à l’agent server avec votre compte bootstrap. Avant cela, cependant, ce tutoriel abordera un peu la structure générale de l’envoi d’une commande SNMP.

      Lorsque vous utilisez la suite d’outils incluse dans le paquet snmp (la suite logicielle net-snmp), la façon dont vous devez appeler les commandes est régie par quelques règles. La première chose à faire est de s’authentifier auprès du démon SNMP avec lequel vous souhaitez communiquer. Cela implique généralement de fournir quelques informations. Les plus courantes sont les suivantes :

      • -v : cet indicateur est utilisé pour spécifier la version du protocole SNMP que vous souhaitez utiliser. Ce tutoriel utilisera v3.
      • -c : cet indicateur est utilisé si vous utilisez des chaînes communautaires de type SNMP v1 ou v2 pour l’authentification. Comme vous utilisez une authentification basée sur l’utilisateur de type v3, vous n’avez pas besoin de cet indicateur.
      • -u : ce paramètre est utilisé pour spécifier le nom d’utilisateur avec lequel vous souhaitez vous identifier. Pour lire ou modifier quoi que ce soit en utilisant le SNMP, vous devez vous authentifier avec un nom d’utilisateur connu.
      • -l : ceci est utilisé pour spécifier le niveau de sécurité avec lequel vous vous connectez. Les valeurs possibles sont noAuthNoPriv pour l’absence d’authentification et de cryptage, authNoPriv pour l’authentification mais pas de cryptage, et authPriv pour l’authentification et le cryptage. Le nom d’utilisateur que vous utilisez doit être configuré pour fonctionner au niveau de sécurité que vous spécifiez, sinon l’authentification ne réussira pas.
      • -a : ce paramètre est utilisé pour spécifier le protocole d’authentification qui est utilisé. Les valeurs possibles sont MD5 ou SHA. Cela doit correspondre aux informations qui ont été spécifiées lorsque l’utilisateur a été créé.
      • -x : ce paramètre permet de spécifier le protocole de cryptage qui est utilisé. Les valeurs possibles sont DES ou AES. Cela doit correspondre aux informations qui ont été spécifiées lorsque l’utilisateur a été créé. Ce paramètre est nécessaire chaque fois que priv est indiqué après la spécification de privilège de l’utilisateur, rendant le cryptage obligatoire.
      • -A : ceci est utilisé pour donner la phrase de passe d’authentification qui a été spécifiée lors de la création de l’utilisateur.
      • -X : il s’agit de la phrase de passe de cryptage qui a été spécifiée lors de la création de l’utilisateur. Si aucune n’a été spécifiée mais qu’un algorithme de cryptage a été donné, la phrase de passe d’authentification sera utilisée. Ceci est nécessaire lorsque le paramètre -x est donné ou lorsque la spécification de privilège d’un utilisateur est suivie d’un priv, nécessitant un cryptage.

      À l’aide de ces informations, vous pouvez construire vos commandes. Étant donné la configuration de votre utilisateur bootstrap, les commandes que vous utiliserez avec ce compte ressembleront à ça :

      snmp_command -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password remote_host snmp_sub_command_or_options
      

      À partir de votre manager server, effectuez un test pour vous assurer que votre compte bootstrap est disponible. Tapez ce qui suit pour afficher les informations système relatives à l’agent server :

      • snmpget -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address 1.3.6.1.2.1.1.1.0

      La chaîne 1.3.6.1.2.1.1.1.0 est l’OID qui est responsable de l’affichage des informations du système. Elle renverra la sortie de uname -a sur le système à distance.

      Cela donnera le résultat suivant :

      Output

      SNMPv2-MIB::sysDescr.0 = STRING: Linux agent 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64

      Maintenant que vous avez vérifié que vous pouvez vous authentifier auprès du serveur qui exécute le démon SNMP, vous pouvez créer votre compte utilisateur ordinaire.

      Étape 5 – Configuration du compte utilisateur ordinaire

      Bien que vous ayez spécifié les privilèges du compte utilisateur demo dans le fichier snmpd.conf, vous n’avez pas encore créé cet utilisateur. Dans cette étape, vous allez utiliser l’utilisateur bootstrap comme modèle pour votre nouvel utilisateur. Pour ce faire, vous utiliserez l’outil snmpusm, qui sert à la gestion des utilisateurs.

      Sur le manager server, vous pouvez créer l’utilisateur à partir du modèle en utilisant l’outil snmpusm et la syntaxe générale suivante :

      snmpusm authentication_info agent_server_ip_address create new_user existing_user
      

      En utilisant ce que vous savez sur les indicateurs d’authentification que vous devez passer, et en exploitant le compte d’utilisateur que vous avez déjà (bootstrap), vous pouvez créer un utilisateur qui correspond aux privilèges d’utilisateur que vous avez déjà définis (demo).

      La commande ressemblera à ceci :

      • snmpusm -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address create demo bootstrap

      Vous recevrez le message suivant :

      Output

      User successfully created.

      Vous disposez maintenant d’un utilisateur pleinement fonctionnel appelé demo sur votre agent server. Toutefois, il utilise toujours les mêmes informations d’authentification que le compte bootstrap. Pour augmenter la sécurité, vous pouvez modifier le mot de passe. Cette fois, vous utiliserez le compte demo pour vous authentifier. N’oubliez pas que les mots de passe doivent contenir au moins huit caractères :

      • snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password

      Vous recevrez le message suivant :

      Output

      SNMPv3 Key(s) successfully changed.

      Vous pouvez tester vos nouveaux identifiants et mot de passe en demandant à l’agent server depuis combien de temps le service SNMP fonctionne. Vous utiliserez la commande snmpget pour obtenir une seule valeur depuis l’agent server.

      Cette fois, profitez des définitions MIB supplémentaires que vous avez téléchargées pour demander la valeur par nom au lieu de l’identifiant numérique OID.

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Vous récupérerez une valeur qui représente la dernière fois que le démon SNMP distant a été redémarré :

      Output

      DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (53309) 0:08:53.09

      Vous disposez maintenant d’un compte utilisateur qui fonctionne nommé demo. Dans l’étape suivante, vous allez simplifier le travail avec les commandes SNMP en configurant le client.

      Étape 6 – Création d’un fichier de configuration client

      Vous avez probablement remarqué à ce stade que les détails d’authentification pour toutes vos commandes SNMP seront assez statiques à chaque requête. Au lieu de les saisir à chaque fois, vous pouvez créer un fichier de configuration côté client qui contiendra les informations d’identification avec lesquelles vous vous connectez.

      Le fichier de configuration client peut être placé à deux endroits différents en fonction de la diffusion que vous souhaitez lui donner.

      Si vous souhaitez partager vos identifiants de connexion avec tout utilisateur valide sur votre machine de gestion, vous pouvez placer vos détails de configuration dans le fichier global snmp.conf sur le manager server. Vous devez ouvrir ce fichier avec les privilèges sudo :

      • sudo nano /etc/snmp/snmp.conf

      Toutefois, si vous souhaitez définir les données d’authentification pour votre seul utilisateur, vous pouvez créer un répertoire .snmp caché dans le répertoire de base de votre utilisateur sur le manager server, et y créer le fichier :

      • mkdir ~/.snmp
      • nano ~/.snmp/snmp.conf

      Quelle que soit votre décision quant à l’emplacement de votre configuration, le contenu sera le même.

      Les commandes que vous utiliserez pour vous authentifier figurent dans le tableau suivant. Dans la colonne de droite, vous pouvez voir les noms des directives utilisées pour définir les informations de configuration dans le fichier snmp.conf :

      Indicateur de commande Description Directive snmp.conf traduite
      -u username Le nom d’utilisateur SNMPv3 avec lequel vous devez vous identifier. defSecurityName username
      -l authPriv Le niveau de sécurité pour vous authentifier. defSecurityLevel authPriv
      -a MD5 Le protocole d’authentification à utiliser. defAuthType MD5
      -x DES Le protocole de confidentialité (cryptage) à utiliser. defPrivType DES
      -A passphrase La phrase de passe d’authentification pour le nom d’utilisateur fourni. defAuthPassphrase passphrase
      -X passphrase La phrase de passe de confidentialité pour le nom d’utilisateur fourni. defPrivPassphrase passphrase

      En utilisant ces informations, vous pouvez construire un fichier snmp.conf approprié. Pour ce guide, il ressemblera à ceci :

      snmp.conf

      defSecurityName demo
      defSecurityLevel authPriv
      defAuthType MD5
      defPrivType DES
      defAuthPassphrase new_password
      defPrivPassphrase new_password
      

      Lorsque vous avez terminé, enregistrez et fermez le fichier.

      Maintenant, vous pouvez passer des commandes sans fournir les informations d’authentification. Vous n’aurez besoin que de la commande SNMP, de l’hôte et des arguments de commande.

      Au lieu de saisir :

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Vous pouvez saisir :

      • snmpget agent_server_ip_address sysUpTime.0

      Comme vous pouvez le constater, cela réduit considérablement la quantité d’informations que vous devez fournir dans chaque demande. Ensuite, vous supprimerez le compte bootstrap pour renforcer la sécurité du réseau.

      Étape 7 – Suppression du compte bootstrap

      Maintenant que votre compte ordinaire est correctement configuré, vous pouvez supprimer le compte bootstrap non sécurisé.

      Sur votre agent server, ouvrez à nouveau le fichier /etc/snmp/snmpd.conf avec des privilèges sudo.

      • sudo nano /etc/snmp/snmpd.conf

      Trouvez et commentez (ou supprimez) les deux lignes que vous avez ajoutées précédemment et qui font référence à l’utilisateur bootstrap:

      /etc/snmp/snmpd.conf

      ...
      #createUser bootstrap MD5 temp_password DES
      #rwuser bootstrap priv
      ...
      

      Enregistrez et fermez le fichier.

      Maintenant, redémarrez le démon SNMP :

      • sudo systemctl restart snmpd

      Cela permettra de respecter la recommandation de ne pas avoir de directives createUser dans le fichier snmpd.conf normal. Cela supprimera également les privilèges de cet utilisateur temporaire.

      Si vous souhaitez supprimer complètement l’utilisateur bootstrap de la usmUserTable, vous pouvez le faire en émettant cette commande depuis le manager server :

      • snmpusm agent_server_ip_address delete bootstrap

      Vous recevrez la réponse suivante :

      Output

      User successfully deleted.

      Conclusion

      À ce stade, vous disposez d’une installation client-serveur entièrement configurée qui peut communiquer de manière sécurisée en utilisant le protocole SNMP. Vous pouvez désormais ajouter des démons supplémentaires sur d’autres hôtes et configurer l’accès aux comptes sur l’ensemble de votre infrastructure.

      Pour en savoir plus, vous pouvez utiliser notre tutoriel Comment utiliser la suite d’outils Net-SNMP pour gérer et surveiller les serveurs : vous vous familiariserez avec les outils SNMP et apprendrez à les utiliser pour récupérer des valeurs une par une ou par lot, et à modifier les données.



      Source link

      Установка и настройка демона и клиента SNMP в Ubuntu 18.04


      Автор выбрал Internet Archive для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Большую часть рабочего времени системный администратор посвящает сбору точной информации о ваших серверах и инфраструктуре. Существует ряд инструментов и опций для сбора и обработки данных такого типа. Многие из них опираются на технологию, которая называется SNMP.

      SNMP — это простой протокол сетевого управления (simple network management protocol). Это протокол, который серверы используют для обмена информацией о своем текущем состоянии и который также используется в качестве канала, через который администратор может изменять предварительно установленные значения. Хотя сам протокол очень легкий, структура программ, реализующих SNMP, может очень быстро приобретать большую сложность. Дополнительную информацию об основах протокола SNMP см. в нашей статье Знакомство с SNMP.

      С помощью этого руководства вы сможете настроить инструменты для коммуникации, использующие SNMP. Вы будете использовать два сервера Ubuntu 18.04 в демонстрационных целях. Один сервер будет содержать менеджер SNMP, который будет взаимодействовать с агентом для реализации сетевых устройств. Он будет называться сервером менеджера. На другом сервере будет размещаться агент SNMP, который будет выполнять указания, получаемые от менеджера сервера. Он будет называться сервером агента. Вы можете установить агента на сервере менеджера, но рекомендуется разделять их, что упрощает процесс демонстрации того, какой функционал предоставляет каждый компонент.

      Предварительные требования

      Для данного обучающего руководства вам потребуется следующее:

      Шаг 1 — Установка демона и утилит SNMP

      Вы можете начать изучение того, как SNMP можно реализовать в системе, установив демон и инструменты на ваши сервера Ubuntu.

      Из вашего локального компьютера выполните вход на сервер менеджера с помощью вашего пользователя без прав root:

      • ssh your_username@manager_server_ip_address

      Обновите индекс пакетов для менеджера пакетов APT:

      Затем установите программное обеспечение SNMP:

      • sudo apt install snmp snmp-mibs-downloader

      Пакет snmp предоставляет набор инструментов командной строки для отправки запросов SNMP агентам. Пакет snmp-mibs-downloader поможет установить файлы информационной базы управления (MIB), которая отслеживает сетевые объекты, и управлять ими.

      Затем откройте новый терминал на вашем локальном компьютере и выполните вход на сервер агента:

      • ssh your_username@agent_server_ip_address

      На сервере агента обновите индекс пакетов:

      Затем установите демон SNMP.

      Обратите внимание, что вам не нужен пакет snmp-mibs-downloader, так как сервер агента не будет управлять файлами MIB.

      Теперь, когда вы установили эти компоненты, вы сможете перейти к настройке вашего сервера менеджера.

      Шаг 2 — Настройка сервера менеджера SNMP

      Как упоминалось ранее, большая часть работы выполняется на сервере агента, поэтому ваша конфигурация сервера менеджера будет задействована в меньшей мере. Вам нужно изменить один файл, чтобы гарантировать, что инструменты SNMP смогут использовать дополнительные данные MIB, установленные вами.

      На вашем сервере менеджера откройте файл /etc/snmp/snmp.conf в текстовом редакторе, используя привилегии sudo. В этом обучающем руководстве мы будем использовать nano:

      • sudo nano /etc/snmp/snmp.conf

      В этом файле есть несколько комментариев и одна незакомментированная строка. Чтобы позволить менеджеру импортировать файлы MIB, закомментируйте строку mibs ::

      /etc/snmp/snmp.conf

      # As the snmp packages come without MIB files due to license reasons, loading
      # of MIBs is disabled by default. If you added the MIBs you can reenable
      # loading them by commenting out the following line.
      #mibs :
      

      Сохраните и закройте snmp.conf, нажав CTRL+X, Y, а затем нажмите ENTER, если вы используете nano.

      Вы завершили настройку сервера менеджера, но вам нужно будет использовать этот сервер при настройке вашего сервера агента, которую вы выполните на следующем шаге.

      Шаг 3 — Настройка сервера агента SNMP

      Как элемент настоящей клиент-серверной системы, агент сервер не имеет никаких внешних инструментов, необходимых для собственной настройки SNMP. Вы можете изменить некоторые файлы конфигурации для внесения изменений, но большинство необходимых изменений будут выполнены при подключении к вашему серверу агента из вашего сервера менеджера.

      В этом обучающем руководстве вы будете использовать версию 3 протокола SNMP. В отличие от версии 1 и 2 протокола SNMP, в версии 3 каждое сообщение содержит параметры безопасности в зашифрованном виде. На этом шаге вы выполните настройку аутентификации и правил контроля доступа SNMPv3.

      Для начала откройте на вашем сервере агента файл конфигурации демона с привилегиями sudo:

      • sudo nano /etc/snmp/snmpd.conf

      Внутри этого файла вам нужно внести несколько изменений. Они будут использоваться главным образом для начальной загрузки вашей конфигурации, чтобы вы могли управлять ей из другого сервера.

      Сначала вам нужно изменить директиву agentAddress. Согласно текущим настройкам, она разрешает только подключение из локального компьютера. Вам нужно будет закомментировать текущую строку и разкомментировать строку ниже, которая разрешает все подключения.

      /etc/snmp/snmpd.conf

      #  Listen for connections from the local system only
      #agentAddress  udp:127.0.0.1:161
      #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
      

      Примечание. Поскольку разрешение всех подключений, как в этом случае, не является оптимальной практикой, рекомендуется вернуть исходные настройки обратно сразу же после завершения начальной загрузки.

      Далее вы выполните временную вставку строки createUser. Эти директивы обычно не хранятся в этом файле; поэтому вы должны будете удалить их снова через какое-то время.

      Созданный вами пользователь с именем bootstrap будет использоваться в качестве шаблона, с помощью которого вы создадите вашего первого реального пользователя. Пакет SNMP делает это в процессе клонирования свойств пользователя.

      При определении нового пользователя необходимо указать тип аутентификации (MD5 или SHA), а также предоставить фразу-пароль, которая должна быть длиной не менее восьми символов. Если вы планируете использовать шифрование при передаче, как в данном руководстве, вы должны указать протокол конфиденциальности (DES или AES) и по желанию фразу-пароль протокола конфиденциальности. Если фраза-пароль протокола конфиденциальности не будет предоставлена, фраза-пароль аутентификации также будет использоваться для протокола конфиденциальности.

      Добавьте строку createUser в конце файла:

      /etc/snmp/snmpd.conf

      ...
      createUser bootstrap MD5 temp_password DES
      

      Теперь, когда у вас есть новый пользователь, вы можете установить уровень доступа для данного пользователя. В этом обучающем руководстве вы выполните настройку вашего пользователя bootstrap, а также нового пользователя с именем demo, которого вы создадите. Вы предоставите права на чтение и запись с помощью директивы rwuser (альтернативой является rouser для предоставления исключительно права на чтение).

      Также вы примените использование шифрования, добавив priv после вашего пользователя. Если вы хотите ограничить пользователя конкретной частью MIB, вы можете указать идентификатор объекта (OID) самого высокого уровня, к которому будет иметь доступ пользователь, в конце строки.

      В рамках данного обучающего руководства обе строки будут выглядеть следующим образом:

      /etc/snmp/snmpd.conf

      ...
      rwuser bootstrap priv
      rwuser demo priv
      

      Когда вы закончите внесение изменений, сохраните и закройте файл.

      Для вступления этих изменений в силу, перезапустите службу snmpd на вашем сервере агента:

      • sudo systemctl restart snmpd

      Демон SNMP будет прослушивать подключения к порту :161. Настройте UFW для разрешения подключений с сервера менеджера к этому порту:

      • sudo ufw allow from manager_server_ip_address to any port 161

      Дополнительную информацию о UFW можно получить в статье Настройка брандмауэра с UFW в Ubuntu 18.04.

      Теперь, когда сервер агента настроен, вы можете подключиться к вашему серверу агента из сервера менеджера для проверки подключения.

      Шаг 4 — Проверка аутентификации для сервера агента

      На этом шаге вы выполните тест, чтобы убедиться, что вы можете подключиться к серверу агента с помощью учетной записи bootstrap. Однако перед этим в этом обучающем руководстве мы кратко расскажем об общей структуре отправки команды SNMP.

      При использовании набора инструментов из пакета snmp (программный набор net-snmp​​) существует несколько паттернов, которые вы должны использовать при вызове команд. В первую очередь необходимо выполнить аутентификацию с помощью демона SNMP, с которым вы хотите взаимодействовать. Обычно это подразумевает предоставление определенной информации. Как правило, это следующая информация:

      • -v: этот флаг используется для указания версии протокола SNMP, которую вы хотите использовать. В этом обучающем руководстве мы будем использовать версию 3.
      • -c: этот флаг используется, если вы работаете со строками доступа для аутентификации в стиле, используемом в версиях 1 и 2 протокола SNMP. Поскольку вы используете аутентификацию с помощью пользователя в стиле версии 3, вам не нужно использовать этот флаг.
      • -u: этот параметр используется для указания имени пользователя, которого вы будете использовать для аутентификации. Для чтения или изменения с помощью SNMP необходимо выполнять аутентификацию с помощью известного имени пользователя.
      • -l: этот флаг используется для определения уровня безопасности, который вы используете при подключении. Возможные значения — noAuthNoPriv при отсутствии аутентификации и шифрования, authNoPriv — при наличии аутентификации, но без шифрования, и authPriv — при использовании аутентификации и шифрования. Имя пользователя, которое вы используете, необходимо настроить в соответствии с уровнем безопасности, который вы указываете, либо аутентификация не будет выполнена.
      • -a: этот параметр используется для указания протокола аутентификации, который используется. Возможные значения — MD5 или SHA. Его значение должно соответствовать информации, которая была указана при создании пользователя.
      • -x: этот параметр используется для указания протокола шифрования, который используется. Возможные значения — DES или AES. Его значение должно соответствовать информации, которая была указана при создании пользователя. Это необходимо, если после привилегий пользователя идет priv, который делает шифрование обязательным.
      • -A: данный флаг используется для предоставления фразы-пароля аутентификации, которая была указана при создании пользователя.
      • -X: эта фраза-пароль шифрования, которая была указана при создании пользователя. Если ничего не было указано, но алгоритм шифрования был предоставлен, будет использоваться фраза-пароль аутентификации. Это обязательно, если указан параметр -x, либо если после привилегий пользователя идет priv, что говорит о необходимости шифрования.

      Используя эту информацию, вы можете создать ваши команды. С учетом того, как вы настроили вашего пользователя bootstrap, команды, которые вы будете использовать с этой учетной записью, будут выглядеть следующим образом:

      snmp_command -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password remote_host snmp_sub_command_or_options
      

      С помощью вашего сервера менеджера выполните тест, чтобы убедиться, что ваша учетная запись bootstrap доступна. Введите следующую информацию, чтобы вывести на экран данные о системе для сервера агента:

      • snmpget -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address 1.3.6.1.2.1.1.1.0

      Строка 1.3.6.1.2.1.1.1.0 — это OID, который отвечает за отображение информации о системе. Он будет возвращать вывод uname -a на удаленной системе.

      Результат будет выглядеть следующим образом:

      Output

      SNMPv2-MIB::sysDescr.0 = STRING: Linux agent 4.15.0-66-generic #75-Ubuntu SMP Tue Oct 1 05:24:09 UTC 2019 x86_64

      Теперь, когда вы убедились, что можете выполнять аутентификацию для сервера с запущенным демоном SNMP, вы можете перейти к созданию стандартной учетной записи пользователя.

      Шаг 5 — Настройка стандартной учетной записи пользователя

      Хотя вы указали привилегии для учетной записи demo в файле snmpd.conf, на самом деле вы еще не создали этого пользователя. На этом шаге вы будете использовать пользователя bootstrap в качестве шаблона для вашего нового пользователя. Вам потребуется инструмент snmpusm, который используется для управления пользователями.

      На сервере менеджера вы можете создать пользователя из шаблона с помощью инструмента snmpusm и следующего общего синтаксиса:

      snmpusm authentication_info agent_server_ip_address create new_user existing_user
      

      Используя то, что вы узнали о флагах аутентификации, которые вы должны передавать, и учетную запись, которая у вас уже есть (bootstrap), вы можете создать пользователя, соответствующего привилегиям пользователя, которые вы уже определили (demo).

      Итоговая команда будет выглядеть следующим образом:

      • snmpusm -u bootstrap -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address create demo bootstrap

      Вы получите следующее сообщение:

      Output

      User successfully created.

      Теперь у вас есть полностью рабочий пользователь с именем demo на сервере агента. Однако он все еще использует ту же информацию для аутентификации, что и учетная запись bootstrap. Для повышения безопасности вы можете изменить пароль на новый. На этот раз вы будете использовать учетную запись demo для аутентификации. Не забывайте, что пароли должны быть не короче восьми символов:

      • snmpusm -u demo -l authPriv -a MD5 -x DES -A temp_password -X temp_password agent_server_ip_address passwd temp_password new_password

      Вы получите следующее сообщение:

      Output

      SNMPv3 Key(s) successfully changed.

      Вы можете проверить ваши новые учетные данные и пароль, запросив у сервера агента, как долго служба SNMP запущена. Вы будете использовать команду snmpget для получения одного значения от сервера агента.

      На этот раз воспользуйтесь дополнительными определениями MIB, которые вы загрузили, чтобы получить значение по имени, а не по числовому идентификатору OID.

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Вы получите значение, которое будет отображать последний момент перезапуска удаленного демона SNMP:

      Output

      DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (53309) 0:08:53.09

      Теперь у вас есть рабочая учетная запись с именем demo. На следующем шаге вы упростите работу с командами SNMP, настроив клиент.

      Шаг 6 — Создание файла конфигурации клиента

      Вы, вероятно, заметили к этому моменту, что данные аутентификации для всех ваших команд SNMP будут оставаться достаточно статичными для каждого запроса. Вместо того, чтобы вводить их каждый раз, вы можете создать файл конфигурации на стороне клиента, который будет содержать учетные данные, которые вы используете для подключения.

      Файл конфигурации клиента можно разместить в двух разных местах, в зависимости от того, насколько широкий доступ к нему вы хотите предоставить.

      Если вы хотите поделиться учетными данными с любым действительным пользователем на вашем компьютере управления, вы можете указать данные в глобальном файле snmp.conf​​​ на сервере менеджера. Вам потребуется открыть этот файл с привилегиями sudo:

      • sudo nano /etc/snmp/snmp.conf

      Если вы хотите определить учетные данные аутентификации для вашего пользователя отдельно, вы можете создать скрытую директорию .snmp в домашней директории вашего пользователя на сервере менеджера и добавить файл в эту директорию:

      • mkdir ~/.snmp
      • nano ~/.snmp/snmp.conf

      Независимо от вашего решения о том, где вы будете размещать конфигурацию, содержимое будет одним и тем же.

      Команды, которые вы будете использовать для аутентификации, находятся в следующей таблице. В правом столбце вы можете увидеть названия директив, которые используются для установки данных конфигурации в файле snmp.conf:

      Флаг команды Описание Директива snmp.conf
      -u username Имя пользователя SNMP3 для аутентификации. defSecurityName username
      -l authPriv Уровень безопасности для аутентификации. defSecurityLevel authPriv
      -a MD5 Протокол аутентификации для использования. defAuthType MD5
      -x DES Протокол конфиденциальности (шифрования) для использования. defPrivType DES
      -A passphrase Фраза-пароль аутентификации для предоставленного имени пользователя. defAuthPassphrase passphrase
      -X passphrase Фраза-пароль конфиденциальности из предоставленного имени пользователя. defPrivPassphrase passphrase

      Используя эту информацию, вы можете создать соответствующий файл snmp.conf. В рамках этого руководства он будет выглядеть следующим образом:

      snmp.conf

      defSecurityName demo
      defSecurityLevel authPriv
      defAuthType MD5
      defPrivType DES
      defAuthPassphrase new_password
      defPrivPassphrase new_password
      

      После завершения редактирования сохраните и закройте файл.

      Теперь вы можете использовать команды без предоставления данных для аутентификации. Вам потребуется только команда SNMP, хост и аргументы команды.

      Вместо того, чтобы вводить следующую команду:

      • snmpget -u demo -l authPriv -a MD5 -x DES -A new_password -X new_password agent_server_ip_address sysUpTime.0

      Вы можете ввести:

      • snmpget agent_server_ip_address sysUpTime.0

      Как вы можете видеть, это значительно снижает количество информации, необходимой для предоставления в каждом запросе. Далее вы выполните удаление учетной записи bootstrap для укрепления сетевой безопасности.

      Шаг 7 — Удаление учетной записи Bootstrap

      Теперь, когда ваша стандартная учетная запись настроена корректно, вы можете удалить небезопасную учетную запись bootstrap.

      На вашем сервере агента откройте файл /etc/snmp/snmpd.conf еще раз с привилегиями sudo.

      • sudo nano /etc/snmp/snmpd.conf

      Найдите и закомментируйте (или удалите) обе строки, которые вы ранее добавили для ссылки на пользователя bootstrap:

      /etc/snmp/snmpd.conf

      ...
      #createUser bootstrap MD5 temp_password DES
      #rwuser bootstrap priv
      ...
      

      Сохраните и закройте файл.

      Теперь перезапустите демон SNMP:

      • sudo systemctl restart snmpd

      Это позволит выполнить рекомендацию, согласно которой в файле snmpd.conf​​​ должны отсутствовать директивы createUser. Также это действие удалит привилегии из этого временного пользователя.

      Если вы хотите полностью удалить пользователя bootstrap из usmUserTable, вы можете сделать это, запустив следующую команду из сервера менеджера:

      • snmpusm agent_server_ip_address delete bootstrap

      Вы получите следующее сообщение:

      Output

      User successfully deleted.

      Заключение

      К настоящему моменту у вас есть готовая клиент-серверная установка, которая может безопасно передавать данные при помощи протокола SNMP. Теперь вы можете добавить дополнительные демоны на других хостах и настроить доступ к учетной записи для всей инфраструктуры.

      Для дальнейшего изучения вы можете использовать наше обучающее руководство Использование набора инструментов Net-SNMP для управления и мониторинга серверов, чтобы узнать больше об инструментах SNMP, о том, как использовать их для получения значений по отдельности или пакетом, а также о том, как изменять данные.



      Source link