Afficher/cacher Sommaire
Archlinux “Cryptage complet des disques”
Références
- Article original Full disk encryption with LUKS (including /boot) de Pavel Kogan 23 mai 2014
- How to full encrypt your linux system with lvm on luks
- Archlinux avec LUKS et LVM sur un SSD
- Installer Ubuntu avec LVM sur une partition chiffrée via dm-crypt
- dm-crypt/Encrypting an entire system (LVM on LUKS)
- Chiffrer son disque avec cryptsetup, luks, pam-mount
- How to install Arch Linux with Full Disk Encryption
En cherchant des informations sur la façon de chiffrer le disque dur de mon ordinateur portable, il est dit que la partition sur laquelle /boot réside doit rester non chiffrée,
GRUB est capable de gérer la cryptographie, car il peut être mis en place avec un hachage mot de passe.
GRUB peut charger les modules crypto.mod, cryptodisk.mod et même luks.mod!
Ce guide sur la la configuration d’un système Arch Linux chiffré fournit les instructions sur la façon de crypter complètement un système, y compris /boot
ATTENTION !!! Tout chiffrer pose 2 problèmes :
- Le clavier GRUB est qwerty , ce qui rend compliqué la saisie de la phrase mot de passe (je n’ai pas réussi à passer la saisie en FR)
- On saisie 2 fois la phrase mot de passe , sur le grub bios puis sur le menu grub
Essais effectués sur une machine virtuelle , BOOT NON CHIFFRE
Nom virtuel : archyan
RAM : 1024Mo
HDD fixe: 30Go
Réseau : Accès par pont
Processeur : 2
Carte mère : Optical+ Disque dur
Activer EFI
Stockage optical : archlinux-2016.08.01-dual.iso (pour l'installation)
root ytreu49
yarch yarch49
machine : archyan
ATTENTION : générer mkinitcpio
Archlinux ,installation de base
Boot sur image archlinux-2016.08.01-dual.iso
loadkeys fr-pc
Si vous utilisez la wifi uniquement
wifi-menu
Effacement du disque
Exécuter lsblk
pour trouver le disque primaire (ici /dev/sda):
shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sda
ATTENTION !!! opération très longue ,fonction de la taille du disque (>30 mn pour 30GB)
Partionnement
En ligne de commande
# Remove partitions
sgdisk --zap-all /dev/sda
# Create GUID Partition Table
sgdisk --mbrtogpt /dev/sda
# Create BIOS boot partition (1M)
sgdisk --new 1::+1M --typecode 1:ef02 --change-name 1:"BIOS boot partition" /dev/sda
# Create EFI System partition (50M)
sgdisk --new 2::+50M --typecode 2:ef00 --change-name 2:"EFI System" /dev/sda
# Create linux boot partition (512M)
sgdisk --new 3::+512M --typecode 2:8300 --change-name 3:"Linux boot partition" /dev/sda
# Create linux lvm 100%free
sgdisk --new 4::: --typecode 4:8e00 --change-name 4:"Linux lvm partition" /dev/sda
# Create hybrid MBR
sgdisk --hybrid 1:2:3 /dev/sda
Chiffrer le disque
cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda4
-> saisir YES en majuscule
-> entrer une phrase mot de passe "huit novembre 2016" par exemple
cryptsetup luksOpen /dev/sda4 cryptroot
-> saisir la phrase mot de passe
Création des volumes LVM
pvcreate /dev/mapper/cryptroot
vgcreate vg /dev/mapper/cryptroot
lvcreate -L 4G vg -n swap
lvcreate -L 15G vg -n root
lvcreate -l +100%FREE vg -n home
# Type de fichier
mkswap -L swap /dev/mapper/vg-swap
mkfs.ext4 /dev/mapper/vg-root
mkfs.ext4 /dev/mapper/vg-home
mkfs.ext2 /dev/sda3 # linux boot
Installation de base
Activation swap ,permet de vérifier la fonction mais n’est pas utile lors de l’installation
swapon /dev/mapper/vg-swap
Points de montage
mount /dev/mapper/vg-root /mnt
mkdir /mnt/{boot,home}
mount /dev/mapper/vg-home /mnt/home
mount /dev/sda3 /mnt/boot
passer la commande suivante avant la première ligne pacstrap :
export LANG=C
installation de base
pacstrap /mnt base base-devel
# avec efi
pacstrap /mnt base base-devel grub-efi-x86_64 git efibootmgr dialog
# avec efi et wifi
pacstrap /mnt base base-devel grub-efi-x86_64 git efibootmgr dialog wpa_supplicant
générer le fichier /etc/fstab qui liste les partitions présentes avec les UUID des partitions
# générer le fstab
genfstab -U -p /mnt >> /mnt/etc/fstab
# ajout dossier temporaire /tmp sur ram
nano /mnt/etc/fstab
# ajouter la ligne suivante au fichier fstab
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
# Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD)
Passage en chroot
arch-chroot /mnt
Clavier en mode texte
nano /etc/vconsole.conf
Ajouter
KEYMAP=fr-latin9
FONT=lat9w-16
Localisation
nano /etc/locale.conf
Ajouter
LANG=fr_FR.UTF-8
LC_COLLATE=C
Il faut supprimer le # au début de la ligne fr_FR.UTF-8 UTF-8 dans le fichier /etc/locale.gen
sed -i 's/#fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/g' /etc/locale.gen
puis générer:
locale-gen
spécifier la locale pour la session courante
export LANG=fr_FR.UTF-8
fuseau horaire de Paris
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
on a une machine en mono-démarrage sur Archlinux, et on peut demander à ce que l’heure appliquée soit UTC
hwclock --systohc --utc
mot de passe root
passwd root
Ajouter un utilisateur et son mot de passe
useradd -m -g users -G wheel,games,power,optical,storage,scanner,lp,audio,video -s /bin/bash archuser
passwd archuser
Installer et configurer GRUB
pacman -S sudo grub os-prober
Modifier sudoers pour accès sudo sans mot de passe à l’utilisateur archuser
echo "archuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# ou avec :
EDITOR=nano visudo
#décommenter la ligne
%wheel ALL=(ALL) ALL
on veut avoir accès à l’outil yaourt
, il faut modifier /etc/pacman.conf
nano /etc/pacman.conf
et ajouter ceci à la fin du fichier
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
Une fois yaourt
installé, on peut enlever sans aucun risque les lignes en question.
pacman -Syy && pacman -S yaourt
réseau networkmanager et openssh
pacman -S networkmanager openssh
systemctl enable NetworkManager
systemctl enable sshd.socket
Modifier la configuration GRUB pour la prise en charge du chiffrement
nano /etc/default/grub
Ajouter
#GRUB_ENABLE_CRYPTODISK=y
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda4:cryptroot"
create: 2016-11-08 modifier le fichier /etc/mkinitcpio.conf
nano /etc/mkinitcpio.conf
et ajouter encrypt lvm2
entre block
et filesystems
dans les HOOKS
puis exécuter mkinitcpio qui est un script shell utilisé pour créer un environnement qui se chargé en premier en mémoire :
mkinitcpio -p linux
Installer grub et son fichier de configuration:
grub-install --recheck /dev/sda
grub-mkconfig --output /boot/grub/grub.cfg
On peut maintenant quitter tout, démonter proprement les partitions et redémarrer.
exit
umount -R /mnt
reboot
# oter la clé USB
Archlinux post-installation
On se connecte en utilisateur
Multimédia
Les outils en place, on lance alsamixer
, pour configurer le niveau sonore de Master
Sauvegarder le paramétrage précédent , on exécute sudo alsactl store
installer l’ensemble des greffons gstreamer qui donneront accès aux fichiers multimédias
sudo pacman -S gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav
Xorg
Ordinateur portable avec pavé tactile , on installe xf86-input-libinput
Carte graphique Intel , on installe xf86-video-intel
sudo pacman -S xorg-server xorg-xinit xorg-xmessage xorg-utils xorg-server-utils xorg-apps xf86-input-mouse xf86-input-keyboard xdg-user-dirs xf86-input-libinput xf86-video-intel
Installation virtuelle
sudo pacman -S xorg-server xorg-xinit xorg-xmessage xorg-utils xorg-server-utils xorg-apps xf86-input-mouse xf86-input-keyboard xdg-user-dirs xf86-input-libinput virtualbox-guest-modules-arch virtualbox-guest-utils
# activer et démarrer le service vboxservice :
sudo systemctl enable vboxservice
sudo systemctl start vboxservice
# Vous pouvez charger les modules manuellement :
sudo modprobe -a vboxguest vboxsf vboxvideo
installation des polices.
sudo pacman -S xorg-fonts-type1 artwiz-fonts font-bh-ttf \
font-bitstream-speedo gsfonts sdl_ttf ttf-bitstream-vera \
ttf-cheapskate ttf-liberation ttf-dejavu \
ttf-freefont ttf-arphic-uming ttf-baekmuk # Polices pour sites multilingue
Pour avoir le bon agencement clavier dès la saisie du premier caractère du mot de passe, il faut entrer la commande suivant avant de lancer pour la première fois lightdm :
sudo localectl set-x11-keymap fr
Configuration du clavier pour GRUB
Par défaut, GRUB utilise un clavier qwerty. Pour que GRUB utilise une autre configuration de clavier, il va falloir générer un fichier de configuration et l’ajouter à GRUB.
Générez un nouveau fichier de configuration clavier
Récupérez le script ckbcomp disponible dans AUR
yaourt -S ckbcomp
et exécutez la commande :
sudo grub-kbdcomp -o /boot/grub/fr.gkb fr
Inclure la nouvelle configuration de clavier dans GRUB
Créer ou modifier le fichier suivant /etc/grub.d/50_keyboard
#!/bin/sh
exec tail -n +3 $0
# Clavier fr
insmod keylayouts
keymap /boot/grub/fr.gkb
Le rendre exécutable
sudo chmod +x /etc/grub.d/50_keyboard
Ajouter dans le fichier /etc/default/grub
GRUB_TERMINAL_INPUT=console
GRUB_TERMINAL_INPUT=at_keyboard
Reconstruire GRUB
sudo grub-mkconfig -o /boot/grub/grub.cfg