Skip to content

Comment installer Archlinux en chiffré

Je suis un fier utilisateur de GNU/Linux et même un grand fan d’ArchLinux. Malgré tout, je vois beaucoup de personne qui galèrent pas mal avec l’installation de cette distribution, et surtout lorsqu’ils veulent la chiffrer.

J’ai donc décidé de créer un tutoriel pour une installation chiffrée d’ArchLinux.

Bien sûr, celle-ci peut toujours être modifiée selon vos préférences, ce que j’ai préparé ici correspond à ce que je vous conseille pour une installation simple et efficace. Je ne vous garantis donc pas une installation des plus parfaites mais elle aura le mérite d’être propre.

Afin de préparer ce tutoriel j’ai utilisé une Machine Virtuelle créée avec VirtualBox en lui donnant 8Go de mémoire.

 

Sommaire

  • Pourquoi ?
  • Préparer le système
  • Le partitionnement, Le chiffrement et le formatage
  • Les premières configurations
  • Le bootloader

Pourquoi ?

Si vous êtes ici, vous avez probablement déjà utilisé Linux, et dans ce cas là vous vous demandez “Pourquoi choisir ArchLinux ? Et pourquoi le chiffrer ?” ce qui est tout à fait légitime.

Mon choix de distribution s’est porté sur ArchLinux pour sa légèreté par rapport à d’autres distributions (type Ubuntu) qui embarquent de nombreux paquets qui vous seront plus ou moins inutiles. Pour ceux qui veulent en apprendre plus sur l’administration système, c’est aussi une mine d’or où, presque tout est configurable. Ensuite le wiki est l’un des plus fournis, le forum l’un des plus actifs et les dépôts de paquets sont assez complets. De plus, il existe l’outil Yaourt qui permet de gérer les paquets utilisateurs (sur les gits populaires par exemples).

Ensuite “Pourquoi le chiffrer ?”. Cette partie n’intéressera peut-être qu’une minorité, il faut l’avouer. Le chiffrement du disque permet de garder ses données confidentielles si jamais notre ordinateur est volé/trouvé/allumé par quelqu’un de potentiellement malveillant. Toutefois le chiffrement ne sera efficace que si la clef utilisée est robuste.

 

Préparer le système

Comme pour toute installation de Linux on va commencer par télécharger l’image et la mettre sur notre clef USB ou notre CD. Toute cette étape sera laissée à votre discrétion, allons directement au moment où le Live ArchLinux est déjà lancé !

Dans un tout premier temps on va passer notre clavier en azerty (Comme un bon français qui mange du vrai fromage) :

loadkeys fr

Pour vous connecter à internet (ce qui est utile uniquement pour les paquets à installer) deux options s’offrent à vous :

  • Vous êtes en Ethernet ou partage via USB et c’est magique
  • /!\ Déconseillé /!\ Vous voulez vous connecter en wifi et dans ce cas, suivez le wiki officiel (En attendant que je prépare ça)

Ensuite on va mettre à jour l’heure du système (pour la vérification de la validité des paquets)

timedatectl list-timezones
timedatectl set-timezone Europe/Paris
timedatectl set-ntp true

On va ensuite commencer les parties vraiment intéressantes 🙂

 

Le partitionnement, Le chiffrement et le formatage

Dans un tout premier temps on va commencer par faire un petit

fdisk -l

afin de savoir comment sont nommés nos disques.

Sortie du fdisk -l
Sortie du fdisk -l

Ici, il s’agit du disque /dev/sda que nous allons alors partitionner

parted /dev/sda    #Afin d’ouvrir gparted sur le disque
mklabel msdos
mkpart primary ext4 1MiB 100MiB    #Le boot
set 1 boot on
mkpart primary ext4 100MiB 50GiB    #La racine
mkpart primary ext4 50GiB 100%     #Le /home
q    #Pour quitter gparted

Je vous conseille d’utiliser 50GiB pour la racine si vous installez beaucoup de paquets. Personnellement, je me suis retrouvé en manque de place avec 25GiB

 

On va ensuite chiffrer le / et le /home

cryptsetup –verbose –cipher aes-xts-plain64 –key-size 512 –hash sha512 –iter-time 5000 –use-random luksFormat /dev/sda2
cryptsetup –verbose –cipher aes-xts-plain64 –key-size 512 –hash sha512 –iter-time 5000 –use-random luksFormat /dev/sda3

Voici le chiffrement que je vous conseille, l’AES est un algo qui fait encore et toujours ses preuves et un grand nombre d’itérations permet de ralentir tout bruteforce de la clef. C’est aussi pour ralentir tout ce qui est bruteforce etc que je défini une taille maximal de la clef de 512 (au lieu de 256), afin d’avoir un mot de passe (ou plutôt une phrase de passe) assez important.

On va ensuite ouvrir ces même partitions

cryptsetup open –type luks /dev/sda2 racine
cryptsetup open –type luks /dev/sda3 maison

Ici j’ai respectivement appelé le / “racine” et le /home “maison” (Toujours en bon français qui boit du vin rouge).

Puis on va formater nos 3 partitions

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/mapper/racine
mkfs.ext4 /dev/mapper/maison

 

Les premières configurations

Avant tout on va commencer par monter nos partitions

mount /dev/mapper/racine /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir /mnt/home
mount /dev/mapper/maison /mnt/home

On va ensuite installer les paquets de base. Attention par contre, dans le paquet “base-devel” se trouve sudo que je ne vous conseille pas, mais dans le doute je vous laisse gérer ça (c’est votre linux après tout).

pacstrap /mnt base base-devel

On va ensuite générer notre fstab et se chrooter dans notre archlinux (ENFIN)

genfstab -U -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt

Ensuite on va faire les premières configurations pour le clavier, le nom de la machine et la date

sed -i ‘s/#fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/g’ /etc/locale.gen
locale-gen
echo nomMachine > /etc/hostname
echo ‘127.0.0.1 nomMachine.localdomain nomMachine’ >> /etc/hosts
rm /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
hwclock –systohc –utc
echo LANG=”fr_FR.UTF-8″ > /etc/locale.conf
export LANG=fr_FR.UTF-8
echo KEYMAP=fr > /etc/vconsole.conf
passwd

Bien sûr ici, il s’agit du clavier français en UTF-8, vous pouvez faire selon vos préférences.

 

Le bootloader

Comme tout au long de ce tuto je ne vous montre qu’une solution ; la solution que je vous propose donc pour le bootloader est Grub !

Dans un premier temps on va l’installer

pacman -S grub-bios

Puis on va faire quelques configurations afin de pouvoir déchiffrer nos partitions.

On va dans un premier temps modifier le fichier /etc/default/grub (pour ma part avec vim que j’ai installé)

grub cfg
grub cfg

En toute logique, le GRUB_CMDLINE_LINUX existera mais sera vide. Par contre vous allez devoir écrire le GRUB_ENABLE_CRYPTODISK vous même.

Ensuite il faut modifier le fichier /etc/mkinitcpio.conf pour ajouter les hooks keymap et encrypt (en respectant l’ordre)

hooks
hooks

Ensuite on va modifier le /etc/fstab et le /etc/crypttab afin qu’une fois le grub effectué on nous demande de déchiffrer notre /home

 

 

Le fstab
Le fstab
Le crypttab
Le crypttab

Courage, plus que 3 lignes de commande et votre ArchLinux sera officiellement installé

mkinitcpio -p linux
grub-install –recheck /dev/sda
grub-mkconfig –output /boot/grub/grub.cfg

Bien sûr, si vous avez besoin du wifi en dehors de cette installation, récupérez les outils nécessaires grâce à Pacman (iw est de base dans le live mais pas sur votre ArchLinux par exemple) et pensez à vous créer un utilisateur.

 

Pour aller plus loin

Vous pouvez bien sûr installer un gestionnaire de bureau et/ou un gestionnaire de fenêtre (Pour ma part j’utilise i3).

Puisque l’un des gros avantage d’ArchLinux reste l’AUR, je vous conseille d’installer un gestionnaire de paquet pour les paquets utilisateurs. N’installez pas le gestionnaire yaourt qui est déconseillé par la communauté et plus vraiment mis à jours. D’après moi aurman est un très bon choix.

Si jamais vous utilisez un gestionnaire de paquet, n’oubliez pas de faire vos mises à jour dans un premier temps avec pacman, puis ensuite de les faire avec le gestionnaire. Il ne doit en aucun cas remplacer pacman !

Pour les outils de pentest/CTF, le dépot blackarch peut être très utile, pensez à l’ajouter.

 

Pour toute question, n’hésitez pas à me contacter sur mon twitter

Et comme on dit, enjoy 😉

Published inArticle

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *