Script PERL pour la sauvegarde d’une Appliance Cisco ASA 5500.

A travers ce script perl, vous allez découvrir comment mettre en place une stratégie de sauvegarde de votre Appliance via Centreon. Ceci est aussi pour moi l’occasion de publier mon premier article et script sur la supervision réseau, alors soyez indulgent.

Script_Backup_ASA_5500_1

Avant de commencer, je viens de créer mon dépôt GitHub pour centraliser tous mes scripts. Vous pouvez vous y abonner soit en cliquant sur le lien en haut du blog soit en cliquant-ici.

Voici le premier script que je publie sur mon blog concernant la supervision d’éléments actifs ou d’Appliance. Le script est écrit en PERL et se base sur des modules PERL CPAN.

Si vous voulez découvrir PERL et les modules CPAN, je vous conseille de lire avant ce tutoriel : Découvrez les modules CPAN et le langage PERL.

N’étant pas un développeur, je pense que ce script n’est pas très optimisé et peut être grandement amélioré. N’hésiter à modifier le script et à me l’envoyer pour que je publie les modifications sur GitHub et sur mon blog.

Le principe est simple, je me connecte sur l’appliance en SSH puis j’utilise la ligne de commande suivante : copy /noconfirm running-config tftp://@ip_tftp/nom_backup.cfg pour sauvegarder la configuration vers un serveur TFTP. Il ne faut pas oublier avant de se connecter sur le serveur TFTP (dans le script la connexion s’effectue en Telnet) pour supprimer la sauvegarde précédente sinon cela ne fonctionnera pas.

Ce script utilise 3 modules CPAN : Net ::Telnet, Net ::SSH ::Expect, Net ::SNMP. Je vais expliquer quelques portions de codes. J’ai essayé de commenter au maximum le code du plugin.

Script_Backup_ASA_5500_1a

Pour que la sauvegarde soit complète il faudrait rajouter le contenu du disk0 de l’appliance qui contient de nombreux fichier dont les plugins, les certificats, le fichier dap.xml et divers fichiers. Pour l’instant ce plugin ne permet de sauvegarder que la configuration de l’appliance.

Au tout début du plugin vous devez déclarer les modules CPAN et les autres fonctions que vous allez utiliser.

Script_Backup_ASA_5500_2

Ici (ci-dessus) je vérifie que tous les arguments obligatoires pour l’utilisation du plugin soient bien saisis.

Script_Backup_ASA_5500_3

Avant de lancer la sauvegarde, je vérifie s’il existe une sauvegarde sur le serveur TFTP et je la supprime le cas échéant, sinon la prochaine sauvegarde échouera. Pour cela j’utilise le module Net ::Telnet. En cas de problème de connexion Telnet ou de suppression du fichier je gère une erreur. Celle-ci sera affichée dans Centreon avec le Statut Critical et la raison de l’erreur.

Script_Backup_ASA_5500_4

Cette portion de code permet de se connecter à l’appliance en SSH, de passer en mode privilégié (mode enable) et ensuite d’exécuter la commande de sauvegarde avec la fonction exec.

Script_Backup_ASA_5500_5

Une fois la sauvegarde réalisée, je me connecte en Telnet sur le serveur TFTP et je change les droits du fichier (commande chmod) et ensuite je récupère la taille du fichier de sauvegarde. La taille me permet d’effectuer un test pour vérifier que la sauvegarde s’est bien déroulée (taille du fichier >0).

Je teste la taille du fichier puis en fonction j’affiche la sortie dans Centreon en gérant le status (Critical, OK, …).

Voilà pour ces quelques explications du code. Maintenant passons au test que vous devez effectuer avant d’intégrer le plugin dans Centreon. Je copie le plugin dans le répertoire idoine.

Script_Backup_ASA_5500_7

Pour ma part j’utilise une CES (Centreon Entreprise Server) virtualité. Le répertoire ou je dois copier mes plugins est le suivant : /usr/lib/nagios/plugins.

Avant d’intégrer le plugin dans Centreon je l’exécute toujours sur mon serveur pour vérifier que tout fonctionne correctement. Les scripts sont exécutés par l’utilisateur nagios (Version CES V2.1).

Script_Backup_ASA_5500_8

Chaque plugin doit avoir une aide. Vous pouvez l’afficher avec le commutateur –h, cela vous indique les arguments à passer au plugin. Comme le montre notre exemple ci-dessus.

les paramètres du plugin sont simples :

  • -I : correspond à IP de l’appliance ASA VPN-SSL.
  • -T: correspond à IP du serveur TFTP.
  • -F: correspond au nom du fichier de sauvegarde.

Maintenant passons sous l’utilisateur nagios et testons notre plugin.

su nagios
./backup_ssh_cisco_asa_5500.pl -I 192.168.19.10 -T 1.10.8.37 -F asa_5500_backup.cfg

Script_Backup_ASA_5500_9

Notre plugin s’exécute bien. Nous pouvons maintenant l’intégrer dans Centreon.

Généralement il est préférable d’utiliser les modèles de services et d’hosts dans Centreon pour faciliter son administration. Concernant notre plugin voici les différentes étapes :

  • 1°) Création de la commande d’exécution (Configuration -> Commandes -> contrôles) :

Script_Backup_ASA_5500_10

  • 2°) Création d’un modèle de service (Configuration -> Services -> Modèles) :

Script_Backup_ASA_5500_11

Dans ce modèle vous devez indiquer : 

  • L’alias et le Nom du modèle de service (ici Backup_ASA_5500)
  • La commande de vérification (déroulez la liste et sélectionner votre script, ici Backup_ASA_5500, le nom a été défini lors de la création de la commande, voir écran précédent)
  •  3°) Création d’un modèle d’hôte

Les modèles d’hôtes regroupent tous les scripts de vérifications et les paramètres spécifiques à l’hôte.

Script_Backup_ASA_5500_12

Dans Macros personnalisées de l’onglet Configuration d’hôtes vous mettez toutes les variables nécessaires aux plugins et les valeurs qui leurs sont associées. Pour notre exemple, j’ai rajouté la variable TFTP avec l’adresse de mon serveur TFTP.

Script_Backup_ASA_5500_13

Dans l’onglet Relations, j’ajoute le modèle de services Backup_ASA_5500 et je clic sur Sauvegarder pour enregistrer le tout.

Maintenant nous devons appliquer les modifications de notre modèle d’Hosts à tous les hosts faisant partie de ce modèle.

Script_Backup_ASA_5500_14

Allez dans Configuration -> Hôtes, dans la liste déroulante sélectionner le groupe d’hôtes associé. Tous les hôtes s’affichent.

Script_Backup_ASA_5500_15

Cocher les hôtes pour lequel le modèle doit être appliqué. Puis sélectionner dans la liste Plus d’actions ->Changement massif.

Script_Backup_ASA_5500_16

Dans Modèle d’hôte cliquer sur Ajouter un modèle et sélectionner le modèle voulu, ici SNMP-Cisco-ASA-VPN et cocher Oui pour Créer aussi les services liés au modèle. Cliquer sur Sauvegarder pour appliquer les modifications à tous les hôtes sélectionnés.

Script_Backup_ASA_5500_16a

Maintenant nous devons ajouter les paramètres spécifiques aux services, comme le nom du fichier de sauvegarde mais aussi la fréquence de backup. Par défaut les services s’exécutent toutes les 5 minutes (du moins pour ma configuration) et toutes les 3 minutes en cas de problème.

Editer la configuration du service, pour cela aller dans Configuration -> Services -> Services par hôte -> Backup_ASA_5500

J’ai choisi de sauvegarder la configuration de mon appliance une fois par semaine soit toutes les 10080 minutes (Ligne Intervalle normal de contrôle) et sur la ligne Macro Personnalisées je rajoute le nom de la variable de mon plugin pour le nom du fichier de backup (NAMEBACKUP).

Script_Backup_ASA_5500_17

Pour que le nouveau service soit pris en compte vous devez relancer le service Nagios. Pour cela aller Configuration -> Nagios puis cocher les 4 cases de la section Actions et cliquer sur Exporter.

Si votre architecture est basée sur 1 serveur central (serveur web centreon) et des pollers (exécution des plugins) vous devez sélectionner le poller dans Collecteur Nagios ou vous avez ajouté le plugin.

Au bout de quelques minutes la sauvegarde doit s’effectuer et vous devriez avoir quelque chose d’identique.

Script_Backup_ASA_5500_18

Voilà pour ce premier long et éprouvant tutoriel concernant les plugins sous Centreon. J’ai essayé de détailler les étapes au maximum. Les prochains tutoriels concernant les plugins seront moins détaillés, j’expliquerai uniquement le fonctionnement du plugin.

Si vous modifiez et/ou utiliser le plugin merci de laisser un petit commentaire cela fait toujours plaisir.

Précisions concernant l’utilisation du plugin :

  • N’oublier pas de saisir aux lignes 19,20 et 22,23 le login et le mot de passe pour votre serveur TFTP et l’appliance VPN-SSL ASA.
  • Ligne 27 vous avez la possibilité de changer le chemin du TFTP.
  • Lignes 143 et 148, vous avez la possibilité de changer le texte de sortie qui s’affichera dans Centreon.

That’s All.

2 Potins

  1. Bonjour,

    Quelle est la question ?

    Cordialement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *