You are on page 1of 9

ant ho nyle go f f .

co m

http://antho nylego ff.co m/2014/01/17/archlinux-luks-sur-lvm-po ur-ssds-trim/

Archlinux LUKS sur LVM pour SSDs / TRIM


Antho ny Le Go ff

Partager la publication "Archlinux LUKS sur LVM pour SSDs / T RIM" Facebook Twitter Google+ Viadeo LinkedIn E-mail Petit article sur une installation dArchlinux avec quelques petites notes personnelles pour une conf iguration scurise des donnes. Larticle ne remplace pas la documentation of f icielle du wiki arch. Le but tait de mettre deux disques SSD en un stripe LVM acceptant la f onction T RIM avec dif f rentes partitions chif f res par LUKS + CRYPT TAB: Partition root, demande de mot de passe au dmarrage de lordinateur Partition tmp, spar dans tmpf s Partition swap, chif f rement de la swap par une cl alatoire chaque dmarrage Partition home, documents et mdias chif f rs par une cl prive protge dans la partition root.

Ce qui permet davoir une installation robuste contre dif f rentes attaques tant donnes quen cas de corruption dune partition lintgrit est protg par dif f rents niveaux de cloisonnement. Pour ce tutorial linstallation ce f ait sur une table de partition GPT utilisant GRUB2 comme bootloader. Les SSD sont entirement utiliss sans possibilit de f aire de snapshots avec LVM. T lcharger et installer Archlinux sur un liveUSB : https://www.archlinux.org/download/ & remplacer sdx par votre chemin daccs votre cl USB

1 2

# dd if=/dev/zero/ of=/dev/sdx bs=1k count =1 # dd if=archlinux-xxxx.iso of=/dev/sdx

Preparation et destruction des donnes sur les disques durs dinstallation dArchlinux

1 2

# shred -v -n 1 /dev/sda2 # shred -v -n 1 /dev/sdb2

Installation avec un LiveUSB Boot & slectionner x86_64 pour un systme 64 bits ( RAM >= 4GO ) Changer la configuration clavier

# loadkeys fr

Vrification de la connectivit rseau

# ping -c 3 www.google.com

Si le test est positif et que vous recevez des paquets, vous tes connects internet, sinon :

# dhcpcd

Partitionnement des disques durs Conf iguration des partitions avec les outils cgdisk & gdisk pour GPT DISK1 /dev/sda1 +2M ef 02 //BIOS /dev/sda2 +200M 8300 //BOOT /dev/sda3 +100% 8e00 // LVM SYST EM DISK2 /dev/sdb1 +100% 8e00 //LVM SYST EM Redmarrer ici pour prendre en compte les nouvelles tables de partition

# reboot

Paramtrer LVM

1 2 3 4 5 6 7 8 9 10 11 12 13

# pvcreat e --dat aalignement 4M /dev/sda3 # vgcreat e lvm /dev/sda3 # vgext end lvm /dev/sdb1 # lvcreat e -L 15GO -n root lvm # lvcreat e -L 4GO -n swap lvm # lvcreat e -L 2GO -n t mp lvm # lvcreat e -l 100%FREE -n home lvm

Ce qui donne comme label de partition dev/sda2 = boot /dev/lvm/root /dev/lvm/swap /dev/lvm/tmp /dev/lvm/home Chiffrement de la partition logique root avec LUKS, activation de T RIM

1 2

# crypt set up luksFormat -c aes-xt s-plain64 -s 512 -h sha512 -i 5000 --align-payload=8192 /dev/lvm/root # crypt set up luksOpen --allow-discards /dev/lvm/root root

Table de partition dchif f re gnre /dev/mapper/root Monter & formater /root + activation T RIM

1 2

# mkfs.ext 4 -E discard /dev/mapper/root # mont /dev/mapper/root /mnt

Monter & formater /boot

1 2 3 4

# # # #

dd if=/dev/zero of=/dev/sda2 bs=1M mkfs.ext 2 /dev/sda2 mkdir /mnt /boot mount /dev/sda2 /mnt /boot

Checker point de montage avec la commande lsblk -f Installation systme de base + grub

# pacst rap /mnt base base-devel grub

Gnrer fstab

# gensfst ab -L -p /mnt >> /mnt /et c/fst ab

Edition de f stab et ajout des paramtres ncessaires pour T RIM ainsi que lajout de home et du f lag stripe pour LVM.[ tmp, swap, home] comment qui seront activs aprs la f inalisation et reboot du systme.

# nano /mnt /et c/fst ab

1 2 3 4 5 6 7

/dev/mapper/root /root ext 4 default ,noat ime,discard 2 0 # #dev/lvm/t mp /t mp t mpfs nodev,nosuid,size=2GO 0 0 # #/dev/mapper/swap none swap sw 0 0 # #/dev/mapper/home /home ext 4 rw,noat ime,nodirat ime,discard,st ripe=128,dat a=ordered,errors=remount -ro 0 0

Gnrer Crypttab Crypttab va nous permettre de grer le chif f rement de la partition swap et dappeler la cl prive de la partition home. Laisser commenter les paramtres pour lactivation aprs la f inalisation et reboot du systme.

1 2 3 4

............. #swap /dev/lvm/swap /dev/urandom cipher=aes-xt splain:whirlpool,size=512,hash=sha512,swap # #home /dev/lvm/home /et c/luks-keys/home

Arch chroot

# arch-chroot /mnt /bin/bash

Nom de la machine

# nano /et c/host name

Configuration de locale

# nano /et c/locale.gen

1 2 3 4

en_US.UTF-8 UTF-8 fr_FR.UTF-8 UTF-8 fr_FR ISO-8859-15 fr_FR@euro ISO-8859-15

Gnration du f ichier

# locale-gen

Configuration langage par dfaut

# nano /et c/locale.conf

1 2

LAN=fr_FR.UTF-8 LC_COLLATE="fr_FR.UTF-8"

Exportation du langage pour initramfs

# export LANG=fr_FR.UTF-8

Console, fonts, keymap

# nano /et c/voncole.conf

1 2 3

KEYMAP=fr FONT= FONT_MAP=

Configuration fuseau horaire

# ln -s /usr/share/zoneinfo/Europe/Paris /et c/localt ime

Activation des services cron & rseaux

1 2

# syst emct l enable cronie.service # syst emclt enable dhcpcd.service

Synchronisation horaire UT C

# hwclock --syst ohc --ut c

Edition de rc.conf

# nano /et c/rc.conf

1 2 3

#congurat ion le for init script s # DAEMONS=(hwclock syslog-ng net work crond nt pd)

Prparation initramfs

# nano /et c/mkinit cpio.conf

Modif ier les hooks qui devront tre appel pour lancer le systme

1 2

............. HOOKS = " base udev aut odet ect modconf block keymap lvm2 encrypt lesyst ems usbinput shut down fsck"

Gnration du f ichier

# mkinit cpio -p linux

Installation de grub sur le SSD amorage

# grub-inst all /dev/sda

Prvention de message derreur

cp /usr/share/locale/en\@quot /LC_MESSAGES/grub.mo /boot /grub/locale/en.mo

Edition de grub et gnration du f ichier de conf iguration

# nano /et c/default /grub

Modif ication des options de kernel pour lactivation du dmarrage sur la partition chif f re root

GRUB_CMDLINE_LINUX="crypt device=/dev/lvm/root :root root =/dev/mapper/root "

# grub-mkcong -o /boot /grub/grub.cfg

Finalisation, fin dinstallation Mot de passe pour le compte root

# passwd

Quitter le mode chroot

# exit

Dmonter les volumes

1 2

# umount /mnt /boot # umount /mnt

# reboot

Aprs le redmarrage du systme f rachement install, le mot de passe de dchif f rement de la partition root est demand une f ois lcran de bootloader pass. Si un problme persiste il est possible de dbuguer en relanant un liveUSB sous arch et douvrir le container LUKS par la commande cryptsetup luksOpen allow-discard /dev/lvm/root root Pour terminer linstallation il est ncessaire de f ormater et monter la swap, tmp et home. Activation de la swap

# mkswap /dev/lvm/swap && swapon /dev/lvm/swap

Activation de la swap dans f stab + crypttab en d-commentant # Modif ication du comportement swap pour SSD permettant doptimiser les perf ormances avec la RAM

# nano /et c/syst ct l.d/99-sysct l.conf

1 2

vm.swapiness=1 vm.vfs_cache_pressure=50

Chiffrement et activation de /home Cration dun f ichier avec une cl prive dans la partition root. Il est possible de changer le nom du dossier pour f aire de la scurit par lobscurit (penser modif ier dans le crypttab galement)

1 2

# mkdir -p m 700 /et c/luks-keys # dd if/dev/random of=/et c/luks-keys/home bs=1 count =256

Creation du container LUKS pour /home , format en ext4, activation de T RIM et du ST RIPE LVM

1 2 3 4

# crypt set up luksFormat -c aes-xt s-plain64 -s 512 --align-payload=8192 /dev/lvm/home /et c/luks-keys/home # crypt set up luksOpen --allow-discards -d /et c/luks-keys/home /dev/lvm/home home # mkfs.ext 4 -b 4096 -E st ride=128,st ripe-widt h=128 /dev/mapper/home # t une2fs -m 0 /dev/lvm/home

Activation de la partition /home dans f stab + crypttab Monter et formater /tmp

1 2

# mkfs.ext 4 /dev/lvm/t mp # mount /dev/lvm/t mp /t mp

Activation dans f stab

# reboot

Sources: Installation de base http://wiki.archlinux.f r/Installation Solid State Drives https://wiki.archlinux.org/index.php/Solid_State_Drives#Partition_Alignment SSD Benchmarking https://wiki.archlinux.org/index.php/SSD_Benchmarking#Encrypted_Partitions Dm-crypt LUKS on LVM https://wiki.archlinux.org/index.php/Dmcrypt/Encrypting_an_Entire_System#LUKS_on_LVM Archlinux installation guide on encrypted SSD http://danynativel.com/blog/2013/02/10/archlinux-installationguide-on-encrypted-ssd/ Article publication by Anthony Le Gof f is licensed under a Creative Commons AttributionNonCommercial-ShareAlike 3.0 Unported License.

Anthony Le Gof f est le f ondateur dAlpharatz Consulting en tant que consultant, conseil en Stratgie, veille et innovation, prestation intellectuelle dans la haute technologie, recherche & dveloppement, cyber-scurit. Linux User, Technologies addict. Parf ois port par la Science.