Archives de catégorie : Linux

Configurer un serveur ipsec dans ipfire

Note: on copie et on colle directement dans le shell.

Dans cette page, vous trouvez la procédure pour configurer un serveur ipsec dans ipfire, et mettre en place différent clients comme iphones, Windows (>7 ) et Linux.

tunnel vpn

A) Mise en place du Serveur Ipsec

A.1/ Préparation du shell

Je vous propose de définir quelques variables volatiles, à modifier à sa convenance.

[code lang= »shell »]
TAB= »$(printf ‘\t’) »
NOM_DOMAINE=example.com #peut-être une adresse IP
WORKGROUP=’Internet Group’
PAYS=FR
EMAIL=user@${NOM_DOMAINE}
STATE=’Ma Région’
TOWN=’Ma ville’
NOM_CLIENT=Nom_de_Client_a_choisir
IP_VPN_CLIENT=10.0.0.1
PASSWORD=Motdepasse
#IP_GREEN=`ifconfig green0 | grep ‘inet addr:’ | cut -d: -f2 | awk ‘{ print $1}’`
# NET_GREEN=${IP_GREEN%.*}.0/24
NET_GREEN=0.0.0.0/0 # permet l’accès du VPN à n’importe quel réseau à restreindre si besoin
PATH_INSTALL=/var/ipfire[/code]

!Impératif! NOM_DOMAINE renseigne le nom commun(CN), soit le nom de domaine par lequel votre réseau est accessible Il est possible de mettre une adresse IP.
NET_GREEN est la zone où le VPN va avoir accès, ici dans la zone verte.
IP_VPN_CLIENT est l’adresse IP arbitraire assigné au client.

Pour la suite, y a plus qu’à lire et à copier/coller.

A.2/ Génération de l’autorité de certification (cacert)

Une autorité de certification délivre des certificats en deux parties, une clef privée que le client ou le serveur garde confidentiel et une clef public qui est diffusé à travers le réseau. Le serveur a obligatoirement son jeu de clef.

[code lang= »shell »]ipsec pki –gen –outform pem > ${PATH_INSTALL}/private/cakey.pem
ipsec pki –self –in ${PATH_INSTALL}/private/cakey.pem –dn « C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, OU=CA, CN=${NOM_DOMAINE}, emailAddress=${EMAIL} » –ca –outform pem > ${PATH_INSTALL}/ca/cacert.pem
[/code]

Il faut également renseigné un fichier setting situé dans /var/ipfire/vpn/ pour que les informations correspondent avec l’interface Web d’Ipfire. Attention aux droit d’utilisateur, tout est en nobody!

[code lang= »shell »]cat << EOF >${PATH_INSTALL}/vpn/settings
ROOTCERT_EMAIL=${EMAIL}
ROOTCERT_CITY=${TOWN}
ROOTCERT_STATE=${STATE}
ENABLED=off
ROOTCERT_OU=CA
ROOTCERT_HOSTNAME=${NOM_DOMAINE}
RW_NET=
VPN_IP=%defaultroute
ROOTCERT_COUNTRY=FR
VPN_DELAYED_START=0
ROOTCERT_ORGANIZATION=${WORKGROUP}
EOF[/code]

A.3/ Génération du certificat hôte (hostcert)

Attention au CN, comme expliqué plus haut, il doit absolument correspondre au nom de domaine ou à l’adresse IP par lequel vous êtes accessible via le réseau (Internet ou Intranet).

[code lang= »shell »]ipsec pki –gen –outform pem > ${PATH_INSTALL}/private/hostkey.pem
ipsec pki –pub –in ${PATH_INSTALL}/private/hostkey.pem | ipsec pki –issue –cacert ${PATH_INSTALL}/ca/cacert.pem –cakey ${PATH_INSTALL}/private/cakey.pem –dn « C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} » –san= »${NOM_DOMAINE} » –flag serverAuth –flag ikeIntermediate –outform pem > ${PATH_INSTALL}/certs/hostcert.pem
cat << EOF > /etc/ipsec.user.secrets
: RSA /var/ipfire/private/hostkey.pem
EOF[/code]

Sous l’onglet Services->Ipsec dans l’interface web d’Ipfire, le certificat d’autorité (CA) et le certificat hôte doit être visible et consultable.

A.4 Préparation client côté Ipfire

Pour mettre en place un client, notre serveur Ipsec aura été préalablement renseigné par deux fichiers.

  • Le premier fichier, /etc/ipsec/ipsec.conf (qui inclus le fichier /etc/ipsec/ipsec.user.conf), définit la configuration gauche/droite (local relatif/distant relatif).
  • Le deuxième fichier, /etc/ipsec.secret (qui inclus le fichier /etc/ipsec.user.secrets), définit les informations nécessaire pour l’authentification, à savoir, la clé du certificat du serveur et les identifiants avec le mot de passe correspondant.

Lors de l’arrêt et du démarrage du serveur ipsec par les pages web, les fichiers sont réécrit sauf les « user ». Comme les clients sont créés manuellement, il est nécessaire de placer leur configuration dans /etc/ipsec.user.conf et /etc/ipsec.user.secrets.

La ligne de commande suivante renseigne un fichier situé dans /var/ipfire/vpn/ afin que l’interface web d’ipfire affiche les informations sur les clients VPN dans la page Service->IPSEC et Status->Connexion.

[code lang= »shell »]
echo $((`wc -l ${PATH_INSTALL}/vpn/config | awk ‘{ print $1}’`+1)),off,${NOM_CLIENT},CN=${NOM_CLIENT}.${NOM_DOMAINE} OU=Client VPN,host,cert,,,,${NET_GREEN},,,${IP_VPN_CLIENT}/32,,,,,,,,,,,,,,,,,,,,>>${PATH_INSTALL}/vpn/config
[/code]

 

A.4.1) Windows 7 : Attention, c’est soit via certificat clé privé/public ou via eap-mschapv2.

A.4.1.a) Via certificat clé privé/public

Il est demandé un mot de passe lors de la génération du fichier .p12. Il sera demandé au client lors de l’importation du certificat.

[code lang= »shell »]ipsec pki –gen –outform pem > ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem
ipsec pki –pub –in ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem | ipsec pki –issue –cacert ${PATH_INSTALL}/ca/cacert.pem –cakey ${PATH_INSTALL}/private/cakey.pem –dn « C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} » –flag serverAuth –flag ikeIntermediate –outform pem > ${PATH_INSTALL}/certs/${NOM_CLIENT}cert.pem

# Fichier p12 pour notre client Windows
openssl pkcs12 -export -inkey ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem -in ${PATH_INSTALL}/certs/${NOM_CLIENT}cert.pem -name « ${NOM_CLIENT} » -certfile ${PATH_INSTALL}/ca/cacert.pem -caname « ${NOM_DOMAINE} » -out ${PATH_INSTALL}/certs/${NOM_CLIENT}.p12[/code]

 

Ici, on renseigne uniquement /etc/ipsec.user.conf.

[code lang= »shell »]cat << EOF >> /etc/ipsec.user.conf
conn ${NOM_CLIENT}
${TAB}keyexchange=ikev2
${TAB}left=%any
${TAB}leftsubnet=${NET_GREEN}
${TAB}leftcert=hostcert.pem
${TAB}leftfirewall=yes
${TAB}right=%any
${TAB}rightsourceip=${IP_VPN_CLIENT}
${TAB}eap_identity=${NOM_CLIENT}
${TAB}leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}rightid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} »
EOF
[/code]

A.4.1.b) Via eap-mschapv2

Ici, on renseigne /etc/ipsec.user.conf et /etc/ipsec.user.secret.

[code lang= »shell »]cat << EOF >> /etc/ipsec.user.conf
conn ${NOM_CLIENT}
${TAB}keyexchange=ikev2
${TAB}authby=rsasig
${TAB}left=%any
${TAB}leftsubnet=${NET_GREEN}
${TAB}leftauth=pubkey
${TAB}leftcert=hostcert.pem
${TAB}leftfirewall=yes
${TAB}right=%any
${TAB}rightsourceip=${IP_VPN_CLIENT}
${TAB}rightauth=eap-mschapv2
${TAB}rightsendcert=never
${TAB}eap_identity=%any
${TAB}auto=add
${TAB}leftid=%any # Si défini comme ci dessous, la connexion n’est pas accepté la premier fois.
${TAB}# leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}rightid=%any
EOF
cat << EOF >> /etc/ipsec.user.secrets
${NOM_CLIENT} : EAP « ${PASSWORD} »
EOF[/code]

A.4.2) Iphone

Il est demandé un mot de passe lors de la génération du fichier .p12. Il sera demandé au client lors de l’importation du certificat.

[code lang= »shell »]ipsec pki –gen –outform pem > ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem
ipsec pki –pub –in ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem | ipsec pki –issue –cacert ${PATH_INSTALL}/ca/cacert.pem –cakey ${PATH_INSTALL}/private/cakey.pem –dn « C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} » –flag serverAuth –flag ikeIntermediate –outform pem > ${PATH_INSTALL}/certs/${NOM_CLIENT}cert.pem

# Fichier p12 pour notre client iphone
openssl pkcs12 -export -inkey ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem -in ${PATH_INSTALL}/certs/${NOM_CLIENT}cert.pem -name « ${NOM_CLIENT} » -certfile ${PATH_INSTALL}/ca/cacert.pem -caname « ${NOM_DOMAINE} » -out ${PATH_INSTALL}/certs/${NOM_CLIENT}.p12[/code]

 

Ici, on renseigne /etc/ipsec.user.conf et /etc/ipsec.user.secret.

[code lang= »shell »]cat << EOF >> /etc/ipsec.user.conf
conn ${NOM_CLIENT}
${TAB}keyexchange=ikev1
${TAB}authby=xauthrsasig
${TAB}xauth=server
${TAB}left=%defaultroute
${TAB}leftsubnet=${NET_GREEN}
${TAB}leftcert=hostcert.pem
${TAB}leftfirewall=yes
${TAB}right=%any
${TAB}rightsourceip=${IP_VPN_CLIENT}
${TAB}rightcert=${NOM_CLIENT}cert.pem
${TAB}leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}rightid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} »
${TAB}pfs=no
${TAB}auto=add
EOF

cat << EOF >> /etc/ipsec.user.secrets
${NOM_CLIENT} : XAUTH « ${PASSWORD} »
EOF[/code]

 

A.4.3) Debian : Attention, c’est soit via certificat clé privé/public ou via eap-mschapv2.

A.4.3.a) Via certificat clé privé/public

Il est demandé un mot de passe lors de la génération du fichier .p12. Il sera demandé au client lors de l’importation du certificat.

[code lang= »shell »]ipsec pki –gen –outform pem > ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem
ipsec pki –pub –in ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem | ipsec pki –issue –cacert ${PATH_INSTALL}/ca/cacert.pem –cakey ${PATH_INSTALL}/private/cakey.pem –dn « C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} » –flag serverAuth –flag ikeIntermediate –outform pem > ${PATH_INSTALL}/certs/${NOM_CLIENT}cert.pem

# Fichier p12 pour notre client Debian
openssl pkcs12 -export -inkey ${PATH_INSTALL}/private/${NOM_CLIENT}key.pem -in ${PATH_INSTALL}/certs/${NOM_CLIENT}cert.pem -name « ${NOM_CLIENT} » -certfile ${PATH_INSTALL}/ca/cacert.pem -caname « ${NOM_DOMAINE} » -out ${PATH_INSTALL}/certs/${NOM_CLIENT}.p12[/code]

 

Ici, on renseigne uniquement /etc/ipsec.user.conf.

[code lang= »shell »]cat << EOF >> /etc/ipsec.user.conf

conn ${NOM_CLIENT}
${TAB}keyexchange=ikev2
${TAB}left=%any
${TAB}leftsubnet=${NET_GREEN}
${TAB}leftcert=hostcert.pem
${TAB}leftfirewall=yes
${TAB}right=%any
${TAB}rightsourceip=${IP_VPN_CLIENT}
${TAB}rightfirewall=yes
${TAB}leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}rightid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} »
${TAB}auto=add
EOF

[/code]

 

A.4.3.b) Via eap-mschapv2

Ici, on renseigne /etc/ipsec.user.conf et /etc/ipsec.user.secret.

[code lang= »shell »]cat << EOF >> /etc/ipsec.user.conf
conn ${NOM_CLIENT}
${TAB}keyexchange=ikev2
${TAB}authby=rsasig
${TAB}left=%any
${TAB}leftsubnet=${NET_GREEN}
${TAB}leftauth=pubkey
${TAB}leftcert=hostcert.pem
${TAB}leftfirewall=yes
${TAB}right=%any
${TAB}rightsourceip=${IP_VPN_CLIENT}
${TAB}rightauth=eap-mschapv2
${TAB}rightsendcert=never
${TAB}eap_identity=${NOM_CLIENT}
${TAB}auto=add
${TAB}leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}rightid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} »
${TAB}rightfirewall=yes
EOF

cat << EOF >> /etc/ipsec.user.secrets
‘C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL}’ – ‘C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL}’ : EAP « ${PASSWORD} »
EOF[/code]

B) Mise en place côté client

Se connecter sur la page d’ipfire Service->IPSEC avec le futur client, activer le serveur et télécharger soit le fichier p12 ou que le certificat d’autorité dans le cas de eap-mschapv2.

B.1.a) Windows 7: Import de certificat

Dans la console mmc, ajouter à la racine de la console le logiciel certificat(ordinateur) et se placer dans Certificat->Personnel->Certificat(ordinateur).

ipsecVia eap-mschapv2 : importer le fichier cacert.pem puis déplacer sous Certificats (ordinateur local) -> Autorité de certification racines de confiance -> Certificats.

Via certificat clé privé/public : Importer le fichier .p12, renseigner le mot de passe choisit lors de la génération du certificat et déplacer cacert.pem sous Certificats (ordinateur local) -> Autorité de certification racines de confiance -> Certificats.

B.1.b) Windows 7: Création de la connexion

Dernière étape, Ouvrir le centre réseau et partage, configurer une nouvelle connexion ou un nouveau réseau, Connexion à votre espace de travail. Dans l’adresse Internet, renseigner ce que vous avez mis au début dans les variables en nom de domaine et valider.

Via eap-mschapv2: dans la fenêtre suivante renseigné le nom d’utilisateur et le mot de passe, si problème vérifié que l’authentification est EAP-MSCHAP version 2.

Via certificat clé privé/public: si problème vérifié que l’authentification utilise les certificats de l’ordinateur.

B.2) Iphone

Avec l’iphone, il suffit de se connecter à la page du serveur et de télécharger le certificat racine et le certificat correspondant à l’appareil. Il est demandé le mot de passe lors de la génération du certificat.

Dernière étape, dans réglage->Général->VPN, Ajouter une configuration VPN… Sous l’onglet IPSec, le serveur correspond au CN du serveur VPN, le compte est le nom du client et le mot de passe. Utiliser le certificat et dans la liste selectionner celui que vous venez d’ajouter. Revenir au menu VPN et lancer la connexion.

B.3) Debian

Pour commencer il faut s’assurer que le paquet strongswan soit bien installé et dans le cas de mschapv2, le paquet libcharon-extra-plugins. Il faut redéfinir exactement les mêmes variables volatiles qu’au début.

[code lang= »shell »]NOM_DOMAINE=example.com #peut-être une adresse IP
WORKGROUP=’Internet Group’
PAYS=FR
EMAIL=user@${NOM_DOMAINE}
STATE=’Ma Région’
TOWN=’Ma ville’
NOM_CLIENT=Nom_de_Client_a_choisir
IP_VPN_CLIENT=10.0.0.1
PASSWORD=Motdepasse
NET_GREEN=0.0.0.0/0 # permet l’accès du VPN à n’importe quel réseau à restreindre si besoin
[/code]

Importer directement depuis le shell.

[code lang= »shell »]scp ipfire:/etc/ipsec.d/cacerts/cacert.pem /etc/ipsec.d/cacerts/cacert.pem
scp ipfire:/etc/ipsec.d/certs/${NOM_CLIENT}cert.pem /etc/ipsec.d/certs/${NOM_CLIENT}cert.pem
scp ipfire:/var/ipfire/private/${NOM_CLIENT}key.pem /etc/ipsec.d/private/${NOM_CLIENT}key.pem
[/code]

B.3.a) Via certificat clé privé/public

Ici, on renseigne uniquement /etc/ipsec.user.conf.

[code lang= »shell »]cat << EOF >> /etc/ipsec.conf
conn ${NOM_CLIENT}
${TAB}auto=add
${TAB}keyexchange=ikev2
${TAB}leftcert=${NOM_CLIENT}cert.pem
${TAB}leftfirewall=yes
${TAB}leftsourceip=${IP_VPN_CLIENT}
${TAB}right=${NOM_DOMAINE}
${TAB}rightsubnet=${NET_GREEN}
${TAB}rightfirewall=yes
${TAB}rightid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} »
EOF
cat << EOF >> /etc/ipsec.secrets
: RSA /etc/ipsec.d/private/${NOM_CLIENT}key.pem
EOF
[/code]

B.3.b) Via eap-mschapv2

Ici, on renseigne /etc/ipsec.user.conf et /etc/ipsec.user.secret.

[code lang= »shell »]cat << EOF >> /etc/ipsec.conf
conn ${NOM_CLIENT}
${TAB}auto=add
${TAB}keyexchange=ikev2
${TAB}leftfirewall=yes
${TAB}leftsourceip=${IP_VPN_CLIENT}
${TAB}right=${NOM_DOMAINE}
${TAB}rightsubnet=${NET_GREEN}
${TAB}leftid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL} »
${TAB}rightid= »C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL} »
${TAB}rightauth=pubkey
${TAB}leftauth=eap
${TAB}eap_identity=${NOM_CLIENT}
EOF
cat << EOF >> /etc/ipsec.secrets
‘C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_DOMAINE}, OU=Serveur VPN, emailAddress=${EMAIL}’ – ‘C=${PAYS}, ST=${STATE}, L=${TOWN}, O=${WORKGROUP}, CN=${NOM_CLIENT}.${NOM_DOMAINE}, OU=Client VPN, emailAddress=${EMAIL}’ : EAP « ${PASSWORD} »
EOF[/code]

On redemarre le serveur ipsec et lance la connexion ipsec.

[code lang= »shell »]/etc/init.d/ipsec restart
ipsec up ${NOM_CLIENT}[/code]

Attention, par ssh, si la connexion se fait bien, vous perdez le contrôle de la session.

Superviser une station de disque Synology via NAGIOS.

Le SNMP est le protocol de supervision d’un réseau informatique. A savoir, il existe une distribution OpenSource EyesOfNetwork (EON) qui est dédié à la supervision d’un parc informatique. Même Windows a un service portant le nom d’interruption SNMP, effectivement, il est possible de diagnostiquer la santé du poste de travail. Nagios est un superviseur, pour démarrer je l’ai installé via Pakfire dans Ipfire.

Dans cette page, je tente d’expliquer comment trouver les commandes pour afficher les informations de ma station de disque à partir d’une distribution Linux.

  • Dans la station de disque :
    Monitorer une station de disque SynologyA communauté, mettre: public

Télécharger les MIBS et placer les fichier dans : /root/.snmp/mibs/, et créer un fichier snmp.conf

cat << EOF > /root/.snmp/snmp.conf
mibs +SYNOLOGY-DISK-MIB
mibs +SYNOLOGY-SYSTEM-MIB
mibs +SYNOLOGY-RAID-MIB
EOF

Dans les fichiers MIBS fournis par Synology, en fouillant un peu, on trouve des OBJECT-TYPE avec une liste de champs et leur type d’accès. Ici, je m’interesse qu’aux champs en lecture. Par exemple, je prend le champ « temperature » dans le fichier SYSTEM et je tape la commande ci-dessous pour trouver l’OID :

[root@localhost nagios]# snmptranslate -M+/root/.snmp/mibs/SYNOLOGY-SYSTEM-MIB.txt -On -IR  temperature

Voici l’ensemble des résultats après investigation:

SYSTEM-MIB
	systemStatus		.1.3.6.1.4.1.6574.1.1.0
	temperature		.1.3.6.1.4.1.6574.1.2.0
	powerStatus		.1.3.6.1.4.1.6574.1.3.0
	systemFanStatus		.1.3.6.1.4.1.6574.1.4.1.0
	cpuFanStatus		.1.3.6.1.4.1.6574.1.4.2.0
	modelName		.1.3.6.1.4.1.6574.1.5.1.0
	serialNumber		.1.3.6.1.4.1.6574.1.5.2.0
	version			.1.3.6.1.4.1.6574.1.5.3.0
	upgradeAvailable	.1.3.6.1.4.1.6574.1.5.4.0


SYNOLOGY-DISK-MIB.txt
	diskID			.1.3.6.1.4.1.6574.2.1.1.2.$ARG1$
	diskModel		.1.3.6.1.4.1.6574.2.1.1.3.$ARG1$
	diskType		.1.3.6.1.4.1.6574.2.1.1.4.$ARG1$
	diskStatus		.1.3.6.1.4.1.6574.2.1.1.5.$ARG1$
	diskTemperature		.1.3.6.1.4.1.6574.2.1.1.6.$ARG1$
	

SYNOLOGY-RAID-MIB.txt
	raidName		.1.3.6.1.4.1.6574.3.1.1.2.0
	raidStatus		.1.3.6.1.4.1.6574.3.1.1.3.0

Démonstation :

Ensuite, je teste en ligne de commande :

[root@ipfire nagios]#  ./check_snmp -H $IP -P 1 -C public -o .1.3.6.1.4.1.6574.1.2.0
SNMP OK - 28 | iso.3.6.1.4.1.6574.1.2.0=28

28 est la température du system. Pour éviter l’erreur noté ci-dessous, on fait bien attention d’ajouter  un « .0 » à la fin de l’OID comme ci-dessus mis en évidence en rouge.

Liste complètes des commandes :

define command {
command_name check_synology_version
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.5.3.0 -l "version"
}

define command {
command_name check_synology_upgradeAvailable
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.5.4.0 -l "upgradeAvailable" -s 2
}

define command {
command_name check_synology_temperature
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.2.0 -l "temperature" -s 1 -u C -w 40 -c 50
}

define command {
command_name check_synology_systemStatus
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.1.0 -l "systemStatus" -s 1
}

define command {
command_name check_synology_systemFanStatus
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.4.1.0 -l "systemFanStatus" -s 1
}

define command {
command_name check_synology_serialNumber
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.5.2.0 -l "serialNumber"
}

define command {
command_name check_synology_raidStatus
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.3.1.1.3.0 -l "raidStatus" -s 1
}

define command {
command_name check_synology_raidName
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.3.1.1.2.0 -l "raidName"
}

define command {
command_name check_synology_powerStatus
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.3.0 -l "powerStatus" -s 1
}

define command {
command_name check_synology_modelName
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.5.1.0 -l "modelName"
}

define command {
command_name check_synology_diskTemperature
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.2.1.1.6.$ARG1$ -l "diskTemperature" -u C -w 40 -c 50
}

define command {
command_name check_synology_diskStatus
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.2.1.1.5.$ARG1$ -l "diskStatus" -s 1
}

define command {
command_name check_synology_diskModel
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.2.1.1.3.$ARG1$ -l "diskModel"
}

define command {
command_name check_synology_diskID
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.2.1.1.2.$ARG1$ -l "diskID"
}

define command {
command_name check_synology_cpuFanStatus
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.6574.1.4.2.0 -l "cpuFanStatus" -s 1
}

Liste complètes des services :

define service {
 host_name diskstation
 service_description check_synology_diskTemperature_0
 check_command check_synology_diskTemperature!0!40!50
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskStatus_1
 check_command check_synology_diskStatus!1
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskID_0
 check_command check_synology_diskID!0
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_cpuFanStatus
 check_command check_synology_cpuFanStatus
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskID_1
 check_command check_synology_diskID!1
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskModel_0
 check_command check_synology_diskModel!0
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskModel_1
 check_command check_synology_diskModel!1
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskStatus_0
 check_command check_synology_diskStatus!0
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_diskTemperature_1
 check_command check_synology_diskTemperature!1!40!50
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_modelName
 check_command check_synology_modelName
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_powerStatus
 check_command check_synology_powerStatus
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_raidName
 check_command check_synology_raidName
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_raidStatus
 check_command check_synology_raidStatus
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_serialNumber
 check_command check_synology_serialNumber
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_systemFanStatus
 check_command check_synology_systemFanStatus
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_systemStatus
 check_command check_synology_systemStatus
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_temperature
 check_command check_synology_temperature!0!40!50
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_upgradeAvailable
 check_command check_synology_upgradeAvailable
 use generic-service ; name of service template to use
}

define service {
 host_name diskstation
 service_description check_synology_version
 check_command check_synology_version
 use generic-service ; name of service template to use
}

source :

http://sodermalm.net/?p=139