~~SLIDESHOW~~ ====== 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 ===== * l'observateur d'évènements ( **eventvwr**) c:\> eventvwr * {{:eventvwr1.jpg|}} ===== Surveillance - Windows - 2 ===== * l'observateur d'évènements : le journal système * {{:eventvwr2.jpg|}} ===== 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 -pxxxx 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//, ...