
Plano de controle leve e seguro e painel web em tempo real em Crystal para segurança de hosts Linux com firewalld e NetworkManager.
Pared é um plano de controle de segurança de host Linux seguro e de alto desempenho e um console web administrativo em tempo real escrito em Crystal. Construído sobre Kemal e componentes renderizados no servidor Blueprint com SQLite3, uma pequena camada vanilla-JS/WebSocket e streaming nativo de journal via libsystemd, ele unifica a orquestração de firewalld e NetworkManager em uma interface centralizada e reativa.
Pared apresenta autenticação sem senha com TLS mútuo (mTLS), gerenciamento de identidade Linux PAM/SSSD, bindings nativos em C para libsystemd para streaming de journal ao vivo, simulação de pacotes no kernel, guardiões automatizados de rollback anti-bloqueio e auditoria de bypass de rede de contêineres.
DROP/REJECT), prevenindo o bloqueio do operador.0.0.0.0, ::)./trace, /rollback <zone>, /wg peer <term>, /zone add), com despacho no lado do servidor para o console correspondente.pam_acct_mgmt), resolução de grupos SSSD via D-Bus, mTLS com certificado de cliente X.509 com verificações de CRL e proteção CSRF.NOTIFY_SOCKET e registro de auditoria estruturado.libsystemd (systemd-devel)firewalld e NetworkManager ativos# 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
O painel web do plano de controle está disponível em http://localhost:3636.
Quando populado via make seed, as credenciais padrão são:
[email protected]password(Contas de usuário PAM do sistema local com UID ≥ 1000 também podem autenticar diretamente).
Pared impõe padrões rigorosos de qualidade com suítes abrangentes de testes unitários e E2E de navegador:
# 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 {} +
Um arquivo de unidade systemd reforçado para produção é fornecido em scripts/pared.service, implementando sandboxing de kernel, ping de watchdog e restrições de capacidades:
# 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
Especificações arquiteturais abrangentes e registros de decisão são mantidos no diretório docs/:
Para construir a documentação HTML do Sphinx localmente:
sphinx-build -b html -W docs docs/_build/html