Fixer
Activer au boot les protections qui doivent exister avant l'espace utilisateur.
Paramètres boot et runtime pour réduire l'exploitation kernel: mémoire, LSM, sysctl, réseau bas niveau et validation post-reboot.
Activer au boot les protections qui doivent exister avant l'espace utilisateur.
Configurer les sysctl runtime pour limiter fuites d'information, ptrace, BPF et réseau.
Lire l'état réel après reboot plutôt que supposer que la configuration est chargée.
Documenter les paramètres retenus, les impacts et les exceptions desktop.
Un noyau durci ne se résume pas à une ligne de commande copiée. Les paramètres doivent être cohérents avec le bootloader, la chaîne UKI, AppArmor, le réseau et les contraintes desktop.
La page reprend les familles documentées sans publier la ligne de boot complète ni les identifiants disque.
durcissement mémoire isolation slab, effacement allocation, effacement libération
durcissement pile offset de pile noyau randomisé
mitigations CPU mitigations automatiques des vulnérabilités CPU
pile LSM landlock, lockdown, yama, apparmor, bpf
activation apparmor apparmor activé et sélectionné
Les valeurs sont documentées comme contrôles de posture, pas comme fichier complet.
adresses noyau restricted
logs noyau root-only
ASLR full
ptrace restricted
BPF non privilégié disabled
BPF JIT hardened
liens protégés enabled
IP forwarding disabled sauf exception lab
Le principe de la documentation privée est conservé: lire l'état réellement chargé après reboot.
lire la ligne de commande noyau effective
lire la pile LSM active
lire les valeurs sysctl sélectionnées
contrôler les politiques firewall
contrôler l'état AppArmor
comparer la tendance Lynis et la santé SecOps
Les commandes ci-dessous sont volontairement anonymisées: chemins, noms de machines, interfaces, dépôts, périphériques et actions destructrices sont remplacés par des placeholders.
cat /proc/cmdline | tr ' ' '\n' | rg 'slab|init_on|randomize|mitigations|lsm|apparmor'
cat /sys/kernel/security/lsm
aa-status | head -n 10
lynis audit system --quick --no-colors
la ligne de commande effective contient les familles de hardening retenues
la pile LSM active inclut apparmor
le service AppArmor a chargé des profils
la tendance Lynis est revue après changement
aucune entrée de boot complète ni identifiant disque n'est publié
sysctl kernel.kptr_restrict kernel.dmesg_restrict kernel.randomize_va_space kernel.yama.ptrace_scope kernel.unprivileged_bpf_disabled net.core.bpf_jit_harden
sysctl fs.protected_symlinks fs.protected_hardlinks fs.protected_fifos fs.protected_regular fs.suid_dumpable
sysctl net.ipv4.conf.all.rp_filter net.ipv4.tcp_syncookies net.ipv4.ip_forward
l'exposition des pointeurs noyau est restreinte
les logs noyau sont restreints
ASLR est en full
ptrace est limité
le BPF non privilégié est désactivé
les protections de liens du système de fichiers sont actives
IP forwarding reste désactivé sauf exception de lab documentée
sysctl net.ipv4.conf.all.accept_redirects net.ipv4.conf.default.accept_redirects net.ipv6.conf.all.accept_redirects net.ipv6.conf.default.accept_redirects
sysctl net.ipv4.conf.all.accept_source_route net.ipv4.conf.default.accept_source_route net.ipv6.conf.all.accept_source_route net.ipv6.conf.default.accept_source_route
nft list ruleset | rg 'policy'
les redirects sont refusés
le source routing est refusé
les SYN cookies sont actifs
le firewall garde input en drop
le hardening runtime et le firewall sont revus ensemble
La configuration documente slab_nomerge, init_on_alloc, init_on_free et randomize_kstack_offset comme défenses anti-fuite et anti-exploitation.
La pile attendue inclut Landlock, Lockdown, Yama, AppArmor et BPF dans un ordre documenté.
Les valeurs critiques limitent les adresses kernel, dmesg, BPF non privilégié, ptrace et certains comportements réseau.
net.ipv4.ip_forward=1 peut rester volontairement actif quand l'hôte porte un NAT libvirt documenté; ce n'est pas la posture par défaut d'un poste sans virtualisation.
Supplément de documentation privée anonymisé
Guide public pour renforcer le noyau Linux avec paramètres boot et runtime. Les chemins exacts, UUID, entrées de boot, périphériques et fichiers privés sont remplacés par des placeholders.
| Système | Arch Linux rolling release |
| Kernel | LTS privilégié pour stabilité |
| CPU | Plateforme x86_64 avec microcode à jour |
| Bootloader | systemd-boot, UKI et Secure Boot selon cible |
| Usage | Poste personnel sécurisé, non exposé WAN |
Deux axes sont combinés:
Les deux approches sont complémentaires: le boot fixe les protections structurantes, le runtime ajuste les comportements noyau, fichiers et réseau.
Le périmètre validé relie systemd-boot, UKI, Secure Boot, LUKS, TPM et FIDO2. Cette page ne remplace pas Boot Trust: elle décrit seulement l'impact kernel des paramètres boot.
Entrée de boot anonymisée:
title <BOOT_ENTRY_NAME>
linux <KERNEL_IMAGE>
initrd <MICROCODE_IMAGE>
initrd <INITRAMFS_IMAGE>
options root=UUID=<ROOT_UUID> rw quiet splash loglevel=3 amd_pstate=passive slab_nomerge init_on_alloc=1 init_on_free=1 randomize_kstack_offset=on mitigations=auto lsm=landlock,lockdown,yama,apparmor,bpf apparmor=1 security=apparmor
Quand l'UKI est utilisé, la cmdline doit être reconstruite, signée et vérifiée avec l'image de boot. Modifier seulement une ancienne entrée texte peut ne rien changer au boot réel.
| Paramètre | Protection |
|---|---|
| slab_nomerge | Réduit les attaques heap overflow entre caches slab. |
| init_on_alloc=1 | Nettoie la mémoire à l'allocation. |
| init_on_free=1 | Nettoie la mémoire à la libération. |
| randomize_kstack_offset=on | Rend l'exploitation stack kernel moins prévisible. |
| mitigations=auto | Active les protections CPU pertinentes. |
| lsm=... | Fixe l'ordre des Linux Security Modules. |
| apparmor=1 security=apparmor | Active AppArmor comme MAC attendu. |
cat /proc/cmdline
cat /sys/kernel/security/lsm
grep . /sys/devices/system/cpu/vulnerabilities/*
Le fichier sysctl dédié reste privé; la page publique liste les valeurs critiques par rôle.
kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
kernel.randomize_va_space = 2
kernel.yama.ptrace_scope = 1
kernel.core_uses_pid = 1
kernel.sysrq = 0
kernel.unprivileged_bpf_disabled = 1
net.core.bpf_jit_harden = 2
fs.suid_dumpable = 0
dev.tty.ldisc_autoload = 0
fs.protected_symlinks = 1
fs.protected_hardlinks = 1
fs.protected_fifos = 2
fs.protected_regular = 2
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.all.forwarding = 0
net.ipv6.conf.all.forwarding = 0
sudo sysctl --system
sysctl kernel.kptr_restrict
sysctl -a | rg 'kernel\.|net\.|fs\.|dev\.'
La version portfolio évite le script heredoc et liste les contrôles directement:
cat /proc/cmdline | tr ' ' '\n' | rg 'slab|init_on|randomize|mitigations|lsm|apparmor'
cat /sys/kernel/security/lsm
grep . /sys/devices/system/cpu/vulnerabilities/*
sysctl kernel.kptr_restrict kernel.dmesg_restrict kernel.yama.ptrace_scope
sysctl kernel.unprivileged_bpf_disabled fs.suid_dumpable
sysctl net.ipv4.conf.all.rp_filter net.ipv4.tcp_syncookies net.ipv4.ip_forward
sysctl fs.protected_symlinks fs.protected_hardlinks fs.protected_fifos fs.protected_regular
lynis audit system --quick --no-colors
L'impact dépend du CPU et de la charge. En usage desktop, il reste généralement acceptable; les charges intensives CPU/I/O peuvent être plus sensibles.
sysbench cpu --cpu-max-prime=<N> run
sysbench memory --memory-total-size=<SIZE> run
grep . /sys/devices/system/cpu/vulnerabilities/*
En cas d'instabilité, comparer logs, paramètres boot et sysctl actifs avant de retirer une protection.
journalctl -b -p err
dmesg | tail -n 50
journalctl -k | rg 'denied|blocked|refused'
sysctl kernel.yama.ptrace_scope
sysctl kernel.unprivileged_bpf_disabled
Les retours arrière sont traités comme temporaires et documentés: désactiver un fichier sysctl, retirer un paramètre boot problématique, recharger, tester, puis réintroduire proprement.
bootctl status
cat /proc/cmdline
cat /sys/kernel/security/lsm
sudo sysctl --system
sysctl kernel.kptr_restrict
grep . /sys/devices/system/cpu/vulnerabilities/*
lynis audit system --quick --no-colors