4 votes

Sauvegarde sur un disque externe avec inscription complète du disque et prévention de la pourriture des bits.

J'ai un nouveau disque dur externe USB de 2 To et je voudrais l'utiliser comme sauvegarde pour mon serveur domestique.

Mes souhaits sont :

  • cryptage complet du disque (le disque sera stocké hors site)
  • prévention de la pourriture des mors

Actuellement, j'utilise un vieux disque externe de 320 Go avec un cryptage au niveau de la partition TrueCrypt. Mais comme cela ne fournit pas de protection contre la pourriture des bits et que TrueCrypt est déprécié, j'aimerais essayer autre chose.

Mon serveur fonctionne sous Ubuntu Server 14.04.3 LTS et possède une mémoire ECC avec 2 disques de 3 To en RAID 1.

Pour le cryptage, l'utilisation de LUKS est probablement le meilleur choix, non ?

Mais lorsqu'il s'agit de traiter la pourriture des mors, les choses se compliquent un peu. Du moins pour les configurations à disque unique. Une option serait de créer 2 partitions identiques et de faire un RAID 1 avec un nettoyage régulier. Mais cette solution semble un peu bizarre sur le même disque.

Est-ce que btrfs serait une option ? Est-il possible d'ajouter de la redondance pour les configurations à un seul disque ?

Ça ne me dérange pas de sacrifier la moitié du stockage pour la redondance. La perte de performance n'est pas non plus un problème pour moi.

4voto

user Points 28521

Étant donné que vous disposez de tous les prérequis de base, en particulier de la RAM ECC, je pense que ZFS (par le biais de l'application ZFS sous Linux ) pourrait être une option utilisable.

Contrairement à btrfs, qui emprunte beaucoup d'idées de conception à ZFS, ZFS est un système de fichiers (gestionnaire de volume et) éprouvé. Bien sûr, le portage Linux a quelques défauts qui sont en train d'être corrigés avec le temps, mais le code et la conception ont été testés dans un grand nombre de scénarios d'échec dans le monde réel.

Vous pouvez utiliser ZFS soit avec deux partitions séparées dans une configuration miroir, soit avec une partition et en définissant les paramètres suivants copies=2 sur le système de fichiers racine du pool. L'espace disque et les surcharges de performance E/S sont similaires. L'un ou l'autre vous permettra de migrer vers des disques plus grands, ou des configurations multi-disques, au fur et à mesure que vos besoins évoluent. Vous pouvez utiliser des vdevs raidz (avec différents niveaux de redondance : un, deux ou trois disques) mais cela pose des problèmes si vous souhaitez changer de niveau de redondance.

Je vous suggère d'envisager sérieusement d'exécuter ZFS au-dessus de LUKS.

L'inverse (exécuter LUKS au-dessus de ZFS) est également possible, mais beaucoup plus compliqué. Vous pouvez également exécuter quelque chose comme ecryptfs au-dessus de ZFS non chiffré, mais cela peut entraîner des fuites importantes de métadonnées du système de fichiers.

En d'autres termes, créez des conteneurs LUKS (un pour chaque lecteur ou partition), puis utilisez ces conteneurs pour créer un pool ZFS. L'exécution de ZFS au-dessus de LUKS devrait être suffisante pour empêcher un attaquant hors ligne dans la plupart des scénarios, mais elle ne présentera que peu d'obstacles pour un attaquant en ligne. Le fait que cela soit un problème dépend de votre modèle de menace, mais pour les sauvegardes hors site, l'accès hors ligne est souvent l'aspect le plus important à considérer.

L'exécution de deux partitions séparées en tant que conteneurs LUKS distincts devrait permettre d'éviter qu'un endommagement de l'en-tête LUKS rende les deux copies inaccessibles, mais d'autres méthodes peuvent également y remédier (par exemple, une sauvegarde de l'en-tête LUKS stockée de manière sécurisée). L'exécution d'un conteneur LUKS à partition unique pour chaque lecteur permettra à ZFS de prendre des décisions concernant le stockage des métadonnées du système de fichiers dans des emplacements divers et redondants.

Si vous optez pour copies=2 Assurez-vous de le définir immédiatement lors de la création du pool. En d'autres termes, vous voulez quelque chose comme :

cryptsetup luksFormat /dev/sdx
cryptsetup luksOpen /dev/sdx sdx-crypt
zpool create -O copies=2 tank /dev/mapper/sdx-crypt

et non

cryptsetup luksFormat /dev/sdx
cryptsetup luksOpen /dev/sdx sdx-crypt
zpool create tank /dev/mapper/sdx-crypt
zfs set copies=2 tank

car ce dernier ne réplique pas complètement les métadonnées du système de fichiers racine jusqu'à ce que ces métadonnées soient réécrites.

Notez que comme pour tout système de fichiers de type "copy-on-write", ZFS fonctionne mieux lorsque l'utilisation du disque est maintenue en dessous d'environ 75-80%, et vous devez vous attendre à une fragmentation dans le temps. Pour les sauvegardes, cela ne devrait pas être un problème majeur.

0voto

sealTrip Points 389

Par2 est une option logicielle mature pour la création de fichiers de parité. Vous pouvez le configurer pour permettre et définir le pourcentage de fichier qui peut être perdu mais toujours récupérable. [1][2] Par exemple, une redondance de 30% :

par2 c -r30 file-to-protect

LUKS nécessite une bonne configuration pour la sécurité. aes-xts-plain64:sha256 ou légèrement mieux PBKDF2-sha512 avec une clé aléatoire de qualité de 256/512 bits est la recommandation standard [3].

[1] https://en.wikipedia.org/wiki/Parchive

[2] https://github.com/Parchive/par2cmdline

[3] https://security.stackexchange.com/questions/40208/recommended-options-for-luks-cryptsetup

[4] Quel est le niveau de sécurité du cryptage complet du disque par défaut d'Ubuntu ?
https://security.stackexchange.com/questions/39306/how-secure-is-ubuntus-default-full-disk-encryption

P.S. Le ZFS crypté conçu par SUN pour les données d'entreprise serait génial mais il n'existe que sur Solaris. ZFS sous Linux ne prend en charge que ZFS + LUKS et non le cryptage natif. ZFS Scrub vérifie la présence de bitrot et est souvent configuré quotidiennement pour les disques de qualité grand public. Vous pouvez même créer un miroir ZFS à trois voies pour une sécurité extrême des données. https://help.ubuntu.com/community/encryptedZfs

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X