TIS-Backup :

Contributeurs

(SISR2-2016) Benjamin Landais, Jérémy Leroy, Rémy Coudray

TIS-BACKUP est un logiciel fonctionnant sous Linux Debian servant à effectuer des sauvegardes des différents matériels. TIS-Backup peut effectuer des sauvegardes de fichiers, de switch, de BDD … Les sauvegardes réalisées apr TIS-Backup peuvent ensuite être exportées vers un support de sauvegarde externe (clé usb, NAS…).

TIS-Backup se configure en ligne de commande, une interface web est disponible (encore faut-il l’installer). Aucune commande ne peut être effectué depuis l’interface web, son seul but est de pouvoir vérifier plus simplement/lisiblement l’état des sauvegardes. 3 états de sauvegardes peuvent être visible :

OK : La sauvegarde est effectuée sans problème RUNNING : La sauvegarde est en cours ERROR : La sauvegarde n’a pas été effectuée / contient des erreurs

Les commandes essentiels de tisbackup sont répertoriés ici : https://dev.tranquil.it/wiki/TISbackup_-_les_actions_TISBACKUP

Concernant les actions de sauvegardes des modèles sont présents dans le fichier tisbackup-config.ini, sinon vous pouvez regarder sur le lien suivant.

https://dev.tranquil.it/wiki/Cat%C3%A9gorie:Types_de_sauvegarde

1) Installation de TIS-Backup

TIS-Backup à besoin de dépendances suivantes :

apt-get install unzip ssh rsync python-paramiko python-pyvmomi python-pexpect

Une fois les dépendances installées il faut passer au téléchargement de TIS-Backup. On se placera dans le dossier /opt/.

cd /opt/ #on se place dans le dossier OPT
wget --no-check-certificate https://github.com/tranquilit/TISbackup/archive/master.zip #on ne vérifie pas les certificats
unzip master.zip #dézippage du dossier téléchargé
mv TISbackup-master tisbackup #déplacement des fichiers vers le dossier TISB-Backup
chmod 755 /opt/tisbackup/tisbackup.py #Attributions des droits au dossier
ln -sb /opt/tisbackup/tisbackup.py /usr/local/bin/tisbackup #création d’un lien entre les répertoires

Pour vérifier la bonne installation de TIS-Backup il faut exécuter la commande “tisbackup”, celle-ci doit retourner le résultat suivant :

(ne pas tenir compte du “error”)

2) Configuration de TIS-Backup :

Il faut commencer par créer le dossier qui contiendra les fichiers de configuration des sauvegardes.

mkdir /etc/tis/

Dans le dossier /opt/tisbackup/samples se trouvent 2 fichiers servant d’exemples pour la configuration des sauvegardes. Je vais utiliser le fichier tisbackup-config.ini pour la configuration des sauvegardes. Le fichier sera mis dans le répertoire TIS. C’est ce fichier qu’il faudra modifier pour pouvoir créer les sauvegardes des différents éléments de la section.

cp /opt/tisbackup/samples/config.ini.sample /etc/tis/tisbackup-config.ini

Le fichier suivant permet de lancer automatiquement une sauvegarde. /etc/cron.d/tisbackup

La fonction backup (1ere ligne) permet de définir à quel moment la sauvegarde aura lieu, ici nous avons programmé la sauvegarde a 22h30 tous les soirs.

La fonction cleanup permet de supprimer des sauvegardes plus anciennes que dans le dossier spécifié. Pour spécifier le délai de rétention il faut l’inscrire dans la ligne : “backup_retention_time=XX” cette ligne se trouve dans le fichier de configuration des sauvegardes “/etc/tis/tisbackup-config.ini”

Pour pouvoir effectuer nos actions de sauvegardes sans problèmes il faut que notre serveur échange une clé privé cryptée avec les serveurs ou il interagit.

ssh-keygen -t rsa -b 2048 #Génération de la clé privé

Création des nos sauvegardes :

Pour créer nos sauvegardes il faut se rendre dans le fichier “/etc/tis/tisbackup-config.ini” celui-ci contient des exemples de sauvegarde. Je vais commencer par sauvegarder la base de données SQL du portefeuille qui est un élément important au sein de la section.

Sauvegarde BDD

[BDD_Portefeuille] #Correspond au nom de notre sauvegarde
type=mysql+ssh #Permet de définir comment se connecter à notre BDD
server_name=172.20.20.20 #L’adresse ip de notre serveur
private_key=/root/.ssh/id_rsa #Clé privée à échanger avec le serveur
db_name=portfolio #Nom de la BDD à sauvegarder
db_user=root #Utilisateur avec lequel se connecter pour sauvegarder la BDD
db_passwd=***** #MDP de l’utilisateur

Pour que la connexion puisse se faire entre nos serveurs il faut penser à échanger la clé privé avec cette commande :

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.20.20.20 #Penser à modifier l’@ IP

Cette ligne de commande sera à utiliser à chaque connexion à un nouveau serveur pour échanger une clé d'authentification et donc permettre l’échange sans avoir à rentrer le mot de passe à achque fois. Il faut juste penser à modifier l’adresse IP et le nom d’utilisateur à utiliser.

Sauvegarde de fichiers :

Prérequis : Pour sauvegarder des fichiers d'une machine cible, cette dernière devra disposer de l'utilitaire rsync.

[DOKU_WIKI]
type=rsync+ssh #Installation du paquet rsync nécessaire sur la machine distante
server_name=172.20.20.20
remote_dir=/var/www/dirrw/dokuwiki #Chemin du dossier / fichiers à sauvegarder
private_key=/root/.ssh/id_rsa

Pour sauvegarder l’ensemble d’une machine et pas seulement certains fichiers dans la ligne : “remote_dir=/” il sauvegarde tous les dossiers de la machine.

Il est aussi possible de sauvegarder des fichiers sur un serveur Windows. Pour ce faire il faut installer un serveur SSH sur windows. Le logiciel Cygwin fonctionne, il faudra juste penser à ouvrir le port 22 pour que notre serveur puisse s’y connecter.

Sauvegarde des switchs :

[SW1]
type=switch
server_name=SwDL1 #Nom du switch
switch_ip=172.22.0.1 #@ ip du switch
switch_user=admsio #utilisateur
switch_password=***** #mot de passe correspondant à l'utilisateur
switch_type=DLINK-DES-3528 #Il faut indiquer le modèle du switch

Précision : il faut que le switch soit assez récent pour pouvoir être pris en charge par TIS-Backup. Si celui-ci n’est pas pris en compte il faut passer par une une sauvegarde via TFTP. Celle-ci pourra ensuite être automatisée par la suite. Je reviendrai plus tard sur la sauvegarde via TFTP.

Nous savons maintenant comment sauvegarder, il reste dans le fichier des exemples pour sauvegarder des machines virtuelles dans des esx par exemple.

Pour lancer une action de sauvegarde à un instant T (sans tenir compte de la sauvegarde automatique qui à lieu tous les jours) il faut exécuter la commande :

tisbackup backup

Cette commande lance une action de sauvegarde instantanément. Pour vérifier que les sauvegardes se sont bien exécutés on peut taper la commande :

tisbackup checknagios

Toutes les informations concernants les dernières sauvegardes sont remontées dans la commande. La commande “tisbackup dumpstat” permet aussi de faire remonter des informations concernant les sauvegardes, cependant de manière plus précise.

Le seul bémol concerne la lisibilité des informations. Pour contourner le problème de lisibilité il faut installer l’interface web de tisbackup.

Installation de l’interface web :

Installation des dépendances nécessaires à la mise en place de l’interface web.

apt-get install python2.7 python-simplejson python-flask python-setuptools
easy_install-2.7 "huey<=0.4.9”

Copie des différents fichiers et attribution des droits sur les fichiers.

cp /opt/tisbackup/samples/tisbackup_gui.ini /etc/tis/
cp /opt/tisbackup/scripts/tisbackup_gui /etc/init.d/tisbackup_gui
cp /opt/tisbackup/scripts/tisbackup_huey /etc/init.d/tisbackup_huey
chmod +x /etc/init.d/tisbackup_gui
chmod +x /etc/init.d/tisbackup_huey
update-rc.d tisbackup_huey defaults
update-rc.d tisbackup_gui defaults

Après avoir fait la liste des commandes indiqués ci-dessus il faut ouvrir le port 8080 qui permet d’accéder à l’interface web du serveur de sauvegarde.

iptables -t filter -A INPUT -p udp --dport 8080 -j ACCEPT

Si cette commande n’est pas exécutée le message suivant va apparaître lorsque vous allez essayer de vous connecter.

L’interface web est désormai accessible à l’adresse de votre serveur sur le port 8080 (ici 172.20.97.96:8080)

La page d’accueil recense les dernières sauvegardes effectuées sur le serveur selon le type. Pour rappel le type est défini dans le fichier tisbackup-config.ini dans /etc/tis/

On peut remarquer que sur la sauvegarde de fichiers dispose de deux cas de figure :

Sur le serveur 172.20.20.20 les dossier contenant les fichiers et pages du DokuWiki sont sauvegardés. Sur le serveur 172.20.0.76 l’ensemble des fichiers de la machine sont sauvegardés.

Ensuite dans la partie MySQL on remarque que la base de donnée du portefeuille est sauvegardé.

TIS-Backup permet donc de segmenter les sauvegardes par type. Sur la page “lastbackup” on remarque que ce sont les même informations qu’avec la commande tisbackup dumpstat qui remontent mais cette fois-ci de manière plus lisible.

Les backups réalisés peuvent être exporté en connectant un support amovible au serveur.

Les backups peuvent aussi être envoyé via une connexion SSH vers le NAS par exemple.

Configuration du TFTPD sur un routeur et un switch :

TIS-Backup ne gère malheureusement pas les sauvegardes de routeur, le moyen de pouvoir les enregistrer sur le serveur est de réaliser une connexion TFTPD entre le routeur et le serveur.

Installation de TFTPD sur le serveur de sauvegarde :

apt-get install tftpd

Création du répertoire ou les fichiers de configuration seront stockés

mkdir /srv/tftp
Chmod -R 777 /srv/tftp
Chown -R nobody /srv/tftp

Création du fichier de configuration qui contiendra la configuration du routeur :

touch backup/data/Router/cisco-rtr-01-confg
chmod -R 777 /srv/tftp
chown -R nobody /srv/tftp

Ensuite sur le routeur il faut lancer la commande copy run tftp, il demandera l’adresse de notre serveur tftp.

Notre fichier est bien enregistré dans l’emplacement de notre serveur tftp :

Il contient bien la configuration du routeur :

Il faut faire de même sur les switchs pour pouvoir sauvegarder leur configuration.

Automatisation de la sauvegarde du routeur :

A partir de la version 12 de l’IOS Cisco la commande Kron est executable sur les routeurs. La commande Kron est la commande qui permet de réaliser les actions de sauvegarde automatique.

rtrCIASA3(config)#kron policy-list config-backup
rtrCIASA3(config-kron-policy)#cli archive config | redirect
tftp://172.20.97.96/config-backup
rtrCIASA3(config)#kron occurrence occurrence-config-backup at 22:30 recurring
rtrCIASA3(config-kron-occurrence)#policy-list config-backup

La commande indique qu’une sauvegarde automatique sera réalisé chaque jour à 22h30 dans le fichier config-backup.