
Piano di controllo leggero e sicuro e dashboard web in tempo reale in Crystal per la sicurezza degli host Linux con firewalld e NetworkManager.
Pared è un piano di controllo per la sicurezza degli host Linux sicuro e ad alte prestazioni, con una console web amministrativa in tempo reale, scritto in Crystal. Basato su Kemal e sui componenti renderizzati lato server di Blueprint con SQLite3, un piccolo layer vanilla-JS/WebSocket e lo streaming nativo del journal tramite libsystemd, unifica l'orchestrazione di firewalld e NetworkManager in un'interfaccia centralizzata e reattiva.
Pared offre autenticazione senza password con mutual TLS (mTLS), gestione delle identità tramite Linux PAM/SSSD, binding nativi C a libsystemd per lo streaming live del journal, simulazione dei pacchetti del kernel, guardiani automatici di rollback anti-lockout e auditing del bypass di rete dei container.
DROP/REJECT), per prevenire il lockout dell'operatore.0.0.0.0, ::)./trace, /rollback <zone>, /wg peer <term>, /zone add), con dispatch lato server verso la console corrispondente.pam_acct_mgmt), risoluzione dei gruppi SSSD via D-Bus, mTLS con certificato client X.509 con controlli CRL e protezione CSRF.NOTIFY_SOCKET e logging di audit strutturato.libsystemd (systemd-devel)firewalld e NetworkManager attivi# 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
La dashboard web del piano di controllo è disponibile all'indirizzo http://localhost:3636.
Quando inizializzate tramite make seed, le credenziali predefinite sono:
[email protected]password(Anche gli account utente PAM del sistema locale con UID ≥ 1000 possono autenticarsi direttamente).
Pared impone standard di qualità rigorosi con suite complete di test unitari ed E2E nel browser:
# 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 file unit systemd rafforzato per la produzione è fornito in scripts/pared.service, che implementa sandboxing del kernel, ping del watchdog e restrizioni delle capability:
# 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
Specifiche architetturali complete e record delle decisioni sono mantenuti nella directory docs/:
Per compilare localmente la documentazione HTML con Sphinx:
sphinx-build -b html -W docs docs/_build/html