{% extends "base.html" %} {% block title %}Installer et sécuriser SNMP — Forge Centreon{% endblock %} {% block body %}

Installer et sécuriser SNMP

La plupart des packs du catalogue interrogent leurs équipements en SNMP. Cette page donne, par système, une configuration de départ qui fonctionne et qui ne laisse pas votre parc ouvert au premier venu.

Deux règles avant de commencer

SNMP v1 et v2c transportent la communauté en clair sur le réseau : quiconque écoute peut la lire et interroger l'équipement. Préférez la version 3 partout où elle est disponible.

Si vous restez en v2c — souvent le cas sur du matériel ancien — restreignez au moins l'accès à l'adresse du collecteur et n'autorisez que la lecture.

Debian et Ubuntu

apt install snmpd

Remplacez le contenu de /etc/snmp/snmpd.conf par ceci, en v3 :

# N'ecoute que sur l'interface d'administration, jamais sur toutes
agentaddress udp:10.0.4.20:161

# Ce que le compte a le droit de lire : tout l'arbre standard, rien d'autre
view   lecture included .1.3.6.1.2.1
view   lecture included .1.3.6.1.4.1

# Compte de supervision, lecture seule, sur la vue ci-dessus
rouser centreon authPriv -V lecture

# Informations d'inventaire, facultatives mais utiles
sysLocation  Salle serveur, baie A3
sysContact   supervision@exemple.fr

Le compte lui-même se crée service arrêté, la directive étant déplacée au démarrage vers un fichier de persistance :

systemctl stop snmpd
echo 'createUser centreon SHA-256 "MotDePasseAuth" AES "MotDePasseChiffrement"' >> /etc/snmp/snmpd.conf
systemctl start snmpd
Le piège classique

Après démarrage, la ligne createUser disparaît de /etc/snmp/snmpd.conf : net-snmp la déplace dans /var/lib/snmp/snmpd.conf sous forme chiffrée. C'est normal. Ne la remettez pas, vous créeriez un doublon.

En v2c, si la version 3 n'est pas envisageable :

agentaddress udp:10.0.4.20:161

# Lecture seule, et uniquement depuis le collecteur
rocommunity UneChaineLongueEtAleatoire 10.0.4.10 -V lecture

RHEL, Alma et Rocky

dnf install net-snmp net-snmp-utils

Le fichier de configuration est au même endroit et la syntaxe identique. La différence est le pare-feu :

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
  source address="10.0.4.10/32" port port="161" protocol="udp" accept'
firewall-cmd --reload
systemctl enable --now snmpd

Sur Debian et Ubuntu, l'équivalent avec ufw :

ufw allow from 10.0.4.10 to any port 161 proto udp

Windows

Le service SNMP de Windows ne connaît que la v2c, et Microsoft le considère comme obsolète. Il reste utilisable, mais pour un parc Windows important, les packs NSClient++ du catalogue sont un meilleur choix.

# Windows 10, 11, Server 2019 et suivants
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"

# Serveurs plus anciens
Install-WindowsFeature SNMP-Service -IncludeManagementTools

La configuration se fait dans la base de registre. Communauté en lecture seule, et restriction au seul collecteur :

$base = "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters"

# 4 = lecture seule. Ne jamais utiliser 8, qui autorise l'ecriture.
New-ItemProperty -Path "$base\ValidCommunities" -Name "UneChaineLongueEtAleatoire" `
  -Value 4 -PropertyType DWord -Force

# Seul le collecteur a le droit d'interroger
New-ItemProperty -Path "$base\PermittedManagers" -Name "1" `
  -Value "10.0.4.10" -PropertyType String -Force

Restart-Service SNMP

Puis le pare-feu :

New-NetFirewallRule -DisplayName "SNMP depuis le collecteur" -Direction Inbound `
  -Protocol UDP -LocalPort 161 -RemoteAddress 10.0.4.10 -Action Allow

Équipements réseau

La logique est la même partout : un compte ou une communauté en lecture seule, une liste d'accès limitée au collecteur, et la version 3 quand le matériel la gère.

# Cisco IOS, en v3
snmp-server view lecture iso included
snmp-server group SUPERVISION v3 priv read lecture access 20
snmp-server user centreon SUPERVISION v3 auth sha MotDePasseAuth priv aes 128 MotDePasseChiffrement
access-list 20 permit 10.0.4.10
# Cisco IOS, en v2c
access-list 20 permit 10.0.4.10
snmp-server community UneChaineLongueEtAleatoire RO 20

Sur pfSense, OPNsense, FortiGate, Stormshield et la plupart des interfaces web, l'écran SNMP propose les mêmes notions : communauté ou utilisateur v3, interface d'écoute, et adresses autorisées. Renseignez toujours la dernière.

Vérifier depuis le collecteur

Avant de déployer quoi que ce soit, assurez-vous que le collecteur obtient une réponse. Une configuration Centreon parfaite ne sert à rien si le port est fermé.

# v3
snmpwalk -v3 -l authPriv -u centreon -a SHA-256 -A "MotDePasseAuth" \
  -x AES -X "MotDePasseChiffrement" 10.0.4.20 sysDescr

# v2c
snmpwalk -v2c -c UneChaineLongueEtAleatoire 10.0.4.20 sysDescr

Une réponse contenant la description du système signifie que tout est en place. Un silence vient du pare-feu ou de l'adresse d'écoute ; un refus d'authentification, du compte ou de la communauté.

Ce que Forge Centreon attend de vous ensuite

Les packs SNMP posent la version et la communauté sur le modèle d'hôte, dans les réglages du projet. En version 3, laissez la communauté vide et passez les options d'authentification par la macro SNMPEXTRAOPTIONS du modèle d'hôte.

Retour à l'éditeur

{% endblock %}