Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

[Install Kde Neon] Chiffrage Total


#1

j’ai installe kde neon sur cet ordinateur :

Portable Dell avec i7 4 coeurs (8 threads) carte graphique amd integre 4 go, ssd de 256 go, disque dur 2to, 32 go de memoire…

j’en ai profite pour appliquer le chiffrage total du systeme SSD et disque dur, meme le /boot est chiffre, une vrai boite noir, impossible d’y acceder sans le mot de passe… c’est totallement securise et etonnamment rapide et reactif malgre le chiffrage…

Note : Le portable utilise est recent et truffe de fonctions de securite avec possibilite de passwords, secure boot et UEFI. pour eviter les problemes, j’ai pratiquement desactive dans le BIOS toutes ces securites. si vous ne le faites pas, il est probable que l’installation echouera. de toute facon, le chiffrage global protegera mieux vos donnees que toutes ces fonctions reunis…

Informations : Creation d’un conteneur chiffre LUKS… Utilisation de LVM pour joindre l’ensemble dans un seul volume global. le SSD a ete dedie a ROOT (systeme, boot et swap…), le disque dur a HOME… seul inconvenient a LVM, si un disque est HS, toutes les donnees seront perdues d’ou l’importance des BACKUPS… Pour eviter de taper deux fois le mot de passe, la creation d’un fichier cle permet a GRUB de l’utiliser automatiquement pour le dechiffrage (affichage du message suivant lors du lancement d’ubuntu : cryptsetup: xxxx-crypt set up successufully. si vous tombez sur initramfs, c’est que ca a foire a ce niveau)…

Le tuto ci-dessous est uniquement adapte a un ordinateur vierge de tous systemes d’exploitations avec deux disques durs, vous ne devez en aucun cas essayer de l’appliquer sur un autre systeme avec windows ou linux sous peine de perdre toutes vos donnees, certaines commandes utilisees sont extremement dangereuses comme parted par exemple… vous voila prevenu

Honnetement, j’ai cree ce tuto pour mon usage personnel comme aide memoire au cas ou j’aurais a reinstaller linux… la disponibilitee dans un forum est un plus (ca m’a ete utile puisque pour ma nouvelle installation je me suis base sur mon ancien tuto. par copier coller ca ete tres rapide). si ca peut etre utile a d’autres, c’est tres bien… les utilisateurs avances pourront surement l’adapter a leurs besoins…

Note : je me suis refere a de nombreux tutos sur le net pour rediger ce tuto…

Conseil : S’exercer sur une vm avec vmplayer ou virtualbox…

Important : des tutos existent sur le net pour craquer les conteneurs LUKS par bruteforce, autrement dit en utilisant des dictionnaires de mots et differentes combinaisons… pour compliquer la tache de ces outils et la rendre non rentable (niveau temps) il est conseille d’utiliser un mot de passe long (min 30 caracteres sinon plus) avec lettres et chiffres.

Voici le tuto :

— DEBUT —

Tout d’abord, lancer le live kde neon :

Lancez le Terminal…

Initialisation Disque sdb (SSD de 256 go) :
sudo parted -s /dev/sdb mklabel msdos
sudo parted -s /dev/sdb mkpart primary 2048s 100%
Initialisation Disque sda (disque dur de 2 to) :
sudo parted -s /dev/sda mklabel msdos
sudo parted -s /dev/sda mkpart primary 2048s 100%

Chiffrement :
sudo cryptsetup -c aes-xts-plain64 -y --hash sha512 --use-random luksFormat /dev/sdb1
Confirmer par YES (majuscule). avant de tapez le mot de passe, je conseille de basculer le clavier en mode Qwerty (en cliquant sur l’icone langue dans la barre de tache) sinon votre mot de passe ne sera pas reconnu au reboot, c’est ce que j’ai fait systematiquement… cela dit, cryptsetup peut accepter plusieurs mot de passe en utilisant la commande cryptsetup luksAddKey (exemple : sudo cryptsetup luksAddKey /dev/sdb1)…

Ouverture du container luks :
sudo cryptsetup luksOpen /dev/sdb1 sdb1-crypt

Creation de deux volumes :

sudo pvcreate /dev/mapper/sdb1-crypt
sudo vgcreate vg /dev/mapper/sdb1-crypt
sudo lvcreate -l +100%FREE vg --name root
sudo mkfs.ext4 /dev/vg/root

Ajout disque dur sda :
sudo pvcreate /dev/sda1
Etendre vg avec sda :
sudo vgextend vg /dev/sda1

Verifier :
sudo vgdisplay /dev/vg

sudo lvcreate -l +100%FREE vg --name home
sudo mkfs.ext4 /dev/vg/home

Facultatif :
sudo resize2fs /dev/vg/home

On lance l’installateur de kde neon, on selectionne l’option ‘manuel’, on definit vg-root et vg-home avec les point de montage qu’il faut (/ et /home)… creer un utilisateur avec un autre mot de passe pour la gestion du systeme (attention, doit etre different de celui qui est definit pour le chiffrage), on termine et a la fin il y’aura un message d’erreur en rapport avec grub avec arret… ne pas s’en preoccuper. surtout, ne pas redemarrer. Reactiver le Terminal…

Montage des partitions et CHROOT :

sudo mount /dev/mapper/vg-root /mnt
sudo mount --bind /dev /mnt/dev
sudo mount -t proc /proc /mnt/proc
sudo mount --bind /run /mnt/run
sudo mount -t sysfs /sys /mnt/sys

sudo chroot /mnt /bin/bash

facultatif :
sudo apt update
sudo apt install grub2

Il faut normallement taper le mot de passe de dechiffrement deux fois, avec grub et une fois le systeme lance… on peut eviter cela en creant un fichier cle…

Creation du fichier cle :
dd bs=512 count=4 if=/dev/urandom of=/crypto_keyfile.bin

Ajout du fichier cle a cryptsetup (basculer en Qwerty pour le mot de passe) :
cryptsetup luksAddKey /dev/sdb1 /crypto_keyfile.bin

On securise la cle :
chmod 000 /crypto_keyfile.bin
On securise /boot :
chmod -R g-rwx,o-rwx /boot

On modifie :
nano /etc/initramfs-tools/hooks/crypto_keyfile
Ajouter la ligne :
cp /crypto_keyfile.bin "${DESTDIR}"
enregistrer et fermer.

On securise :
chmod +x /etc/initramfs-tools/hooks/crypto_keyfile

Determiner l’identifiant (UUID) de la partition sur laquelle est installe Ubuntu :
blkid

On fait un copier de ce qu’il y’a entre /dev/sdb1 et TYPE="crypto_LUKS"
Exemple UUID=“xxx-xxx-xxx-xxx”

On lance :
nano /etc/crypttab

taper sdb1-crypt
coller L’UUID sans les guillemets (par exemple UUID=xxx-xxx-xxx-xxx)
ensuite taper /crypto_keyfile.bin luks,keyscript=/bin/cat

cela devrait donner :
sdb1-crypt UUID=xxx-xxx-xxx-xxx /crypto_keyfile.bin luks,keyscript=/bin/cat
enregistrer et fermer.

Lancer :
update-initramfs -u

Modifier GRUB :
nano /etc/default/grub

Par defaut :
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash"
GRUB_CMDLINE_LINUX=”"

Commenter la ligne GRUB_HIDDEN_TIMEOUT=0 (mettre un # en tête de ligne)
Ajouter la commande : GRUB_ENABLE_CRYPTODISK=y
Ajouter la commande : GRUB_CMDLINE_LINUX=“cryptdevice=/dev/sdb1:sdb1-crypt”

Modifie :
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
GRUB_ENABLE_CRYPTODISK=y
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash”
GRUB_CMDLINE_LINUX=“cryptdevice=/dev/sdb1:sdb1-crypt”

enregistrer et fermer.

Installer grub :
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sdb

A ce niveau j’ai eu un message d’erreur :

Installing for x86_64-efi platform
grub-install: error: cannot find EFI directory

Il semblerait que par defaut, grub-install se refere a target x86_64-efi (a noter que ca fonctionnait sur des ordinateurs moins recents…).

en cas d’erreur, il faut plutot taper cette commande :
grub-install --target=i386-pc --recheck /dev/sdb

uniquement valable pour Legacy BIOS. j’ai perso desactive tout ce qui se refere a UEFI dans le bios…

Ensuite :
update-grub

On sort du CHROOT :
exit
Ensuite :
sudo umount -R /mnt

Rebooter le systeme :
sudo reboot

— FIN —

Apres install et reboot, differentes recommandations :

  • Activer le firewall. Tapez sudo ufw enable. pour les details, Tapez sudo ufw status verbose.

  • Configurer swappiness pour eviter l’utilisation a outrance du swap disque (ce qui risquerait de flinguer le ssd a terme). Tapez sudo nano /etc/sysctl.conf et ajoutez la ligne vm.swappiness = 1 (maj : plutot 1 que 5, ca oblige le systeme a ne recourir au swap qu’en dernier…) et redemarrer. Sinon tapez sudo sysctl vm.swappiness=1 pour l’activer immediatement.

  • Accelerer notablement le systeme en utilisant tmpfs. Tapez sudo nano /etc/fstab et ajoutez la ligne tmpfs /tmp tmpfs rw,nosuid,nodev

Ayant 32 go de memoire, je n’ai pas specifie la taille. par defaut la moitie de la memoire sera utilise, soit env 16 go. tout ce qui normallement transite dans tmp sera desormais en memoire (excellent pour augmenter la duree de vie du ssd), ce qui rendra le systeme extremement rapide. en cas de memoire insuffisante, le swap disque sera utilise d’ou son utilite. a noter que ubuntu utilise desormais un swap disque dans un fichier. j’ai augmente sa taille a 8 go sur le ssd. ca devrait etre suffisant.

Pour plus d’infos sur ces ajouts, google est votre ami…

Conclusion : Le systeme est tres rapide, le lancement de libreoffice par exemple est presque instantane. le chiffrage n’impacte pas beaucoup les performances globales. kde plasma est tres agreable a utiliser. configurable a volonte. un petit bemol, le systeme utilise la carte graphique intel et pas la carte amd radeon 530 qui est beaucoup plus rapide. impossible de l’utiliser pour l’instant. pas de driver disponible. je verrais ca plus tard…

J’ajouterais au fur et mesure des astuces pour optimiser le systeme…


#2

Installer KVM

Precedement sous windows, j’utilisais vmplayer pour virtualiser windows et y confiner quelques programmes. sous linux, il semblerait que kvm est le choix ideal. integre au noyau de linux (depuis les version 2.6.xx), cet hyperviseur necessite que le processeur supporte les technologies de virtualisation hardware, ce qui est a priori le cas pour les recents i5 et i7 (et peut etre meme i3)…

Pour l’installation :

sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager

Ajouter l’utilisateur au groupe libvirtd :

sudo adduser nom_utilisateur libvirtd

ensuite executez le gestionnaire de machine virtuelle… pour creer une nouvelle machine virtuelle, j’ai directement importe une image vmdk de windows 7 que j’utilisais sous windows avec vmplayer. je m’attendais clairement a un crash parce que je n’ai meme pas pris la peine de desinstaller les drivers de vmware (je l’ai fait apres). j’ai eu la suprise de voir le systeme demarrer sans aucun probleme…

Recommandations :

  • ne pas toucher a la carte reseau. ca a fonctionne du premier coup…
  • installer le paquet spice-vdagent sous linux
  • il est conseille de convertir au prealable le format vmdk vers qcow2 avec le programme qemu-img (permet l’acces aux snapshots…)
  • choisir peripherique graphique QXL
  • dans la vm windows, il faut installer SPICE Guest Tools

a partir de la, vous aurez le copier coller, l’agrandissement a la vole de la fenetre de la vm et d’autres optimisations. kvm etait destine a la base a la virtualisation en mode texte mais avec ces ajouts il est tout a fait envisageable d’utiliser une vm en mode graphique comme sous vmware ou virtualbox…

note : windows 7 s’execute parfaitement sous kvm. c’est rapide et stable. un petit bemol, le partage de dossier entre la vm et le systeme reel est difficile. en cause les informations sur le net qui ne sont pas a jour, la majorite des tutos que j’ai consultes ne fonctionnent plus. il y’a la possibilite d’utiliser samba mais je l’ai ecarte. hors de question d’installer un serveur et alourdir le systeme rien que pour cette fonction. je verrais plus tard…


#3

Installer LXD

LXD est un hyperviseur permettant de gerer des containers totallement isoles du systeme reel. c’est un projet libre developpe par Canonical qui partage les ressources du systeme reel en mode virtuel en s’appuyant directement sur les fonctions avancees du noyau. concu au depart pour faire tourner des serveurs isole de l’hote, le logiciel a ete detourne de son usage habituel. il existe en effet des tutos sur le net permettant de l’utiliser pour sandboxer efficacement des programmes en mode graphique avec l’activation de la 3D. vous trouverez ici bas un exemple d’installation utilisation de firefox dans un container…

Note : j’ai mis les instructions dans une balise parce que le forum modifie les doubles tirets en un seul, ce qui provoque des erreurs de syntaxe (je m’en suis appercu en faisant des copier coller dans le terminal)…

le forum s’obstine a colorier certaines partie du texte, probablement un bug

sudo groupadd --system lxd
sudo usermod -G lxd -a nom_utilisateur

pour installer lxd, j'ai choisi le package snap :
sudo snap install lxd

pour intitaliser lxd (j'ai selectionne les options par defaut) :
sudo lxd init

ensuite pour creer une instance firefox avec l'audio :
lxc launch ubuntu:x firefox
lxc exec firefox apt update
lxc exec firefox apt install x11-apps mesa-utils pulseaudio firefox
lxc config set firefox raw.idmap "both $UID $(id -u)"
lxc restart firefox
lxc config device add firefox X0 disk path=/tmp/.X11-unix/X0 source=/tmp/.X11-unix/X0
lxc exec firefox -- sudo --user ubuntu --login

sudo sed -i "s/; enable-shm = yes/enable-shm = no/g" /etc/pulse/client.conf
echo export PULSE_SERVER=unix:/tmp/.pulse-native | tee --append /home/ubuntu/.profile
exit

lxc config device add firefox PASocket disk path=/tmp/.pulse-native source=/run/user/1000/pulse/native
lxc config device add firefox Xauthority disk path=/home/ubuntu/.Xauthority source=$XAUTHORITY
lxc config device add firefox gpu gpu
lxc config device set firefox gpu uid 1000
lxc config device set firefox gpu gid 1000

lancer firefox :
lxc exec firefox -- sudo --login --user ubuntu DISPLAY=:0 firefox

verifier que la 3d fonctionne :
lxc exec firefox -- sudo --login --user ubuntu DISPLAY=:0 glxgears

pour faire un backup du container firefox (exemple) :
lxc export firefox /home/nom_utilisateur/Backups/firefox_backup.tar.xz

meme procedure pour installer d’autres programmes isoles. il faut cependant savoir que pour chaque programme, il faudra ajouter des options. par exemple pour firefox, il fallait installer pulseaudio pour avoir le son…

Note : bien qu’en suivant ces etapes une par une il est possible de faire pareil, ces informations sont destines a des personnes averties sachant gerer les lignes de commandes et ayant quelques connaissances au prealable. je n’ai pas mis trop d’explications mais ca reste gerable pour les connaisseurs. vous trouverez plus de detail sur le net. ce tuto est base sur de nombreuses informations glanees sur le net et que j’ai adapte a mes besoins…

Conclusion : le plus etonnant avec LXD, c’est la rapidite des programmes. c’est beaucoup plus reactif qu’une machine virtuelle avec la meme isolation. cela dit le logiciel ne peut gerer que des systemes linux. pour windows, il reste possible d’installer une instance wine et d’y ajouter des programmes windows. meme les jeux sont possible puisque la 3d et le son sont disponibles. ma prochaine tentative, c’est de tester les capacitee de wine. j’ai en effet des programmes windows qui n’ont pas d’equivalents sous linux pour l’instant. l’autre avantage, c’est d’isoler wine dans un container pour ne pas polluer le systeme…

je posterais le fruit de mes futures experiences avec LXD dans ce post pour en garder une trace et en faire profiter d’autres personnes…

–MAJ–

je voulais recreer un container avec le navigateur opera mais sans tout refaire.

j'ai donc cloner le container de firefox par la commande : 

lxc copy firefox opera

ensuite, j'ai active le container opera :

lxc start opera

et lance firefox a l'interieur du container opera pour acceder au site d'opera et telecharge le dernier package de ce logiciel... 

lxc exec opera -- sudo --login --user ubuntu DISPLAY=:0 firefox

ensuite j'ai lance la commande :

lxc exec opera -- sudo --login --user ubuntu

et a l'interieur du container la commande (pour installer opera) :

sudo dpkg -i Nom_package_Opera.deb

installer les dependances (necessaire) :

sudo apt -f install

j'ai ensuite desinstalle firefox qui n'est plus necessaire ici...

exit pour sortir du container opera...

pour lancer opera et verifie que tout fonctionne :

lxc exec opera -- sudo --login --user ubuntu DISPLAY=:0 opera

Le principe reste applicable a d’autres programmes. au lieu de tout refaire a chaque fois. cloner est une solution plus rapide. le seul soucis, c’est que chaque container occupe environ 1 go d’espace disque, c’est beaucoup, je vais essayer de trouver un container image tres leger pour regler ce probleme…

Precision : il est tout a fait possible d’installer de nombreux programmes dans un meme container mais vous n’aurez pas d’isolation entre eux puisqu’ils auront acces a toutes les donnees des uns et des autres…