Sauvegardes
Avant-propos
Maintenance des accès utilisateurs
- Prévenir : configurer, sauvegarder, surveiller, intervenir
- Corriger : détecter, diagnostiquer, réparer, valider et documenter
- Gérer : outils des gestion de parc, gestion d'incidents, politique de maintenance, périmètre d'intervention, normes
Prévention
Anticiper
- Protection du système dans l'utilisation courante
- Qui a droit à quoi ?
- Vérifier et documenter les habilitations des utilisateurs en fonction des choix organisationnels
- Quelle politique de droits et privilèges ?
Prévention
Anticiper
- Protection du système contre les malveillances
- antivirus
- antispyware
- risques
- outils
Anticiper - Mises à jour
- Pourquoi mettre à jour son système ?
- failles de sécurité
- Mise à jour automatiques Oui/Non ?
- fréquence : chez Microsoft, les 2e et 4e mardi du mois
- volume : plusieurs centaines des Mo pour certains Services Pack Microsoft
- versions : changement de version majeur 2.0 ⇒ 3.0 (cf base de données)
- précautions : peuvent produire des blocages ou des plantages
- temps d'installation, avec de multiples démarrage (Windows) ⇒ indisponibilité
- types de mises à jour, chez Microsoft : importantes, recommandées, facultatives
Mises à jour : Windows
- Mise à jour automatiques possibles
- Service SUS/WSUS (Windows Software Update Service)
- service centralisé (Client/Serveur) de mise à jour avec validation
- permet de limiter les volumes de transfert
- permet la planification après les tests
Mises à jour : Linux
- Système élaborés et efficaces
- utilisation éventuelle de serveur proxy
- Debian/Ubuntu :
- aptitude update pour télécharger les listes de version sur un dépôt externe
- aptitude upgrade pour mettre à jour les paquets
- RedHat :
- yum update
Anticiper - Nettoyage du système
- Qu'est ce que le nettoyage ?
- vidage des fichiers temporaires (fichiers d'installation, cache du navigateur, paquets debian dans le cache , points de reprise windows, ….)
- Supprimer des fichiers ?
- Supprimer des applications
- Pourquoi mettre à jour son système ?
- corriger les bugs
- Supprimer un utilisateur ?
Anticiper - Surveillance
- Observer ce qui se passe sur un système
- Les journaux système et applicatifs
- Windows
- Linux
- Services réseaux ouverts
- port ouvert ⇔ un service en écoute
- TCP/UDP
- Audit d'activité :
- Pourquoi ?
- Quels objets auditer ?
- Quels évènements auditer ? (succès - échec)
Surveillance - Windows - 1
Surveillance - Windows - 2
Surveillance - Linux - 1
- les logs
- les fichier de logs sont récupérés par le démon syslog (rsyslog sous Debian) et stockés dans le répertoire /var/log
- le fichier /var/log/syslog est le fichier principal de logs mais il en existe d'autres (/var/log/apache2/access.log pour apache, …)
- on peut les examiner en temps réel avec la commande tail -f fichier (Ctrl-C pour interrompre)
root@marge:~#> tail -f /var/log/syslog Jan 26 13:49:01 marge dhcpd: DHCPDISCOVER from 00:1e:c1:06:78:60 via eth0: network 10.121.32.0/25: no free leases Jan 26 13:49:04 marge dhcpd: DHCPDISCOVER from 00:1f:3c:4a:ca:4c (pmpor-10) via 10.121.39.254 Jan 26 13:49:04 marge dhcpd: DHCPOFFER on 10.121.39.205 to 00:1f:3c:4a:ca:4c (pmpor-10) via 10.121.39.254 Jan 26 13:49:08 marge named[22440]: client 10.121.32.42#59293: update 'ldij-lecastel.lan/IN' denied Jan 26 13:49:08 marge named[22440]: client 10.121.32.42#58656: update '10.in-addr.arpa/IN' denied Jan 26 13:49:13 marge dhcpd: DHCPDISCOVER from 00:1e:c1:06:78:60 via eth0: network 10.121.32.0/25: no free leases Jan 26 13:49:14 marge dhcpd: DHCPREQUEST for 10.121.39.195 (10.121.32.22) from 0c:df:a4:84:0a:0b via 10.121.39.254 Jan 26 13:49:14 marge dhcpd: DHCPACK on 10.121.39.195 to 0c:df:a4:84:0a:0b via 10.121.39.254 Jan 26 13:49:14 marge dhcpd: DHCPREQUEST for 10.121.39.195 (10.121.32.22) from 0c:df:a4:84:0a:0b via 10.121.39.254 Jan 26 13:49:14 marge dhcpd: DHCPACK on 10.121.39.195 to 0c:df:a4:84:0a:0b via 10.121.39.254 Jan 26 13:49:25 marge dhcpd: DHCPDISCOVER from 00:1e:c1:06:78:60 via eth0: network 10.121.32.0/25: no free leases
Surveillance - Linux - 2
- gestion des volumes
- durée de la période stockée (1 semaine … 1 an)
- obligations légales
- comment faire pour limiter le volume et ne pas saturer les partitions (logrotate)
- compression
- mécanisme de centralisation : 1 serveur de log par site (cf syslog Castel) et plus des logs locaux
Surveillance - Supervision
- installation d'outils de supervision (Nagios, Zabbix, …)
- scan de ports distants : nmap sous Linux Attention aux contraintes légales
root@vm2:/home/sio# nmap ns1 Starting Nmap 5.00 ( http://nmap.org ) at 2012-01-26 14:24 CET Interesting ports on marge.ldij-lecastel.lan (192.168.0.1): Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
Anticiper - Les Sauvegardes
- mise en place de solutions de récupération ⇒ dispositifs de sauvegardes
- caractéristiques
- totale
- partielle
- contraintes
- volume
- débit
- historique
Sauvegardes - Caractéristiques - 1
- totale
- gros volume
- long
- partielle
- volume limité
- incohérence potentielle
- plusieurs sauvegardes à restaurer
- 2 variantes
- différentielle
- incrémentale
Sauvegarde différentielle
- effectue une copie des fichiers créés ou modifiés depuis la dernière sauvegarde complète, quelles que soient les sauvegardes intermédiaires.
- En d'autres termes, la sauvegarde complète du jour J sert de référence pour identifier les fichiers créés, modifiés ou ajoutés et ainsi ne sauvegarder que ces derniers du jour J+1 au jour J+6.
- la restauration nécessite la recopie sur disque de la dernière sauvegarde complète et de la sauvegarde différentielle la plus récente.
- utilise un attribut de fichier qui passe à 1 s'il est sauvegardé
Sauvegarde incrémentale
- sauvegarde les fichiers créés ou modifiés depuis la dernière sauvegarde quel que soit son type (complète, différentielle ou incrémentielle).
- exemple : une sauvegarde complète est réalisée le jour J. Le jour J+1, la sauvegarde incrémentale est réalisée par référence au jour J. Le jour J+2, la sauvegarde incrémentale est réalisée par référence au jour J+1. Etc
- si la restauration se porte sur un disque sauvegardé le jour J+4, on doit alors restaurer la sauvegarde du jour J et les sauvegardes incrémentales des jours J+1, J+2, J+3 et J+4 afin d'obtenir la dernière version
Sauvegardes - Caractéristiques - 2
- stockage
- local : gros volume - débit élevé (100 Mo/s)- accessible sur une seule machine
- réseau : accessible partout mais problème éventuel de débit ⇒ goulet d'étranglement (100 Mb/s)
- mode
- image : archive une image de partition (/dev/sda1) ou du disque dans sa globalité (partclone, partimage, ntfsclone, dd, …)
- fichiers : archive les fichiers individuellement - plus souple (cp, copy, rsync, scp…)
- compression
- compression : permet plus de stockage - moins rapide
- sans compression (natif) : plus rapide - moins de pb en cas d'archive corrompue
Sauvegardes - Caractéristiques - 3
- machine
- physique : sauvegarde en mode fichiers indispensable
- virtuelle : sauvegarde en mode fichier mais également sauvegarde de la machine virtuelle dans sa globalité (mode image) : plus pratique mais attention au volume global de la partition (40 Go dont 5 occupés …)
Sauvegardes - Caractéristiques - 4
- une sauvegarde ne peut s'effectuer que si un fichier n'est pas ouvert par une application (Winword …)
- ⇒ nécessité que les utlisateur soient déconnectés ou que le volume soit en lecture seule
- une base de donnée ne peut être sauvegardée que si elle est arrêtée ou si la sauvegarde est faite par un agent spécifique
Sauvegardes - Que sauvegarder ?
- les répertoires utilisateurs
- Linux : /home
- Windows : c:\Documents and Settings pour XP, c:\users pour Vista et Seven
- les répertoires système
- fichiers de librairies système
- comptes utilisateurs
- la base de registre Windows
- sous Linux : le répertoire /etc qui comporte les fichiers de configuration
Sauvegardes - Les bases de données
- des outils de vidage existent
- pour Mysql : mysqldump
root@debian:~# mysqldump -u root -p mabase > mabase-dump.sql
- pour Postgresql : pg_dump
root@debian:~# pg_dump -f mabase-dump.sql -U root mabase
- ces deux logiciels fonctionnent à chaud (avec la base en fonctionnement)
- ces 2 commandes peuvent être éxécutées à distance à travers un tunnel sécurisé ssh au travers de l'outil de compression gzip
root@debian:~# ssh root@srv "mysqldump -u root -p xxxx mabase | gzip" > mabase-dump.sql.gz
Sauvegardes - les outils
- Windows
- BackupExec, Acronis, Arcserve, Netbackup (Symantec), Bacula, BackupPC, Cobian Backup, ntbackup (système)
- Linux
- système : tar, cp, scp, rsync
- BackupPC, Bacula, Unisson
- Timemachine (Mac/OS)
- partclone, partimage, ntfsclone, dd
- les LiveCD : Redo Backup, System Rescue CD, Clonezilla, …
- DriveImage XL : création d'images de partitions
Sauvegardes - les protocoles
- dans le cas où l'on effectue une sauvegarde sur ou depuis une ressource qui n'est pas une ressource locale, on doit utiliser un protocole réseau
- les plus utilisés sont les suivants (couche application):
- SMB/CIFS (Microsoft) : le standard de fait pour le partage/transfert de fichiers en environnement Windows - utilisable avec Samba ou smbclient sous Linux
- NFS - Network File System (Unix/Linux) : le standard pour le partage de fichier en environnement Unix - pas adapté a l'internet
- HTTP : moins fréquemement utilisé - surtout pour les méthodes get (téléchargement)
- FTP : utilisé également mais ancien et peu souple - très peu sécurisé (mots de passe en clair)
- SSH : utilisé pour copier des fichiers avec scp : Secure Copy, ou comme tunnel chiffré pour rsync avec des clés publiques
Sauvegardes - exemple 1 : tar
- tar (Tape ARchive) est la commande de base pour l'archivage sous Unix/Linux
- elle permet de créer un fichier d'archive sur disque ou sur bande
- fonctionne en local
tar cvf /bu/home-sv.tar /home
- Archive (c : Creation, v: Verbose, f: File) le répertoire /home dans l'archive /bu/home-sv.tar
- on peut utiliser l'option z: gzip pour compresser l'archive au passage
tar cvfz /bu/home-sv.tgz /home
Sauvegardes - exemple 2 : scp
- scp - (Secure Copy) permet de copier des fichiers/répertoires dans un tunnel chiffré ssh de ou vers une machine distante disposant d'un serveur ssh
- fonctionne sous Linux, il existe pscp pour Windows
scp -rp root@machine:/home /sv/machine/home
- copie tous les fichiers du répertoire /home de la machine distante machine et les stocke dans le répertoire local /sv/machine/home
- la copie est récursive (option -r) et préserve (-p) les attributs et dates de changement des fichiers
- scp ne tient pas compte des dates relatives des fichiers
Sauvegardes - exemple 3 : rsync
- rsync est une application/protocole qui permet de synchroniser des fichiers/répertoires en mode local ou à distance
- rsync est le protocole le plus économe en bande passante car il effectue des comparaisons entre les fichiers et limite ses transferts aux seules (ou presque) différences entre les fichiers
- rsync est devenu le standard de fait pour la synchronisation des sites miroirs
rsync -av -e ssh root@distant:/home /sv
- la commande plus haut synchronise au travers d'un tunnel ssh (option -e) chiffré le répertoire /home de la machine distant avec son pendant dans le répertoire local /sv . La machine distante doit également disposer de rsync et d'un serveur ssh
- l'option -a correspond au mode archive (récursion et préservation des attributs), l'option -v correspond au mode verbeux …
Sauvegardes - SSH et les clés publiques
- le système de clé publique permet de s'authentifier sans mot de passe sur un système distant qui dispose d'un serveur SSH auquel on a envoyé sa clé publique
- Problème : la machine Linux C1 veut se connecter sur la machine Linux SRV sans utiliser de mots de passe
- depuis C1, on doit générer les clés RSA et DSA
root@C1~#> ssh-keygen
- ne saisir aucun mot de passe (passphrase)
- envoyer la clé publique de root sur la machine SRV
root@C1~#> ssh-copy-id root@srv
- la machine demande alors le mot de passe root de SRV
- on peut alors se connecter sur la machine SRV sans mot de passe
- le tunnel SSH peut alors être utilisé pour de l'administration distante ou une synchronisation de répertoires par rsync
Sauvegardes - Planification
- il est impératif de pouvoir planifier les sauvegardes pour les lancer hors des périodes d'activité et déconnecter au besoin les utilisateurs
- sous Linux, on dispose du démon crontab qui permet une grande souplesse dan la gestion de la programmation
# crontab 0 22 * * 1-5 /root/backup-sys # par exemple, sauvegarde du répertoire /home # a 5 h du matin chaque semaine: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
- la crontab décrite plus haut lance le script /root/backup-sys à 22h du lundi au vendredi
- on peut également utiliser les répertoires cron-hourly, cron-daily, cron-weekly et cron-monthly
- sous Windows, le planificateur de tâches propose un fonctionnement similaire
Sauvegardes - Rotation
- faire une sauvegarde est intéressant, mais il peut être intéressant d'effectuer plusieurs sauvegardes journalières en rotation hebdomadaire : la sauvegarde N remplace la sauvegarde N-7
- exemple :
DAT=`date "+%u"` # $DAT contient le No de jour de la semaine # on compresse la base avec le filtre gzip mysqldump -u root --password=xxxxx -B mbase | gzip > mabase-$DAT.dump.gz
- on obtient des vidages de base de données appelés mabase-0.dump.gz, mbase-1.dump.gz, …