LINUX:Serveur ou agent SNMP sous Linux

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour à SNMP


But

Pour nos applications futures, nous avons besoin d'installer le service SNMP sous Linux. Nous nous cantonnerons à la lecture des informations.


Installation

La première étape consiste à installer le paquet:

dnf install net-snmp

et éventuellement quelques outils:

dnf install net-snmp-utils


Configuration

Base

Le fichier de configuration principal se nomme "/etc/snmp/snmpd.conf".

Son contenu minimal est fort restreint. Il nous suffira. Nous aborderons la sécurité au point suivant.

Voici son contenu:


syslocation "Home"
syscontact "A. De Bast"
dontLogTCPWrappersConnects yes
smuxsocket  1.0.0.0

Description:

  • Les deux premières lignes donnent quelques informations sur le point de contact et la localisation.
  • La troisième sert à limiter la journalisation.
  • La dernière sert à mettre en erreur l'écoute sur le port TCP/199 SMUX qui ne nous sert pas et donc à supprimer un port d'écoute.


Sécurité versions v1 et v2c

Ce service est compatible pour la sécurité v1 et v2c.

Pour l'activer, il faut définir une communauté.

On ajoute donc au fichier "/etc/snmp/snmpd.conf":


rocommunity publicr 192.168.1.100

On se limite la lecture seule d'où l'option "rocommunity". Le nom de communauté est ici "publicr" à adapter selon votre choix. Le second paramètre facultatif permet de restreindre l'accès à la machine superviseur ayant l'adresse IP "192.168.1.100".


Sécurité version v3

Ce service est compatible pour la sécurité v3.

Pour l'activer, il faut créer un utilisateur en utilisant la commande de ligne "net-snmp-create-v3-user". Avant de l'exécuter, il faut que le service "snmpd.service" soit arrêté sinon vous aurez un message d'erreur.

Si on exécute cette commande telle quelle, diverses questions sont posées interactivement. Nous allons plutôt ajouter directement les arguments nécessaires:

net-snmp-create-v3-user -ro -A MotDEPasseUtilisateur -a MD5 -X MotDepasseCryptage -x AES usersnmp

Description des arguments:

  • "--ro" : accès en lecture seule
  • "usersnmp" : nom d'utilisateur; à adapter selon votre choix
  • "-A MotDEPasseUtilisateur" : mot de passe de l'utilisateur; à adapter selon votre choix
  • "-a MD5" : mode de cryptage du mot de passe
  • "-x AES" : type de cryptage du transfert d'informations
  • "-X MotDepasseCryptage" : mot de passe du cryptage; à adapter selon votre choix

Une ligne est ajoutée au fichier "/etc/snmp/snmpd.conf":


rouser usersnmp

Cette option a en premier le nom d'utilisateur donné plus haut.

On peut ajouter d'autres arguments.

Un est à noter. Il concerne le niveau de sécurité. Il est composé de deux parties:

  • En premier:
    • auth : le mot de passe de l'utilisateur est requis
    • noauth : le mot de passe de l'utilisateur n'est pas requis
  • En second:
    • priv : le mot de passe du cryptage est requis
    • nopriv : le mot de passe du cryptage n'est pas requis

On peut avoir les combinaisons suivantes: authpriv, noauthpriv, authnopriv et noauthnopriv Par défaut, c'est le niveau "authnopriv" qui est utilisé.


Une autre ligne est ajoutée au fichier "/var/lib/net-snmp/snmpd.conf" liée aux informations du nouvel utilisateur. Ce fichier ne doit jamais être édité!!!

Lors du démarrage suivant du service "snmpd.service", cette ligne sera modifiée; les mots de passe seront cryptés.


Remarque

Ces deux niveaux de sécurité v1, v2c et v3 peuvent coexister mais il est évident que le niveau v3 est plus sécurisé et donc il est préférable de désactiver les options concernant la communauté de v1 et v2c.


Activation et lancement du service

Le service à lancer est "snmpd.service". La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.

systemctl enable snmpd.service
systemctl start snmpd.service
systemctl restart snmpd.service


Configurer le mur de feu ou FireWall

Vous avez sûrement activé le FireWall du serveur. Dans l'exemple, on désire que seul la machine superviseur ayant l'adresse IP "192.168.1.100" aie accès. Le service Snmp écoute sur le port UDP 161.

On ajoute du côté serveur, la règle:


-A INPUT -p udp -m udp --dport 161 -s 192.168.1.100 -j ACCEPT

Du côté client, on peut ajouter la règle si vous effectuez un filtrage en sortie:


-A OUTPUT -p udp -m udp --dport 161 -d 192.168.1.100 -j ACCEPT

Ces règles sont à ajouter au fichier "/etc/sysconfig/iptables".






retour à SNMP