Whitepaper técnico — PodHeitor Active Directory / LDAP para Bacula

Backup e restore clientless network-only de directory services no Linux: Microsoft Active Directory (Server 2012 R2 → 2025, Samba AD DC), OpenLDAP (slapd 2.4/2.5/2.6), 389 Directory Server / Red Hat DS / FreeIPA. Status: v0.1.0 DRAFT / pre-release.

Documento técnico complementar à página do plugin PodHeitor AD/LDAP.

1. Problema: backup de AD/LDAP requer agente Windows ou hacks LDIF

Backup de Active Directory tradicional força um dos seguintes paths:

  • Agente em Domain Controller Windows (Bacula Enterprise, Veeam, Commvault) — exige instalação privilegiada num DC produção, vulnerabilidade de superfície ampla.
  • Script ntdsutil ifm agendado, snapshot do ntds.dit, e backup de filesystem — operacionalmente frágil, não pega SYSVOL/GPO de forma sincronizada, sem PITR.
  • Para OpenLDAP / 389 DS, scripts slapcat/db2ldif em cron — gera LDIF gigante diariamente, sem incrementais reais, sem replicação.

O PodHeitor AD/LDAP é clientless network-only: o cdylib roda no host Linux do FD, conecta ao directory via LDAP/LDAPS, e captura tanto schema quanto data via DirSync (AD) ou syncrepl RFC 4533 (OpenLDAP/389 DS) — sem instalar nada no DC.

2. Modelo arquitetural

Pure-Rust cdylib metaplugin carregado diretamente pelo bacula-fd, falando com seu engine in-process de backup/restore via PTCOMM Path-A. Sem C/C++ shim, sem processo sidecar. Esta é uma exceção arquitetural ao padrão PodHeitor de cdylib + backend — o LDAP é leve o suficiente para rodar inteiro in-process, e a redução de complexidade vale.

Artefato: target/release/libpodheitor_adldap_fd.so, instalado em /opt/bacula/plugins/podheitor-adldap-fd.so.

3. Modos de backup (v0.1.0)

Modo Mecanismo
ldap OpenLDAP / 389 DS / FreeIPA via syncrepl RFC 4533
ad Microsoft AD via DirSync (LDAP control 1.2.840.113556.1.4.841)
replicate Replicação live directory-to-directory (cross-vendor)
cdp Continuous Data Protection com RPO bounded
hybrid_sysvol SYSVOL/GPO incluído via libsmbclient-rs — captura sincronizada de directory + GPO

4. Modos de restore

Modo Granularidade
object Objeto único (user, computer, group)
subtree Subtree LDAP completa
attribute Atributo único de objeto único
authoritative Restore autoritativo (force replication out)
dry_run Preview sem aplicar
diff Diff entre estado backup e estado live

5. Diferenciais técnicos

  • Incremental verdadeiro via syncrepl RFC 4533 (LDAP) + DirSync (AD) — não brute-force diff de dump.
  • SYSVOL/GPO incluído no modo hybrid_sysvol via libsmbclient-rs — directory state + GPO state capturados num só job.
  • Replicação cross-vendor live directory-to-directory — útil para migração AD → OpenLDAP ou DR de FreeIPA para 389 DS.
  • CDP com RPO bounded — janela de perda configurável.
  • Encryption at-rest — AES-256-GCM ou ChaCha20-Poly1305 escolhível por job.
  • Brazilian Unicode hardened — gate NFC/NFD pt-BR Smoke Gate em CI; nomes com acentos não corrompem na chain backup → restore.
  • JSON-Lines logging + métricas Prometheus textfile — observabilidade out-of-the-box.

6. Plataformas suportadas

  • Microsoft Active Directory: Server 2012 R2 → 2025, Samba AD DC
  • OpenLDAP: slapd 2.4 / 2.5 / 2.6
  • 389 Directory Server / Red Hat DS / FreeIPA
  • (Stretch) ApacheDS, OpenDJ — best-effort via modo genérico ldap

7. License posture

Proprietary — Copyright (c) 2026 Heitor Faria, all rights reserved. Não vincula estaticamente nenhum source AGPLv3 do Bacula. O cdylib é puro Rust com binding via crate bacula-fd-abi in-house e extern "C" independente.

Pronto para acompanhar a alpha?

Trial gratuito de 30 dias para deployments AD/LDAP qualificados após release v0.1.0. Garantimos no mínimo 50% de desconto vs Bacula Enterprise, Veeam ou Commvault, com mais funcionalidades — incluindo replicação cross-vendor e hybrid_sysvol que nenhum competidor entrega out-of-the-box.

Heitor Faria — Fundador, PodHeitor International
[email protected]
☎ +1 (789) 726-1749 · +55 (61) 98268-4220 (WhatsApp)
🔗 Página do plugin PodHeitor AD/LDAP

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe um comentário