Retour : Page Principale > Politique de sécurité

Sauvegarde des ordinateurs portables


Les ordinateurs portables ne sont pas connectés au réseau à heure fixe, et sont de toute façon rarement connectés au réseau local Belfort avec la bonne IP. On utilise donc des sauvegardes "push", comme pour les serveurs : c'est l'ordi portable qui appelle Adansonia pour se sauvegarder, où qu'il soit.

Ils se divisent en deux catégories :
  • ceux qui sont associés à un⋅e seul⋅e utilisateur⋅trice, avec deux sous-catégories :
    • les ordinateurs sous Linux pour lesquels c'est facile
    • les ordinateurs sous Windows pour lesquels c'est moins facile (voir chapitre 3)
  • les autres, qui sont partagés par plusieurs utilisateurs

1. Ordinateurs portables mono-utilisateur⋅trice

Le dossier /home/utilisateur de l'ordi portable sera sauvegardé sur Adansonia dans /home/utilisateur

1.1. Accès au serveur et paire de clefs

L'utilisateur dont on veut sauvegarder les documents doit pouvoir se connecter à Adansonia en mode non-interactif. Pour cela il faut une paire de clefs RSA.

1.1.1. Vérifier si l'utilisateur a une paire de clefs, sinon la créer
Sur l'ordi portable, regarder dans ~/.ssh/ si on a une paire de clefs id_rsa et id_rsa.pub.
Si ce n'est pas le cas, les créer :
ssh-keygen -t rsa

(laisser la passphrase vide)

1.1.2. Copier la clef publique sur Adansonia
Copier le fichier id_rsa.pub sur Adansonia, dans le compte de l'utilisateur correspondant.
Sur Adansonia :
su - nomdutilisateur

Vérifier dans ~/.ssh/ si un fichier authorized_keys existe.
  • si oui, copier le contenu du fichier id_rsa.pub provenant du portable dans une nouvelle ligne à la fin du fichier authorized_keys
  • si non, renommer le fichier id_rsa.pub provenant du portable en ~/.ssh/authorized_keys

1.1.3. Vérifier le SSH non-interactif
Sur l'ordi portable, la commande suivante devrait maintenant fonctionner sans demander de mot de passe :
ssh nomdutilisateur@tela-botanica.no-ip.org


1.1.4. Dossier de destination
Sur Adansonia, en root, créer le dossier de destination de l'utilisateur :
mkdir -p /home/nomdutilisateur
# (ex: mkdir /home/jennifer)

Modifier le propriétaire de ce dossier :
chown nomdutilisateur:nomdutilisateur /home/nomdutilisateur


1.2. Script de sauvegarde et fichier d'exclusions


Sur l'ordi portable, utiliser le script suivant en l'enregistrant dans un fichier dans le dossier personnel de l'utilisateur, par exemple sauvegarde.sh.
Puis modifier les variables de configuration en entête
#!/bin/bash

# configuration à changer pour chaque utilisateur
UTILISATEUR="mathias"

# trucs en dur
EXCLUSIONS="exclusions.txt"
SERVEUR="tela-botanica.no-ip.org"
LOG="./sauvegarde.log"

# variables élaborées
DOSSIER_SOURCE="/home/$UTILISATEUR"
DOSSIER_DESTINATION="/home/$UTILISATEUR"
SCP_DEST="$UTILISATEUR@$SERVEUR:$DOSSIER_DESTINATION"

# commande de sauvegarde
CMD="rsync --stats --exclude-from=$EXCLUSIONS -v -e ssh -R -a --delete $DOSSIER_SOURCE $SCP_DEST >> $LOG"

# go !
eval $CMD

et le fichier d'exclusions suivant, à enregistrer au même endroit que le script de sauvegarde, dans un fichier nommé exclusions.txt :
# Dossier contenant les fichiers à exclure choisis par l'utilisateur
Stockage/
stockage/
Dropbox/
dropbox/
Musique/
musique/
Vidéo/
Video/
vidéo/
video/
VirtualBox VMs/
VirtualBox/ 
# Autres dossiers et fichiers
tmp/ 
cache/
Cache/
cache
logs/
Trash/
# Piège : l'explorateur réseau de Gnome monte les partages distants dans .gvfs (y a de quoi se fâcher)
.gvfs
.googleearth
.thumbnails


1.3. Automatisation

Plutôt que (ou en sus) de lancer le script de sauvegarde manuellement, on peut créer une règle CRON qui appelle la sauvegarde tous les jours, ça ne coûte pas cher : si l'ordi est connecté au réseau tant mieux, sinon tant pis. Et si la connexion est interrompue inopinément, normalement rsync fait son boulot et continuera la fois suivante.

2. Ordinateurs portables partagés

(de nombreux points sont similaires au chapitre précédent, mais il y a tout de même des différences)

Le dossier /home/utilisateur de l'ordi portable sera sauvegardé sur Adansonia dans /home/ordi_nomdelordiportable/home/utilisateur

2.1. Accès au serveur et paire de clefs

Appliquer les points 1.1.1, 1.1.2 et 1.1.3.

2.1.4. Dossier de destination
Sur Adansonia, en root, créer le dossier de destination de la machine et le sous-dossier home :
mkdir -p /home/ordi_nomdelamachine/home
# (ex: mkdir /home/ordi_legrovo/home)

Modifier les permissions de home pour que différents utilisateurs puissent écrire dedans :
chmod 777 /home/ordi_nomdelamachine/home

Note : trouver une manière plus sécuritaire de permettre aux utilisateurs d'écrire dans home (avec des groupes par exemple).

Script de sauvegarde et fichier d'exclusions


Sur l'ordi portable, utiliser le script suivant en l'enregistrant dans un fichier dans le dossier personnel de l'utilisateur, par exemple sauvegarde.sh.
Puis modifier les variable de configuration en entête
#!/bin/bash

# configuration à changer pour chaque ordinateur / utilisateur
MACHINE="pierre"
UTILISATEUR="mathias"

# trucs en dur
EXCLUSIONS="exclusions.txt"
SERVEUR="tela-botanica.no-ip.org"
LOG="./sauvegarde.log"

# variables élaborées
DOSSIER_SOURCE="/home/$UTILISATEUR"
# rsync rajoute "/home/$UTILISATEUR" après le chemin, puisque c'est ce dossier qu'on sauvegarde
DOSSIER_DESTINATION="/home/ordi_$MACHINE"
SCP_DEST="$UTILISATEUR@$SERVEUR:$DOSSIER_DESTINATION"

# commande de sauvegarde
CMD="rsync --stats --exclude-from=$EXCLUSIONS -v -e ssh -R -a --delete $DOSSIER_SOURCE $SCP_DEST >> $LOG"

# go !
eval $CMD

et le fichier d'exclusions suivant, à enregistrer au même endroit que le script de sauvegarde, dans un fichier nommé exclusions.txt :
# Dossier contenant les fichiers à exclure choisis par l'utilisateur
Stockage/
stockage/
Dropbox/
dropbox/
Musique/
musique/
Vidéo/
Video/
vidéo/
video/
VirtualBox VMs/
VirtualBox/ 
# Autres dossiers et fichiers
tmp/ 
cache/
Cache/
cache
logs/
Trash/
# Piège : l'explorateur réseau de Gnome monte les partages distants dans .gvfs (y a de quoi se fâcher)
.gvfs
.googleearth
.thumbnails
# Chaque utilisateur d'ordi portable partagé est censé avoir un ordi principal autre, qui sauvegarde ses emails
.thunderbird


Automatisation

Voir 1.3

3. Ordinateurs sous Windows

Le principe est le même, mais Windows ne dispose pas de Rsync ni de SSH, ni d'openssl, ni de quoi que ce soit d'utile ^^

Cette documentation propose d'installer Cygwin et d'appliquer les mêmes méthodes que ci-dessus.
http://www.it-connect.fr/synchronisation-rsync-entre-windows-et-linux/
Ça fonctionne mais attention, la démarche de cette doc est un peu différente en termes de dossiers source et destination.

Marche à suivre :
  • installer Cygwin en suivant les instructions du lien ci-dessus, sélectionner les paquets "openssh", "bash" et "rsync" (ça peut prendre trois plombes)
  • executer mkgroup, changer les permissions et créer la paire de clefs, toujours comme indiqué dans la doc
  • envoyer la clef publique sur Adansonia, avec scp par exemple
  • créer un script de sauvegarde sauvegarde.sh et un fichier d'exclusions exclusions.txt, avec les contenus ci-dessous
  • l'exécuter à la demande en ouvrant le BASH Cygwin (icône sur le bureau ou dans le menu des programmes) et en lançant "./sauvegarde.sh"

Notes :
  • voir comment ajouter l'exécution du script aux tâches planifiées de Windows

3.1. Pour un ordi portable mono-utilisateur⋅trice


Script de sauvegarde :
Attention, les chemins sont valables pour Windows 10 en Français, vérifier et adapter si besoin avant d'utiliser.
$ cat sauvegarde.sh
#!/bin/bash

# configuration à changer pour chaque ordinateur / utilisateur
UTILISATEUR="mathias"

# trucs en dur
EXCLUSIONS="exclusions.txt"
SERVEUR="tela-botanica.no-ip.org"
LOG="./sauvegarde.log"

# variables élaborées
DOSSIER_SOURCE="/cygdrive/c/Users/$UTILISATEUR/"
DOSSIER_DESTINATION="/home/$UTILISATEUR"
SCP_DEST="$UTILISATEUR@$SERVEUR:$DOSSIER_DESTINATION"

# commande de sauvegarde
CMD="rsync --stats --chmod=ug=rwX,o=rxX --exclude-from=$EXCLUSIONS -v -e ssh -R -a --delete $DOSSIER_SOURCE $SCP_DEST >> $LOG"

# go !
eval $CMD


Fichier d'exclusions :
Attention, les chemins sont valables pour Windows 10 en Français, vérifier et adapter si besoin avant d'utiliser.
# Dossier contenant les fichiers à exclure choisis par l'utilisateur
Stockage/
stockage/
Dropbox/
dropbox/
Music/
Videos/
VirtualBox VMs/
VirtualBox/
# Dossiers inutiles de Windows (liens symboliques, etc.) À màj en fonction des versions
Cookies
Menu Démarrer
Mes documents
Modèles
Recent
SendTo
Voisinage d'impression
Voisinage réseau
NTUSER.DAT*


3.2. Pour un ordi portable partagé


Script de sauvegarde :
Attention, les chemins sont valables pour Windows 10 en Français, vérifier et adapter si besoin avant d'utiliser.
$ cat sauvegarde.sh
#!/bin/bash

# configuration à changer pour chaque ordinateur / utilisateur
MACHINE="vbox"
UTILISATEUR="mathias"

# trucs en dur
EXCLUSIONS="exclusions.txt"
SERVEUR="tela-botanica.no-ip.org"
LOG="./sauvegarde.log"

# variables élaborées
# Le / final est censé éviter de recréer l'arborescence source dans la destination, mais ça marche pas :-/
DOSSIER_SOURCE="/cygdrive/c/Users/$UTILISATEUR/"
DOSSIER_DESTINATION="/home/ordi_$MACHINE/home/$UTILISATEUR/"
SCP_DEST="$UTILISATEUR@$SERVEUR:$DOSSIER_DESTINATION"

# commande de sauvegarde
CMD="rsync --stats --chmod=ug=rwX,o=rxX --exclude-from=$EXCLUSIONS -v -e ssh -R -a --delete $DOSSIER_SOURCE $SCP_DEST >> $LOG"

# go !
eval $CMD


Fichier d'exclusions :
Attention, les chemins sont valables pour Windows 10 en Français, vérifier et adapter si besoin avant d'utiliser.
# Dossier contenant les fichiers à exclure choisis par l'utilisateur
Stockage/
stockage/
Dropbox/
dropbox/
Music/
Videos/
VirtualBox VMs/
VirtualBox/
# Dossiers inutiles de Windows (liens symboliques, etc.) À màj en fonction des versions
Cookies
Menu Démarrer
Mes documents
Modèles
Recent
SendTo
Voisinage d'impression
Voisinage réseau
NTUSER.DAT*
# Chaque utilisateur d'ordi portable partagé est censé avoir un ordi principal autre, qui sauvegarde ses emails
AppData/Roaming/Thunderbird


Créer un lanceur

Pour lancer la sauvegarde sans avoir à ouvir le terminal Cygwin et taper le nom du script, faire un clic droit sur le script sauvegarde.sh et choisir "ouvrir avec". Puis aller chercher le programme adéquat dans C:\cygwin64\bin\bash. Il suffit maintenant de double-cliquer sur le script pour lancer la sauvegarde.
Note: le script se lancera une fois le choix du programme fait, c'est chiant; on peut toujours l'arrêter avec Ctrl+C si on ne voulait pas le lancer maintenant.

Problèmes récurrents avec la version Windows / Cygwin

CRLF
Si on utilise le bloc notes Windows pour créer le fichier sauvegarde.sh en copiant-collant l'exemple fourni dans cette doc, ça ne marchera pas car bloc notes finit toutes ses lignes par CRLF (\r\n) et Cygwin n'aime pas ça.
Voir ici pour utiliser dos2unix : http://stackoverflow.com/a/18772599/5986614
Sinon utiliser Notepad ++.

Chemin de destination de la sauvegarde
Sur Adansonia, rsync recrée un chemin super long dans /home/utilisateur : cygdrive/c/Users/utilisateur. On ne peut pas faire autrement facilement, et ça n'est pas grave.

Extensions
Par défaut Windows n'affiche pas les extensions de fichiers. Lorsqu'on renomme un fichier texte en ".sh" il faut se méfier : la vraie extension du fichier est souvent .sh.txt. Pour se sortir de là, utiliser le terminal Cygwin pour faire un mv, ou afficher temporairement les extensions de fichiers dans "Options des dossiers" de Windows.