Installation d’Arch Linux complètement chiffré (UEFI)

Installation d'Arch Linux complètement chiffré

en mode UEFI

Pages 1 - 2 - 3 - 4

arch linux

Deux tutoriels de ce site montrent comment faire une installation intégralement chiffrée d'Ubuntu 16.04 soit seul, soit en dual-boot avec Windows.

Nous allons reprendre la même méthode ici pour chiffrer complètement un système Arch Linux en mode UEFI.

Le principe est identique :

  • créer une partition chiffrée LUKS avec trois volumes logiques LVM pour root, home et swap,
  • créer deux partitions de démarrage non chiffrées (boot et EFI).

La différence principale tient à ce qu'Arch Linux s'installe exclusivement en ligne de commande. Rien de bien compliqué malgré tout étant donné l'efficacité de l'installateur.

Pour les plus courageux, un autre tutoriel sur ce site indique comment chiffrer aussi le boot pour encore plus de sécurité.

Les spécificités d'Arch Linux

Arch Linux a été créé en 2002. Cette distribution a plusieurs particularités :

  • C'est ce que l'on appelle une "rolling-release".

    Il n'y a pas de version figée à un moment, l'ensemble des logiciels est mis à jour continuellement. On profite ainsi d'applications souvent dans leur dernière version.
    L'image d'installation est elle mise à jour tous les mois (snapshot).

    La contrepartie est qu'Arch Linux est considérée comme plus instable que d'autres distributions car en constante évolution.
    Dans la pratique, en particulier si on utilise un noyau "LTS", il est extrêmement rare de "casser" son système au point de le rendre inutilisable. Une solution consiste à sauvegarder le système de base sur une autre partition ou un autre disque (chiffré bien entendu !) pour pouvoir revenir en arrière. Un article sera publié ultérieurement à ce sujet.

    Il est vrai par contre que l'apparence est parfois moins polie que d'autres distributions avec quelques bugs d'affichage passagers lors d'une mise à jour ou des menus mal traduits en français.

 

  • Il n'y a pas d'installateur graphique. L'installation se fait en ligne de commande grâce à un utilitaire simple à utiliser : pacstrap.

 

  • C'est une distribution "minimale", c'est à dire qu'à la fin de l'installation, seule la base du système est présente. C'est à l'utilisateur d'installer ensuite un environnement graphique, le gestionnaire de bureau et les différentes applications souhaitées.

    Cela demande plus de travail mais permet de n'installer que le strict nécessaire. C'est un avantage non négligeable pour la sécurité puisque l'on réduit la "surface d'attaque".

Un petit rappel sur l'utilité du chiffrement

Un simple mot de passe ne suffit pas à protéger un ordinateur.

Si quelqu'un a accès physiquement à votre ordinateur, ou s'il est volé, une simple clef USB avec un système live permet de lire l'intégralité des données non chiffrées (données personnelles ou système d'exploitation). Un logiciel malveillant peut également être installé.

De la même manière, si vous vous débarrassez de votre disque dur, les données restent accessibles après un simple effaçage ou même un reformatage (il est par contre possible d'effacer plus radicalement les données avec des applications spécialisées).

En chiffrant l'ordinateur, on se protège de ces risques.

 

Pourquoi chiffrer aussi le système d'exploitation ?

Même en dehors du répertoire de l'utilisateur (/home sur un système Linux), il y a des données sensibles dans d'autres répertoires. Dans /var et dans /tmp, on va trouver des variables spécifiques à l'installation (journaux ou logs, courriers système, fichiers temporaires, serveur web ...).

On va pouvoir connaître aussi l'ensemble des logiciels et applications utilisés ainsi que leur configuration. C'est donc une source de vulnérabilité.

Par ailleurs, des tests ont montré que le chiffrement complet est plus performant en terme de rapidité que le chiffrement partiel.

Scénario de chiffrement choisi : LVM dans LUKS

Une solution pour chiffrer complètement une installation est de chiffrer chacune des partitions une à une. L'inconvénient est qu'il faudra donner un mot de passe pour chaque partition avant de démarrer le système d'exploitation.

Nous allons donc utiliser ici une autre alternative : un container chiffré (LUKS) contenant des Volumes logiques pour chacune des partitions. Il ne faudra donc donner qu'un seul mot de passe pour déchiffrer les 3 volumes.

Le logiciel LVM (Logical Volume Manager) permet de gérer ces volumes logiques.

Il y a plusieurs niveaux de volume :

  • le volume physique (PV : physical volume) = il s'agit d'un disque physique ou d'une partition d'un disque physique
  • le groupe de volumes (VG : volume group) = il est constitué d'un ou plusieurs volumes physiques (lvm est capable de rassembler plusieurs partitions ou plusieurs disques dans un seul volume. On peut ainsi avoir un système d'exploitation ou un répertoire du système d'exploitation déployés sur plusieurs disques)
    Même lorsque l'on utilise qu'un seul volume physique, il faut tout de même déclarer un groupe de volumes (qui ne contiendra alors qu'un seul volume physique)
  • les volumes logiques (LV : logical volume) = il s'agit de partitions virtuelles qui seront utilisées par le système d'exploitation.

 

Dans notre installation, un seul volume physique sera utilisé. Le schéma d'utilisation de notre disque dur se présentera de la manière suivante :

 

schéma partition arch linux chiffré

 

Préparation de la clé USB d'installation

Nous installerons Arch Linux en mode UEFI à partir d'une clé USB. Il sera utile de garder cette clé pour des éventuelles réparations sur Arch Linux par la suite.

 

Après avoir téléchargé la dernière image d'Arch Linux à partir de cette page en choisissant un miroir proche (choisir l'image archlinux-aaaa-mm-jj-dual.iso), nous la copierons sur la clé USB :

 

  • sur un système Linux avec la commande dd (sdx étant le nom de la clé USB, remplacer chemin/vers/archlinux.iso par le répertoire où vous avez téléchargé l'image et le nom précis de l'iso) :
# lsblk

pour trouver le chemin vers la clé usb (non montée)

# dd bs=4M if=/chemin/vers/archlinux.iso of=/dev/sdx status=progress && sync

 

  • sur un système MacOS aussi avec la commande dd (diskx étant la clé USB, remplacer chemin/vers/archlinux.iso par le répertoire où vous avez téléchargé l'image et le nom précis de l'iso)
$ diskutil list
$ diskutil unmountDisk /dev/diskX
$ sudo dd if=chemin/vers/archlinux.iso of=/dev/rdiskX bs=1m