Installez Arch Linux avec le cryptage complet du disque dur à l'aide du cryptage Luks |
Il s'agit d'un bref tutoriel sur la façon d'installer Arch Linux sur un système compatible UEFI avec un cryptage complet du disque dur à l'aide de LUKS (Linux Unified Key Setup). LUKS est une spécification de chiffrement de disque qui vous aide à réaliser le chiffrement de fichiers, le chiffrement de disque et le chiffrement de données dans un seul ensemble.
LUKS vous aide à sécuriser votre disque contre des choses comme le vol, mais il ne protège pas vos données contre l'accès une fois déverrouillées. Il peut être utilisé avec d’autres logiciels de cryptage pour assurer une sécurité des données à toute épreuve.
Auparavant, j'avais écrit un article sur la façon d'installer Arch Linux sur LVM, mais il manquait la fonctionnalité de cryptage Luks. Le lien est donné ci-dessous :
Installer Arch Linux avec LVM sur le système UEFI
Cet article de blog vise à combler cette lacune en matière de chiffrement de disque, alors attendez-vous certainement à moins de théorie.
Cela ne doit pas être fait sur un vp, un hébergement vps, un serveur vps, un vps cloud, un hébergement de serveur vps, etc. Tous ces acronymes ont de toute façon la même signification.
Configuration des partitions de disque :
Mon schéma de partition aura /dev/sda1 comme partition efi, /dev/sda2 comme partition de démarrage, /dev/sda3 comme volume physique LVM. , /dev/arch/root comme partition racine pour installer Arch Linux, /dev/arch/home comme partition d'accueil, /dev/arch/swap comme partition de swap.
L'outil de choix pour le partitionnement est Parted, vous pouvez également utiliser gdisk pour efi ou fdisk pour MBR. travail séparé pour les deux cependant. Veuillez remplacer l'étiquette gpt par mbr pour le type d'étiquette de disque correct.
parted /dev/sda
mklabel gpt
mkpart ESP fat32 1MiB 200MiB
set 1 boot on
name 1 efi
mkpart primary 200MiB 800MiB
name 2 boot
mkpart primary 800MiB 100%
set 3 lvm on
name 3 lvm
print
Configurer LUKS
L'étape suivante consiste à charger les modules du noyau pour installer Arch Linux avec luks . Avant d'utiliser cryptsetup, assurez-vous toujours que le module noyau dm_crypt est chargé.
modprobe dm-crypt
modprobe dm-mod
Ensuite, créez un appareil chiffré à l'aide de la commande cryptseup. Cryptsetup est l'outil de ligne de commande permettant de s'interfacer avec dm-crypt pour créer, accéder et gérer des appareils cryptés.
Cryptsetup prend en charge différents types de chiffrement qui s'appuient sur le noyau Linux device-mapper et les modules cryptographiques.
L'outil est utilisé comme suit :
# cryptsetup <OPTIONS> <action> <action-specific-options> <device> <dmname>
Les appareils accessibles via le mappeur d'appareils sont appelés blockdevices.
Vous pouvez vérifier les options disponibles en utilisant :
$ cryptsetup --help
Créons maintenant un nouvel appareil LUKS sur /dev/sda3
# cryptsetup luksFormat -v -s 512 -h sha512 /dev/sda3
Options utilisées :
luksFormat : formate un appareil LUKS
-v, –verbose : Affiche des messages d'erreur plus détaillés
-s, –key-size : la taille de la clé de cryptage, 512 bits dans ce cas.
-h, –hash : le hachage utilisé pour créer la clé de cryptage à partir de la phrase secrète
Lorsque vous exécutez la commande ci-dessus, vous recevrez un message d'avertissement. Tapez simplement OUI pour continuer, puis saisissez et vérifiez la phrase secrète à utiliser.
Maintenant que nous avons créé l'appareil chiffré Luks, nous devons ouvrir l'appareil en tant que mappage
# cryptsetup open <device> <name>
Le mien ressemblera donc à ceci :
# cryptsetup open /dev/sda3 luks_lvm
Configuration LVM
Pour ceux qui découvrent LVM, les éléments de base de LVM sont :
Volume physique (PV)
– Partition sur le disque dur (ou même le disque lui-même ou le fichier de bouclage) sur laquelle vous pouvez avoir des groupes de volumes.
– Il a un en-tête spécial et est divisé en étendues physiques.
– Considérez les volumes physiques comme de gros éléments de base utilisés pour construire votre disque dur.
Groupe de volumes (VG)
– Groupe de volumes physiques utilisé comme volume de stockage (comme un seul disque).
– Ils contiennent des volumes logiques.
– Considérez les groupes de volumes comme des volumes durs. disques.
Volume logique (LV)
– Une « partition virtuelle/logique » qui réside dans un groupe de volumes et est composée d'extensions physiques.
– Considérez les volumes logiques comme des partitions normales.
Étendue physique (PE)
– La plus petite taille du volume physique pouvant être attribuée à un volume logique (4 Mio par défaut).
– Considérez les étendues physiques comme des parties de disques pouvant être alloué à n’importe quelle partition.
La partie configuration :
Créer un volume physique :
pvcreate /dev/mapper/luks_lvm
Créez un groupe de volumes nommé arch :
vgcreate arch /dev/mapper/luks_lvm
Créez des volumes logiques pour les partitions racine, home et swap :
lvcreate -n home -L 70G arch
lvcreate -n root -L 120G arch
lvcreate -n swap -L 1G -C y arch
Formatez les partitions :
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.btrfs -L root /dev/mapper/arch-root
mkfs.btrfs -L home /dev/mapper/arch-home
mkswap /dev/mapper/arch-swap
Monter des partitions :
swapon /dev/mapper/arch-swap
swapon -a ; swapon -s
mount /dev/mapper/arch-root /mnt
mkdir -p /mnt/{home,boot}
mount /dev/sda2 /mnt/boot
mount /dev/mapper/arch-home /mnt/home
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
Confirmez si tous sont montés correctement :
lsblk -f
Installez Arch Linux :
Installer le système de base :
pacstrap /mnt base base-devel efibootmgr vim dialog \
xterm btrfs-progs grub --noconfirm
Générez le fichier fstab :
genfstav -U -p /mnt > /mnt/etc/fstab
Passer à l'environnement chroot :
arch-chroot /mnt /bin/bash
Configuration de mkinitcpio
vim /etc/mkinitcpio.conf
Faites défiler vers le bas jusqu'à ce que vous trouviez la section CROCHETS. Ajoutez ensuite ces lignes avant le système de fichiers :
encrypt lvm2
Les hooks sont désignés par leur nom et exécutés dans l'ordre dans lequel ils existent dans le paramètre HOOKS du fichier de configuration. La ligne HOOKS ressemblera à ceci :
HOOKS="base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck"
Générez une nouvelle image initramfs :
mkinitcpio -v -p linux
Installez grub et générez le fichier grub.cnf :
pacman -s grub --noconfirm
grub-install --efi-directory=/boot/efi
Configuration des paramètres du noyau
Afin de permettre le démarrage d'une partition racine chiffrée, un sous-ensemble des paramètres de noyau suivants doit être défini. Ajoutez les options aux paramètres du noyau si vous utilisez le hook de chiffrement. Le fichier à modifier est /etc/default/grub.
cryptdevice=/dev/<partition>:devicemapper_name cryptkey=<path>
device est le chemin d'accès à l'appareil qui sauvegarde l'appareil chiffré.
devicemapper_name est le nom du mappeur de périphérique donné à l'appareil après le décryptage, qui sera disponible sous le nom /dev/mapper/devicemapper_name.
Par exemple:
GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=/dev/mapper/swap \
cryptdevice=/dev/sda3:luks_lvm"
Notez qu'il est préférable d'ajouter les paramètres pertinents à /etc/default/grub avant de générer la configuration de démarrage.
Déverrouillage de la partition racine au démarrage (facultatif)
Pour déverrouiller le système de fichiers racine au démarrage à l'aide du fichier clé, vous devrez générer le fichier clé, lui accorder les autorisations appropriées et l'ajouter en tant que clé LUKS :
dd if=/dev/urandom of=/crypto_keyfile.bin bs=512 count=10
chmod 000 /crypto_keyfile.bin
chmod 600 /boot/initramfs-linux*
cryptsetup luksAddKey /dev/sda3 /crypto_keyfile.bin
Incluez maintenant le fichier /crypto_keyfile.bin sous la directive FILES dans le fichier mkinicpio.conf.
# vim /etc/mkinitcpio.conf
Add:
FILES=/crypto_keyfile.bin
Régénérez le fichier du disque virtuel.
mkinitcpio -p linux
Régénérez le fichier grub.cfg :
grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig -o /boot/efi/EFI/arch/grub.cfg
Configurations post-installation.
La partie restante consiste à installer des logiciels essentiels tels que le serveur Xorg, pulseaudio, les utilitaires alsa, les pilotes du pavé tactile synaptics, définir le mot de passe root, ajouter un compte utilisateur standard, définir le fuseau horaire, ajouter des référentiels aur et multilib.
J'ai écrit un simple script bash pour automatiser ce processus. Vous trouverez ci-dessous une procédure sur la façon d'utiliser le script.
pacman -S git --noconfirm
git clone https://github.com/jmutai/dotfiles.git
cp dotfiles/setup/pacman.conf /etc/pacman.conf
cp dotfiles/setup/live-setup.sh .
chmod +x live-setup.sh
./live-setup.sh
Vous pouvez modifier le script de configuration en direct pour modifier les paramètres de fuseau horaire et le nom d'hôte du système. L'installation d'i3 peut être remplacée par l'environnement de bureau de votre choix. Une fois l'installation réussie, quittez l'environnement chroot, démontez les partitions et redémarrez votre système.
exit
umount -R /mnt
reboot
Lectures complémentaires : Comment installer des packages depuis AUR avec yay – Meilleur assistant AUR pour Arch Linux/Manjaro