Post

💻 Dell Latitude E6230 - CachyOS EXT4 chiffré LUKS

💻 Dell Latitude E6230 - CachyOS EXT4 chiffré LUKS

CachyOS, une distribution Linux relativement nouvelle, vise à offrir des performances élevées et une expérience utilisateur fluide.

Dell Latitude E6230 Portable Dell Latitude E6230 - matériel , documentation et bios

CachyOS

CachyOS
CachyOS Wiki (en), Wiki (fr)

Avant de commencer avec les préparatifs d’installation, assurez-vous que l’ordinateur utilisé répond aux exigences du système nécessaire pour exécuter CachyOS. L’installateur utilise un processus d’installation en ligne de sorte qu’une connexion Internet stable et relativement rapide est obligatoire.

Caractéristiques minimales recommandées

  • 8 Go RAM
  • 50 Go d’espace de stockage (SSD/NVMe)
  • CPU capable de x86-64-v3
  • 50 Mbps ou une meilleure vitesse Internet
  • NVIDIA GPU (900+ - par exemple: GTX 950), AMD +GCN 1.0 (par exemple: AMD R7 240) ou Intel (série intégrée HD Graphics ou plus). Série Arc)

x86_64 Microarchitecture Level Support

  • x86_64-v3 Compatible CPUs * Intel * Haswell and later generations (e.g., Broadwell, Skylake, Coffee Lake, etc) * AMD * Ryzen Series
  • x86_64-v4 Compatible CPUs * Intel * Knights Landing (Xeon Phi x200), Knights Mill (Xeon Phi x205), Skylake-SP, Skylake-X, Cannon Lake, Cascade Lake, Cooper Lake, Ice Lake, Rocket Lake, Tiger Lake and Sapphire Rapids * AMD * Zen4+ CPUs

A-Gestionnaires de démarrage proposés

Pour offrir la meilleure expérience sur une gamme d’appareils, CachyOS propose actuellement les gestionnaires de démarrage suivants : systemd-boot, rEFInd, GRUB et Limine. Cet article wiki décrira le jeu de fonctionnalités de chaque gestionnaire de démarrage et inclut également nos recommandations pour lors de leur choix. Pour la configuration, veuillez consulter Boot Manager Configuration.

1-systemd-boot

Une partie de la famille systemd, systemd-boot a été créée pour être aussi simple que possible, donc il n’a de soutien que pour les systèmes basés sur l’UEFI. Cette conception simple et efficace garantit sa fiabilité et sa rapidité. Cependant, cela se fait au prix de fonctionnalités avancées prises en charge par d’autres gestionnaires de boot.

Pour

  • Configuration très simple.
  • Les entrées de démarrage sont séparées en plusieurs fichiers, ce qui facilite la gestion.

Points négatifs

  • Manque de soutien adéquat pour le BIOS/MBR.
  • Les os très nus conçoivent et manquent de tout type de thème ou de personnalisation.
  • Config n’est pas généré automatiquement à moins que configuré pour le faire. CachyOS inclut systemd-boot manager pour offrir une configuration générée automatiquement.
  • Seulement capable de lire les images de démarrage sur les systèmes de fichiers supportés par EFI (FAT, FAT16, FAT32).
  • Impossible de trouver des images de démarrage sur des partitions autres que les siennes.
  • Ne prend pas en charge correctement les retours instantanés de Btrfs en raison de l’exigence de stocker les images du noyau sur la partition de démarrage plutôt que le système de fichiers racine.

Recommandation

Systemd-boot est le gestionnaire de démarrage recommandé et par défaut pour CachyOS. Choisissez celui-ci si vous n’êtes pas sûr.

2-GRUB

GRUB est le plus ancien gestionnaire de démarrage disponible. Il a un très grand jeu de fonctionnalités, fonctionne sur presque toutes les machines et est le gestionnaire de démarrage Linux le plus couramment utilisé. Voici une liste de ses principaux avantages et inconvénients.

Pour

  • Capable de lire les images de démarrage de presque tous les systèmes de fichiers Linux disponibles.
  • Largement utilisé et très facile à trouver des informations en ligne.
  • Capable de décrypter les partitions de démarrage chiffrées.
  • Le seul chargeur de démarrage offert lui permettant de démarrer des machines BIOS.
  • Ça semble daté. Cependant a un grand soutien thématique pour compenser.

Points négatifs

  • “Bloated” en raison du besoin de prendre en charge beaucoup plus vieux matériel et nécessitant beaucoup de pilotes de système de fichiers.

Recommandation

  • GRUB est le seul gestionnaire de démarrage qui supporte le cryptage de partition de démarrage (Différence par rapport au chiffrement du disque).

B-Systèmes de fichiers

CachyOS offre 5 systèmes de fichiers (seulement XFS, BTRFS et EXT4 sont détaillés) pour permettre à l’utilisateur de choisir ce qui correspond le mieux à ses besoins. Voici les avantages, les inconvénients et les recommandations de chaque système de fichiers. Chaque système de fichiers est livré avec ses exigences/utilités préinstallées sur CachyOS.

BTRFS est le système de fichiers par défaut et recommandé pour CachyOS. Choisissez-le si vous n’êtes pas sûr.

1-XFS

XFS est un système de fichiers de revue créé et développé par Silicon Graphics, Inc. Il a été créé en 1993, porté à Linux en 2001, et est maintenant largement pris en charge par la plupart des distributions Linux.

Pour

  • Fast, XFS a été initialement conçu avec la vitesse et l’évolutivité extrême à l’esprit.
  • Fiable, XFS utilise plusieurs technologies pour prévenir la corruption des données.
  • Résistant à la fragmentation en raison de son étendue et de sa stratégie de répartition retardée.

Points négatifs

  • Il ne peut pas être réduit.

Utilitaire espace utilisateur

Le paquet contenant des outils d’espace utilisateur pour gérer les systèmes de fichiers XFS est xfsprogs.

Recommandation

XFS est le système de fichiers recommandé pour les utilisateurs qui n’ont pas besoin de fonctionnalités avancées et veulent simplement un système de fichiers rapide et fiable.

2-BTRFS

BTRFS est un système de fichiers moderne copy-on-write(COW) créé en 2007 et déclaré stable dans le noyau linux en 2013. Il est largement soutenu et est principalement connu pour son ensemble de fonctionnalités avancées.

Pour

  • Compression transparente. BTRFS prend en charge la compression transparente des fichiers pour permettre des économies d’espace importantes sans intervention de l’utilisateur. Caché OS est livré avec la compression ZSTD réglée au niveau 3 par défaut.
  • Fonctionnalité d’instantané. BTRFS exploite sa nature COW pour permettre la création d’instantanés de sous-volumes qui prennent très peu d’espace réel.
  • Fonction sous-volume permettant un meilleur contrôle du système de fichiers.
  • Peut grandir ou rétrécir.
  • Très rapide développement.

Points négatifs

  • Il faut parfois défragmenter ou équilibrer.
  • Pire sur les entraînements de rotation en raison de la fragmentation susmentionnée.

Utilitaire espace utilisateur

Btrfs userspace utility package est btrfs-progs

Présentation du sous-volume

CachyOS fournit une mise en page en sous-volume de la boîte pour permettre une fonctionnalité d’instantané facile.

  • Subvol @ = /
  • Subvol @home = /home
  • Subvol @root = /root
  • Subvol @srv = /srv
  • Subvol @cache = /var/cache
  • Subvol @tmp = /var/tmp
  • Subvol @log = /var/log

Recommandation

BTRFS est recommandé pour les utilisateurs qui veulent la fonctionnalité instantané / sauvegarde et la compression transparente.

3-EXT4

EXT4 (quatrième système de fichiers étendu) est le système de fichiers Linux le plus couramment utilisé. EXT4 a été rendu stable dans le noyau linux en 2008.

Pour

  • Très fréquent permettant un accès facile à de nombreuses ressources.
  • Fiable. EXT4 a fait ses preuves en étant très fiable.
  • Peut grandir ou rétrécir.

Points négatifs

  • Construit sur une ancienne base de code.
  • Manque de nombreuses fonctionnalités avancées que d’autres systèmes de fichiers offrent.

Utilitaires d’espace utilisateur

Le paquet à gérer ext4 est e2fsprogs

Recommandation

EXT4 est recommandé pour les utilisateurs qui veulent le système de fichiers le plus simple et le plus utilisé.

Utilisez le système de fichiers par défaut BTRFS car il est considéré stable et a beaucoup de fonctionnalités soignées (snapshots, compression, etc). Utilisez XFS ou EXT4 pour un système de fichiers simple et rapide.

DELL Latitude e6230

Installer CachyOS

1-Création d’une Clé USB bootable CachyOS

Le lecteur USB doit avoir au moins 8 Go d’espace disponible.

Interface de ligne de commande (Linux)
Branchez une clé USB.
Détecter le lecteur USB branché en utilisant la commande suivante: lsblk

1
sdc                    8:32   1   7,5G  0 disk  

Copiez le contenu iso sur le lecteur USB branché en exécutant dansun terminal

1
2
3
4
# Remplacer <usbdrive> avec l'étiquette du lecteur.</usbdrive>
# sudo dd bs=4M if=full_iso_name.iso of=/dev/<usbdrive> status=progress oflag=sync
# Dans notre cas
sudo dd bs=4M if=cachyos-desktop-linux-250713.iso of=/dev/sdc status=progress oflag=sync

2-Boot USB CachyOS

Brancher la clé USB bootable CachyOS sur le portable DELL
Démarrer le portable DELL et appuyer sur F12 pour sélectionner USB EFI
Lancer CachyOS


Basculer en French sur la page Welcome to CachyOS


Lancer l’installateur

Bootloader: systemd-boot


clavier FR

Effacer le disque, EXT4 et chiffrer le système







Premier démarrage


Saisir la phrase de déchiffrement du disque

3-Redémarrage

Après le redémarrage, on va paramétrer le portable DELL Latitude e6230

  • Déplacement menu en haut de l’écran
  • Activer Wifi Cudy-1568-5G
  • UFW est le parefeu par défaut

Paramétrer Latitude e6230

1-Utilisateur droits sudo

Modifier sudoers pour accès sudo sans mot de passe à l’utilisateur yano

1
2
su               # mot de passe root identique utilisateur
echo "yano     ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/20-yano

2-Utilitaire yay

base-devel et git sont installés par défaut

Cloner yay

1
2
3
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Vérification: yay --version

Supprimer le dossier yay

1
2
cd ..
sudo rm -r yay

3-Activation SSH avec clés

Portable DELL Latitude e6230

  1. Lancer et activer le service : sudo systemctl enable sshd --now
  2. Relever l’adresse ip de la machine : ip a 192.168.10.90 dans notre cas
  3. Parefeu ouvrir le port 22/tcp : sudo ufw allow ssh

A - Poste appelant

Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) nommé e6230 pour une liaison SSH avec le portable E6230.

1
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/e6230

Envoyer les clés depuis le poste distant

1
ssh-copy-id -i ~/.ssh/e6230.pub yano@192.168.10.90

Se connecter depuis un poste distant ssh yano@192.168.10.90

B - Dell Latitude e6230
Créer fichier configuration ssh sur le dell e6230 pour le port

1
sudo nano /etc/ssh/sshd_config.d/yano.conf
1
2
Port 56230
PasswordAuthentication	no

IL FAUT ACTIVER LE PORT 56230/tcp sur le PAREFEU UFW !

Ajouter le nouveau port

1
sudo ufw allow 56230/tcp

Redémarrer sshd

1
sudo systemctl restart sshd

Se connecter depuis le poste appelant

1
ssh yano@192.168.10.90 -p 56230 -i /home/yann/.ssh/e6230

Effacer le port 22 des règles UFW

1
ssh yano@192.168.10.90 -p 56230 -i /home/yann/.ssh/e6230

4-Créer les dossiers “utilisateur”

Créer les dossiers .keepassx , Notes , scripts statique/images et statique/_posts

1
2
3
4
5
6
7
8
9
mkdir -p ~/{.ssh,.keepassx}
sudo mkdir -p /srv/media/statique/{images,_posts}
sudo chown $USER:$USER -R /srv/media 
mkdir -p /srv/media/Documents/Dossiers-Locaux-Thunderbird
mkdir -p /srv/media/Notes
# Lien media
ln -s /srv/media $HOME/media
# Lien pour affichage des images avec éditeur Retext
sudo ln -s /srv/media/statique/images /images

5-Souris Bluetooth Pebble

Souris Bluetooth Pebble Mouse 2 M350s
Basculez entre 3 de vos dispositifs d’une simple pression sur le bouton Easy-Switch.
Position 1 pour le portable DELL latitude e6230

Pour effacer une configuration existante de la souris bluetooth , garder enfoncer le bouton Easy-Switch jusqu’au clignotement rapide de la led

Pour ajouter la souris bluetooth au portable DELL, clic droit sur l’icône bluetooth de la barre des tâches, Périphériques puis Rechercher et lorsque l’appareil est détecté , il faut l’appairer

6-Ecouteurs Soundcore Liberty Air 2


Soundcore Liberty Air 2

Utiliser le gestionnaire bluetooth et la recherche

Lorsque le périphérique est détecté, il faut l’appairer, clic-droit –> Appairer
Après appairage

Pour que le périphèrique fonctionne correctement, il est IMPERATIF de redémarrer la machine

Après redémarrage, il faut séléctionner le profil audio

7-Client Nextcloud

Installation client nextcloud

1
yay -S nextcloud-client 

Démarrer le client nextcloud , après avoir renseigné l’url https://cloud.rnmkcy.eu ,login et mot de passe pour la connexion

Trousseau de clé avec mot de passe idem connexion utilisateur

Paramétrage

  • Menu → Lancer Client de synchronisation nextcloud
  • Adresse du serveur : https://cloud.xoyaz.xyz
    Se connecter avec un mot de passe application nextcloud “Synchro DELL e6230”
  • Nom d’utilisateur : yann
  • Mot de passe : xxxxx

    Puis saisir l’adresse : https://cloud.rnmkcy.eu
    Le nagigateur s’ouvre sur l’adresse saisie


  • Sauter les dossiers à synchroniser, Ignorer la configuration des dossiers
  • Trousseau de clés = mot de passe connexion utilisateur
  • Paramètres nextcloud

Ajouter les synchros .ssh et .borg

**8-KeePassXC - Gestion des mots de passe **


On utilise une clé matérielle pour déverrouiller la base de mot de passe

La clé matériel utilisée pour la connexion doit être insérée

Installer le gestionnaire de mot de passe keepassxc

1
yay -S keepassxc

Ouvrir “KeePassXC” –> Affichage
Affichage → Thème : Sombre
Affichage → Mode compact , un redémarrage de l’application est nécessaire

Ajouter aux favoris “KeePassXC” et ouvrir l’application

Base de données –> Ouvrir une base de données (afficher les fichiers cachés) : ~/.keepassx/yannick_xc.kdbx –> Ouvrir

Intégration navigateur

9-Certificat home.arpa

Ajout du certificat de l’AC $HOME/sharenfs/cwwk/homearpaCA.crt au système d’exploitation et navigateurs

Pour des clients ArchLinux ça se fait alors avec la commande trust

1
sudo trust anchor --store $HOME/sharenfs/cwwk/homearpaCA.crt

Pour supprimer le certificat des certificats de confiance, on utilise le fichier généré dans ce dossier.

1
sudo trust anchor --remove /etc/ca-certificates/trust-source/_HOMEARPA_CA.p11-kit

Navigateurs Firefox et compatibles. Ajouter une autorité de certification au magasin local : https://www.linuxtricks.fr/wiki/firefox-ajouter-une-autorite-de-certification-au-magasin-local

Navigateur LibreWolf

Autoriser l’accès dans l’application keepassxc

Outils Applications Alias

Installation des outils

1
2
# qrencode zbar android-tools jq , installés par défaut
yay -S figlet tmux retext bluefish terminator filezilla borg yt-dlp xclip nmap tree signal-desktop minicom 

minicom
Paramétrage de l’application terminale

1
 sudo minicom -s

Seul les paramètres à modifier sont cités

Configuration du port série

A - Port série : /dev/ttyUSB0
F - Contrôle de flux matériel : Non

Echap
Enregistrer config. sous dfl

Sortir de Minicom

scrpy émulation android
Utilise adb et le port USB

1
yay -S scrcpy

Les icônes pour lancer l’application sont générés à l’installation

motd

1
sudo nano /etc/motd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 ____       _ _         __  ____  _____  ___                 
|  _ \  ___| | |   ___ / /_|___ \|___ / / _ \                
| | | |/ _ \ | |  / _ \ '_ \ __) | |_ \| | | |               
| |_| |  __/ | | |  __/ (_) / __/ ___) | |_| |               
|____/ \___|_|_|  \___|\___/_____|____/ \___/                
  ____           _            ___  ____                      
 / ___|__ _  ___| |__  _   _ / _ \/ ___|                     
| |   / _` |/ __| '_ \| | | | | | \___ \                     
| |__| (_| | (__| | | | |_| | |_| |___) |                    
 \____\__,_|\___|_| |_|\__, |\___/|____/                     
  ____ _     _  __  __ |___/ __   _    _   _ _  ______ ____  
 / ___| |__ (_)/ _|/ _|_ __ /_/  | |  | | | | |/ / ___|___ \ 
| |   | '_ \| | |_| |_| '__/ _ \ | |  | | | | ' /\___ \ __) |
| |___| | | | |  _|  _| | |  __/ | |__| |_| | . \ ___) / __/ 
 \____|_| |_|_|_| |_| |_|  \___| |_____\___/|_|\_\____/_____|

**Historique de la ligne de commande **
Ajoutez la recherche d’historique de la ligne de commande au terminal
Se connecter en utilisateur
Tapez un début de commande précédent, puis utilisez shift + up (flèche haut) pour rechercher l’historique filtré avec le début de la commande.

1
2
3
# Global, tout utilisateur
echo '"\e[1;2A": history-search-backward' | sudo tee -a /etc/inputrc
echo '"\e[1;2B": history-search-forward' | sudo tee -a /etc/inputrc

KDE Plasma

Krusader est un gestionnaire de fichiers à double panneau avancé (style commandant) pour KDE Plasma et d’autres bureaux dans le monde *nix, similaire à Midnight ou Total Commander.
yay -S krusader

Kfind - Recherche avancée
yay -S kfind

Alias (.bashrc)
Le fichier avec ses alias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '

#alias borglist='$HOME/scripts/borglist.sh'
#alias etat='$HOME/scripts/etat_des_lieux_PC1.sh  > /mnt/sharenfs/rnmkcy/site/etat_pc1.txt'
#alias sshm='$HOME/scripts/ssh-manager.sh'
#alias ssl='$HOME/scripts/ssl-cert-check -f $HOME/scripts/ssldomains'alias ipleak='curl https://ipv4.ipleak.net/json/'
alias journal='sudo SYSTEMD_LESS=FRXMK journalctl'
alias nmapl='echo "sudo nmap -T4 -sP 192.168.0.0/24" && sudo nmap -T4 -sP 192.168.0.0/24'
alias nmap10='echo "sudo nmap -T4 -sP 192.168.10.0/24" && sudo nmap -T4 -sP 192.168.10.0/24'
alias orphelin='sudo pacman -Rsn $(pacman -Qdtq)'
alias service='systemctl --type=service'

Réactiver

1
source .bashrc

Wing personal python IDE → Téléchargement

Installation

1
2
3
4
5
6
7
# Décompression de la version téléchargée
tar xjvf wing-personal-11.1.0.0-linux-x64.tar.bz2
# Passage en root
sudo -s
# Lancement procédure installation
cd wing-personal-11.1.0.0-linux-x64
./wing-install.py

Effacer les fichiers

1
2
3
4
5
# Suppression dossier et fichier
cd ..
rm -rf wing-personal*
# sortie root
exit

Déchiffrement par clé matérielle

Le déverrouillage se fait par saisie d’une phrase mot de passe, on peut ajouter des clés FIDO2 pour un déchiffrement sans mot de passe (Using FIDO2 keys to unlock LUKS on EndeavourOS)

Prérequis

Installer librairie libfido2 pour la prise en charge des clés Yubico et SoloKeys

1
sudo pacman -S libfido2

Vérifier que le disque chiffré est /dev/sda2 : lsblk

1
2
3
4
5
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                                             8:0    0 447,1G  0 disk  
├─sda1                                          8:1    0     1G  0 part  /efi
└─sda2                                          8:2    0 446,1G  0 part  
  └─luks-d603c182-2d04-4a31-bde6-512ac2d18e7b 254:0    0 446,1G  0 crypt /

Vérifier que le chiffrement est luks2 : sudo cryptsetup luksDump /dev/sda2

1
2
3
LUKS header information
Version:       	2
[...]

systemd-cryptenroll
systemd-cryptenroll est un outil permettant d’enregistrer des jetons de sécurité matériels et des périphériques dans un volume crypté LUKS2, qui peuvent ensuite être utilisés pour déverrouiller le volume pendant le démarrage.
systemd-cryptenroll permet d’enregistrer des cartes à puce, des jetons FIDO2 et des puces de sécurité Trusted Platform Module dans des périphériques LUKS, ainsi que des phrases de passe ordinaires. Ces périphériques sont ensuite déverrouillés par systemd-cryptsetup@.service à l’aide des jetons enregistrés.

Enroler clé USB FIDO2 YubiKey 5 NFC

Vérifier que la YubiKey est insérée dans un port USB

Lister la yubikey

1
sudo systemd-cryptenroll --fido2-device=list
1
2
PATH         MANUFACTURER PRODUCT              
/dev/hidraw4 Yubico       YubiKey OTP+FIDO+CCID

Activer la clé pour le déverrouillage disque chiffré /dev/sda2 Insére la clé dnas un port USB et lancer la commande suivante

1
sudo systemd-cryptenroll --fido2-device=auto /dev/sda2
  1. IL faut déverrouiller la partition /dev/sda2 avec la phrase mot de passe
  2. Puis valider la clé en appuyant sur la partie tactile de cette clé et confirmer pa la même opération
1
2
3
4
5
6
7
8
🔐 Please enter current passphrase for disk /dev/sda2: *********************   
Requested to lock with PIN, but FIDO2 device /dev/hidraw4 does not support it, disabling.
Initializing FIDO2 credential on security token.
👆 (Hint: This might require confirmation of user presence on security token.)
🔐 Veuillez entrer le code PIN de la clef de sécurité: ••••••••
Generating secret key on FIDO2 security token.
👆 In order to allow secret key generation, please confirm presence on security token.
New FIDO2 token enrolled as key slot 1.

La ligne 🔐 Veuillez entrer le code PIN de la clef de sécurité: •••••••• n’apparaît que si la clé a son code PIN initialisé

Le Y de la clé se met à clignoter , il suffit de poser son doigt sur l’emplacement du Y pour le déverrouillage

Si vous avez plusieurs clés répéter l’opération Activer la clé pour le déverrouillage disque chiffré /dev/sda2

systemd-cryptenroll peut lister les keyslots d’un périphérique LUKS, de manière similaire à cryptsetup luksDump, mais dans un format plus convivial.

1
sudo systemd-cryptenroll /dev/sda2

Résultat pour disque déchiffrable avec une phrase et 4 clés FIDO2

1
2
3
4
5
SLOT TYPE    
   0 password
   1 fido2
   2 fido2
   3 fido2

Détails

  • 0 phrase mot de passe
  • 1 fido2 yubikey “24 554 586”
  • 2 fido2 yubikey “29 085 988”
  • 3 fido2 yubikey “24 554 581”
  • 4 fido2 yubikey “38 252 627”

Prise en charge FIDO2 (crypttab)

Le fichier /etc/crypttab contient la liste des périphériques à déverrouiller automatiquement.
Chaque ligne du fichier crypttab est de la forme :
<target name> <source device> <key file> <options>

  • <target name> : Nom à donner au mappage (/dev/mapper/name), dans le cas présent “secret”
  • <source device> : l’identifiant du container luks, sous la forme UUID=
  • <key file> : chemin absolu vers le ficher de phrase de passe. Si le déverrouillage doit s’effectuer par saisie d’un mot de passe, indiquer “none”
  • <options> : liste d’options séparées par des virgules, par exemple luks, discard pour un chiffrage luks et autoriser l’utilisation de la commane fstrim ou discard au niveau du container. L’option keyscript= donne la possibilité d’exécuter un script ou une commande avec le chemin vers le fichier de passe de phrase (paramètre password précédent) fourni comme argument.

/etc/crypttab avant modification

1
2
# <name>               <device>                         <password> <options>
luks-17xxxxxxxxxxxxxxx7e1 UUID=17xxxxxxxxxxxxxxxxx7e1     none      luks

Modifier /etc/crypttab pour la prise en chrrge FIDO2 en ajoutant - fido2-device=auto

1
sudo nano /etc/crypttab

Les colonnes password et option: none est remplacée par - fido2-device=auto

1
2
3
# <name>                  <device>                 <password> <options>
luks-17xxxxxxxxxxxxxxx7e1 UUID=17xxxxxxxxxxxxxxx7e1    -      fido2-device=auto

Sauvegarder et quitter.

Réinitialiser le noyau

1
sudo mkinitcpio -P

Redémarrer la machine

Tailscale

Clients Tailscale

Etat réseau privé: tailscale status

Partage du dossier /sharenfs de la machine cwwk

Le paquet nf-utils est installé par défaut sur les machines de type archlinux, EndeavourOS, CachyOS,

Créer les points de montage

1
2
3
sudo mkdir -p /sharenfs  
sudo chown $USER:$USER -R /sharenfs  
ln -s /sharenfs $HOME/sharenfs

Ajouter le point de montage du serveur nfs cwwk au fichier /etc/fstab

1
2
# Tailscale montage NFS cwwk 
100.64.0.2:/sharenfs /sharenfs nfs4 nofail,_netdev,x-systemd.automount,x-systemd.requires=tailscale-ready.service,x-systemd.requires=tailscale-mullvad.service,x-systemd.mount-timeout=30s,x-systemd.idle-timeout=600,nfsvers=4.2 0 0

Rechargement et montage

1
sudo systemctl daemon-reload && sudo mount -a

BorgBackup e6230

Borg est installé

Prérequis

Portable nomade Dell Latitude e6230 , l’accès tailscale peut être défaillant, tous les paramètres nécessaires à la sauvegarde borg sont copiés localement

  • Avec réseau privé: /sharenfs/pc1/.borg/
  • Sans accès réseau privé: $HOME/.config/borg/
  • Fichier environnement ntfy (notifications): $HOME/.config/ntfy
1
2
3
4
5
6
# Création dossier borg si inexistant
mkdir -p $HOME/.config/borg/
# Création dossier environnement ntfy
mkdir -p $HOME/.config/ntfy
# si accès réseau privé, copier le fichier ntfy.env
cp /sharenfs/scripts/env/ntfy.env $HOME/.config/ntfy/

Création dépôt borg e6230

1 - Créer un jeu de clés SSH pour l’authentification borg

1
2
3
ssh-keygen -t ed25519 -f $HOME/.config/borg/e6230.borgssh
# droits
chmod 600 $HOME/.config/borg/e6230.borgssh

2 - Ajouter clé publique ~/.config/borg/e6230.borgssh.pub au fichier authorized_keys de la boîte de stockage (Modifier authorized_keys boîte stockage)

1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPRMn64QrFlSum9zz9iEnopRzicCJhDYvDYrgde6/lem yano@e6230

Poste linux PC1

1
2
3
4
5
6
# sur un poste autorisé, on récupère fichier des clés autorisées de la box --> u326239_authorized_keys
echo -e "get .ssh/authorized_keys u326239_authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de
# ajout clé  publique
echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPRMn64QrFlSum9zz9iEnopRzicCJhDYvDYrgde6/lem yano@e6230' >> u326239_authorized_keys
# renvoyer le fichier des clés autorisées vers la box
echo -e "put u326239_authorized_keys .ssh/authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de

3 - Tester la connexion ssh à la boite de stockage

DELL Latitude e6230

1
sftp -P 23 -i ~/.config/borg/e6230.borgssh u326239@u326239.your-storagebox.de # Si ok , prompt sftp puis quit

Créer les fichiers passphrase, exclusions et repository

~/.config/borg/e6230.passphrase contient la passphrase qui déverrouile la sauvegarde borg e6230

Les exclusions ~/.config/borg/e6230.exclusions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
proc/
sys/
dev/
srv/
mnt/
cdrom/
tmp/
run/
var/tmp/
var/run/
var/cache/
lost+found/
home/yano/.cache/
home/yano/.keepassx/
home/yano/Téléchargements/
home/yano/Musique/
home/yano/Vidéos/
home/yano/media/
home/yano/scripts/
sharenfs/

Le dépôts ~/.config/borg/e6230.repository

1
ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/e6230

Si réseau privé (tailscale), sauvegarder les 4 fichiers (e6230.borgssh, e6230.exclusions, e6230.passphrase et e6230.repository)

1
cp $HOME/.config/borg/e6230.* /sharenfs/pc1/.borg/

4 - Initialisation dépôt distant

1
2
3
4
export BORG_PASSPHRASE="$(cat $HOME/.config/borg/e6230.passphrase)"
export BORG_RSH="ssh -i $HOME/.config/borg/e6230.borgssh"
export BORG_REPOSITORY="$(cat $HOME/.config/borg/e6230.repository)"
borg init --encryption=repokey $BORG_REPOSITORY

Le résultat de la commande

1
2
3
4
5
6
7
8
9
10
11
12
IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo!

Key storage location depends on the mode:
- repokey modes: key is stored in the repository directory.
- keyfile modes: key is stored in the home directory of this user.

For any mode, you should:
1. Export the borg key and store the result at a safe place:
   borg key export           REPOSITORY encrypted-key-backup
   borg key export --paper   REPOSITORY encrypted-key-backup.txt
   borg key export --qr/ REPOSITORY encrypted-key-backup/
2. Write down the borg key passphrase and store it at safe place.

Une seule sauvegarde par jour

Lancer la sauvegarde 5 min après la mise en route du portable Latitude e6230, le flag STAMP (/var/tmp/borg-last-backup) détermine si la sauvegarde du jour a eu lieu ou pas

Le fichier timer /etc/systemd/system/borgbackup-e6230.timer

1
2
3
4
5
6
7
8
9
10
# /etc/systemd/system/borgbackup-e6230.timer
[Unit]
Description=Backup Borg 5 min après démarrage (flag script = 1/jour)

[Timer]
OnBootSec=5min
AccuracySec=1min

[Install]
WantedBy=timers.target
  • OnBootSec=5min : déclenche 5 minutes après l’activation de timers.target au boot. À chaque démarrage, le timer tire ; si le flag /var/tmp/borg-last-backup contient la date du jour, ton script sort immédiatement (exit 0), et systemd considère le service réussi.
  • AccuracySec=1min : par défaut systemd regroupe les timers dans une fenêtre de précision d’une minute (précédemment, le délai par défaut était bien plus large) ; 1 min garantit un déclenchement proche des 5 minutes.

Le fichier service /etc/systemd/system/borgbackup-e6230.service

1
2
3
4
5
6
7
8
# /etc/systemd/system/borg-backup.service
[Unit]
Description=Backup Borg quotidien vers repo distant

[Service]
Type=oneshot
ExecStart=/usr/local/bin/borg-backup.sh
TimeoutStartSec=4h
  • Type=oneshot : correct, le service reste « actif » le temps du script.
  • TimeoutStartSec=4h : à garder, il couvre l’attente réseau que ton script gère lui-même. Attention toutefois : si le script dépasse 4h, systemd le tue et le marque échoué — vérifie que l’attente réseau dans ton script a elle-même un timeout plus court.

Le script de sauvegarde /usr/local/bin/borgbackup-e6230.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh

# Ce script est copié localemnt
#  $HOME/.config/borg/borgbackup-e6230.sh

STAMP="/var/tmp/borg-last-backup"
TODAY=$(date +%F)

if [ -f "$STAMP" ] && [ "$(cat "$STAMP")" = "$TODAY" ]; then
    echo "Backup déjà fait aujourd'hui ($TODAY)."
    exit 0
fi

#. "/sharenfs/scripts/env/ntfy.env"
. "$HOME/.config/ntfy/ntfy.env"

t=$(date +%s)

export BORG_PASSPHRASE="$(cat $HOME/.config/borg/e6230.passphrase)"
export BORG_RSH='ssh -i $HOME/.config/borg/e6230.borgssh'

BACKUP_DATE="$(date +%Y-%m-%d-%Hh%M)"
BORG_REPOSITORY="$(cat $HOME/.config/borg/e6230.repository)"
BORG_EXCLUSION="$HOME/.config/borg/e6230.exclusions"
BORG_PATH="/"
INFO="Portable DELL Latitude e6230"

CMD_CREATE="borg create -v --progress --stats --exclude-from $BORG_EXCLUSION \"${BORG_REPOSITORY}::${BACKUP_DATE}\" $BORG_PATH"
borg create -v --progress --stats --exclude-from $BORG_EXCLUSION "${BORG_REPOSITORY}::${BACKUP_DATE}" $BORG_PATH
rc_create=$?

CMD_PRUNE="borg prune -v --stats --keep-daily=7 --keep-weekly=1 --keep-monthly=1 \"${BORG_REPOSITORY}\""
borg prune -v --stats --keep-daily=7 --keep-weekly=1 --keep-monthly=1 "$BORG_REPOSITORY"
rc_prune=$?

d=$(( $(date +%s) - t ))
DUREE=$(( d / 3600 ))h$(( (d % 3600) / 60 ))m$(( d % 60 ))s

s_create="❌"
[ $rc_create -eq 0 ] && s_create="✔️"

s_prune="❌"
[ $rc_prune -eq 0 ] && s_prune="✔️"

if [[ $s_create == "✔️" && $s_prune == "✔️" ]]; then
  date +%F > "$STAMP"
fi

msg_title="💻 $INFO : Borgbackup en $DUREE"

{
  echo
  echo "${s_create} ${CMD_CREATE}"
  echo
  echo "${s_prune} ${CMD_PRUNE}"
} | curl -sS -X POST \
  -H "X-Email: $NTFY_EMAIL" \
  -H "Title: $msg_title" \
  -H "Authorization: Bearer $NTFY_TOKEN" \
  -H "prio:low" \
  -H "Content-Type: text/plain; charset=utf-8" \
  --data-binary @- \
  "$NTFY_URL"

Le rendre exécutable

1
sudo chmod +x /usr/local/bin/borgbackup-e6230.sh

Activation

1
2
sudo systemctl daemon-reload
sudo systemctl enable borgbackup-e6230.timer --now

Un dernier détail : si vous voulez voir le statut d’un coup d’œil dans le tableau de bord de KDE, les commandes clés sont systemctl status borg-backup.service et journalctl -u borg-backup.service -f pendant un lancement manuel — pratique pour valider le comportement réseau lors des premiers essais.

👆 Déclenchement manuel

1
sudo systemctl start borgbackup-e6230.service

Le même garde-fou s’applique : le lancement manuel est possible à tout moment, mais refusé (instantanément, proprement) si le backup du jour est déjà fait. Si vous voulez forcer un second backup le même jour :

1
sudo /usr/local/bin/borg-backup.sh --force

Ajoutez une option --force au script qui ignore le stamp.

📶 Évaluation de la qualité de connexion

C’est faisable avec des tests simples et rapides (~15-20 s au total), dans l’ordre du moins coûteux au plus coûteux :

1. Latence + perte de paquets (le test décisif, quasi gratuit) :

1
2
3
4
5
6
7
8
HOST="monrepo.example.com"

# 10 pings : on veut 0% de perte et une latence raisonnable
RESULT=$(ping -c 10 -i 0.3 -W 2 "$HOST" 2>/dev/null)
LOSS=$(echo "$RESULT" | awk -F',' '/packet loss/ {gsub(/[ %]/,"",$3); print $100*0+$3}' | tail -1)
AVG=$(echo "$RESULT" | awk -F'/' '/rtt min/ {print int($5)}')

[ "$LOSS" -lt 5 ] && [ "${AVG:-999}" -lt 200 ] || { echo "Qualité insuffisante (perte=$LOSS%, latence=${AVG}ms)"; exit 0; }

À calibrer selon votre tolérance : perte < 5 %, latence < 200 ms (en Wi-Fi instable ou 4G chargée, ces seuils grillent rapidement).

2. Débit effectif vers le repo (test léger, optionnel) : mesurez le temps d’un petit transfert SSH plutôt qu’un gros speedtest :

1
2
3
START=$(date +%s%N)
dd if=/dev/zero bs=1M count=2 2>/dev/null | ssh "$HOST" 'cat > /dev/null'
ELAPSED=$(( ($(date +%s%N) - START) / 1000000 ))

Si 2 Mo mettent plus de ~10 s (< ~200 Ko/s d’upload), le backup d’aujourd’hui risque de traîner ou de mourir en route → on peut différer.

3. Le critère ultime, gratuit : le comportement de Borg lui-même. Avant l’archive complète, Borg fait une phase de verrouillage + borg info sur le repo (~2 s). Si cette phase échoue ou dépasse un timeout (timeout 30 ssh ...), on annule. C’est le test le plus fidèle car il teste exactement le chemin réseau utilisé.

Symptôme

Avec le VPN Mullvad actif sur le portable (CachyOS), beszel-agent ne parvient plus à joindre le hub :

1
2
WARN WebSocket connection failed err="dial tcp: lookup beszel.rnmkcy.eu on 1.1.1.1:53:
write udp 10.141.101.252:50147->1.1.1.1:53: write: operation not permitted"

Cause

Le kill switch de Mullvad (règles nftables) n’autorise le DNS que vers son propre résolveur, à l’intérieur du tunnel (10.64.0.1). L’erreur operation not permitted vient du pare-feu, pas du réseau.

L’agent interrogeait pourtant 1.1.1.1, car /etc/resolv.conf était en mode uplink (/run/systemd/resolve/resolv.conf). Dans ce mode, le fichier liste directement les DNS de toutes les interfaces :

1
2
3
4
5
nameserver 192.168.0.205
nameserver 192.168.0.254
nameserver 1.1.1.1
nameserver fd0f:ee:b0::1
nameserver 10.64.0.1

beszel-agent (Go) lit ce fichier et interroge ces serveurs en direct, sans passer par le routage de systemd-resolved. Les DNS hors tunnel sont alors bloqués par Mullvad.

Diagnostic

1
2
3
mullvad dns get      # Custom DNS: no
cat /etc/resolv.conf
resolvectl status

Le routage de systemd-resolved était correct : wg0-mullvad prend ~. avec 10.64.0.1, tailscale0 prend le suffixe du tailnet et ~home.arpa. Seul le fichier resolv.conf contournait ce routage.

Correctif

Passer /etc/resolv.conf en mode stub, afin que toutes les applications passent par 127.0.0.53 :

1
2
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
cat /etc/resolv.conf     # nameserver 127.0.0.53

Vérification

1
2
3
resolvectl query beszel.rnmkcy.eu
sudo systemctl restart beszel-agent
journalctl -u beszel-agent -f

Résultat : la résolution passe par le tunnel Mullvad.

1
2
beszel.rnmkcy.eu: 82.64.18.243                 -- link: wg0-mullvad
                  2a01:e0a:95a:e2f0:aab8:e0ff:fe04:ec45 -- link: wg0-mullvad

Après le redémarrage, l’agent se connecte au hub :

1
2
INFO Detected network interface name=wg0-mullvad ...
INFO WebSocket connected host=beszel.rnmkcy.eu

Les erreurs lookup ... on 1.1.1.1:53 ... operation not permitted ont disparu.

À retenir

  • Mode uplink : les applications qui lisent /etc/resolv.conf en direct contournent le routage par domaine de systemd-resolved.
  • Mode stub : systemd-resolved décide, interface par interface, quel DNS utiliser (Mullvad, Tailscale, LAN).
  • Si NetworkManager réécrit le lien, vérifier dns=systemd-resolved dans /etc/NetworkManager/conf.d/. ````

Le journal montre aussi une ligne sans rapport :

1
smartctl failed device=/dev/sda err="no serial number (exit status 2)"

Ce n’est pas lié au DNS, et l’agent fonctionne malgré tout. Si tu veux la supprimer, regarde sudo smartctl -a /dev/sda. Sur un vieux portable, le disque ou l’adaptateur ne renvoie souvent pas de numéro de série. Tu peux aussi exclure ce disque avec la variable SMART_DEVICES (ou la liste d’exclusion) de l’agent.

Annexe

Thème plymouth

Exigences

  • CachyOS (ou toute distribution à base d’Arch)
  • Plymouth
  • Firmware UEFI avec prise en charge BGRT (la plupart des cartes mères modernes)

Changer le thème plymouth avec CachyOS BGRT Plymouth Theme

1
2
3
4
5
6
# Cloner le dépôt
git clone https://github.com/gezerman/plymouth-theme-cachyos-bgrt
# Copier cachyos-bgrt dans le répertoire de thèmes de plymouth
sudo cp -r plymouth-theme-cachyos-bgrt/cachyos-bgrt /usr/share/plymouth/themes/
# Après avoir installé le thème, vous devez le définir comme par défaut et reconstruire les initramfs.
sudo plymouth-set-default-theme -R cachyos-bgrt

Pour tester le thème

1
2
3
4
5
6
7
sudo plymouthd ; sudo plymouth --show-splash ; sleep 10 ; sudo killall plymouthd
``

Personnalisation  
Si vous voulez une taille de logo différente, utilisez l'original logo.pnget le redimensionner
```shell
convert cachyos-bgrt/watermark.png -resize 250x250 cachyos-bgrt/watermark.png

Session auto et KWallet

Démarrage session utilisateur sans saisie mot de passe
Modifier le gestionnaire de session graphique SDDM /etc/sddm.conf

1
2
3
[Autologin]
User=yano
Session=plasma.desktop

Kwallet ne s’ouvrira pas automatiquement si vous utilisez la connexion automatique. ( Sauf si la méthode autologin elle-même enregistre également le mot de passe. )

Lors de l’utilisation de l’autologin, le portefeuille ne peut être déverrouillé que si la méthode autologin enregistre le mot de passe. (pam_autologin le fait voir https://wiki.archlinux.org/title/KDE_Wallet#Configuration)

Maintenance

🔷Arrêt bloqué sur un portable Linux (Latitude e6230)

Cet article est sous licence CC BY 4.0 par l'auteur.