Le web de Dominique Guebey – Bazar informatique

Page : http://www.dg77.net/tekno/securite/savdos.htm


   D o m i n i q u e   G u e b e y    J u n g l e      Bazar informatique

A propos de sécurité informatique

Petit outil de sauvegarde sur internet

Sommaire :
Exposé des motifs
Particularités
Exemple sous MS Windows 2000-XP
Remarques
Exemple sous GNU/Linux
Script ftp et précautions sur le site internet
Module de restauration des données

Exposé des motifs

Objectif de ce qui suit : conserver certaines données personnelles (par exemple : courrier) dans un dossier du site internet de l'utilisateur. Ceci devant se faire d'une façon aussi automatique que possible, et avec un bon degré de sécurité.

Particularités

Ce modeste outil se distingue par les traits suivants :

Exemple sous MS Windows 2000-XP

@ECHO off
ECHO Sauvegarde des données domestiques
ECHO ==================================
rem
rem Auteur : Dominique Guebey http://exe.dg77.net/email.php
rem Version du 03 mai 2005
rem 
rem Utilisation de commandes UNIX :
rem Ce traitement suppose que CYGWIN est installé et configuré.
rem Voir par exemple : 
rem http://exe.dg77.net/tekno/manuel/cygwin.htm
rem http://exe.dg77.net/tekno/manuel/man000.htm#tar

ECHO INITIALISATIONS
rem   - Positionnement de depart
rem   - Chemin d'acces au repertoire contenant le script
d:
cd d:\Documents and Settings
SET CHE=alf\mesdoc~1\bin\

ECHO CREATION DU FICHIER ARCHIVES
IF exist f02jjj33.tar DEL f02jjj33.tar
rem  BIN :  répertoire des outils de programmation
tar  -cf f02jjj33.tar  'alf/Mes Documents/bin/'
rem  -r=ajout d'autres "dossiers" qu'on veut sauvegarder
tar  -rf f02jjj33.tar  'alf/Mes Documents/doc/'
tar  -rf f02jjj33.tar  'alf/Mes Documents/config/'
tar  -rf f02jjj33.tar  'Maison/Mes documents/courrier/'
tar  -rf f02jjj33.tar  'Maison/Mes documents/documentation/'

ECHO COMPRESSION
IF exist f02jjj33.tar.gz IF exist f02jjj33.tar DEL f02jjj33.tar.gz
gzip f02jjj33.tar

ECHO CRYPTAGE
IF exist f02jjj33.tar.gz IF exist f02jjj33.tar.gz.gpg DEL f02jjj33.tar.gz.gpg
gpg -r 139ca847 -e -a -o f02jjj33.tar.gz.gpg f02jjj33.tar.gz
IF exist f02jjj33.tar.gz.gpg IF exist f02jjj33.tar.gz DEL f02jjj33.tar.gz

ECHO ENVOI par FTP
rem Dechiffrage préalable du fichier script
IF not exist %CHE%f02jjj33.ftp  IF exist %CHE%sauve.ftp.gpg gpg -r 139ca847 -d -o %CHE%sauve.ftp %CHE%sauve.ftp.gpg
rem Commande ftp utilisant le script sauve.ftp
ftp  -s:%CHE%sauve.ftp  perso.fournisseurdacces.fr
IF exist f02jjj33.tar.gz.gpg DEL f02jjj33.tar.gz.gpg
rem Chiffrage du fichier script (vite cacher le psw !)
IF exist %CHE%sauve.ftp.gpg IF exist %CHE%sauve.ftp DEL %CHE%sauve.ftp
IF exist %CHE%sauve.ftp     gpg -r 139ca847 -e -o %CHE%sauve.ftp.gpg %CHE%sauve.ftp
IF exist %CHE%sauve.ftp.gpg IF exist %CHE%sauve.ftp DEL %CHE%sauve.ftp

Remarques

Exemple sous GNU/Linux

#!/bin/bash
echo Sauvegarde des données domestiques
echo ==================================
#
# Auteur : Dominique Guebey http://exe.dg77.net/email.php
# Version du 08 mai 2005

echo INITIALISATIONS
#   - Positionnement de depart
cd '/mnt/win_c2/Documents and Settings'

echo CREATION DU FICHIER ARCHIVES
if [ -f   f02jjj33.tar ]; then rm  f02jjj33.tar ; fi
#  BIN :  répertoire des outils de programmation
tar  -cf  f02jjj33.tar  'alf/Mes Documents/bin/'
#  -r=ajout d'autres "dossiers" qu'on veut sauvegarder
tar  -rf  f02jjj33.tar  'alf/Mes Documents/courrier/'
tar  -rf  f02jjj33.tar  '/home/Jeannot/Documentation/'

echo COMPRESSION
if [ -f  f02jjj33.tar.gz ]; then if [ -f  f02jjj33.tar ]; \ 
        then rm  f02jjj33.tar.gz ; fi ; fi
gzip  f02jjj33.tar

echo CRYPTAGE
if [ -f  f02jjj33.tar.gz ]; then if [ -f  f02jjj33.tar.gz.gpg ]; \
        then rm  f02jjj33.tar.gz.gpg ; fi ; fi
gpg -r 139ca847 -e -a -o  f02jjj33.tar.gz.gpg  f02jjj33.tar.gz
if [ -f  f02jjj33.tar.gz.gpg ]; then if [ -f  f02jjj33.tar.gz ]; \ 
        then rm  f02jjj33.tar.gz ; fi ; fi

echo ENVOI par FTP
# Dechiffrage préalable du fichier script
if [ -f  f02jjj33.ftp ]; then echo ; else if [ -f sauve.ftp.gpg ]; \ 
        then gpg -r 139ca847 -d -o sauve.ftp sauve.ftp.gpg ; fi ; fi
# Commande ftp utilisant le script sauve.ftp
ftp  -s:sauve.ftp  perso.fournisseurdacces.fr
 if [ -f  f02jjj33.tar.gz.gpg ]; then rm  f02jjj33.tar.gz.gpg ; fi
# Chiffrage du fichier script (vite cacher le psw !)
if [ -f sauve.ftp.gpg ]; then if [ -f sauve.ftp ]; then rm sauve.ftp ; fi ; fi
if [ -f sauve.ftp ]; then gpg -r 139ca847 -e -o sauve.ftp.gpg sauve.ftp ; fi
if [ -f sauve.ftp.gpg ]; then if [ -f sauve.ftp ]; then rm sauve.ftp ; fi ; fi

Script ftp et précautions sur le site internet

Ci-dessous le fichier sauve.ftp. Il s'agit du script utilisé par la commande ftp dans le batch qui précède. Chacun adaptera les codes utilisateurs et mot-de-passe en fonction des indications fournies par le fournisseur d'accès (ou provider).

id_utilisateur
mot_de_passe
cd zorglb2834
put f02jjj33.tar.gz.gpg
close
quit

zorglb2834 est un exemple de nom de répertoire à utilisation réservée. Bien entendu aucune page WEB au monde ne doit contenir un lien pointant vers lui (ex.:  http://www.monsite.tld/zorglb2834/ ). Pour rendre non affichable le contenu du répertoire de sauvegarde ("zorglb2834" dans l'exemple) par connexion http, il suffit d'y placer un fichier index.html qui peut être réduit au strict minimum. On pourra récupérer l'exemple suivant, par "copier-coller" :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
    <title>ERROR 403</title>
  </head>
  <body>
    <h1>ERROR 403</h1>
    <dl>
      <dt>Entrée interdite - Forbidden - Prohibido - Verboten</dt>
      <dd>Je regrette, mais le lien que vous avez choisi est strictement r&eacute;serv&eacute;.</dd>
      <dd>We're sorry but the link you tried to access is forbidden.</dd>
      <dd>Lo sentimos mucho. El servidor no tiene acceso al documento que usted solicitó.</dd>
      <dd>Achtung ! Sie haben nicht die erforderlichen Zugriffsrechte um auf die von Ihnen gewünschte Ressource zuzugreifen !</dd>
    </dl>
  </body>
</html>

Module de restauration des données

Voici maintenant le nécessaire pour redescendre automatiquement les données sauvegardées par ce qui précède. Quand le fichier archive .tar est prêt à être extrait, son contenu est affiché, puis un prompt demande si on veut exécuter la restauration. Refuser permet de sélectionner ensuite manuellement les objets qu'on veut récupérer.

@ECHO off
ECHO Recuperation des données domestiques
ECHO ====================================
ECHO VER
rem
rem Auteur : Dominique Guebey http://exe.dg77.net/email.php
rem Version du 05 mai 2005
rem 
rem Utilisation de commandes UNIX :
rem Ce traitement suppose que CYGWIN est installé et configuré.
rem Voir par exemple : 
rem http://exe.dg77.net/tekno/manuel/cygwin.htm
rem http://exe.dg77.net/tekno/manuel/man000.htm#tar

ECHO INITIALISATIONS
rem   - Positionnement de depart
rem   - Chemin d'acces au repertoire contenant le script
d:
cd d:\Documents and Settings
SET CHE=alf\mesdoc~1\bin\

ECHO Telechargement par FTP
rem Dechiffrage préalable du fichier script
IF not exist %CHE%restore.ftp  IF exist %CHE%restore.ftp.gpg gpg -r 139ca847 -d -o %CHE%restore.ftp %CHE%restore.ftp.gpg
rem Commande ftp utilisant le script restore.ftp
ftp  -s:%CHE%restore.ftp  perso.fournisseurdacces.fr
rem Chiffrage du fichier script (vite cacher le psw !)
IF exist %CHE%restore.ftp.gpg IF exist %CHE%restore.ftp DEL %CHE%restore.ftp
IF exist %CHE%restore.ftp     gpg -r 139ca847 -e -o %CHE%restore.ftp.gpg %CHE%restore.ftp
IF exist %CHE%restore.ftp.gpg IF exist %CHE%restore.ftp DEL %CHE%restore.ftp

ECHO DECRYPTAGE
gpg -r 139ca847 -d -o f02jjj33.tar.gz f02jjj33.tar.gz.gpg

ECHO DECOMPRESSION
gzip -d f02jjj33.tar.gz
IF exist f02jjj33.tar.gz IF exist f02jjj33.tar DEL f02jjj33.tar.gz

ECHO AFFICHAGE - DISPLAY ARCHIVE
tar  -tf f02jjj33.tar

CHOICE /C:YN /N /T:N,30 Restauration generale Y=OUI, N=NON : 
IF errorlevel 2 goto :EOF
ECHO EXTRACTION - RESTAURATION
tar  -xf f02jjj33.tar

Ci-dessous le script restore.ftp utilisé par la dernière commande ftp. On fait un get au lieu du put qui avait servi à l'envoi.

id_utilisateur
mot_de_passe
cd zorglb2834
get f02jjj33.tar.gz.gpg
close
quit