TP3 (2h)
Sauvegardes
Nous allons tester différentes méthodes de sauvegardes. Pour cela nous allons utiliser la commande qui effectuera 2 sauvegardes de /etc vers avec la commande , pour chaque, en mesurera le temps et la place pris.
[L] En interne, il utilise les commandes suivantes :
- time $CMD : donne le temps d'exécution
- dh -sh $DIR : donne la taille (size human) du dossier.
Quelle ligne de commande permet d'obtenir le volume utilisé de /Save/ ?
Vous remplirez le tableau suivant :
| Nom | Commande | Save 1 | Save 2 | ||
|---|---|---|---|---|---|
| Durée | Taille | Durée | Taille | ||
Copie du volume
- Identifiez le disque correspondant à Data (lsvol)
- Sauvegardez en copiant le disque de Data avec cd
Vous remarquerez que la seconde sauvegarde plante, pourquoi ? Retestez avec l'option --sparse, qu'observez-vous ? Sachant qu'on copie l'intégralité du disque, que sauvegarde-t-on de plus que les fichiers ? Malgré tout, pourquoi est-ce peu adapté pour faire des sauvegardes régulières ?
Copie simple
Sauvegardez /Data en copiant le dossier /Data.
Archive
Sauvegardez /Data en créant une archive compressée .tar.gz
Rsync
- Utilisez rsync
Parcourrez 2 dossiers de sav, tous les fichiers, mais taille petite. Quel est l'intérêt des sauvegardes incrémentales ?
Quel est l'intérêt d'un lien physique pour une sauvegarde incrémentales ?
Gestionnaire de version (git)
- git-init & git-save
fournir - git add -A && git commit -m && git -C /Save pull // git clone --bare . /Save
Gérer les volumes
Sauvegarde distante
RAID
Pour le moment /Save sauvegardé sur un seul disque, mais s'il plante, on est triste.
- lsvol : identifier les différents disque
- on a un disque inutilisé, sacré coincidence, même taille que celui de /Save
Utilisez cfdisk pour créer une partition prennant tout le disque
[A] N'oubliez d'écrire la table des partitions avant de quitter.- Vérifiez que la partition apparaisse dans lsvol
- Démontez /Save
Formattez les 2 disques pour LVM puis créer un vg nommé vg-SAVE Créez un volume logique nommé SAVE prenant l'intégralité de vg-SAVE et avec raid1 - Formattez le volume en ext4
- regardez fstab, comment /Save monté ? Que faire pour monter le volume RAID ?
- Donnez au volume RAID le label.
- Testez en montant LABEL=X puis démontez.
- Testez fstab en montant via mount /Save
Chiffrer
- Chiffrez le volume RAID avec cryptsetup (SAVE-crypt) + toutes les op nécessaires pour monter sur /Save
- Retestez fstab en montant via mount /Save
Snapshots
- Démontez /Data.
- Chiffrez le volume.
Créez le groupe de volume vg-DATA qui contiendra la première partition du disque. Créez le volume logique DATA formatté en ext4 qui occupera 90% de vg-DATA Donnez lui le bon label puis montez le. - Créez un instantané via la commande lvcreate -s -l 100%FREE --name DATA-snap /dev/vg-DATA/DATA
- Modifiez les fichiers
Montez l'instantané et comparez son contenu à /Data, que remarquez-vous ? - Démontez l'instanté puis supprimez-le grâce à lvremove $VOL
Pourquoi ne faut-il pas trop tarder avant de supprimer l'instantané ?
Déverrouillage à distance
Déchiffrer au démarrage.- /etc/crypttab : $NAME $VOL none luks,discard
- Clef dans /etc/cryptsetup-keys.d/$NAME ou donné au démarrage.
Pourquoi est-ce que stocker la clefs de déchiffrement de /Save (grâce à un lien symbolique) sur /Data ne pose a priori pas de problème de sécurité ?
À chaque redémarrage du serveur il faudra alors déchiffrer /Data, c'est à dire saisir sur place le mot de passe. Les serveurs pouvant être loin, déverrouiller à distance. Pour cela nous allons installer un serveur SSH sur l'initramfs, nous permettant de nous connecter au serveur via SSJ lors du processus de démarrage (boot) du serveur.
[!] Nous allons modifier l'initramfs, en cas d'erreurs nous ne pourrons plus redémarrer le serveur ! Pour éviter cela, nous allons sauvegarder l'initramfs et créer une nouvelle entrée GRUB afin de pouvoir utiliser l'ancienne version en cas de problèmes.
[L] Encore mieux, nous profiterons que le serveur soit en réalité sur une VM (cf W4) pour prendre un instantané du serveur, afin de pouvoir revenir en arrière en cas de problèmes.
- Sur le poste de travail créez un instanté grâce à la commande ?.
- Dupliquez les fichiers /boot (config-*, initrd-*, System.map-*, vmlinuz-*) en les renommant de sorte à ce que la version du kernel soit 0.
- update-grub pour mettre à jour, redémarrez et vérifiez que ça marche.
- installez dropbear-initramfs
- /etc/initramfs-tools/initramfs.conf : modifier DEVICE pour l'interface réseau (
tester si nécessaire ) - Ajoutez la clef publique SSH dans /etc/dropbear-initramfs/authorized_keys.
- update-initramfs -u + upgrade-grub
- Croisez les doigts
- Redémarrez puis SSH en tant que root + cryptroot-unlock (une seule cmd ssh ?)
- Poussez un énorme soupir de soulagement de ne pas avoir planté votre serveur.
- Créez un alias SSH pour cela.