Objectif
Réduire surface d'attaque, privilèges, exposition réseau et impact d'une compromission.
Synthèse du durcissement Arch Linux complet: kernel, sysctl, nftables, services, AppArmor, Firejail, permissions, audit et limites connues.
Réduire surface d'attaque, privilèges, exposition réseau et impact d'une compromission.
Assembler kernel, sysctl, nftables, services, AppArmor, Firejail et permissions.
Contrôler l'état réel avec cmdline, LSM, firewall, profils, sysctl et audit Lynis.
Documenter limites, priorités et liens vers les pages détaillées.
Une posture de sécurité complète devient illisible si chaque brique reste isolée. La synthèse doit montrer comment kernel, réseau, services, isolation, permissions, audit et recovery se complètent sans publier les fichiers privés.
Exemple basé sur le durcissement documenté: le workspace local est privé et les secrets restent root-only.
composant propriétaire attendu mode attendu
racine workspace user 700
sous-arbre backup user 700
unité service publique privilégié 644
environnement secret privilégié 600
script opérateur user 700 ou 750
cache généré compte de service non world-writable
La documentation explique un faux positif fréquent sans exposer de chemin privé.
constat interprétation
symlink affiché 777 comportement Linux normal
répertoire parent 700 les autres utilisateurs ne peuvent pas traverser
permissions cible OK le contrôle d'accès est appliqué sur la cible
fichier régulier 777 vrai problème, investiguer
La structure reprend la documentation hardening: boot trust, kernel, services, firewall, MAC, sandbox, audit, PRA.
01 boot trust Secure Boot / UKI / racine chiffrée
02 runtime noyau paramètres boot et posture sysctl
03 privilèges service restrictions systemd et modes fichiers
04 exposition réseau revue nftables et services locaux
05 contrôle obligatoire stratégie AppArmor
06 sandbox desktop Firejail là où stable
07 audit intégrité auditd, FIM et checks paquets
08 reprise Restic et chemin de restauration testé
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
nft list ruleset | rg 'policy'
aa-status | head -n 10
firejail --list
sysctl kernel.kptr_restrict kernel.dmesg_restrict kernel.unprivileged_bpf_disabled net.ipv4.conf.all.rp_filter net.ipv4.tcp_syncookies net.ipv4.ip_forward
les paramètres boot montrent le durcissement mémoire et LSM
apparmor est présent dans la liste LSM
les policies input et forward du firewall sont en drop
AppArmor est chargé
une liste de sandbox vide peut être normale si rien n'est lancé
les sysctl critiques correspondent à la posture documentée
find <sensitive-system-scope> <writable-or-special-mode-query> -printf '<mode> <owner>:<group> <path>\n' | sort
stat -c '%A %U:%G %n' <privileged-units> <privileged-scripts> 2>/dev/null | sort
find <operator-workspace> <group-or-world-writable-query> -printf '<mode> <owner>:<group> <path>\n' | sort
aucun fichier régulier sensible n'est group- ou world-writable
aucun setuid ou setgid inattendu n'apparaît dans le scope audité
les unités privilégiées restent de la config lisible, pas writable par les utilisateurs
le workspace et le sous-arbre backup restent privés
un symlink 777 s'interprète via les permissions du parent et de la cible
lynis audit system --quick --no-colors
arch-audit
<secops-status-script>
<backup-status-script>
la tendance Lynis tourne autour de 71/100 pour un desktop durci
les constats d'audit sont classés manuellement
SecOps revient à OK T0 quand aucune menace active n'existe
l'état du backup est visible dans l'interface opérateur
le score sert de boussole, pas d'objectif
La page présente sept couches: kernel, firewall, surface réseau, systemd, AppArmor, Firejail et permissions.
L'état de référence inclut boot trust, LUKS, nftables, AppArmor, Firejail, auditd, backup et monitoring local.
Les contrôles sont publiés sous forme de commandes directes, sans script heredoc ni fichiers réels.
Chaque brique renvoie vers sa page détaillée: kernel, boot, FIDO2/LUKS, firewall, AppArmor, Firejail, SecOps et Lynis.
Supplément de documentation privée anonymisé
Guide de synthèse du durcissement système complet mis en place sur Arch Linux. Cette version publique conserve l'architecture et les contrôles, mais anonymise les chemins, identifiants, noms de machine et fichiers privés.
| OS | Arch Linux rolling release |
| Kernel | linux-lts, stabilité prioritaire |
| Boot | systemd-boot, Secure Boot, UKI signé |
| Desktop | Wayland / environnement personnel sécurisé |
| Score de posture | Lynis 71/100 comme tendance de référence desktop |
La chaîne de confiance de boot est détaillée dans les pages Boot Trust, FIDO2 + LUKS et Secure Boot / UKI.
Applications sandboxées Firejail
Contrôle d'accès obligatoire AppArmor
Filtrage réseau nftables
Services systemd hardening
Réseau runtime sysctl
Base système kernel boot + runtime hardening
Les paramètres boot et runtime limitent exploitation mémoire, fuite d'information, ptrace, BPF et comportements réseau dangereux.
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
kernel.kptr_restrict=2
kernel.dmesg_restrict=1
kernel.randomize_va_space=2
kernel.yama.ptrace_scope=1
kernel.unprivileged_bpf_disabled=1
net.core.bpf_jit_harden=2
fs.protected_symlinks=1
fs.protected_hardlinks=1
fs.suid_dumpable=0
La politique de base reste deny-by-default en entrée et en forward, avec sortie libre et diagnostics limités.
chain input
policy drop
allow loopback
drop invalid
allow established,related
allow limited icmp
allow dhcp client
chain forward
policy drop
chain output
policy accept
Les exceptions libvirt NAT sont documentées séparément pour ne pas élargir globalement le firewall.
Les protocoles réseau inutilisés sont bloqués par configuration module:
install dccp /bin/true
install sctp /bin/true
install rds /bin/true
install tipc /bin/true
lsmod | rg 'dccp|sctp|rds|tipc'
Les services exposés sont relus avec restrictions adaptées au besoin fonctionnel.
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
UMask=027
Certains services réseau gardent des capacités nécessaires; le compromis sécurité/fonctionnalité est documenté au cas par cas.
AppArmor est activé via LSM et appliqué progressivement sur services et applications.
aa-status
cat /sys/kernel/security/lsm
journalctl -k --since '1 hour ago' | rg 'apparmor.*DENIED'
État public validé: profils chargés, majorité en enforce, quelques profils en complain et absence de violation récente sur la fenêtre observée.
Firejail isole certaines applications desktop exposées. Les applications complexes ou incompatibles restent explicitement hors périmètre.
firejail --list
firejail <APPLICATION>
rg 'Exec=firejail' <DESKTOP_FILES_SCOPE>
umask
sysctl fs.suid_dumpable
stat -c '%A %U:%G %n' <HOME_DIR>
Lynis donne une tendance, pas un objectif absolu. Les findings sont triés manuellement selon le contexte desktop.
lynis audit system --quick --no-colors
arch-audit
rg 'hardening_index|tests_performed' <LYNIS_REPORT>
<SECOPS_STATUS_SCRIPT>
<BACKUP_STATUS_SCRIPT>
Forces: kernel durci, firewall strict, surface réseau réduite, services confinés, MAC actif, sandbox applicative, permissions restrictives et chaîne de boot documentée.
Limites: monitoring temps réel partiel, rolling release à suivre, exceptions desktop nécessaires et ajustements continus sur authentification matérielle hors boot.
La version portfolio évite le script heredoc et présente les contrôles ligne par ligne:
cat /proc/cmdline | tr ' ' '\n' | rg 'slab|init_on|randomize|mitigations|lsm|apparmor'
cat /sys/kernel/security/lsm
nft list ruleset | rg 'policy'
aa-status | head -n 10
firejail --list
lsmod | rg 'dccp|sctp|rds|tipc'
sysctl kernel.kptr_restrict kernel.dmesg_restrict kernel.unprivileged_bpf_disabled
sysctl net.ipv4.conf.all.rp_filter net.ipv4.tcp_syncookies net.ipv4.ip_forward
rg 'hardening_index' <LYNIS_REPORT>
Le hardening système complet repose sur une défense en profondeur: refus par défaut, moindre privilège, isolation, audit et récupération. Il reste évolutif, car une posture de sécurité doit suivre les usages et les menaces.