À propos du projet

Linux Hardener est un outil complet d'automatisation de la sécurité pour les systèmes Linux, écrit en Rust. Il analyse les hôtes à la recherche de mauvaises configurations de sécurité, applique des correctifs de durcissement et prend en charge le rollback complet via des points de contrôle signés. Chaque modification fait l'objet d'un instantané avant d'être effectuée, de sorte que `hardener rollback` restaure l'hôte à son état précédent. L'outil est fourni sous forme de binaire CLI unique et d'une application de bureau construite avec Tauri et un frontend Leptos/WASM. Huit plugins de durcissement couvrent les paramètres du noyau, la configuration SSH, les règles de pare-feu, l'authentification PAM, la minimisation des services, les règles d'audit, les permissions de fichiers et les systèmes MAC (SELinux/AppArmor). Les résultats sont mappés sur dix cadres de conformité : CIS, STIG, NIST 800-53, PCI-DSS, HIPAA, GDPR, ISO/IEC 27001:2022, SOC 2, NIST SP 800-171 Rev 3 et FedRAMP. Les contrôles que le moteur ne peut pas évaluer sont signalés comme nécessitant un examen manuel plutôt que supposés réussir. Le support des distributions est basé sur la famille, couvrant Debian, Ubuntu, Fedora, RHEL, Arch Linux et openSUSE. L'outil lit les couches `/etc` et `/usr/etc` sur openSUSE, et gère la configuration SSH drop-in pour préserver les lignes `Include` du fournisseur. Une image Docker avec une base `FROM scratch` permet un audit en lecture seule sans modification de l'hôte. Les fonctionnalités clés comprennent : rollback basé sur des points de contrôle avec stockage SQLite signé Ed25519, journal d'audit à chaînage de hachage, exceptions de politique avec dates d'expiration, exclusions de portée pour les contrôles non applicables, analyse planifiée via démon ou minuteur systemd, et opérations de flotte sur SSH avec analyse et application par lots simultanées. L'application de bureau fournit un tableau de bord avec des scores de sécurité, des vues de conformité par cadre, des résultats groupés par gravité, et une interface d'application de flotte avec aperçu par étapes. La configuration est chargée à partir de quatre sources dans l'ordre : `/etc/linux-hardener/config.toml`, configuration utilisateur (ignorée sous root), drapeau `--config`, et variables d'environnement `HARDENER_*`. L'outil distingue `scan` (lecture seule, pas de root nécessaire), `apply --dry-run` (prévisualiser les modifications) et `apply` (exécuter les modifications). Les opérations par lots sont en dry-run par défaut et nécessitent `--execute` pour apporter des modifications. Le projet comprend 2343 tests réussis, une suite multi-distributions qui applique et restaure sur six conteneurs démarrés, et une suite différentielle comparant les hôtes avant et après l'application via un oracle indépendant. La base de code est organisée en crates de domaine pour les plugins, la conformité, le planificateur, le noyau, l'état et la détection de distribution, avec des crates de fondation partagés pour les utilitaires courants et les types sûrs WASM.