
Plan de contrôle léger et sécurisé et tableau de bord web en temps réel en Crystal pour la sécurité des hôtes Linux avec firewalld et NetworkManager.
Pared est un plan de contrôle de sécurité d'hôte Linux sécurisé et hautes performances, ainsi qu'une console web d'administration en temps réel, écrit en Crystal. Construit sur Kemal et les composants rendus côté serveur Blueprint avec SQLite3, une petite couche vanilla-JS/WebSocket, et le streaming natif du journal libsystemd, il unifie l'orchestration de firewalld et NetworkManager dans une interface centralisée et réactive.
Pared propose une authentification sans mot de passe par TLS mutuel (mTLS), la gestion des identités Linux PAM/SSSD, des liaisons C natives vers libsystemd pour le streaming du journal en direct, la simulation de paquets noyau, des gardiens de rollback anti-verrouillage automatisés, et l'audit de contournement réseau des conteneurs.
DROP/REJECT), empêchant le verrouillage de l'opérateur.0.0.0.0, ::)./trace, /rollback <zone>, /wg peer <term>, /zone add), avec répartition côté serveur vers la console correspondante.pam_acct_mgmt), résolution de groupe SSSD D-Bus, mTLS par certificat client X.509 avec vérifications CRL, et protection CSRF.NOTIFY_SOCKET, et journalisation d'audit structurée.libsystemd (systemd-devel)firewalld et NetworkManager actifs# 1. Clone repository & install shard dependencies
git clone https://gitlab.com/renich/pared.git
cd pared
shards install
# 2. Provision host system Polkit rules & seed default database
make setup
make seed
# 3. Compile and launch development server
make build
make run
Le tableau de bord web du plan de contrôle est disponible à l'adresse http://localhost:3636.
Lors de l'initialisation via make seed, les identifiants par défaut sont :
[email protected]password(Les comptes utilisateurs PAM du système local avec UID ≥ 1000 peuvent également s'authentifier directement).
Pared impose des normes de qualité strictes avec des suites de tests unitaires et E2E navigateur complètes :
# Run unit & integration test suite (200 examples)
make spec
# Run headless Selenium E2E browser test suite (16 examples)
make test-browser
# Run static analysis (Ameba)
bin/ameba
# Run security vulnerability scan (Flaw)
bin/flaw scan .
# Run reStructuredText documentation linter (crstlint)
find docs -name "*.rst" -exec crstlint {} +
Un fichier d'unité systemd renforcé pour la production est fourni à scripts/pared.service, mettant en œuvre l'isolation du noyau, le ping du watchdog et les restrictions de capacités :
# Build production release binary
make release
# Install binary and systemd service
sudo install -m 755 bin/pared /usr/local/bin/pared
sudo install -m 644 scripts/pared.service /etc/systemd/system/pared.service
# Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable --now pared.service
# Inspect service status and watchdog health
sudo systemctl status pared.service
Des spécifications architecturales complètes et des enregistrements de décisions sont maintenus dans le répertoire docs/ :
Pour construire la documentation HTML Sphinx localement :
sphinx-build -b html -W docs docs/_build/html