Outils pour utilisateurs

Outils du site


linux:chiffrement

Chiffrement

Quand on peut, c'est plus simple de chiffrer une partition complète (voire tout le disque) et d'utiliser le volume chiffré comme PV lvm, puis d'utiliser lvm comme d'habitude (dans l'installeur debian créer le volume chiffré sur l'espace dispo puis passer à la conf lvm). Attention, ça reste plus prudent de garder /boot hors chiffrement (mais swap est plutôt mieux chiffré, dans son lv).

Avantage :

  • ça permettra de redimensionner ses lv
  • ne demande la passphrase qu'une seule fois pour le volume

Si y'a un autre disque avec un autre volume chiffré mais que l'on ne veut pas taper deux passphrases, on peut la passphrase dans un fichier sur le premier volume chiffré (par ex dans /root/ en 600) et l'indiquer dans /etc/crypttab avec par ex

sdb1_crypt UUID=xxx /root/sda1_keyfile luks

où xxx est l'uuid de /dev/sda1 qui est le volume luks (blkid /dev/sda1 pour l'avoir).

Créer un volume luks pour un pv lvm

Un exemple où on utilise une grosse partition (ou un disque entier) pour en faire un volume luks qui sera utilisé comme pv pour lvm. Ici il ne s'agit pas d'y mettre le système (ça c'est plus simple de le faire dans l'installeur debian, utiliser une partition comme volume chiffré puis le volume chiffré comme PV lvm).

# ici on va utiliser /dev/sda4
cryptsetup luksFormat /dev/sda4 --type luks2 
# on lui crée une clé
dd if=/dev/urandom of=/root/sda4_keyfile bs=1024 count=4
# que l'on protège
chmod 0400 /root/sda4_keyfile
# et ajoute au volume (en plus de la passphrase décidée à la création)
cryptsetup luksAddKey /dev/sda4 /root/sda4_keyfile
 
# on l'ouvre
cryptsetup luksOpen /dev/sda4 sda4_crypt
# et on peut l'utiliser pour lvm
pvcreate /dev/mapper/sda4_crypt
vgcreate hd /dev/mapper/sda4_crypt
# avec par ex ce lv
lvcreate -L 800G backup

Dans /etc/crypttab on ajoute (on trouve xxx avec blkid /dev/sda4

sda4_crypt UUID=xxx /root/sda4_keyfile luks

Et dans /etc/fstab

/dev/hd/backup /backup ext4 defaults 0 2

Archives

Ci dessous l'ancien contenu de cette page, qui commence à dater… (avant 2010)

Sous linux, luks et truecrypt permettent tous les deux de chiffrer des partitions. luks a l'air plus simple à mettre en place sur une debian de base, truecrypt permet le deni plausible (cf http://fr.wikipedia.org/wiki/TrueCrypt), luks permet d'avoir différentes clés d'accès (plusieurs utilisateurs qui montent la même partition, chacun avec son pass ou sa clé).

Cf un fil de debian-fr qui en parle http://lists.debian.org/debian-user-french/2009/03/msg00536.html (thread complet).

EncFs est une autre solution qui utilise fuse. Facile à mettre en place “over ssh”, permet à un user de monter des fichiers distants sans que le root du serveur puisse les lire, mais les fichiers sont “visibles” (avec des noms codés, mais on peut voir le nb de fichiers et leur taille).

Qqs liens :

encFs & sshFs

Pour du backup online, sur une machine où vous avez un accès ssh, le couple sshfs/encfs peut-être adapté :

  • Avantages
    • pas besoin de prévoir un gros fichier ou une partition dédiée coté serveur, pour accueillir les données chiffrées, seul la taille réelle des données est utilisée.
    • peu de conso CPU coté serveur, juste ssh
    • rien à installer coté serveur (hors serveur ssh, mais c'est en général la 1re chose installée)
    • permet de faire de l'incrémental comme un rsync sans chiffrement
  • Inconvénients
    • un peu lent, mais je reste limité par ma connexion, à tester avec une meilleure connexion (~780kbps contre ~860kbps pour un rsync over ssh “ordinaire”)
    • le contenu et les noms des fichiers sont chiffrés, mais l'arborescence, les tailles de fichiers et les proprios sont visibles sur le serveur (les noms des dossiers sont incompréhensibles, mais vu le nombre et les tailles respectives, avec l'uid, on peut “deviner” lequel est un dossier utilisateur, lequel correspond à des photos ou de la musique, etc.), pas bien gênant pour moi mais…

Comment faire ?

C'est assez simple, vous trouverez pas mal de tutos sur le net en cherchant sshfs+encfs

Pour résumer, coté machine à backuper

# on installe sshfs et encfs (ça ajoute fuse), en root
aptitude install sshfs encfs
usermod -a -G fuse [utilisateur qui va monter les dossiers]
# puis avec le user qui fera le backup
sshfs $user@$serveur:/path/2/backup /un/dossier/local/pour/monter/sshfs -o uid=$(id -u) -o gid=$(id -g)
# en cas de pb de droits fuse, vérifier avec id que ce user fait bien parti du groupe fuse, se déloguer/reloguer sinon
encfs /un/dossier/local/pour/monter/sshfs /un/dossier/local/pour/sshfs/dechiffré
# lancer des rsync vers /un/dossier/local/pour/sshfs/dechiffré
# puis démonter
fusermount -u /un/dossier/local/pour/sshfs/dechiffré
fusermount -u /un/dossier/local/pour/monter/sshfs
linux/chiffrement.txt · Dernière modification : 15/05/2020 13:57 de daniel