Outils pour utilisateurs

Outils du site


doc:snmp

Le SNMP (SimpleNetManagementProtocol)

C'est un système de management et monitoring par le réseau pour des machines, switchs. Basé sur l'udp, il ne requiert que très peu de puissance de calcul.

C'est un système client-serveur : le serveur expose ses variables d'administration (et de monitoring), caractérisées par leur OID, au client, qui peut:
* récupérer la liste des variables;
* récupérer des valeurs (load, occupation disque…);
* modifier la valeur de certaines variables (typiquement de configuration).

Configuration du serveur

SNMPv1

Introduction

Les connexions avec le serveur ne sont pas sécurisées, il est possible de sniffer la connexion. L'authentification se fait avec l'IP source et la communauté.

Cette version est bien adaptée pour des données publiques.

Directives de configuration

Création d'un modèle de sécurité (paranoïaque ici) avec :
* la communauté (ici, public)
* les ip sources autorisées (ici, les ip de la classe 138.231.136.0/24 et 127.0.0.1).

#       sec.name  source           community
com2sec paranoid  138.231.136.0/24  public
com2sec paranoid  127.0.0.1         public

Création des groupes d'accès (ici le group MyROSystem en snmpv1 avec le modèle de sécurité paranoid) :

#               sec.model  sec.name
group MyROSystem v1        paranoid

Création des groupes d'autorisation (ici la view monitor qui permet les oid définis ci-dessous)

# load machine
view monitor included  .1.3.6.1.4.1.2021.10.1
# espace disques
view monitor included  .1.3.6.1.4.1.2021.9.1

Liaison groupe d'accès et groupes d'autorisation (ici le groupe MyROSystem aura accès aux oid définis dans les view monitor) :

#                context sec.model sec.level match  read   write  notif
access MyROSystem ""     any       noauth    exact  monitor none  none

Bilan

La communauté public aura accès aux oid permettant de monitorer l'espace disque et le load de la machine, cela depuis localhost ou des adresses en 138.231.136.*

SNMPv3

Introduction

SNMPv3 permet de sécuriser les échanges client-serveur.

L'authentification est sécurisée (cryptage MD5 ou SHA) et les communiquations peuvent être encodées en DES.

On utilisera seulement l'authentification avec SHA pour le crans. Les données n'étant pas confidentielles (ordre de restart fw…), de plus le snmp passe par le vlan adm qui n'est pas exposé aux adhérents.

Mise en place

Il faut tout d'abord créer un utilisateur dans la conf de SNMP :

rouser <username>
createUser <username> SHA <pass>

Ensuite, on peux supprimer la seconde ligne, l'utilisateur sera créé avec avec le pass donné.

Config des réponses snmp

Les différentes directives sont décrites dans la partie suivante.

Il peux y avoir plusieurs fois la même directive, il y a une numérotation implicite de celles-ci dans leur ordre d'apparition.

Les requêtes

On utilise la commande suivante (avec /etc/snmp.conf correctement écrit) :

snmpget <host> <oid>

On peux voir tous les 'sous-oid' à l'aide de :

snmpwalk <host> <oid de base>

Il y a une multitude d'OID, nous utiliseront les suivantes. La colonne de droite correspond aux directives à placer dans /etc/snmpd.conf :

Vérification des processus tournant sur une machine .1.3.6.1.4.1.2021.2.1.x x=prNames.y : nom du process n°y x=prCount.y : nombre de process n°y proc <nom du processus> ; le nom doit être le nom 'complet' vu par ps-auxw}.
Load de la machine *100 .1.3.6.1.4.1.2021.10.1.laLoadInt.x x=1 moyenne sur 1 secondex=2 moyenne sur 5 secondesx=3 moyenne sur 15 secondesAucune directive de configuration particulière
Exécution d'une commande .1.3.6.1.4.1.2021.8.1.xx=extNames.y : nom de la commande n°yx=extResult.y : exécution de la commande n°y, le code d'erreur est retourné exec <nom de la commande> <commande à excécuter avec ses arguments>
Comptage trafic d'une interface réseau interfaces.ifTable.ifEntry.xx=ifInOctets.y : nombre d'octets en entrée de l'interface n°yx=ifOutOctets.y : nombre d'octets en sortie de l'interface n°yx=ifInErrors.y : nombre d'erreurs en entrée de l'interface n°yx=ifOutErrors.y : nombre d'erreurs en sortie de l'interface n°yx=ifDescr.y : nom interface n°y Aucune directive de configuration particulière
Monitoring espace disque .1.3.6.1.4.1.2021.9.1.xx=dskPath.y : point de montage partition n°yx=dskAvail.y : espace libre partition n°y x=dskUsed.y : espace utilisé partition n°y <3>disk <point de montage>
doc/snmp.txt · Dernière modification: 2015/06/27 19:08 par chirac