Difference between revisions of "SME-101.09: Supplément: SME & BackupPC-4.2"
Line 2,521: | Line 2,521: | ||
On crée le fichier TAR de la sauvegarde numéro <code>2</code> du serveur hôte <code>192.168.1.152</code>. | On crée le fichier TAR de la sauvegarde numéro <code>2</code> du serveur hôte <code>192.168.1.152</code>. | ||
− | [[Image:Icone-NoteAPT.png|25px]] Peut prendre un certain temps. Être patient! | + | [[Image:Icone-NoteAPT.png|25px]] Peut prendre un certain temps. Être patient ! |
$ /usr/share/BackupPC/bin/BackupPC_tarCreate -h 192.168.1.152 -n 2 -s / / > source-152-2.tar | $ /usr/share/BackupPC/bin/BackupPC_tarCreate -h 192.168.1.152 -n 2 -s / / > source-152-2.tar | ||
− | + | N.B. : l'hôte peut être également désigné par son nom. | |
On vérifie. | On vérifie. | ||
Line 2,529: | Line 2,529: | ||
2357982 -rw-r--r-- 1 backuppc backuppc 2414571520 15 mai 15:11 <span style="color:red">source-152-2.tar</span> | 2357982 -rw-r--r-- 1 backuppc backuppc 2414571520 15 mai 15:11 <span style="color:red">source-152-2.tar</span> | ||
− | |||
=== Environnement du Serveur DESTINATION === | === Environnement du Serveur DESTINATION === |
Revision as of 20:46, 10 April 2021
|
Description générale
Ce Cahier-9 du Cours SME-101 décrit: l'installation de BackupPC-4.2, les sauvegardes de l'hôte de BackupPC et du serveur SOURCE et enfin la restauration de la sauvegarde complète du Serveur SME SOURCE sur le Serveur SME DESTINATION pour que ce dernier devienne un clone du premier.
- Ce document est basé sur la contribution: https://wiki.contribs.org/BackupPC et le bogue https://bugs.contribs.org/show_bug.cgi?id=10514.
- Page officielle de BackupPC: https://backuppc.github.io/backuppc/.
Référence: https://fr.wikipedia.org/wiki/BackupPC.
BackupPC est un logiciel de sauvegarde de systèmes de fichiers publié sous licence GPL. Il est utilisé pour sauvegarder sur disque un ensemble de postes clients et de serveurs sous: Unix, Linux, Windows ou Mac OS X. Les protocoles utilisables pour les transferts sont: SMB, tar over SSH/rsh/nfs, et rsync. Il ne nécessite l'installation d'aucun logiciel client sur les machines à sauvegarder. Il possède une interface Web pour lancer des sauvegardes ou restaurer des fichiers. Il est également possible de sauvegarder des bases de données via un script shell lancé avant la sauvegarde.
- Conventions: #Particularités de ce document.
But final de ce cahier
Le but final est de migrer le serveur SOURCE vers le serveur DESTINATION.
- BackupPC est le serveur qui roulera BackupPC et qui entreposera les sauvegardes sur son deuxième disque.
- SOURCE est le Serveur SME-9.2 dont on fera une sauvegarde Complète et deux Incrémentielles.
- DESTINATION est un Serveur SME-9.2 sur lequel on restaurera la sauvegarde du serveur SOURCE et ainsi il en deviendra un clone parfait.
- Micronator-101.org est un Serveur SME-9.2 qui sert de pare-feu et de passerelle Internet pour tout le réseau.
Prérequis
Serveur SME-9.2
- Pour l'installation d'un Serveur SME-9.2, voir: SME-101.02 Serveur SME.
- Le Cahier-2 du cours SME-101 décrit aussi l'installation de VirtualBox et la création d'une machine virtuelle SME-9.2.
- Installation des dernières mises à jour SME-9.2.
Disque de sauvegarde
- Disque de sauvegarde: un volume dédié est recommandé (peut être un simple disque unique ou des disques en RAID).
Logiciels prérequis
- Le Cahier-1 du cours SME-101 décrit l'installation et la configuration des logiciels prérequis sur le poste de travail de l'Étudiant: SME-101.01 Logiciels de la station de travail.
Machine virtuelle
Ce document utilise des machines virtuelles roulant SME-9.2 sous VirtualBox. La marche à suivre pour l'installation de BackupPC sur un Serveur SME physique est exactement la même.
Installation
Serveur BackupPC
Une machine virtuelle, sous VirtualBox, roulant un Serveur SME-9.2. La marche à suivre pour l'installation sur un Serveur SME physique est exactement la même.
Les dernières mises à jour SME-9.2 ont été installées.
Un deuxième disque à été créé pour recevoir les sauvegardes. Il n'est que de 20Go mais est amplement suffisant pour cette démonstration.
Si vous créez le disque de stockage des sauvegardes trop petit, BackupPC pourrait manquer d'inodes pour la création de liens.
Ce document utilise trois machines virtuelles, sous VirtualBox, roulant toutes un Serveur SME-9.2.
Les marches à suivre pour des sauvegardes de Serveurs SME physiques sont exactement les mêmes.
Paramètres SSH de tous les serveurs
Vu que:
- Les sauvegardes se font à travers une connexion SSH afin que personne ne puisse copier les données en transit.
- L'usager qui lit les fichiers à être sauvegardés doit être root car, il est le seul qui peut lire tous les fichiers sans exception.
Il faut donc autoriser les connexions SSH pour l'usager root.
- Accès par terminal sécurisé (SSH)
Si tous vos serveurs sont sur le réseau local, choisissez N'autoriser l'accès que depuis les réseaux locaux sinon, choisissez Autoriser l'accès complet (LAN et Internet).
- Autoriser l'administrateur à se connecter au serveur par SSH
Oui
obligatoirement car, seul root peut lire tous les fichiers à sauvegarder.
- Autoriser l'authentification par SSH à l'aide de mots de passe standards
Oui
car quelquefois, on pourrait devoir accéder au serveur pour corriger un trouble quelconque.
BackupPC utilise une clé publique SSH créée par l'usager backuppc pour se connecter sans avoir à fournir de mot de passe.
- Port TCP pour l'accès SSH
On utilise le port2222
afin de dérouter un peu plus les indésirables.
Disque de stockage des sauvegardes
Création d'une partition principale sur le disque de stockage
Les sauvegardes devraient toujours être sur un volume séparé.
On prépare un disque dur avec un système de fichiers ext4
(on peut utiliser tous les systèmes de fichiers qui sont supportés; nous utilisons ext4
car, il autorise plus d'inodes).
Dans ce document, on utilise un disque entier ayant une simple partition primaire: /dev/sdb1
. On pourrait utiliser une matrice RAID ou un volume logique (LVM, ou une combinaison de RAID et LVM). Si vous connaissez la gestion LVM, son utilisation est également recommandée car, plus tard, il sera plus facile de gérer les données des sauvegardes.
Recherche du dispositif[1] (device) du disque de stockage des futures sauvegardes.
# cat /proc/partitions
major minor #blocks name
8 16 20971520 sdb
8 0 8388608 sda
8 1 256000 sda1
8 2 8131584 sda2
9 1 8127488 md1
253 0 7286784 dm-0
253 1 835584 dm-1
9 0 255936 md0
* Le disque est /dev/sdb
.
On lance fdisk
pour la création de la partition.
# fdisk /dev/sdb
On vérifie s'il existe déjà une partition, "p".
p [Entrée]
Disque /dev/sdb: 21.5 Go, 21474836480 octets
255 têtes, 63 secteurs/piste, 2610 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x51550b50
Périphérique Amorce Début Fin Blocs Id Système
Commande (m pour l'aide):
* Il n'y a pas de partition sur le disque. S'il y en avait une, on la supprimerait avec d
(delete / supprimer la partition).
On crée la partition, on entre: n
, p
, 1
, les choix par défaut pour le premier et le dernier cylindre
.
On enregistre les nouveaux paramètres et on quitte wq
(write and quit).
On vérifie.
# cat /proc/partitions
major minor #blocks name
8 16 20971520 sdb
8 17 20964793 sdb1
8 0 8388608 sda
8 1 256000 sda1
8 2 8131584 sda2
9 1 8127488 md1
253 0 7286784 dm-0
253 1 835584 dm-1
9 0 255936 md0
Création du système de fichiers ext4 dans la partition sdb1
Remarque sur les inodes: En plus de l'espace disque total, vous devez vous assurer que vous avez beaucoup d'inodes sur votre partition de données de BackupPC. Certains utilisateurs ont signalé l'épuisement des inodes sur leur partition de données de BackupPC. Par conséquent, même si vous disposez de suffisamment d'espace disque, BackupPC signale un échec lorsque les inodes sont épuisés. C'est un problème particulier avec les systèmes de fichiers ext2
et /ext3
qui ont un nombre fixe d'inodes lors de la construction du système de fichiers. Utilisez df -i
pour voir votre utilisation d'inodes.
Pour notre machine, avec un système de fichiers créé en ext3
sans l'utilisation du paramètre -i
, le nombre d'inodes était de seulement 1 310 720.
BackupPC utilise un très grand nombre de liens. Une partition Ext4
sur un système 64 bits peut avoir 2^64 ou 64bits inodes; ce qui représente 1.2470298e+28 inodes.
Depuis la version BackupPC-4, il n'y a plus d'utilisation de liens physiques (sauf temporairement pour faire des renoms atomiques). Le comptage des références est géré en batch
au niveau de l'application. (Les "hardlinks" resteront toujours pour toutes les sauvegardes héritées des versions BackupPC-3.)
Voici, sur un système déjà existant, les infos de l'espace disque et du nombre d'inodes utilisés par la partition principale.
Espace disque
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/main-root
6,8G 3,5G 2,9G 55% /
tmpfs 1,9G 0 1,9G 0% /dev/shm
/dev/md0 239M 77M 150M 34% /boot
* Environ 3.5 Go d'espace disque est utilisé.
Nombre d'inodes
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/main-root
456064 155019 301045 34% /
tmpfs 490294 1 490293 1% /dev/shm
/dev/md0 64000 54 63946 1% /boot
- Comme on le voit ci-dessus, le nombre d'inodes utilisés est de 155 019 pour 3.5 Go d'espace disque utilisé.
- Pour notre disque de 20 Go avec BackupPC, on prendra au minimum 10 fois plus d'inodes, environ 1 500 000. (Bien au dessus du maximum pour une partition
ext3
de 20 Go créé de manière standard.)
- Prendre en considération: plus d'inodes et plus il faudra de temps pour créer le système de fichiers.
- D'autres systèmes de fichiers tels que btrfs peuvent créer des inodes de manière dynamique; à vous de choisir...
Paramètres de la commande mkfs.ext4
-N nombre d'inodes
Ce paramètre remplace le calcul par défaut du nombre d'inodes qui devrait être réservés pour le système de fichiers (basé sur le nombre de blocs et le ratio octets par inode). Il permet à l'utilisateur de spécifier directement le nombre d'inodes désirés.
Si on spécifie un nombre d'inodes trop grand, mke2fs
donnera une erreur et ne créera pas le système de fichiers.
-b block-size
Spécifie, en octets, la taille des blocs. Les tailles valides sont: 1024, 2048 et 4096 octets par bloc. Si omis, la taille d'un bloc est déterminé de manière heuristique par la taille et l'utilisation du système de fichiers (voir le paramètre -T
).
Si la taille d'un bloc est négative, alors mke2fs
utilisera l'heuristique pour déterminer le taille d'un bloc avec la contrainte que la taille d'un bloc sera au moins de block-size
octets.
* Utile pour certains périphériques matériels qui exigent que la taille des blocs soit un multiple de 2k.
BackupPC utilise un très grand nombre de liens, une longueur de bloc de 1024 est plus profitable.
-L nom_nouveau_volume
Configure l'étiquette (Label) du système de fichiers à nom_nouveau_volume
. La taille maximale du nom est de 16 octets.
-m pourcentage_blocs_réservés
Indique le pourcentage de blocs du système de fichiers réservés pour le superutilisateur. Permet d'éviter la fragmentation. Permet aussi aux démons lancés par le superutilisateur, comme syslogd(8)
, de continuer à fonctionner correctement après que les processus non privilégiés ne soient plus autorisés à écrire sur le système de fichiers. La valeur par défaut est de 5
(5%).
Pour notre exemple, on crée un système de fichiers ext4
sur le nouveau volume /dev/sdb1
.
# mkfs.ext4 -L SAUVEGARDE -b 1024 -N 15000000 -m 1 /dev/sdb1
mke2fs 1.41.12 (17-May-2010) Avertissement : 1463 blocs inutilisés. Étiquette de système de fichiers=SAUVEGARDE Type de système d'exploitation : Linux Taille de bloc=1024 (log=0) Taille de fragment=1024 (log=0) « Stride » = 0 blocs, « Stripe width » = 0 blocs 15005976 i-noeuds, 20963329 blocs 209647 blocs (1.00%) réservés pour le super utilisateur Premier bloc de données=1 Nombre maximum de blocs du système de fichiers=88080384 2559 groupes de blocs 8192 blocs par groupe, 8192 fragments par groupe 5864 i-noeuds par groupe Superblocs de secours stockés sur les blocs : 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 1024001, 1990657, 2809857, 5120001, 5971969, 17915905, 19668993 Écriture des tables d'i-noeuds : complété Création du journal (32768 blocs) : complété Écriture des superblocs et de l'information de comptabilité du système de fichiers : complété Le système de fichiers sera automatiquement vérifié tous les 30 montages ou après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i pour écraser la valeur.
Montage du nouveau volume
Point de montage
On crée un point de montage (répertoire) pour le nouveau volume.
# mkdir -p /var/lib/BackupPC
Ajout dans fstab
On ajoute (>>
) le point de montage dans /etc/fstab
afin que le volume soit monté automatiquement à tous les amorçages.
Prendre tout le contenu de l'encadré pour la commande.
cat >> /etc/fstab <<'EOT' # Pour le volume de stockage des sauvegardes de BackupPC /dev/sdb1 /var/lib/BackupPC ext4 noatime 0 0 EOT
On vérifie.
# tail -n 5 /etc/fstab
Montage du volume dans /var/lib/BackupPC
On remonte tous les volumes en relisant fstab
à l'aide de la commande mount -a
.
# mount -a
On vérifie avec mount
...
# mount | grep BackupPC
... et avec df
.
# df -h
Pour le même volume sans spécifier le nombre d'inodes, la quantité d'espace disque est un peu plus grande.
/dev/sdb1 20G 4,3M 20G 1% /var/lib/BackupPC |
Espace disque en spécifiant le nombre d'inodes.
/dev/sdb1 17G 4,3M 17G 1% /var/lib/BackupPC |
- La différence réside dans l'espace réservé pour le stockage de la table des inodes.
Création des liens symboliques
Cette partie est facultative mais recommandée.
Avec l'ajout de nouveaux liens, tous les fichiers liés à BackupPC (config et journaux) seront stockés sur le volume SAUVEGARDE
. Vous serez alors en mesure d'échanger le disque SAUVEGARDE
entre deux serveurs de sauvegardes.
On crée les sous-répertoires etc
et log
dans le répertoire /var/lib/BackupPC/
.
# mkdir -p /var/lib/BackupPC/{etc,log}
Pour les configurations, on crée un lien /etc/BackupPC
qui pointe vers /var/lib/BackupPC/etc
.
# ln -s /var/lib/BackupPC/etc /etc/BackupPC
Pour les journaux, on crée un lien /var/log/BackupPC
qui pointe vers /var/lib/BackupPC/log
.
# ln -s /var/lib/BackupPC/log /var/log/BackupPC
Installation de la Contrib BackupPC
Dépôt de logiciels
Référence: https://wiki.contribs.org/Fws.
Installation du dépôt de logiciels fws.
Prendre tout le contenu de l'encadré pour la commande.
db yum_repositories set fws repository \ BaseURL http://repo.firewall-services.com/centos/\$releasever \ EnableGroups no GPGCheck yes \ Name "Firewall Services" \ GPGKey http://repo.firewall-services.com/RPM-GPG-KEY \ Visible no \ status disabled
On signale le changement à yum.
# signal-event yum-modify
Installation de la Contribs
Nous installons la contribution BackupPC-4 et les ajouts pour les Serveurs SME.
# yum -y --enablerepo=smecontribs,fws install BackupPC4 smeserver-BackupPC
Signalisation de toutes les modifications
Signalisation sans réamorçage.
# signal-event backuppc-update |
Signalisation traditionnelle avec réamorçage.
# signal-event post-upgrade ; signal-event reboot
AutoBlock
Référence: https://wiki.contribs.org/BackupPC#Known_Issues.
Si on essaie de sauvegarder un Serveur SME distant, on risque de rencontrer une erreur ou un dépassement du délai d'attente de ssh
dû à la fonction AutoBlock
de sshd
.
Bogue: https://bugs.contribs.org/show_bug.cgi?id=9893.
Le message ci-dessous apparaîtra dans le journal de la machine BackupPC du serveur en question.
Output from DumpPreUserCmd: ssh: connect to host 192.168.1.152 port 2222: Connection timed out |
Le problème vient du paramètre AutoBlock=enabled
de sshd
.
Pour une description détaillée d'AutoBlock
, voir la section: #sshd & AutoBlock.
On pourrait ouvrir une connexion sur le serveur distant et désactiver manuellement le paramètre AutoBlock
. Une fois la sauvegarde terminée, il faudrait se reconnecter au serveur distant et réactiver AutoBlock
. De plus, il faudrait le faire à chaque sauvegarde et pour tous les serveurs. Cette solution n'est donc pas très pratique.
Nous allons nous occuper d'AutoBlock
avec les scripts pré/post-sauvegarde ci-dessous.
Contribution Fail2Ban
Lorsqu'on désactive la variable AutoBlock
, le Serveur SME n'empêche plus les tentatives de connexions SSH infructueuses. Les tentatives peuvent ainsi se poursuivre tout au long de la sauvegarde.
Pour remédier à cette situation, on peut installer la contribution Fail2ban qui elle, bannira les adresses IP des instigateurs de ces tentatives.
Pour l'installation de Fail2ban, voir: https://www.micronator.org/affaires/produit/sme-9-x8-x-fail2ban/.
Scripts pré/post-sauvegarde
Derscription
- Au début d'une sauvegarde, un Serveur SME nécessite une commande pré-sauvegarde
signal-event pre-backup
pour manipuler les bases de données afin qu'elles deviennent disponibles pour être sauvegardées. - À la fin de la sauvegarde, le serveur nécessite une commande post-sauvegarde
signal-event post-backup
pour remettre les bases de données dans leur état initial. - BackupPC fournit une variable
$Conf{DumpPreUserCmd}
pour exécuter une commande pré-sauvegarde et$Conf{DumpPostUserCmd}
pour une commande post-sauvegarde. - BackupPC fournit deux paramètres aux commandes pré-sauvegarde et post-sauvegarde:
$sshPath
- le chemin de la commandessh
(Pour les Serveurs SME, le chemin de cette commande est toujours le même:/usr/bin/ssh
).$host
- variable qu'utilise BackuPC pour sauvegarder le nom ou l'IP du serveur à être sauvegardé.
Fail2ban
Vu que ce ne sont pas tous les Serveurs SME qui roulent Fail2ban, les scripts de pré/post-sauvegarde présentés dans cette section s'occupent de désactiver AutoBlock
avant la sauvegarde et de la réactiver après la sauvegarde.
Si certains Serveurs SME roulent Fail2ban, AutoBlock
est désactivé en permanence et c'est Fail2ban qui le remplace. Pour ces serveurs particuliers, on n'utilise pas ces scripts de pré/post-sauvegarde. Voir les paragraphes: #Variable DumpPreUserCmd et #Variable DumpPostUserCmd.
Répertoire de stockage des scripts
Nous créons un répertoire pour stocker nos scripts.
# mkdir /var/lib/BackupPC/script
On ajuste le propriétaire et le groupe.
# chown backuppc:backuppc /var/lib/BackupPC/script
On ajuste les droits.
# chmod 750 /var/lib/BackupPC/script
Script pre-sauvegarde.sh
Prendre tout le contenu de l'encadré pour générer le script dans le fichier pre-sauvegarde.sh
.
cat > /var/lib/BackupPC/script/pre-sauvegarde.sh <<'EOT' #!/bin/sh #------------------------------------------- # /var/lib/BackupPC/script/pre-sauvegarde.sh # # Michel-André, 2018-05-06_09h50 #------------------------------------------- # Désactivation d'AutoBlock /usr/bin/ssh -l root $1 "config setprop sshd AutoBlock disabled; /sbin/e-smith/signal-event remoteaccess-update" # Pause de BackupPC /bin/sleep 45 # Le test ci-dessous va écrire le statut de la propriété AutoBlock dans le journal. # Output from DumpPreUserCmd: AutoBlock=disabled # ou # Output from DumpPreUserCmd: AutoBlock=enabled if ( ! (/usr/bin/ssh -l root $1 config show sshd | grep 'AutoBlock=disabled') ) then /bin/mail -s "AutoBlock=disabled NON FONCTIONNEL, arrêt des sauvegardes de la machine $1 pour 24 heures" admin@micronator-101.org < /dev/null # Arrêt de la sauvegarde en cours et désactivation des sauvegardes de cette machine pour 24 heures. # # Référence: https://www.mail-archive.com/backuppc-users@lists.sourceforge.net/msg10075.html # BackupPC_serverMesg stop HOST REQ_USER BACKOFF # HOST is the host to cancel, REQ_USER is the requesting user (just for log purposes) and BACKOFF is the backoff time in hours. # /usr/share/BackupPC/bin/BackupPC_serverMesg stop $1 backuppc 24 fi # pre-backup /usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event pre-backup" # Pause de BackupPC /bin/sleep 15 EOT |
On ajuste le propriétaire et le groupe du script.
# chown backuppc:backuppc /var/lib/BackupPC/script/pre-sauvegarde.sh
On ajuste les droits.
# chmod 550 /var/lib/BackupPC/script/pre-sauvegarde.sh
Variable $Conf{DumpPreUserCmd}
Choisir l'Hôte > Modifier la configuration > onglet Paramètres de sauvegarde > cadre Commandes des usagers.
/var/lib/BackupPC/script/pre-sauvegarde.sh $host |
- Le chemin et le nom du script de pré-sauvegarde:
/var/lib/BackupPC/script/pre-sauvegarde.sh
. - Le nom ou l'IP (de la machine à être sauvegardée:
$host
) qu'on passe en paramètre au script.
Si certains Serveurs SME roulent Fail2ban, AutoBlock
est désactivé en permanence et c'est Fail2ban qui le remplace. Pour ces serveurs particuliers, on n'utilise pas le script de pré-sauvegarde; on entre plutôt directement la commande suivante dans la variable DumpPreUserCmd
:
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event pre-backup ; /bin/sleep 15" $host |
Script post-sauvegarde.sh
Prendre tout le contenu de l'encadré pour générer le script dans le fichier post-sauvegarde.sh
.
cat > /var/lib/BackupPC/script/post-sauvegarde.sh <<'EOT' #!/bin/sh #-------------------------------------------- # /var/lib/BackupPC/script/post-sauvegarde.sh # # Michel-André, 2018-05-06_09h58 #-------------------------------------------- # Commande post-backup /usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event post-backup" # Pause de BackupPC /bin/sleep 15 # Activation d'AutoBlock /usr/bin/ssh -l root $1 "config setprop sshd AutoBlock enabled; /sbin/e-smith/signal-event remoteaccess-update" # Pause de BackupPC /bin/sleep 45 # Le test ci-desous va écrire le statut de AutoBlock dans le journal. # Output from DumpPreUserCmd: AutoBlock=disabled # ou # Output from DumpPreUserCmd: AutoBlock=enabled if ( ! (/usr/bin/ssh -l root $1 config show sshd | grep 'AutoBlock=enabled') ) then /bin/mail -s "AutoBlock=ensabled NON FONCTIONNEL. Vérifiez le paramètre de la machine $1 s.v.p." admin@micronator-101.org < /dev/null fi EOT
On ajuste le propriétaire et le groupe du script.
# chown backuppc:backuppc /var/lib/BackupPC/script/post-sauvegarde.sh
On ajuste les droits.
# chmod 550 /var/lib/BackupPC/script/post-sauvegarde.sh
On vérifie.
# ls -lsd /var/lib/BackupPC/script/post-sauvegarde.sh
Variable $Conf{DumpPostUserCmd}
Choisir l'Hôte > Modifier la configuration > onglet Paramètres de sauvegarde > cadre Commandes des usagers.
/var/lib/BackupPC/script/post-sauvegarde.sh $host |
Si certains Serveurs SME roulent Fail2ban, AutoBlock
est désactivé en permanence et c'est Fail2ban qui le remplace. Pour ces serveurs particuliers, on n'utilise pas le script de post-sauvegarde; on entre plutôt directement la commande suivante dans la variable DumpPostUserCmd
:
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event post-backup ; /bin/sleep 15" $host |
Clé SSH de BackupPC
BackupPC doit générer une clé SSH, qu'on téléversera sur les machines à sauvegarder, afin qu'il puisse ouvrir un canal de communication SSH sans avoir à fournir de mot de passe.
Usager backuppc
L'installation de BackupPC a créé l'usager backuppc.
# cat /etc/passwd | grep backuppc
backuppc:x:393:393::/var/lib/BackupPC:/sbin/nologin
Génération de la clé SSH
On se substitue à l'usager backuppc.
# su -s /bin/bash backuppc
On génère une clé SSH de type RSA et de 2048 bits.
- On accepte le nom du fichier par défaut en tapant la touche [Entrée].
- On n'utilise pas de phrase de passe[2] en tapant la touche [Entrée].
- On confirme en tapant encore la touche [Entrée].
# ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/BackupPC/.ssh/id_rsa): [Entrée] Created directory '/var/lib/BackupPC/.ssh'. Enter passphrase (empty for no passphrase): [Entrée] Enter same passphrase again: [Entrée] Your identification has been saved in /var/lib/BackupPC/.ssh/id_rsa. Your public key has been saved in /var/lib/BackupPC/.ssh/id_rsa.pub. The key fingerprint is: a9:cb:44:f6:1a:ec:df:aa:1a:85:69:30:a5:5e:b6:5e backuppc@sme-9 The key's randomart image is: +--[ RSA 2048]----+ | ..... | | ...o. | | o.... . | |ooB . | |++++ S | |+*oo | |.E= | |. . | | | +-----------------+
On vérifie.
ls -ls /var/lib/BackupPC/.ssh/
2 -rw------- 1 backuppc backuppc 1675 28 avril 10:30 id_rsa 1 -rw-r--r-- 1 backuppc backuppc 396 28 avril 10:30 id_rsa.pub
La clé id_rsa est la clé privée qui doit toujours être cachée et n'être divulguée à absolument personne.
La clé id_rsa.pub est la clé publique et peut être partagée avec n'importe qui. Elle sert à chiffrer un message qui vous est destiné et que seule votre clé privée peut déchiffrer.
Différence entre les jeux de clés SSH
Jeu SSH pour BackupPC
- Ce jeu de clés SSH servira uniquement pour les communications SSH entre les clients des sauvegardes et le serveur BackupPC. Ce jeu se trouve dans le répertoire
/var/lib/BackupPC/.ssh
et comprend:ssh/id_rsa
etid_rsa.pub
.
Jeu SSH du Serveur SME
- Le jeu de clés SSH standard d'un Serveur SME se trouve dans le répertoire
/etc/ssh/
et comprend:ssh_host_rsa_key
etssh_host_rsa_key.pub
.
Téléversement de la clé SSH publique de BackupPC
Étant toujours l'usager backuppc, On téléverse la clé publique de BackupPC sur le serveur lui-même (127.0.0.1[3]) afin que BackupPC puisse entrer en communication avec le serveur hôte sans devoir utiliser un mot de passe lors d'une connexion SSH.
Explications des paramètres pour la prochaine commande.
cat /var/lib/BackupPC/.ssh/id_rsa.pub
indique d'afficher la clé publiqueid_rsa.pub
.- Le caractère de pipe
|
indique de passer le résultat de la commande précédentecat
à la commande suivantessh
. - Le paramètre
-p 2222
indique d'utiliser le port 2222 pour la communication SSH.
Si nous avons spécifié un port différent dans le fichier /root/.ssh/config, le port spécifié dans le fichier config aura toujours préséance sur celui spécifié sur la ligne de commande pour l'usager root. |
- Le paramètre
root@127.0.0.1
indique de se connecter en tant queroot
à l'adresse 127.0.0.1 (localhost). - La partie entre guillemets ("...") indique au serveur de destination i.e. BackupPC (localhost) d'exécuter la commande qui se trouve entre ces guillemets. Donc, BackupPC va afficher avec
cat
ce qu'il reçoit et va l'ajouter>>
au fichier:/root/.ssh/authorized_keys2
.
# cat /var/lib/BackupPC/.ssh/id_rsa.pub | ssh -p 2222 root@127.0.0.1 "cat >> /root/.ssh/authorized_keys2"
The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established. RSA key fingerprint is a0:2f:27:ab:cc:d8:a0:57:fc:57:ee:63:dd:58:cc:02. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts. root@127.0.0.1's password: mot-de-passe-de-root_du-serveur-BackupPC
Vérification de la connexion
On vérifie la connexion SSH sans mot de passe.
# ssh -p 2222 root@127.0.0.1
Last login: Fri Apr 28 10:31:11 2018 from 127.0.0.1 ************ Welcome to SME Server 9.2 ************* Before editing configuration files, familiarise yourself with the automated events and templates systems. Please take the time to read the documentation http://wiki.contribs.org/Main_Page Remember that SME Server is free to download and use, but it is not free to build Please help the project : http://wiki.contribs.org/Donate ****************************************************
* La connexion sans mot de passe fonctionne.
On se désengage de la connexion SSH sans mot de passe.
# exit
Nous sommes de retour, on sort de su
et on revient à l'usager root.
# exit
Accès à la page BackupPC
Vous pouvez accéder à l'interface de BackupPC:
- Par le gestionnaire Server Manager.
- Directement par l'adresse de BackupPC: https://mon_domaine.tld/BackupPC.
Accès par le gestionnaire Server Manager
On lance le gestionnaire Server Manager en allant à: https://mon_domaine.tld/server-manager ou en passant par son adresse IP: https://IP_du_Serveur_SME/server-manager.
- On se logue obligatoirement avec l'usager
admin
. - On clique BackupPC
Accès direct par l'adresse de BackupPC
https://mon_domaine.tld/BackupPC ou avec l'adresse IP: https://IP_du_Serveur_SME/BackupPC.
Si nous ne sommes pas déjà logué dans le gestionnaire Server Manager, on nous présentera l'écran de login:
- On se logue obligatoirement avec l'usager
admin/mot-de-passe
du Serveur SME. - La page principale de BackupPC s'affiche sans avoir à passer par le gestionnaire.
Configuration préliminaire de BackupPC
CGI
Langue de l'interface
On clique: Edit Config > onglet CGI.
- Pour la variable Language, on choisit
fr
.
Le boutonSave
devient actif.
On le clique pour sauvegarder la modification. - Rafraîchir la page du navigateur
Renvoyer.
L'interface BackupPC est maintenant en français.
Language
s'applique à l'interface CGI seulement.Les fichiers journaux et les autres textes sont toujours en anglais.
Format de la date pour l'interface CGI
La valeur 1 utilise des dates de type US (MM/DD), la valeur 2 utilise le format AAAA-MM-JJ complet et 0 les dates internationales (JJ/MM).
- - On clique: Modifier la configuration > onglet CGI.
- On veut un affichage AAAA-MM-JJ, on entre 2 à la variableCgiDateFormatMMDD
et on clique Sauvegarder pour enregistrer ce nouveau paramètre.
Paramètres de sauvegarde
CompressLevel (Niveau de compression)
- Il n'y a rien à faire, sauf peut-être, le niveau de compression des sauvegardes; le défaut de 3 est très suffisant.
- Il ne faut pas oublier que la compression requière une assez grande partie du temps CPU.
- Il n'y a presque rien à gagner à changer le niveau de compression.
- Si on a modifié un paramètre sur cette page, on clique Sauvegarder.
Courriel
EMailNotifyMinDays 0.97
Période minimale entre les courriels consécutifs à un seul utilisateur. Ce paramètre tente de garder les courriels gênants pour les utilisateurs à un niveau raisonnable. La vérification du courriel est effectuée tous les soirs, de sorte que ce nombre est effectivement arrondi. (0.97
signifie qu'un utilisateur ne recevra jamais de courriel plus d'une fois tous les 1 jour.)
EMailFromUserName backuppc
Expéditeur du courriel. Selon le gestionnaire de messagerie de BackupPC, il s'agit d'un nom complet (backuppc) ou d'un nom complet qualifié (backuppc@mondomaine.com).
EMailAdminUserName admin
Adresse de destination d'un utilisateur administratif qui recevra un courriel tous les soirs avec les avertissements et les erreurs. S'il n'y a pas d'avertissement ou d'erreur, aucun courriel ne sera envoyé. Selon le gestionnaire de messagerie de BackupPC, il s'agit d'un nom complet (admin) ou d'un nom complet qualifié (admin@FQDN).
EMailUserDestDomain @micronator.org
Nom du domaine de destination pour les courriels envoyés aux utilisateurs. Par défaut, il est vide et signifie que le courriel est envoyé à des adresses simples et non qualifiées. Sinon, définissez ce paramètre avec le domaine de destination, par exemple:
Avec les paramètres $Conf{EMailAdminUserName} = admin
et $Conf{EMailUserDestDomain} = @micronator.org
dans le fichier /var/lib/BackupPC/etc/config.pl
, le courrier électronique sera envoyé à: admin@micronator.org
.
Sauvegarder.
Vérification du courriel
Pour vérifier que BackupPC peut exécuter sendmail
et envoyer correctement le courrier électronique, vous pouvez lui demander de vous envoyer un courriel de test.
On devient l'usager backuppc>.
# su -s /bin/bash backuppc
On envoie le courriel de test.
# /usr/share/BackupPC/bin/BackupPC_sendEmail -u admin@micronator.org
On vérifie le courrier d'admin. |
On se désengage de l'usager backuppc.
# exit
Horaire
Cadre Sauvegardes Complètes
FullPeriod 6.97
Période minimale en jours, entre les sauvegardes Complètes. Une vidange complète ne sera effectuée que si au moins ce délai s'est écoulé depuis la dernière sauvegarde Complète et, au moins IncrPeriod
jours s'est écoulée depuis la dernière sauvegarde réussie.
Généralement, cette valeur est légèrement inférieure à un nombre entier de jours. Le temps pris pour la sauvegarde, plus la granularité de WakeupSchedule
rendront l'intervalle de sauvegarde réel un peu plus long.
FillCycle 1
Avec la version V4+, les sauvegardes Complètes/Incrémentielles sont dissociées de fusionnée/non-fusionnée.
Pour imiter le comportement de la version V3, si FillCycle
est défini à zéro, alors fusionnée/non-fusionnée continuera à s'associer à Complète/Incrémentielle: les sauvegardes Complètes seront fusionnées et les sauvegardes Incrémentielles seront non fusionnées. (Toutefois, la sauvegarde la plus récente est toujours fusionné, qu'elle soit Complète ou Incrémentielle.) La valeur 0 est le paramètre recommandé pour simplifier les choses; vu que l'expiration de la sauvegarde est en fait basée sur fusionnée/non-fusionnée (non pas sur Complète/Incrémentielle) en les conservant ainsi synchronisées, facilite alors la compréhension des paramètres d'expiration.
Si vous envisagez d'effectuer uniquement des sauvegardes Incrémentielles (c'est-à-dire: FullPeriod
est défini à une très grande valeur), vous devez définir FillCycle
à quelle fréquence vous voulez qu'une sauvegarde stockée soit fusionnée. Par exemple, si FillCycle
est défini à 7, toutes les 7e sauvegardes seront fusionnées (que la sauvegarde correspondante soit Complète ou non).
Il existe deux raisons pour lesquelles vous voulez un paramètre FillCycle
différent de 0 lorsque vous ne faites que des Incrémentielles:
- Une sauvegarde fusionnée est un point de départ pour la fusion des deltas lorsque vous restaurez ou examinez des sauvegardes. Avoir périodiquement des sauvegardes fusionnées rend plus efficace l'examen ou la restauration d'anciennes sauvegardes.
- Plus important encore, dans V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée et non pas si la sauvegarde d'origine était Complète/Incrémentielle. S'il n'y a pas de sauvegardes fusionnées (autres que la plus récente), alors
FullKeepCnt
et les paramètres qui y sont associés n'auront aucun effet.
- Si
FillCycle
= 1, toutes les sauvegardes seront Fusionnées et le demeureront mais, leur début sera légèrement plus long et on verra "début de la sauvegarde" s'afficher pour un certain temps supplémentaire. - Si BackupPC doit faire du nettoyage à cause d'un dépassement du nombre de sauvegardes à conserver, le message de droite s'affichera après celui de gauche.
FullKeepCnt 1
Nombre de sauvegardes Fusionnées à conserver (le nom porte à confusion). Doit être > = 1.
À partir de V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée et non plus si la sauvegarde d'origine était Complète ou Incrémentielle. Pour des raisons de compatibilité avec les anciennes versions, ce paramètre continue d'être appelé FullKeepCnt
plutôt que FilledKeepCnt
. Si FillCycle
est à 0, alors, les sauvegardes Complètes continueront d'être Fusionnées; donc, les termes sont interchangeables. Pour les sauvegardes V3, les paramètres d'expiration ont leur signification d'origine.
Chaque fois qu'une sauvegarde Complète se termine avec succès, la plus ancienne est supprimée. Si ce nombre est diminué, les anciennes sauvegardes en surplus seront supprimées.
FullKeepCntMin 1
Les anciennes sauvegardes Complètes sont supprimées après FullAgeMax
jours. Cependant, BackupPC conserve au moins FullKeepCntMin
sauvegardes Complètes, quel que soit leur âge.
On garde au moins 1 sauvegarde Complète.
FullAgeMax 180
FullAgeMax
sera augmenté à FullKeepCnt
fois FullPeriod
si FullKeepCnt
spécifie suffisamment de sauvegardes Complètes pour dépasser FullAgeMax
.
Cadre Sauvegardes Incrémentielles
IncrPeriod 0.97
Période minimale en jours entre les sauvegardes Incrémentielles (une sauvegarde Incrémentielle demandée par l'utilisateur sera effectuée à tout moment, à sa demande).
Généralement, cette valeur est légèrement inférieure à un nombre entier de jours. Le temps pris pour la sauvegarde, plus la granularité de WakeupSchedule
rendront l'intervalle de sauvegarde réel un peu plus long.
IncrKeepCnt 6
Nombre de sauvegardes Incrémentielles à conserver. Doit être > = 1.
Chaque fois qu'une sauvegarde Incrémentielle se termine avec succès et que le compte est > que IncrKeepCnt
, la plus ancienne est supprimée. Si ce nombre est diminué, les anciennes sauvegardes Incrémentielles en surplus seront supprimées.
IncrKeepCntMin 1
Garder au moins 1 sauvegarde Incrémentielle.
IncrAgeMax 30
Les sauvegardes Incrémentielles très anciennes sont supprimées après IncrAgeMax
jours. Cependant, BackupPC conserve au moins IncrKeepCntMin
sauvegardes Incrémentielles, quel que soit leur âge.
Cadre Suspension
BackupsDisable 0
On peut désactiver en mettant à 1 et activer les sauvegardes dans la configuration des machines clientes lors de leur création.
Désactive toutes les sauvegardes Complètes et Incrémentielles. Ce paramètre est utile pour un client qui n'est plus sauvegardé (par exemple: une machine qui est retirée) mais, vous souhaitez conserver les dernières sauvegardes disponibles pour la navigation ou la restauration vers d'autres machines.
Ce paramètre peut prendre trois valeurs:
- 0 - Les sauvegardes sont activées.
- 1 - Ne pas faire de sauvegardes régulières sur ce client. Les sauvegardes demandées manuellement(via l'interface CGI) se produiront toujours.
- 2 - Ne faire aucune sauvegarde sur ce client. Les demandes manuelles des sauvegardes (via l'interface CGI) seront ignorées.
BlackoutBadPingLimit 3
Si le serveur ne répond pas après le 3e ping, abandonner.
BlackoutGoodCnt 7
Les PCs qui sont toujours, ou souvent, présents sur le réseau peuvent être sauvegardés après les heures régulières afin de réduire la charge sur le PC, le réseau et le serveur pendant les heures de travail. Pour chaque PC, le nombre de pings consécutifs est maintenu. Une fois qu'un PC a au moins BlackoutGoodCnt
bons pings consécutifs, il est sujet à un "blackout" et non sauvegardé pendant les heures et les jours spécifiés par BlackoutPeriods
.
Pour permettre le redémarrage périodique d'un PC ou d'autres brèves périodes où un PC n'est pas sur le réseau, un nombre de pings négatifs consécutifs est autorisé avant que le nombre de bons ping soit réinitialisé. Ce paramètre est BlackoutBadPingLimit
.
Les bons et mauvais pings ne se produisent pas avec le même intervalle. Si une machine est toujours présente sur le réseau, un ping ne sera envoyé qu'une fois tous les IncrPeriod
(par exemple: une fois par jour). Donc, un paramètre pour BlackoutGoodCnt
de 7 signifie qu'il faudra environ 7 jours pour qu'une machine soit soumise à un "blackout". D'un autre côté, si un ping échoue, il sera réessayé à chaque fois que BackupPC se réveillera, par exemple, toutes les heures ou toutes les deux heures. Donc, un paramètre pour BlackoutBadPingLimit
de 3 signifie que le PC perdra son état de "blackout" après 3-6 heures d'indisponibilité.
Pour désactiver la fonction de "blackout", configurez BlackoutGoodCnt
sur une valeur négative. Une valeur de 0 rendra toutes les machines sujettes à un "blackout". Mais, si vous ne voulez pas faire de sauvegardes pendant la journée, il serait plus facile de simplement mettre WakeupSchedule
à un horaire restreint.
BlackoutPeriods
Une ou plusieurs périodes d'interdiction peuvent être spécifiées. Si un client est sujet à un "blackout", aucune sauvegarde régulière (non manuelle) ne sera démarrée pendant l'une de ces périodes. Les paramètres hourBegin
et hourEnd
spécifient les heures à partir de minuit et weekDays
est une liste des jours de la semaine où 0 est dimanche, 1 lundi, etc.
Cadre Divers
RestoreInfoKeepCnt 10
Nombre de journaux de restauration à conserver. BackupPC mémorise les informations de chaque demande de restauration. Ce nombre, par client, sera conservé avant que les plus anciens ne soient purgés.
Les fichiers/répertoires transmis via les téléchargements Zip ou Tar ne sont pas considérés comme des restaurations. Seule la première option de restauration compte pour les restaurations consignées.
ArchiveInfoKeepCnt 10
Nombre de journaux d'archives à conserver. BackupPC mémorise les informations sur chaque requête de sauvegarde. Ce nombre d'archives du journal de chaque client sera conservé avant que les plus anciennes ne soient purgées.
BackupZeroFilesIsFatal
Une sauvegarde d'un partage ayant zéro fichier est considérée comme fatale. Ce paramètre est utilisé pour attraper diverses erreurs qui surviennent lorsque Xfer ne sauvegarde aucun fichier. Si vous avez des partages qui peuvent être vides (et donc une sauvegarde vide est valide), vous devez mettre cet indicateur à 0 (décoché).
- Sauvegarder
Serveur
MaxOldLogFiles 14
Nombre maximal de fichiers journaux que BackupPC conserve dans le répertoire des journaux. L'âge de ces fichiers est mis à jour tous les soirs. Un paramètre de 14
signifie que le répertoire du journal contiendra environ 2 semaines de vieux fichiers journaux: les fichiers LOG, LOG.0, LOG.1, ... LOG.14 (sauf le journal d'aujourd'hui, ces fichiers auront une extension de ".z" si la compression est activée).
Si vous diminuez ce nombre après que BackupPC ait roulé un certain temps, vous devrez supprimer manuellement les anciens fichiers journaux.
- Sauvegarder
Xfer
XferLogLevel 0
Niveau de verbosité dans les fichiers journaux Xfer.
- 0 signifie être calme,
- 1 donnera une ligne par fichier,
- 2 montrera également les fichiers sautés par les incrémentielles,
- des valeurs plus élevées donnent plus de résultats.
Pour le déverminage, un niveau de 8 pourrait vous orienter vers une solution à un problème donné.
- Sauvegarder
Paramètres ssh
Port SSH du Serveur SME 2222
Dans le gestionnaire Server Manager, nous avons déjà configuré le Port TCP pour l'accès SSH à 2222.
Il faut ajuster le port SSH pour les communications de BackupPC vers les Serveurs SME clients.
Fichier de configuration SSH de BackupPC
Le répertoire pour tout ce qui concerne SSH est: /var/lib/BackupPC/.ssh
.
Nous créons un fichier pour spécifier les paramètres de configuration SSH de BackupPC.
# touch /var/lib/BackupPC/.ssh/config
On ajuste le propriétaire et le groupe du fichier.
# chown backuppc:backuppc /var/lib/BackupPC/.ssh/config
On ajuste les droits.
# chmod 640 /var/lib/BackupPC/.ssh/config
Spécification du port SSH
Il existe plusieurs manières de spécifier ce port mais, la plus efficace est celle ci-dessous.
Host *
Port 2222 |
Ce paramètre, dans le fichier de configuration SSH de BackupPC, aura préséance sur tous les autres paramètres de BackupPC spécifiant le port SSH.
Nous aurions pu utiliser les expressions suivantes pour spécifier le nom de l'hôte. Pour plus d'information, voir: https://www.digitalocean.com/community/tutorials/how-to-configure-custom-connection-options-for-your-ssh-client.
Host 192.168.1.33,192.168.1.149
Port 2222 |
Autre forme.
Host 192.168.1.0/24
Port 2222 |
On peut spécifier des hôtes utilisant des ports différents.
Host 192.168.1.33
Port 2222 Host 192.168.1.144 Port 3333 |
Sur notre réseau, tous les Serveurs SME utilisent le port SSH 2222 alors, pour notre réseau, on spécifie le port 2222.
Prendre tout le contenu de l'encadré pour générer le fichier config
.
cat > /var/lib/BackupPC/.ssh/config <<'EOT'
# Michel-André: 2018-04-24_11h04 HNE
# Spécification du port SSH à être utilisé par BackupPC
Host *
Port 2222
EOT
Il faut que le mot Port soit au moins à un espace de la marge de gauche.
On vérifie les droits, le propriétaire et le groupe.
# ls -ls /var/lib/BackupPC/.ssh/config
0 -rw-r----- 1 backuppc backuppc 120 28 avril 10:52 /var/lib/BackupPC/.ssh/config
Propriétés DB
Il n'existe que trois propriétés DB que vous pouvez modifier:
- status
[enabled | disabled]
Voulez-vous que le service démarre automatiquement à l'amorçage du serveur? - examples
[enabled | disabled]
Souhaitez-vous que les exemples de fichiers de configuration soient ajoutés à nouveau s'ils ont été supprimés? - sudo
Liste des commandes que l'usager backuppc pourra exécuter en tant que root en utilisantsudo
. La valeur par défaut est:/usr/bin/rsync,/bin/gtar
.
Affichage des propriétés du service backuppc.
# db configuration show backuppc
backuppc=service examples=enabled status=enabled sudo=/usr/bin/rsync,/bin/gtar
Après avoir modifier une de ces propriétés, vous devez en signaler la mise à jour en lançant la commande ci-dessous.
# signal-event backuppc-update
Utilitaire sudo
L'utilitaire sudo
[4] est une commande informatique utilisée principalement dans les systèmes d'exploitation de type Linux/Unix. (abréviation de substitute user do: "exécuter en se substituant à l'utilisateur".)
Cet utilitaire permet, à un utilisateur autorisé, d'exécuter une commande en tant que superutilisateur (root) ou d'un autre utilisateur tel que spécifié par la politique de sécurité (fichier de configuration).
Dans notre cas particulier sudo offre, entre autre à l'usager backuppc, une liste de commandes que ce dernier pourra exécuter en tant que root.
Par défaut, cette liste comprend les commandes suivantes:
- /usr/bin/rsync
- /bin/gtar
Fichier de configuration de sudo
L'utilitaire sudo est un cas particulier car, sa configuration se trouve dans le fichier /etc/sudoers
.
Pour modifier ce fichier de configuration, il faut absolument utiliser l'éditeur visudo
.
Lancement de l'éditeur de sudo.
visudo |
Erreur en modifiant le fichier /etc/sudoers
avec visudo
Si vous avez fait une erreur lors de la modification du fichier, un message d'erreur de syntaxe s'affichera à la sortie de visudo
et l'invite demandera ce que visudo
devrait faire.
visudo: >>> /etc/sudoers: syntax error near line 15 <<<
Options are: |
La meilleure réponse est "x", sans guillemets, pour quitter visudo
sans sauvegarder les changements apportés.
Réveil par le réseau (WOL)[5]
À titre d'exemple, vous voulez être en mesure de réveiller une machine si la carte réseau de celle-ci possède l'option réveil par le réseau (Wake On Lan).
Modifier la propriété sudo
et ajouter la commande /sbin/ether-wake
.
# config setprop backuppc sudo `config getprop backuppc sudo`,/sbin/ether-wake |
Signaler le changement...
Modifier la propriété sudo
et ajouter la commande /sbin/ether-wake
.
# signal-event backuppc-update |
... puis ajoutez simplement un script, tel que ci-dessous, à votre commande pré-sauvegarde
ou à votre commande ping
.
#!/bin/sh |
IMPORTANT Si vous utilisez l'usager administrateur backuppc par défaut, vous devrez utiliser le chemin complet pour les commandes ci-dessus.
Les scripts ne doivent pas être placés dans /etc/BackupPC
car les autorisations seront remplacées. On peut les insérer dans notre répertoire de stockage de scripts: /var/lib/BackupPC/script
.
Configuration du gabarit localserver-template
Pour l'installation, nous avons utilisé la contribution BackupPC4 et un ajout pour les Serveurs SME: smeserver-BackupPC
qui inclut smeserver-remoteuseraccess
.
smeserver-BackupPC
Crée les gabaritslocalserver-template
etsmeserver-template
utilisés lors de la création de machines pour les Serveurs SME dont on veut faire des sauvegardes.
smeserver-remoteuseraccess
Sert à la connexion ssh vers les Serveurs SME.
Nous allons ajuster certains paramètres du gabarit de base localserver-template
.
Lorsque nous utiliserons ce gabarit pour créer une nouvelle machine pour le serveur hôte de BackupPC, il ne sera pas nécessaire de configurer la nouvelle machine car le gabarit s'en aura chargé.
Paramètres de sauvegarde
Choisir l'Hôte > localserver-template > Modifier la configuration > Paramètres de sauvegarde.
DumpPreUserCmd
/var/lib/BackupPC/script/pre-sauvegarde.sh $host |
DumpPostUserCmd
/var/lib/BackupPC/script/post-sauvegarde.sh $host |
Pour plus d'information, voir le paragraphe: #Scripts pré/post-sauvegarde.
BlackoutPeriods
- - Une ou plusieurs périodes d'interdiction peuvent être spécifiées.
Aucune sauvegarde régulière (non manuelle) ne sera démarrée pendant l'une de ces périodes.hourBegin
ethourEnd
spécifient les heures à partir de minuit etweekDays
est une liste des jours de la semaine où 0 est dimanche, 1 est lundi, etc.
Nous ne voulons pas que le serveur se sauvegarde lui-même pendant qu'il sauvegarde un autre serveur et vu que les machines des autres serveurs auront une période d'interdiction de7.0 - 19.5
, on échange donc ces valeurs par défaut en spécifiant19.5 - 7.0
pour la machine hôte de BackupPC. Avec cet échange, la période de sauvegarde du serveur BackupPC sera exlusive de la période de sauvegarde des autres serveurs.
- Sauvegarder.
Courriel
Ajustez vers quelle adresse courriel vous voulez envoyer les notifications de BackupPC.
- Sauvegarder.
Horaire
FillCycle 1
Pour plus d'information sur cette variable, voir ci-dessus: #FillCycle.
BackupsDisable 1
On activera les sauvegardes seulement après la création d'une nouvelle machine.
Sauvegardes du serveur hôte de BackupPC
Vu que le serveur hôte de BackupPC ne sert qu'à faire des sauvegardes et qu'il n'est pas nécessaire de le sauvegarder à toutes les semaines (6.97 jours), nous pourrions ajuster FullPeriod
pour une sauvegarde Complète mensuelle seulement, en spécifiant FullPeriod
à 30.5 jours. Nous pourrions aussi ajuster IncrPeriod
pour une sauvegarde Incrémentielle hebdomadaire seulement, en spécifiant IncrPeriod
à 6.97 jours.
- Sauvegarder.
Xfer
XferLogLevel 0
Niveau de verbosité dans les fichiers journaux Xfer.
- 0 signifie être calme,
- 1 donnera une ligne par fichier,
- 2 montrera également les fichiers sautés par les incrémentielles.
Des valeurs plus élevées donneront plus de résultats.
- Une verbosité de 8 servira pour le débogage.
BackupFilesExclude
Les sous-répertoires de /var/lib/BackupPC
sont les suivants:
- cpool - Stockage de tous les fichiers compressés à partir des sauvegardes.
- etc - Stockage des fichiers de configuration.
- log - Stockage des journaux des sauvegardes/restaurations.
- lost+found - Les fichiers qui seraient normalement perdus à cause d'une corruption de répertoire seraient liés dans ce répertoire.
- mes_restaurations - Répertoire de stockage des fichiers TAR pour les restaurations. Voir: #On crée un répertoire de stockage pour nos futurs fichiers TAR
- pc - Les sauvegardes de chaque $hôte sont stockées sous ce répertoire sous pc/$hôte.
- pool - Tous les fichiers non compressés provenant des sauvegardes sont stockés dans ce répertoire.
- script - Contient nos scripts de pré/post-sauvegarde.
- .ssh - Répertoire des fichiers relatifs à SSH pour BackupPC. Voir: #Fichier de configuration SSH de BackupPC.
Le gabarit par défaut de local-smeserver exclut le répertoire /var/lib/BackupPC
des sauvegardes.
Lorsqu'on sauvegarde le serveur hôte de BackupPC par lui-même, nous voulons inclure certains sous-répertoires de /var/lib/BackupPC
et en exclure d'autres.
- On détruit donc l'exclusion complète:
* Vis-a-vis/var/lib/BackupPC
, on cliqueDétruire
.
- On remplace l'exclusion complète par les exclusions suivantes seulement:
* Ajouter et on entre les répertoires suivants.
- /var/lib/BackupPC/cpool
- /var/lib/BackupPC/mes_restaurations
- /var/lib/BackupPC/pc
- /var/lib/BackupPC/pool.
On exclut aussi les fichiers suivants des sauvegardes:
- /etc/fstab - Sert pour le montage des disques.
- /etc/udev/rules.d/70-persistent-net.rules - Relie les adresses MAC des cartes réseau à leur dispositif
eth0
eteth1
.
- /etc/fstab
- /etc/udev/rules.d/70-persistent-net.rules
- Sauvegarder.
Si on sauvegarde l'hôte de BackupPC à l'aide d'un autre serveur BackupPC, on n'exclut pas le répertoire /var/lib/BackupPC
ni aucun de ses sous-répertoires.
Configuration du gabarit smeserver-template
Nous allons ajuster certains paramètres du gabarit de base smeserver-template.
Lorsque nous utiliserons ce gabarit pour créer de nouvelles machines pour les Serveurs SME, il ne sera pas nécessaire de configurer celles-ci car, le gabarit s'en sera chargé.
Paramètres de sauvegarde
Choisir l'Hôte > smeserver-template > Modifier la configuration > Paramètres de sauvegarde.
DumpPreUserCmd
/var/lib/BackupPC/script/pre-sauvegarde.sh $host |
DumpPostUserCmd
/var/lib/BackupPC/script/post-sauvegarde.sh $host |
Pour plus d'information, voir #Scripts pré/post-sauvegarde.
- Sauvegarder.
Courriel
Ajustez vers quelle adresse courriel vous voulez envoyer les notifications de BackupPC.
- Sauvegarder.
Horaire
FillCycle 1
Pour plus d'information sur cette variable, voir ci-dessus: #FillCycle.
BackupsDisable 1
On désactive les sauvegardes lors de la création d'une nouvelle machine car, une sauvegarde pourrait débuter avant que la configuration de celle-ci soit totalement terminée.
- Cette désactivation n'empêche pas les sauvegardes manuelles.
- On activera les sauvegardes automatiques seulement après la première sauvegarde et après avoir vérifier que toutes les configurations fonctionnent correctement.
BlackoutPeriods
Vu que les usagers sont au travail du lundi au vendredi et qu'ils utilisent les Serveurs SME, on ne veut pas lancer de sauvegardes sur les serveurs entre 07h00 et 19h30.
- On ajuste
BlackoutPeriods
pour bloquer les sauvegardes automatiques durant les heures de travail.
- Sauvegarder.
Xfer
XferLogLevel 0
Niveau de verbosité dans les fichiers journaux Xfer.
- 0 signifie être calme,
- 1 donnera une ligne par fichier,
- 2 montrera également les fichiers sautés par les incrémentielles.
Des valeurs plus élevées donneront plus de résultats.
- Une verbosité de 8 servira pour le débogage.
On exclut les fichiers suivants des sauvegardes:
- /etc/fstab
- /etc/udev/rules.d/70-persistent-net.rules
- Sauvegarder.
Serveur hôte de BackupPC
Création de la machine hôte
Pour le serveur roulant BackupPC, on crée un machine en utilisant le gabarit localserver-template.
Serveur > Modifier la configuration > onglet Machines > Ajouter > host: 127.0.0.1=localserver-template > user: admin > Sauvegarder.
La nouvelle machine, hôte de BackupPC, a été crée.
Page d'accueil de la nouvelle machine
- Sous Hôtes, on choisit le nom de notre nouvelle machine 127.0.0.1 (hôte de BackupPC - 192.168.1.33). La page d'accueil s'affiche.
- Les liens Files actuelles, Documentation, Wiki et Homepage n'apparaissent seulement que sur la page d'accueil de BackupPC.
Vérification de la configuration
- Modifier la configuration.
- Paramètres de sauvegarde; on vérifie la pré-commande et la post-commande.
- Courriel.
- Sauvegardes complètes.
- Sauvegardes Incrémentielles.
- Suspension
- BlackoutPeriods.
- Divers.
- Exclusions.
BackupsDisable
s'applique seulement aux sauvegardes automatiques. On peut quand même faire une sauvegarde manuelle pour vérifier que tout fonctionne correctement.
Lorsqu'on aura fait nos sauvegardes de test, on activera les sauvegardes automatiques en mettant BackupsDisable
à 0
.
Sauvegarde automatique
Si nous avons créé et configuré le serveur hôte de BackupPC en dehors de ses heures d'interdiction (voir le paragraphe #BlackoutPeriods), au prochain réveil de BackupPC, il exécutera automatiquement une première sauvegarde Complète de lui-même, sans que nous ayons à faire quoi que ce soit, si BackupsDisable
est à 0
(sauvegardes automatiques activées).
C'est pour cette raison que nous avons mis BackupsDisable
à 1
(sauvegardes automatiques désactivées) lors de la configuration du gabarit localserver-template.
Clé SSH publique de BackupPC
Avant de faire quoi que ce soit, on téléverse la clé SSH de BackupPC afin d'éviter le problème de rejet de connexion lors de la sauvegarde.
Si on lance une sauvegarde sans que le serveur à sauvegarder ait reçu la clé SSH de BackupPC, le serveur distant bloquera les futures tentatives de connexion.
Explication du blocage des futures tentatives de connexion
Sans la clé SSH, téléversée sur le serveur à sauvegarder et qui permet à BackupPC de se connecter sans utiliser de mot de passe, la sauvegarde tentera à plusieurs reprises de se connecter sans mot de passe et ainsi dépassera la limite de tentatives infructueuses de connexions fixée par le Serveur SME à sauvegarder.
Sans la clé SSH sur le serveur à sauvegarder, lors de toute sauvegarde, BackupPC émettra l'erreur suivante:
Got fatal error during xfer (rsync error: unexplained error (code 255) at io.c(629) [Receiver=3.0.9.12]). |
Si le Serveur SME a déjà la contribution Fail2Ban installée, après 3 tentatives de connexions infructueuses, il bannit pour 30 jours l'adresse IP en question.
Téléversement de la clé SSH de BackupPC
Si nous n'avons pas déjà téléversé la clé SSH publique de BackupPC au paragraphe #Téléversement de la clé SSH publique de BackupPC, on le fait obligatoirement maintenant.
Vérification du téléchargement de la clé publique
On ouvre une session PuTTY vers le Serveur SME hôte de BackupPC (192.168.1.33).
Ne pas utiliser l'adresse 127.0.0.1 car vous vous retrouveriez sur la station hôte de PuTTY.
On vérifie la présence de la clé publique de BackupPC.
cat /root/.ssh/authorized_keys2
Sauvegarde "Complète" de l'hôte BackupPC
Nous allons sauvegarder le Serveur SME roulant BackupPC et dont l'adresse IP est 192.168.1.33 (localhost - 127.0.0.1).
Lancement de la sauvegarde
On retourne à la page 127.0.0.1 Accueil et on clique Démarrer la sauvegarde Complète.
- On confirme en cliquant Démarrer la sauvegarde complète.
- On retourne à la page d'accueil en cliquant le nom de notre machine i.e. 127.0.0.1.
- Au retour à la page d'accueil, BackupPC nous informe du "début de la sauvegarde" > Fichier journal.
- La page du journal nous indique que:
- le répertoire de stockage des sauvegardes pour la machine 127.0.0.1 a été créé,
-AutoBlock
est maintenant désactivé,
- la sauvegarde a débutée et commencée dans le répertoire racine/
.
L'utilitaire top
À la console du Serveur SME BackupPC, on peut lancer la commande top
pour voir les processus en cours:
top -d 1
.
On voit que backuppc utilise peu de mémoire mais, un pourcentage très substantiel du CPU.
Fichier journal de la machine
Après quelques minutes et un rafraîchissement de la page du journal, BackupPC nous dit que la sauvegarde est complétée.
- On remarque qu'
AutoBlock
a été réactivé par la commandepost-sauvegarde
. - La sauvegarde s'est terminée correctement.
Liste d'attente d'arrière plan
Lors d'une sauvegarde quelconque, la page d'acceuil pourrait afficher le message ci-dessous.
BackupPC est occupé par BackupPC_refCountUpdate
qui vérifie le pool des références.
BackupPC_refCountUpdate
est utilisé pour mettre à jour le nombre de références par sauvegarde et par hôte, de même que le nombre de références à l'échelle du système. Cet utilitaire est exploité par: BackupPC_dump
, BackupPC_nightly
, BackupPC_backupDelete
, BackupPC_backupDuplicate
et BackupPC_fsck
.
Ci-dessous, BackupPC_refCountUpdate
a pris 236 secondes.
Examen de la sauvegarde
Lorsque que la sauvegarde est terminée, la page d'accueil nous donne les différentes statistiques de cette sauvegarde.
Journaux de la sauvegarde
On voit que c'est une sauvegarde Complète et qu'elle est fusionnée.
JournalXfer
Le JournalXfer nous indique les fichiers sauvegardés selon le paramètre XferLogLevel
au paragraphe #XferLogLevel. Le fichier journal de cette première sauvegarde est XferLOG.0.z
.
- Le script
pre-sauvegarde.sh
a été exécuté avant la sauvegarde etAutoBlock
a été désactivé. - Le script
post-sauvegarde.sh
a été exécuté après la sauvegarde etAutoBlock
a été réactivé.
Pour cette sauvegarde particulière, le paramètre XferLogLevel
était à 1
pour démontrer la liste des fichiers sauvegardés.
Journal Erreurs
- Le journal Erreurs nous indique le nombre d'erreurs encourus.
Journal principal de BackupPC
Le journal principal de BackupPC contient tous les événements survenus.
- Ce journal indique notre sauvegarde Complète du serveur 127.0.0.1.
...
2018-05-05 09:10:28 User admin requested backup of 127.0.0.1 (127.0.0.1) 2018-05-05 09:11:36 Started full backup on 127.0.0.1 (pid=2527, share=/) 2018-05-05 09:35:09 Finished full backup on 127.0.0.1 .. |
Journal "messages" du Serveur SME
Les commandes signal-event pre-backup
, signal-event post-backup
et les deux remoteaccess-update
ont toutes été exécutées correctement.
La première commande remoteaccess-update
a mis à jour la désactivation de la propriété AutoBlock
et la deuxième sa réactivation.
... Processing event: pre-backup Running event handler: /etc/e-smith/events/actions/generic_template_expand ... Processing event: remoteaccess-update Running event handler: /etc/e-smith/events/actions/generic_template_expand ... Processing event: post-backup Running event handler: /etc/e-smith/events/post-backup/S10mysql-delete-dumped-tables ... Processing event: remoteaccess-update Running event handler: /etc/e-smith/events/actions/generic_template_expand ...
Espace disque et nombre d'inodes
Espace disque
L'espace disque est passé de 4,6M à 1,7G.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/main-root
6,8G 3,6G 2,8G 57% /
tmpfs 1,9G 0 1,9G 0% /dev/shm
/dev/md0 239M 77M 150M 34% /boot
/dev/sdb1 17G 1,7G 15G 11% /var/lib/BackupPC
Nombre d'inodes
Le nombre d'inodes est passé de 67 à 201 294.
# df -i
/dev/mapper/main-root
456064 159191 296873 35% /
tmpfs 490294 1 490293 1% /dev/shm
/dev/md0 64000 54 63946 1% /boot
/dev/sdb1 15005976 201294 14804682 2% /var/lib/BackupPC
Pour 11% (1,7G) de l'espace disque de la partition /dev/sbd1
le nombre d'inodes est de 201 294. Ce qui serait plus de 15% du total de 1 310 720 si nous avions formaté avec un système de fichiers ext3
sans utiliser le paramètre -N
. Ce pourcentage n'est que de 2% pour un système ext4
.
- C'est ici qu'on voit l'utilisation du disque et du grand nombre d'inodes (le nombre de Fichiers existants vs le nombre de Nouveaux fichiers).
- Ce nombre s'explique par la création des liens et le stockage de la sauvegarde Complète.
XferLogLevel
On pourrait mettre XferLogLevel
à 1
pour une légère augmentation de l'espace disque utilisé.
Attention: Il ne faut pas modifier la configuration d'une machine qui est en train de se faire sauvegarder car, on recevrait l'erreur suivante.
... |
Première sauvegarde Incrémentielle
On clique: Démarrer la sauvegarde Incrémentielle.
- On confirme en cliquant: Démarrer la sauvegarde Incrémentielle.
- On retourne à la page d'accueil.
- BackupPC indique que la sauvegarde a débutée.
- La sauvegarde est en cours.
Les 2 minutes écoulées entre le début 10:06 et la sauvegarde elle-même 10:08 ont été utilisées, par BackupPC_refCountUpdate
, pour l'ajustement des liens vers la sauvegarde précédente #0.
- La sauvegarde Incrémentielle est commencée.
- La sauvegarde Incrémentielle est terminée.
Ci dessous, on voit que la sauvegarde Incrémentielle a été fusionnée à la dernière sauvegarde Complète.
Fusion
- Comme l'affiche la page d'accueil, l'Incrémentielle #1 a été Fusionnée avec la Complète #0.
- La fusion est aussi démontrée ci-dessous, par la grandeur de l'Incrémentielle #1.
Examen des fichiers
On peut afficher le contenu d'une sauvegarde en cliquant le numéro de celle-ci "1".
L'arborescence des fichiers de la sauvegarde est affichée.
Deuxième sauvegarde Incrémentielle
On lance une deuxième sauvegarde Incrémentielle.
- Le script
pre-sauvegarde.sh
a roulé avec succès.
La deuxième sauvegarde Incrémentielle a débutée.
La scriptpost-sauvegarde.sh
a roulé avec succès.
La deuxième sauvegarde Incrémentielle s'est terminée. - BackupPC fusionne toutes les sauvegardes car, pour la machine 127.0.0.1, le paramètre
FillCycle
est à1
indiquant de fusionner toutes les sauvegardes et de toujours les garder ainsi.
Restauration d'un fichier
Restauration vers le répertoire original
- Si on veut restaurer un fichier particulier, on clique sur le numéro de la sauvegarde contenant le fichier à restaurer.
- On se rend dans le répertoire du fichier en parcourant l'arborescence à gauche.
On coche la case du fichier à restaurer > Restaurer les fichiers sélectionnés.
On peut sélectionner le nombre de fichiers désirés sans aucun problème.
On vérifie le nom du fichier à restaurer > Démarrer la restauration.
On vérifie le chemin de la source et celui de la destination > Restaurer.
La restauration a réussie; on retourne à la page d'accueil.
Le fichier journal de la machine.
La restauration a été complétée. La variable 0 files
ne tient compte que des fichiers créés et non de ceux qui ont été restaurés à l'emplacement original.
À la page d'accueil, on peut voir un nouveau cadre: Résumé de la restauration. Cliquer le numéro de la restauration #0
pour en afficher les détails.
Vérification
- On peut cliquer
Visionner
ouErreurs
. - Si on clique
Visionner
.
Si on a clique Erreur
.
Restauration vers un répertoire différent
On peut choisir un autre répertoire de destination tel que /temp
pour la restauration > Démarrer la restauration.
On clique Restaurer.
On retourne à la page d'accueil.
La restauration s'est terminée avec Succès.
Vérification dans le Fichier journal de la machine.
Cette fois-ci, restore 1 complete
, la restauration a créé un fichier car, le fichier restauré n'était pas présent dans le répertoire /temp
.
Vérification manuelle.
# ls -als /temp/
total 12
4 drwxr-xr-x 2 root root 4096 3 mars 2017 .
4 dr-xr-xr-x 27 root root 4096 5 mai 11:47 ..
4 -rw------- 1 root root 1314 3 mars 2017 renouvelerSSL
Nettoyage nocturne
Sauvegardes à conserver
Complètes
Dans la page de configuration, sous l'onglet Horaire, nous avons mis FillCycle
à 1
qui implique de fusionner toutes les sauvegardes.
Nous avons aussi mis FullKeepCnt
à 1
pour indiquer à BackupPC de ne garder qu'une seule sauvegarde Complète car, les Incrémentielles fusionnées peuvent être considérées comme des Complètes.
- À partir de V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée et non plus si la sauvegarde d'origine était Complète ou Incrémentielle.
- Pour des raisons de compatibilité avec les anciennes versions, ce paramètre continue d'être appelé
FullKeepCnt
plutôt queFilledKeepCnt
. - La sauvegarde la plus récente (qui est toujours fusionnée) ne compte pas lors de la vérification de
FilledKeepCnt
. - Avec ces paramètres, chaque fois qu'une sauvegarde Complète se termine avec succès, la plus ancienne est supprimée.
Incrémentielles
Nous avons indiqué de conserver un maximum de 6 Incrémentielles avec un minimum de 1.
Journal principal de BackupPC
Nous avons fait 1 Complète et 2 Incrémentielles.
Fermeture et amorçage du serveur BackupPC
Pour cette démonstration seulement, nous avons ajuster BlackoutPeriods
du serveur hôte de BackupPC pour qu'il puisse exécuter une sauvegarde durant la journée.
Nous avons éteint le serveur BackupPC à 20:59:23. |
Le lendemain, nous avons amorcer le serveur BackupPC à 09:49:23.
Le prochain réveil se fera à 10:00:00. |
2018-05-05 20:59:23 Got signal TERM... cleaning up (exit code = 0) |
... |
Journal de la machine 127.0.0.1, hôte de BackupPC
Vu que:
- Nous avons 3 sauvegardes: 1 Complète et 2 Incrémentielles, toutes Fusionnées.
FilledKeepCnt
=1
etFilledKeepCntMin
=1
.- La sauvegarde la plus récente #2 (qui est toujours fusionnées) ne compte pas lors de la vérification de
FilledKeepCnt
. - À partir de V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée.
Nous pouvons affirmer que nous avons présentement: (3 - (la plus récente)) = 2 fusionnées.
- Nous avons donc 1 sauvegarde fusionnée de trop.
Lorsque BackupPC s'est réveillé, le Nettoyage nocturne n'ayant pas été fait, il a constaté qu'il fallait qu'il supprime 1 sauvegarde fusionnée.
Il a donc:
- Supprimé la plus ancienne fusionnée i.e. la sauvegarde Complète,
backup 0
.
...
2018-05-06 10:00:01 Removing filled backup 0
2018-05-06 10:00:01 BackupPC_backupDelete: removing #0
2018-05-06 10:00:01 BackupPC_backupDelete: No prior backup for merge
...
- Mis les pointeurs à jour.
... 2018-05-06 10:03:23 BackupPC_refCountUpdate: host 127.0.0.1 got 0 errors (took 1 secs) 2018-05-06 10:03:23 Finished BackupPC_backupDelete, status = 0 (running time: 202 sec) ...
- Débuté une sauvegarde Complète car,
FullKeepCnt
=1
.
...
2018-05-06 10:05:43 Output from DumpPreUserCmd: AutoBlock=disabled
2018-05-06 10:06:02 full backup started for directory /
2018-05-06 10:13:31 Output from DumpPostUserCmd: AutoBlock=enabled
2018-05-06 10:13:32 full backup 3 complete, 84114 files, 3331261397 bytes, 0 xferErrs (0 bad files, 0 bad shares, 0 other)
...
- Supprimé la sauvegarde
backup 1
car, il existait encore une sauvegarde Fusionnée de trop.
...
2018-05-06 10:13:32 Removing filled backup 1
2018-05-06 10:13:32 BackupPC_backupDelete: removing #1
2018-05-06 10:13:32 BackupPC_backupDelete: No prior backup for merge
...
- Terminé sont nettoyage, en mettant les pointeurs à jour.
... 2018-05-06 10:15:21 BackupPC_refCountUpdate: host 127.0.0.1 got 0 errors (took 1 secs) 2018-05-06 10:15:21 Finished BackupPC_backupDelete, status = 0 (running time: 109 sec) ...
Voici le résultat du nettoyage.
Activation des sauvegardes automatiques
Notre configuration fonctionne correctement, nous pouvons maintenant activer les sauvegardes automatiques en mettant BackupsDisable
= 0
sous l'onglet Horaire.
La démonstration étant terminée, nous avons remis BlackoutPeriods
de la machine du serveur hôte de BackupPC 127.0.0.1, aux mêmes valeurs que celles décrites au paragraphe: #BlackoutPeriods.
Serveur SOURCE
- Diagramme réseau
- On affiche la page Web du serveur SOURCE: https://192.168.1.152/ afin de pouvoir la comparer après la restauration de SOURCE sur DESTINATION.
Création de la machine SOURCE dans BackupPC
Nous allons créer une nouvelle machine dans BackupPC pour représenter le Serveur SME SOURCE.
Nom du serveur: source.micronator-101.org // Adresse IP: 192.168.1.152.
Nous utilisons des machines virtuelle sur un réseau privé, le DNS ne fonctionne pas car, nous n'avons aucun enregistrement DNS pour nos serveurs. Il nous faut donc utiliser les adresses IP des serveurs au lieu de leur nom d'hôte.
Si vous pouvez faire un ping
en utilisant le nom de votre Serveur SME, vous pouvez alors utiliser ce nom pour la création de la machine dans BackupPC.
- Nous utilisons le gabarit
smeserver-template
pour créer la nouvelle machine dans BackupPC.
Serveur > Modifier la configuration > onglet Machines > Ajouter > host 192.168.1.152=smeserver-template > user admin > Sauvegarder.
Page d'accueil
Sous Hôtes, on choisit le nom de notre nouvelle machine c.-à-d. 192.168.1.152. Sa page d'accueil s'affiche.
Vérification de la configuration
- Modifier la configuration
- Paramètres de sauvegarde → Commandes des usagers.
On vérifie lapre-commande
et lapost-commande
.
- Horaire → Sauvegardes complètes.
- Sauvegardes incrémentielles.
- Suspension.
*BackupsDisable
=1
= désactivé, s'applique seulement aux sauvegardes automatiques. On peut quand même faire une sauvegarde manuelle pour vérifier que tout fonctionne correctement.
* Vu que nous ne ferons que quelques sauvegardes manuelles de cette machine, plus tard, il ne sera pas nécessaire d'activer les sauvegardes automatiques. Après la sauvegarde Complète et les deux Incrémentielles du serveur SOURCE, nous allons recycler cette quincaillerie et allons restaurer la dernière sauvegarde Incrémentielle vers la nouvelle quincaillerie i.e. le serveur DESTINATION. Cette Incrémentielle est fusionnée donc, elle est "complète" parce qu'elle contient aussi les liens vers tous les fichiers qui lui manque.
* Sur nos Serveurs SME en production, on activera les sauvegardes automatiques seulement après avoir vérifier une sauvegarde manuelle. - BlackoutPeriods.
Téléversement de la clé SSH de BackupPC vers SOURCE
Sur le serveur hôte de BackupPC, on se substitue à l'usager backuppc.
# su -s /bin/bash backuppc
On téléverse la clé publique de BackupPC vers le client SOURCE afin que BackupPC puisse entrer en communication sans devoir utiliser un mot de passe lors d'une connexion SSH.
# cat /var/lib/BackupPC/.ssh/id_rsa.pub | ssh -p 2222 root@192.168.1.152 "cat >> /root/.ssh/authorized_keys2"
The authenticity of host '[192.168.1.152]:2222 ([192.168.1.152]:2222)' can't be established. RSA key fingerprint is c0:24:7f:fe:00:83:cd:f6:2b:ad:e7:b9:dc:b4:aa:bf. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[192.168.1.152]:2222' (RSA) to the list of known hosts. root@192.168.1.152's password: mot-de-passe-de-root-du-serveur-SOURCE
Vérification
On vérifie le login sans mot de passe et la clé SSH de BackupPC stockée sur le serveur SOURCE.
# ssh -p 2222 root@192.168.1.152 "cat /root/.ssh/authorized_keys2"
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA24XUsh60M8PA7Xe6+lsk7+LdnpHcTx+U8XLjhRpUXTj2muSdS8QjBv4A7eSyiXOt550HUPlLELMZuewPnNt+ODViPAl7TC+at7xSfDGHmlcdDek+M36P OSIyStoK2LEGsvnK2v6lpo3exChf0QTfGMAn43nxybyFGJ+I3USG/HAfuqzqfFrCwFxYxc8WcjcocK6HXXziF8E1BWheyO4qz1S0KWq2NEr7KdOa2xT+xYB5wtSKrYdJV7QEoGOtZ3PwNvE6 xTl3rAcHI7ZVMSJAGRjQLKPXo9isfzZfs/FW8QuoqqZCSPYeIp/n+qjj/iTttfO17sbzF09HKdSCboUEw== backuppc@sme-9
L'usager root s'est logué au serveur SOURCE sans mot de passe, le temps d'exécuter la commande cat
qui a affiché le contenu du fichier authorized_keys2
du serveur 192.168.1.152.
Sur le serveur hôte, on vérifie la concordance des clés en affichant la clé publique de BackupPC stockée sur le serveur hôte.
# cat /var/lib/BackupPC/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA24XUsh60M8PA7Xe6+lsk7+LdnpHcTx+U8XLjhRpUXTj2muSdS8QjBv4A7eSyiXOt550HUPlLELMZuewPnNt+ODViPAl7TC+at7xSfDGHmlcdDek+M36P OSIyStoK2LEGsvnK2v6lpo3exChf0QTfGMAn43nxybyFGJ+I3USG/HAfuqzqfFrCwFxYxc8WcjcocK6HXXziF8E1BWheyO4qz1S0KWq2NEr7KdOa2xT+xYB5wtSKrYdJV7QEoGOtZ3PwNvE6 xTl3rAcHI7ZVMSJAGRjQLKPXo9isfzZfs/FW8QuoqqZCSPYeIp/n+qjj/iTttfO17sbzF09HKdSCboUEw== backuppc@sme-9
- Les clés coïncident. La clé a donc bien été téléversée sur le serveur SOURCE.
On se désengage de la session backuppc et on retourne à l'usager root.
# exit
Si la connexion distante n'a pas réussie, on peut se loguer en root à la console du serveur distant et désactiver AutoBlock
.
# config setprop sshd AutoBlock disabled |
On signale le changement.
# signal-event remoteaccess-update |
Depuis la console du serveur BackupPC, on ré-essaie une connexion à distance vers le serveur 192.168.1.152.
Il ne sera pas nécessaire de réactiver AutoBlock
sur le serveur distant car, la script post-sauvegarde.sh
s'en chargera.
S'il est impossible de désactiver AutoBlock
à cause de l'inaccessibilité de la console à distance:
- On peut demander d'installer Fail2ban sur le serveur distant et mettre l'IP du serveur BackupPC sur la liste blanche.
- Vu que Fail2ban remplace les fonctionnalités d'
AutoBlock
, on désactive ce dernier et ainsi, les logins depuis BackupPC ne seront plus jamais bloqués. - Pour l'installation de Fail2ban, voir https://www.micronator.org/affaires/produit/sme-9-x8-x-fail2ban/.
Sauvegardes du Serveur SME SOURCE
- Diagramme du Serveur SME SOURCE.
- Sur la page d'accueil de la machine du serveur SOURCE (192.168.1.152), on lance la sauvegarde Complète de la même manière que celle du serveur BackupPC exécutée plus tôt.
La sauvegarde débute.
- La sauvegarde est en cours.
- Le Fichier journal de la machine SOURCE affiche les résultats de la sauvegarde Complète.
La page d'accueil de la machine SOURCE affiche tous les détails de la sauvegarde.
Les Fichiers existants sont ceux trouvés dans la sauvegarde d'un autre SME, celle de 127.0.0.1, ils sont identiques à ceux de SOURCE et ainsi BackupPC crée des liens pour la sauvegarde de SOURCE pointant vers ces mêmes fichiers identiques appartenant à 127.0.0.1. C'est ce qui explique que 10 774 fichiers ont une grandeur totale minime de 21.9 Mo; seulement 4 852 nouveaux fichiers, exclusifs à SOURCE, ont été sauvegardés.
Incrémentielles du Serveur SME SOURCE
Première Incrémentielle
On lance la sauvegarde Incrémentielle de la même manière que celle du serveur hôte de BackupPC plus tôt.
- L'Incrémentielle est terminée.
- L'Incrémentielle a été fusionnée.
Sur la page d'accueil, les détails de la sauvegarde Incrémentielle 1
sont affichés.
Deuxième Incrémentielle
On peut aussi faire une deuxième Incrémentielle pour voir ce qui se passera.
- Les deux Incrémentielles sont toutes deux fusionnées.
- Sur la page d'accueil, les détails de toutes les sauvegardes sont affichés.
Restauration de SOURCE sur DESTINATION
Description de la dernière sauvegarde de SOURCE
La dernière sauvegarde de SOURCE porte le #2
.
On se servira de ce numéro pour générer le fichier TAR.
La dernière sauvegarde est de type Incrémentielle mais, Fusionnée; c'est à dire qu'elle contient aussi des liens vers les fichiers de la dernière sauvegarde Complète.
Par contre, elle n'a pas sauvegardé les fichiers :
/etc/fstab
Servant pour le montage des disques.
/etc/udev/rules.d/70-persistent-net.rules
Servant à relier les adresses MAC des cartes réseau à leur dispositifeth0
eteth1
.
Création du fichier TAR de la sauvegarde
On crée un répertoire de stockage pour nos futurs fichiers TAR qui serviront pour les restaurations complètes.
Sur le serveur BackupPC en tant qu'usager root.
# mkdir /var/lib/BackupPC/mes_restaurations
On ajuste le propriétaire et le groupe.
# chown backuppc:backuppc /var/lib/BackupPC/mes_restaurations/
On ajuste les droits.
# chmod 700 /var/lib/BackupPC/mes_restaurations/
On vérifie.
# ls -lsd /var/lib/BackupPC/mes_restaurations/
Création du fichier TAR
BackupPC_tarCreate
BackupPC_tarCreate
crée un fichier TAR contenant tous les fichiers ou répertoires d'une sauvegarde particulière. La fusion des Incrémentielles se fait automatiquement; vous n'avez donc pas à vous soucier de savoir si certains fichiers apparaissent dans la sauvegarde Incrémentielle ou Complète.- Les fichiers et répertoires de la ligne de commande sont relatifs au nom du partage spécifié.
- Les options
-h
,-n
et-s
spécifient quelle sauvegarde est utilisée pour générer l'archive TAR. Les options-r
et-p
peuvent être utilisées pour déplacer les chemins dans l'archive TAR afin que les fichiers extraits puissent être versés dans un emplacement différent de leur emplacement d'origine.
Options de BackupPC_tarCreate
:
Options obligatoires: -h host hôte à partir duquel l'archive TAR est créée -n dumpNum numéro de la sauvegarde à partir de laquelle l'archive TAR est créée Un nombre négatif signifie par rapport à la fin (par exemple, -1 signifie la sauvegarde la plus récente, -2 la 2ème plus récente etc). -s shareName nom du partage à partir duquel l'archive TAR est créée Autres options: -t affiche un résumé des totaux -r pathRemove préfixe du chemin qui sera remplacé par pathAdd -p pathAdd préfixe du nouveau chemin -b BLOCKS BLOCKS x 512 octets par enregistrement (20 par défaut, identique à tar) -w writeBufSz taille du tampon d'écriture (1048576 = 1 Mo par défaut) -e charset jeu de caractères pour l'encodage des noms de fichiers (par défaut: la valeur de $Conf{ClientCharset} utilisée lorsque la sauvegarde a été effectuée) -l affiche la liste des fichiers; ne génère pas d'archive TAR -L affiche la liste détaillée des fichiers; ne génère pas d'archive TAR
On se substitue à l'usager backuppc. (L'invite va passer de # à $).
# su - backuppc -s /bin/sh
On se rend dans le répertoire de stockage.
$ cd /var/lib/BackupPC/mes_restaurations/
On crée le fichier TAR de la sauvegarde numéro 2
du serveur hôte 192.168.1.152
.
Peut prendre un certain temps. Être patient !
$ /usr/share/BackupPC/bin/BackupPC_tarCreate -h 192.168.1.152 -n 2 -s / / > source-152-2.tar
N.B. : l'hôte peut être également désigné par son nom.
On vérifie.
$ ls -ls
2357982 -rw-r--r-- 1 backuppc backuppc 2414571520 15 mai 15:11 source-152-2.tar
Environnement du Serveur DESTINATION
Réseau LOCAL vs externe
Le réseau LOCAL du serveur micronator.org, servant d'aiguilleur pour les connexions à l'Internet, est sur le segment IP 192.168.1.0/24.
Toutes nos machines de travail et tous nos Serveur SME virtuels sont donc sur le réseau LOCAL du serveur micronator.org.
Tous nos serveurs virtuels sont connectés à travers leur carte réseau LOCAL (eth0
) sur le segment LOCAL de micronator.org; ils sont tous sur le segment IP 192.168.1.0/24 et peuvent utiliser l'aiguilleur micronator.org pour se rendre sur l'Internet.
Tout ceci fait en sorte que toutes nos stations, pour communiquer avec leur serveur respectif, passent par le réseau LOCAL de leur Serveur SME virtuel.
Serveur SME DESTINATION distant
Advenant le cas où le Serveur SME est distant et que l'accès SSH soit privé, on peut ouvrir une session TeamViewer sur une station distante ayant accès au réseau LOCAL du serveur distant puis, ouvrir une connexion PuTTY sur la station distante afin de se brancher localement au serveur DESTINATION et rendre l'accès SSH publique.
Dans le gestionnaire Server Manager de DESTINATION, sur la page Accès à distance, il faut aussi vérifier tous les autres paramètres SSH. Voir: #Paramètres SSH de tous les serveurs.
Mise à jour SME
Avant la restauration, il est préférable de mettre à jour le serveur DESTINATION. Le répertoire /boot
du serveur SOURCE n'étant pas sauvegardé, la mise à jour avant la restauration installera sur DESTINATION le dernier noyau Linux s'il y a lieu.
Téléversement de la clé SSH de BackupPC sur DESTINATION
On se substitue à l'usager backuppc et on téléverse la clé publique de BackupPC sur le serveur DESTINATION (192.168.1.102) afin que BackupPC puisse entrer en communication avec le serveur DESTINATION sans devoir utiliser un mot de passe lors d'une connexion SSH.
$ cat /var/lib/BackupPC/.ssh/id_rsa.pub | ssh -p 2222 root@192.168.1.102 "cat >> /root/.ssh/authorized_keys2"
The authenticity of host '[192.168.1.102]:2222 ([192.168.1.102]:2222)' can't be established. RSA key fingerprint is be:a2:3f:cf:c1:4f:05:63:1a:12:c8:75:c5:a7:2c:6f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[192.168.1.102]:2222' (RSA) to the list of known hosts. root@192.168.1.102's password: mot-de-passe-de-root-du_serveur-DESTINATION
Vérification de la connexion
On ouvre une connexion SSH vers DESTINATION et on affiche ses paramètres d'AutoBlock
.
$ /usr/bin/ssh -p2222 root@192.168.1.102 "/sbin/e-smith/config show sshd"
AutoBlock=enabled AutoBlockTime=900 AutoBlockTries=4 LoginGraceTime=600 MaxAuthTries=2 MotdStatus=enabled PasswordAuthentication=yes PermitRootLogin=yes TCPPort=2222 UsePAM=yes access=public status=enabled
Il n'y a pas eu de demande de mot de passe et l'exécution de la commande s'est terminé correctement. La connexion sans mot de passe est donc fonctionnelle.
On se désengage de la connexion sans mot de passe.
$ exit
Nous sommes de retour à la console du serveur BackupPC; on sort de su
et on revient à l'usager root.
$ exit
Page WEB actuelle de DESTINATION
Login sur le serveur DESTINATION
On peut ouvrir un session SSH vers le serveur de DESTINATION pour pouvoir voir ce qui s'est passé en cas d'erreur de restauration.
Il faut ouvrir cette session avant la restauration car, celle-ci écrasera les clés SSH de DESTINATION et le serveur pourrait refuser toutes nouvelles connexions.
Commande de pré-restauration
Contrairement à une restauration de quelques répertoires ou fichiers, lorsqu'on restaure toute une sauvegarde, il faut exécuter la commande de pre-restauration
avant la restauration et celles de post-installation
après la restauration.
On envoie la commande de pre-restauration
avec une pause de 15 secondes.
Attendre que l'invite revienne.
$ /usr/bin/ssh -p 2222 root@192.168.1.102 "/sbin/e-smith/signal-event pre-restore; /bin/sleep 15"
Vérification de l'exécution de la commande de pré-restauration.
$ /usr/bin/ssh -p 2222 root@192.168.1.102 "/bin/date; cat /var/log/messages | grep 'Processing event: pre-restore' | tail -1"
mar. mai 15 18:26:02 EDT 2018
May 15 18:25:21 destination esmith::event[2537]: Processing event: pre-restore
Arrêt du serveur SOURCE
Il faut absolument que le serveur SOURCE soit éteint avant de lancer les commandes de restauration car, la commande post-restauration
en fait partie. Si SOURCE roule encore lors du réamorçage de DESTINATION, des conflits de noms de serveurs et d'adresses IP seraient détectés.
Restauration
Le groupe de commandes qui envoie le fichier TAR au serveur DESTINATION:
- Se connecte.
- Demande à DESTINATION de se rendre dans le répertoire racine
/
. - Envoie le fichier TAR que DESTINATION décompose avec
/bin/tar -xvv
. (L'optionvv
affiche une liste plus longue, semblabe àls -l
). - À la fin du téléversement, envoie les commandes de
post-restauration
. - Se déconnecte car, les commandes de restauration sont terminées.
Peut prendre plusieurs minutes et même plusieurs heures pour une très grosse restauration.
La restauration est terminée lorsque l'invite $ réapparaît.
$ ssh -p 2222 root@192.168.1.102 "cd / && /bin/tar -xvv; /sbin/e-smith/signal-event post-upgrade; /sbin/e-smith/signal-event reboot" < source-152-2.tar
... -rw-r--r-- root/root 172 2007-08-28 10:54 ./var/www/icons/small/unknown.png -rw-r--r-- root/root 125 2004-11-20 20:16 ./var/www/icons/small/uu.gif -rw-r--r-- root/root 166 2007-08-28 10:54 ./var/www/icons/small/uu.png bash: : commande introuvable $
La ligne bash: : commande introuvable peut être ignorée car il n'y a pas de commande introuvable, seulement une suite d'espaces interprété comme une commande.
Réamorçage
DESTINATION a reçu les commandes de post-restauration
et réamorce pour activer les nouveaux paramètres de configuration i.e. ceux contenus dans le fichier TAR.
- Le serveur débute son réamorçage. (Peut prendre un certain temps. Être patient!)
- Activation des paramètres de configuration.
- Remise en place des bases de données MySQL.
- Le fenêtre de
login
est affichée.
Vérification
Login SSH
Maintenant, DESTINATION est un clone de de SOURCE.
Si nous n'avons pas ouvert de session SSH vers DESTINATION avant la restauration, on en ouvre une maintenant et on se logue en root avec son mot de passe du serveur SOURCE.
# login as: root root@192.168.1.152's password: mot-de-psse-de-root-sur-SOURCE Last login: Tue May 15 19:31:03 2018 ************ Welcome to SME Server 9.2 ************* Before editing configuration files, familiarise yourself with the automated events and templates systems. Please take the time to read the documentation http://wiki.contribs.org/Main_Page Remember that SME Server is free to download and use, but it is not free to build Please help the project : http://wiki.contribs.org/Donate **************************************************** [root@source ~]#
Cartes réseau
# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:D7:69:CF
inet adr:192.168.2.152 Bcast:192.168.2.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:5968 (5.8 KiB) TX bytes:6941 (6.7 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:D1:6F:3C
inet adr:192.168.1.152 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:342 errors:0 dropped:0 overruns:0 frame:0
TX packets:250 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:60892 (59.4 KiB) TX bytes:23676 (23.1 KiB)
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:107 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:8435 (8.2 KiB) TX bytes:8435 (8.2 KiB)
Site Web
Le site Web est fonctionnel tel qu'il était sur le serveur SOURCE original.
- Nouveau diagramme du serveur DESTINATION.
- On se rend au nouveau URL du serveur DESTINATION c.-à-d. l'adresse du serveur SOURCE.
Cartes réseaux du serveur de DESTINATION
Il faut s'assurer que le serveur DESTINATION ait une configuration unique pour ses cartes réseau et que ces dernières soient bien eth0
et eth1
.
Si on change les cartes réseau, la configuration prendrait par défaut, les cartes eth2
et eth3
.
Exemple: les cartes physiques originales ne sont plus présentes sur le serveur DESTINATION car, après la restauration, elles ont été remplacées par des cartes plus rapides.
Vérification des cartes réseaux de DESTINATION
On se logue au serveur DESTINATION et on examine la configuration de ses nouvelles cartes réseau.
# ifconfig
eth2 Link encap:Ethernet HWaddr 00:1C:C0:F0:1F:95 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:27 errors:0 dropped:0 overruns:0 frame:0 TX packets:47 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:2001 (1.9 KiB) TX bytes:5972 (5.8 KiB) eth3 Link encap:Ethernet HWaddr 00:50:8B:AE:88:89 inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:221 errors:0 dropped:0 overruns:0 frame:0 TX packets:156 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:38647 (37.7 KiB) TX bytes:15939 (15.5 KiB) lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:64 errors:0 dropped:0 overruns:0 frame:0 TX packets:64 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:5212 (5.0 KiB) TX bytes:5212 (5.0 KiB)
Comme on le voit ci-dessus, les cartes présentes ne sont pas celles d'origine car elles portent les noms de eth2
et eth3
.
On affiche le fichier de configuration des cartes réseau.
# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:D7:69:CF", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:D1:6F:3C", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1C:C0:F0:1F:95", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:8B:AE:88:89", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
Comme on le voit ci-dessus, les cartes originales eth0
et eth1
ont été remplacées par les cartes eth2
et eth3
.
Fichier /etc/udev/rules.d/70-persistent-net.rules
On édite le fichier /etc/udev/rules.d/70-persistent-net.rules
tel que ci-dessous:
- On supprime les lignes des anciennes cartes
eth0
eteth1
. - On remplace
eth2
pareth0
. - On remplace
eth3
pareth1
.
# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key.#PCI device 0x8086:0x100e (e1000)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:D7:69:CF", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"# PCI device 0x8086:0x100e (e1000)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:D1:6F:3C", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"# PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1C:C0:F0:1F:95", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:8B:AE:88:89", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Répertoire /etc/sysconfig/network-scripts
On se rend dans le répertoire de configuration des scripts des cartes réseau.
# cd /etc/sysconfig/network-scripts
Fichier ifcfg-eth2
# cat ifcfg-eth2 | grep eth2
DEVICE=eth2
- On change
DEVICE=eth2
pourDEVICE=eth0
.
# sed -i 's/DEVICE=eth2/DEVICE=eth0/' ifcfg-eth2
- On renomme le fichier
ifcfg-eth2
pourifcfg-eth0
.
# mv ifcfg-eth2 ifcfg-eth0
Fichier ifcfg-eth3
# cat ifcfg-eth3 | grep eth3
DEVICE=eth3
- On change
DEVICE=eth3
pourDEVICE=eth1
.
# sed -i 's/DEVICE=eth3/DEVICE=eth1/' ifcfg-eth3
- On renomme le fichier
ifcfg-eth3
pourifcfg-eth1
.
# mv ifcfg-eth3 ifcfg-eth1
Fichier route-eth2
- On renomme le fichier
route-eth2
pourroute-eth0
.
# mv route-eth2 route-eth0
Fichier route-eth3
- On change
eth3
poureth1
.
# sed -i 's/eth3/eth1/' route-eth3
- On renomme le fichier
route-eth3
pourroute-eth1
.
# mv route-eth3 route-eth1
Réamorçage
# shutdown -r now
On se logue et on vérifie.
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:1C:C0:F0:1F:95 inet adr:192.168.2.102 Bcast:192.168.2.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:27 errors:0 dropped:0 overruns:0 frame:0 TX packets:47 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:2001 (1.9 KiB) TX bytes:5972 (5.8 KiB) eth1 Link encap:Ethernet HWaddr 00:50:8B:AE:88:89 inet adr:192.168.1.102 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:221 errors:0 dropped:0 overruns:0 frame:0 TX packets:156 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:38647 (37.7 KiB) TX bytes:15939 (15.5 KiB) lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:64 errors:0 dropped:0 overruns:0 frame:0 TX packets:64 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:5212 (5.0 KiB) TX bytes:5212 (5.0 KiB)
Fermeture de la connexion SSH
On ferme la connexion SSH vers le serveur DESTINATION.
# exit
Déverminage
sshd & AutoBlock
OpenSSH
Référence: https://fr.wikipedia.org/wiki/OpenSSH.
OpenSSH (OpenBSD Secure Shell) est un ensemble d'outils informatiques LIBREs, permettant des communications sécurisées sur un réseau informatique en utilisant le protocole SSH.
Créé comme alternative LIBRE à la suite logicielle proposée par la société SSH Communications Security, OpenSSH est développé depuis 1999 par l'équipe d'OpenBSD, dirigée par son fondateur Theo de Raadt, et diffusé sous licence BSD.
OpenSSH est à la fois une brique logicielle du système OpenBSD et l'implémentation SSH la plus utilisée sur les systèmes BSD et GNU/Linux. L'équipe du projet OpenSSH maintient une version normale propre à OpenBSD et une version multiplateforme sous l'appellation Portable OpenSSH à destination des systèmes compatibles (autres BSD, systèmes GNU/Linux...). Les versions multiplateforme sont estampillées d'un p
comme portable, par exemple: OpenSSH 5.0p1
.
La suite logicielle OpenSSH inclut les outils suivants:
- ssh, un remplaçant pour les clients rlogin et telnet: ssh utilisateur@exemple.com.
- scp, un remplaçant pour le client rcp: scp toto.txt utilisateur@exemple.com:~/utilisateur/.
- sftp, un remplaçant pour le client ftp: sftp utilisateur@exemple.com.
- sshd, le démon SSH: sshd, le démon qui nous intéresse le plus en ce qui concerne BackupPC.
Paramètres du démon sshd
pour tous nos Serveurs SME
Comme exemple, on affiche le paramètre du démon sshd
du serveur hôte de BackupPC.
# config show sshd
sshd=service AutoBlock=enabled AutoBlockTime=900 AutoBlockTries=4 LoginGraceTime=600 MaxAuthTries=2 MotdStatus=enabled PasswordAuthentication=yes PermitRootLogin=yes TCPPort=2222 UsePAM=yes access=public status=enabled
AutoBlock=enabled
Si AutoBlock
est activé i.e =enabled
, il rejette les connexions, provenant de la même adresse IP, après 3 demandes ou plus (début du blocage indiqué par AutoBlockTries
) au cours des 15 minutes précédentes (AutoBlockTime=900
). Le blocage automatique se termine lorsqu'il y a eu moins de demandes que ce nombre dans le temps spécifié (AutoBlockTime
). Les connexions réussies font aussi partie du nombre de demandes.
Par design, seules les adresses IP en dehors du réseau LOCAL seront bloquées.
Dans cette marche à suivre, on s'occupe toujours d'AutoBlock
au cas où les communications des serveurs de nos lecteurs se feraient sur le réseau externe au lieu de LOCAL.
AutoBlockTime=900
L'intervale de temps pendant lequel les connexions sont comptées.
Si AutoblockTime
est à 900s
, le temps de libération après une quatrième tentative est de 900s.
Si AutoblockTime
est à 900s
, le temps de libération après une cinquième tentative est de 2 x 900s = 1800s.
Si AutoblockTime
est à 900s
, le temps de libération après une sixième tentative est de 4 x 900s = 3600s.
Si AutoblockTime
est à 900s
, le temps de libération après une septième tentative est de 8 x 900s = 7200s.
AutoBlockTries=4
Début du nombre de connexions à partir duquel elles seront bloquées.
AutoBlockTries=4
signifie que 3 connexions, réussies ou non, sont autorisées. La quatrième sera bloquée.
Réglages
Référence: https://wiki.contribs.org/AutoBlock.
La commande signal-event remoteaccess-update
entraînera la suppression de l'historique d'AutoBlock
en raison de la présence de: masq -> adjust
dans le fichier services2adjust
exécuté par remoteaccess-update
.
AutoBlock
Activation
# db configuration setprop sshd AutoBlock enabled
Désactivation
# db configuration setprop sshd AutoBlock disabled
Il faut obligatoirement signaler le changement.
# signal-event remoteaccess-update
AutoBlockTries
# db configuration setprop sshd AutoBlockTries 4
Il faut obligatoirement signaler le changement.
# signal-event remoteaccess-update
AutoBlockTime
En secondes.
# db configuration setprop sshd AutoBlockTime 900
Il faut obligatoirement signaler le changement.
# signal-event remoteaccess-update
Historique d'AutoBlock
Affichage de l'historique d'AutoBlock
.
# cat /proc/net/xt_recent/SSH
src=192.168.1.81 ttl: 128 last_seen: 4300025257 oldest_pkt: 3 4295469879, 4299976390, 4300025257
État actuel du blocage
Affichage de l'état actuel du blocage pour les 100 dernières adresses IP vues:
# iptables -L SSH_Autoblock -v
Chain SSH_Autoblock (1 references) pkts bytes target prot opt in out source destination 3 156 all -- any any anywhere anywhere recent: SET name: SSH side: source 0 0 denylog all -- any any anywhere anywhere recent: CHECK seconds: 900 hit_count: 4 TTL-Match name: SSH side: source
Suppression de l'historique
Un administrateur du système, avec les droits de root, peut supprimer l'historique de SSH_AutoBlock
à tout moment avec la commande suivante:
# echo "/" > /proc/net/xt_recent/SSH
Script de pré-sauvegarde
Si la désactivation d'AutoBlock
est non fonctionnelle :
- Courriel reçu par
EMailAdminUserName@EMailUserDestDomain
(admin@micronator-101.org). - Message dans le journal BackupPC de cette machine.
- Message affiché sur la page d'accueil de la machine en question.
Aborting backup up after signal INT
Output from DumpPreUserCmd: Got reply: ok: backup of 192.168.1.152 canceled |
Si une expiration du délai de connexion est rencontrée
Message dans le journal BackupPC de cette machine.
Output from DumpPreUserCmd: ssh: connect to host 192.168.1.152 port 2222: Connection timed out |
Pour désactiver le blocage des sauvegardes pour cette machine
- Changer ce nombre.
- Entrer 0.0 > Arrêter/annuler la sauvegarde.
- Cliquer le nom de la machine: 192.168.1.152.
- On est de retour à la page d'accueil de cette machine.
- Message au retour d'une Expiration du délais de connexion.
Script de post-sauvegarde
Si la désactivation d'AutoBlock est non fonctionnel
- Courriel reçu par
EMailAdminUserName@EMailUserDestDomain
(admin@micronator-101.org). - Message affiché sur la page d'accueil de la machine en question.
Cliquer: Changer ce nombre.
- Entrer 0.0 > Arrêter/annuler la sauvegarde.
- Cliquer le nom de la machine: 192.168.1.152 pour retourner à la page d'accueil de cette machine.
Mot de la fin
Ce Cahier-9 s'ajoute en supplément aux précédents cahiers du Cours SME-101 afin de pourvoir faire une sauvegarde complète des Serveurs SME créés avec ces derniers.
Voici quelques marches à suivre relatives à Odoo-11.
- Description de l'installation d'Odoo-11 sur un Serveur SME-9.2: https://wiki.contribs.org/Odoo-11.
- Description des étapes pour assurer une connexion sécuritaire à Odoo-11 roulant sur un Serveur SME: https://wiki.contribs.org/Odoo-11_%26_HTTPS.
- Description des étapes pour créer un serveur de test/développement pour vérifier les mises à jour d'Odoo-11, etc: https://wiki.contribs.org/Odoo-11_%26_serveur_de_test/dev
Particularités de ce document
Avertissement
Bien que nous utilisions ici un vocabulaire issu des sciences informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine.
Notes au lecteur
- Les captures d’écrans ne sont que des références.
- Les informations écrites ont préséance sur celles retrouvées dans les captures d’écrans. Se référer aux différents tableaux lorsque ceux-ci sont présents.
Conventions
- Toutes les commandes à entrer à la console du Serveur SME commencent habituellement avec l'invite # pour l'usager root ou $ pour un usager sans privilège particulier.
- L'invite
mysql>
de la console MySQL est toujours présente. - La sortie de la commande est séparée de celle-ci par une ligne vide sans couleur de fond.
- L'invite de retour n'est jamais présent pour la plupart des commandes.
- Les affichages à surveiller sont en rouge, bleu, orange ou magenta.
# ping 192.168.1.149
192.168.1.149 is alive
Les liens de référence Internet sont en bleu de même que ceux intra-document mais, ces derniers débute par un " # ".
Manipulation, truc ou ruse pour se tirer d’embarras.
Une étape, note ou procédure à surveiller.
Danger pour la sécurité du système.
Indique que la commande est sur une seule ligne. Pour ce document en PDF, il faudra copier la commande entière dans un éditeur de texte ASCII tel que NotePad++ et la mettre sur une seule ligne avant de la copier à la console.
Une chaîne de caractères en magenta indique qu’il faut remplacer cette chaîne par vos propres paramètres.
Commande à exécuter si ce n'est déjà fait. |
Commande indiquée à titre d'information seulement. |
Cours SME-101
Après avoir suivi le cours SME-101, l'Étudiant possédera un site de Commerce en ligne fiable et hautement sécuritaire.
De plus, il pourra utiliser un clone de son site, sur un Serveur SME virtuel sur sa station de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de son site en ligne.
Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence GPL; ils ne coûtent pas un sou. Le seul achat nécessaire est l'obtention d'un nom de domaine FQDN au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.
Documentation
Se voulant une base solide pour la création d'un site de Commerce en ligne, le cours SME-101 comprend plusieurs cahiers :
- Cahier-00: "SME-101.00 Linux de base". Les bases de Linux, SME-101.00 Linux de base.
- Cahier-01: Installation et configuration des logiciels prérequis sur le poste de travail de l'Étudiant de même que le téléchargement des fichiers qui seront installés sur le Serveur SME virtuel, https://wiki.contribs.org/SME-101.01_Logiciels_de_la_station_de_travail SME-101.01 Logiciels de la station de travail].
- Cahier-02: Description du parcours des paquets IP du Serveur SME vers l'Internet, création de la machine virtuelle, installation/configuration du serveur Linux SME et enfin, sauvegarde/restauration de ce dernier, SME-101.02 Serveur SME.
- Cahier-03: Abonnement à un FAI, installation et configuration d'un modem ADSL/VDSL, création d'un domaine chez un fournisseur de Service DNS dynamique avec installation d'un script pour sa mise à jour et enfin la marche à suivre pour l'obtention et la configuration d'un domaine FQDN[6], SME-101.03 ADSL/VDSL, DDNS et Domaine FQDN.
- Cahier-04: Installation d'un certificat SSL de l'autorité de certification Let's Encrypt et script de mise à jour, SME-101.04 Certificat Let's Encrypt.
- Cahier-05A: Installation et configuration de WordPress, SME-101.05A WordPress.
- Cahier-05B: Installation et configuration de l'extension de sécurité Wordfence, SME-101.05B Wordfence.
- Cahier-06: Installation et configuration de l'extension de vente en ligne WooCommerce, création de comptes chez Stripe et PayPal pour les paiements en ligne, SME-101.06 WooCommerce.
- Cahier-07: Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator, SME-101.07 Duplicator.
- Cahier-08: Serveur mandataire inversé, SME-101.08 Serveur mandataire inversé.
- Cahier-09: Supplément: SME & BackupPC-4.2, SME-101.09: Supplément: SME & BackupPC-4.2.
- Cahier-10: Supplément: Fail2ban, SME-101.09: SME-101.10: Supplément: Fail2ban.
Cours SME-201
* Cahier-01: Proxmox, SME-201.01: Proxmox-5.2.1. |
* Cahier-02: MediaWiki, SME-201.02 MediaWiki-1.31.1. |
* Cahier-03: Dolibarr (À venir). |
* Cahier-04: OsTicket, SME-201.04: osTicket-1.10.4. |
Michel-André
Victoire totale, hissons la bannière de la victoire.
- ↑ Dispositif: Unité qui assure la réalisation d'une opération particulière, indispensable au bon fonctionnement d'un système informatique, d'une machine ou d'un appareil.
Référence: http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8357059. - ↑ phrase de passe: Groupe de mots et de caractères alphanumériques ou spéciaux, faisant office de mot de passe, connu de l'utilisateur seulement, qui sert à protéger sa clé privée et à l'identifier lors d'une connexion ou d'un transfert de fichier, tout en lui assurant une plus grande sécurité.
Notes: Les phrases de passe ne diffèrent des mots de passe que par la longueur. Les mots de passe sont généralement très courts - de 6 à 10 caractères -, alors que les phrases de passe peuvent comporter jusqu'à 100 caractères (et même plus). Leur longueur et la combinaison des mots et des caractères alphanumériques contribuent à les rendre plus difficiles à deviner que les mots de passe, et donc plus sûres.
Une phrase de passe doit être: connue que de l'utilisateur, suffisamment longue pour être sûre, difficile à deviner, facile à retenir et à saisir sans erreur. Certains considèrent qu'elle devrait atteindre 80 à 100 caractères pour être vraiment efficace.
Référence: http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8361195. - ↑ 127.0.0.1: Le nom localhost est associé à l’adresse IPv6 ::1 et à la plage d’adresses IPv4 127.0.0.0/8 (toutes les adresses IPv4 comprises entre 127.0.0.1 et 127.255.255.255 dont la plus utilisée est 127.0.0.1). L’interface réseau virtuelle utilisée dans cette situation se nomme l’interface de loopback (abrégée par lo sous Unix) ou boucle locale.
Référence: https://fr.wikipedia.org/wiki/Localhost. - ↑ sudo: Référence: https://fr.wikipedia.org/wiki/Sudo.
- ↑ réveil par le réseau: Fonction permettant de mettre sous tension à distance des ordinateurs personnels, à partir de commandes émises par un serveur de réseau local.
Note: La fonction réveil par le réseau permet, à l'aide d'un serveur, d'effectuer des travaux de télémaintenance sur des ordinateurs personnels, lorsque leurs utilisateurs sont absents et qu'ils ont fermé leurs appareils.
Référence: http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8370856. - ↑ FQDN: Dans le DNS, un Fully Qualified Domain Name (FQDN, ou nom de domaine complètement qualifié) est un nom de domaine qui révèle la position absolue d'un nœud dans l'arborescence DNS en indiquant tous les domaines de niveau supérieur jusqu'à la racine. On parle également de domaine absolu, par opposition aux domaines relatifs. Par convention, le FQDN est ponctué par un point final.
Référence: https://fr.wikipedia.org/wiki/Fully_qualified_domain_name.