J'utilise Ubuntu dans un environnement d'entreprise et notre politique de sécurité stipule que nous devons utiliser le chiffrement intégral du disque.
J'ai aussi un ordinateur portable avec un SSD mSATA de 32 Go et 750 Go de rouille en rotation. Mon installation actuelle utilise bcache pour en tirer parti, installée à l'aide de cette procédure . Cela donne un coup de pouce de performance très bienvenu sans que je me soucie de remplir le disque SSD.
Ce sera une question de prime. La prime sera attribuée pour:
J'ai déjà essayé la méthode pour Debian Jessie ci-dessus, mais elle refuse de démarrer pour moi. Je n'ai pas encore essayé la méthode décrite dans les commentaires ici .
Les solutions publiées seront testées sur une VirtualBox VM avec deux disques virtuels vierges et une version de publication du bureau 15.04 (version AMD64). Bounty va à la première solution que j’adopte pour réinstaller mon matériel actuel.
S'il vous plaît écrivez votre solution comme si elle allait dans le wiki de la communauté.
J'ai octroyé cette prime. Je pense qu'il existe toujours un potentiel pour une solution "LUKS-on-LVM" qui associe la facilité de la réponse approuvée à ne disposer que d'un mot de passe et à n'utiliser que des composants device-mapper.
Ici le jeu de la poupée russe est un peu plus profond avec 3 piles/couches ...
Mon idée initiale sur cette question était d’utiliser une installation Ubuntu par défaut avec LVM sur LUKS et de la convertir en un bcache dispositif de support avec blocs mais cela n’a pas fonctionné pour moi lors de mon test avec LVM.
De plus, le programme d’installation d’ubuntu ( ubiquity ) est trop limité pour être installé à l’intérieur d’un périphérique bcache préparé à l’avance (au moins avec LUKS le LVM), nous avons donc recours à une méthode permettant de faire les choses manuellement.
Démarrez sur le live CD/USB et choisissez "Try Ubuntu" et ouvrez un terminal
Sudo -i
# Define some variable to avoid confusion and error
luks_part=/dev/sda3
boot=/dev/sda2 # boot partition
caching_bcache=/dev/sdb # SSD or partition in SSD
# Do secure erase of encrypted backing and caching device (see Notes [1])
dd if=/dev/urandom of=$luks_part || dd if=/dev/urandom of=$caching_bcache
# Go and grab some coffe, this will take a while...
apt-get install bcache-tools
# Setup bcache caching and backing devices
make-bcache -C $caching_bcache -B $luks_part
# (Optional) Tweak bcache
echo writeback > /sys/block/bcache0/bcache/cache_mode
# Below we now create manually what ubiquity should have done for us
# Setup LUKS device on bcache device
cryptsetup --key-size 512 luksFormat /dev/bcache0
cryptsetup luksOpen /dev/bcache0 crypted
# Setup LVM on LUKS
# You can skip that part if you don't want to use a swap
# or don't want to use multiple partition. Use /dev/mapper/crypted
# as you root latter on
pvcreate /dev/mapper/crypted
vgcreate vg /dev/mapper/crypted
lvcreate -L 1G vg -n swap
lvcreate -l 100%FREE vg -n root
Laissez le terminal ouvert et lancez maintenant l'installation. Choisissez "Quelque chose d'autre" lors du partitionnement et spécifiez
/dev/sda2
)/dev/mapper/vg-root
)/dev/mapper/vg-swap
)et cochez la case pour formater vos partitions
À la fin de l'installation, ne redémarrez pas mais cliquez simplement sur "Continuer à essayer ubuntu"
Dans notre terminal ouvert
# Install bcache-tools to add bcache module to initramfs
mount /dev/mapper/vg-root /mnt
mount $boot /mnt/boot
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
chroot /mnt
# To get apt-get running in the chroot
echo 'nameserver 8.8.8.8' > /run/resolvconf/resolv.conf
apt-get install bcache-tools
# Create /etc/crypttab to add crypted bcached partition
echo "crypted UUID=`blkid -o value /dev/bcache0|head -1` none luks" > /etc/crypttab
exit
sync
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev
umount /mnt/boot
umount /mnt
vgchange -an /dev/mapper/crypted
cryptsetup luksClose crypted
sync
# Reboot & enjoy
Il existe un bogue connu de redémarrage d'Ubuntu 15.04 provenant de Live CD/USB, vous devrez donc forcer le redémarrage/l'arrêt.
Une fois démarré, vous pouvez vérifier que /dev/bcache0
est en fait une partition LUKS avec
if Sudo cryptsetup isLuks /dev/bcache0; then \
echo "crypted";\
else echo "unencrypted";\
fi
En effet, il s’agit du cache de votre partition LUKS et vous accédez désormais à vos données via le périphérique /dev/bcache0
et jamais depuis le périphérique de sauvegarde d’origine (/dev/sda3
ici).
http://bcache.evilpiepirate.org/
https://wiki.archlinux.org/index.php/Bcache
https://wiki.archlinux.org/index.php/Dm-crypt
bcache-status n'est pas encore officiellement fusionné dans bcache-tools. Vous pouvez l'avoir ici: https://Gist.github.com/djwong/6343451
[1] Il pourrait y avoir de meilleures façons de faire this essuyer
Le programme d’installation Ubuntu utilise la configuration LVM on LUKS pour le chiffrement intégral de son disque.
Si vous souhaitez également utiliser dm-cache/lvmcache pour améliorer les performances, vous devez placer votre pool de cache dans un volume chiffré afin de préserver la sécurité de vos données.
Les étapes sont
/etc/crypttab
Le script ci-dessous fournit un exemple et ajoutera un pool de cache chiffré à un système de fichiers racine existant. Il a été conçu pour les systèmes ayant utilisé l’option de chiffrement de disque par défaut dans le programme d’installation d’Ubuntu - c’est-à-dire; Disque entier partitionné et crypté, pas de partitions personnalisées, etc.
Veuillez noter que ce script contient très peu de validation ou de programmation défensive. Si cela détruit votre système de travail, c'est votre responsabilité.
Appelez ainsi:
# 1 2 3 4 5 6
Sudo bash lvmcryptocache /dev/sdb 32M 1968M
Les paramètres de taille sont par défaut exprimés en Mo: vous aurez besoin d’un ratio espace de métadonnées de 1: 1 000 sur espace de cache (par exemple, si votre disque de cache est de 180 Go, vous avez besoin de 180 Mo d’espace de métadonnées et de 179820 Mo d’espace de données. métadonnées un peu plus prudentes, il y a une limite inférieure pour les métadonnées de 8M.)
Vous serez invité à entrer un mot de passe pour votre volume de cache. Vous serez invité à entrer les mots de passe pour LES DEUX de vos disques lors du démarrage.
#!/bin/bash # # lvmcryptocache # # Ajoutez un pool de cache LVM et attachez-le au volume racine # Y compris le cryptage LUKS # Supposons que vous utilisez une configuration "tout à la racine" # Si ce n'est pas le cas, adaptez-le si vous aimez # # Script sous licence GPL3 ou version ultérieure # © Adrian Wilkins Mai 2015 # # Indiquez le nom du périphérique de disque que vous utilisez en tant que cache # Cela devrait idéalement être totalement vierge, alors exécutez # # Jj si =/dev/zéro sur =/dev/$ {DISK} # # Plus pendant un court instant, la table de partition est détruite CACHE_DISK = 1 $ META_SIZE = 2 $ DATA_SIZE = 3 $ DISK_NAME = $ (nom de base $ CACHE_DISK) CRYPT_VOLUME = $ {DISK_NAME} _crypt CACHE_PV =/dev/mapper/$ {CRYPT_VOLUME} # Créer un volume LUKS sur le disque brut Cryptsetup luksFormat $ CACHE_DISK Cryptsetup open --type luks $ CACHE_DISK $ CRYPT_VOLUME #. A commencé à essayer une nd travailler sur la taille du disque, mais c'est complexe # Essayez si vous voulez, je n'arrêtais pas de manquer d'étendue # # DISK_SIZE = $ (fdisk -l | grep "Disque $ {CACHE_DISK}" | awk '{print $ 5}') # # META_SIZE = $ ((DISK_SIZE/1000)) # META_SIZE = $ ((META_SIZE + 512)) # MOD = $ ((META_SIZE% 512)) # MOD_OFFSET = $ ((512 - MOD)) # META_SIZE = $ ((META_SIZE + 512)) # META_SIZE = $ ((META_SIZE + MOD_OFFSET)) # # DATA_SIZE = $ ((DISK_SIZE - META_SIZE)) # #. nouveau PV dans le volume chiffré pvcreate $ CACHE_PV vgextend ubuntu-vg $ CACHE_PV lvcreate -L $ {META_SIZE} -n cachemeta ubuntu-vg $ CACHEP. .____.] lvcreate -L $ {DATA_SIZE} -n cachedata ubuntu-vg $ CACHE_PV lvconvert - type de cache-pool --poolmetadata ubuntu-vg/cachemeta - cachemode writeethrough ubuntu-vg/cachedata - oui lvconvert --type cache --cachepool ubuntu-vg/cachedata ubuntu-vg/root # Ajoutez maintenant l’UUID du pool de cache PHYSICAL DRIVE (/ dev/sdb ) à /etc/crypttab DISK_UUID=$(ls -al/dev/disk/by-uuid/| grep $ NOM_DISK | Awk '{print $ 9}') echo "$ {CRYPT_VOL UME} UUID = $ {DISK_UUID} aucunement luks, ignorez le type ">> /etc/crypttab[.____. LOGH. ] HOOK = $ (tempfile) # Ajoutez un script hook à initramfs pour ajouter les outils et modules appropriés Echo "#!/Bin/sh"> $ HOOK echo "PREREQ =" lvm2 "" >> $ HOOK echo "prereqs ()" >> $ HOOK echo "{" >> $ HOOK echo " echo\"$ PREREQ \" ">> $ HOOK echo"} ">> $ HOOK echo" case $ 1 dans ">> $ HOOK echo" prereqs) " >> $ HOOK Echo "prereqs" >> $ HOOK Echo "sortie 0" >> $ HOOK Echo ";;" >> $ HOOK Echo "esac" >> $ HOOK Echo "si [! -X/usr/sbin/cache_check]; alors" >> $ HOOK Echo " exit 0 ">> $ $ HOOK echo" fi ">> $ HOOK echo"./usr/share/initramfs-tools/hook-functions ">> $ HOOK echo "copy_exec/usr/sbin/cache_check" >> $ HOOK echo "manual_add_modules dm_cache dm_cache_mq dm_persistent_data dm_bufio" >> $ HOOK . . /hooks/lvmcache chmod + x /etc/initramfs-tools/hooks/lvmcache[.____. strangeecho "dm_cache" >> /etc/initramfs-tools/modules echo "dm_cache_mq" >> /etc/initramfs-tools/modules echo "dm_persistent_data" >> /etc/initramfs-tools/modules echo "dm_persistent_data" >> /etc/initramfs-tools/modules echo "dm_bufio" >>/etc/initramfs- outils/modules # Mise à jour initramfs update-initramfs -u echo Maintenant redémarrez!