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

Backup y restore clientless network-only de directory services en 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. Estado: v0.1.0 DRAFT / pre-release.

Documento técnico complementario a la página del plugin PodHeitor AD/LDAP.

1. El problema: backup de AD/LDAP fuerza agente Windows o hacks LDIF

Backup de Active Directory tradicional fuerza uno de los siguientes paths:

  • Agente en Domain Controller Windows (Bacula Enterprise, Veeam, Commvault) — exige instalación privilegiada en un DC de producción, superficie de vulnerabilidad amplia.
  • Script ntdsutil ifm agendado, snapshot de ntds.dit, y backup de filesystem — operacionalmente frágil, no captura SYSVOL/GPO de forma sincronizada, sin PITR.
  • Para OpenLDAP / 389 DS, scripts slapcat/db2ldif en cron — generan LDIF gigante diariamente, sin incrementales reales, sin replicación.

PodHeitor AD/LDAP es clientless network-only: el cdylib corre en el host Linux del FD, conecta al directory vía LDAP/LDAPS, y captura tanto schema como data vía DirSync (AD) o syncrepl RFC 4533 (OpenLDAP/389 DS) — sin instalar nada en el DC.

2. Modelo arquitectónico

Metaplugin cdylib pure-Rust cargado directamente por bacula-fd, hablando con su engine in-process de backup/restore vía PTCOMM Path-A. Sin C/C++ shim, sin proceso sidecar. Esta es una excepción arquitectónica al patrón PodHeitor de cdylib + backend — el LDAP es ligero suficiente para correr entero in-process, y la reducción de complejidad lo vale.

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

3. Modos de backup (v0.1.0)

Modo Mecanismo
ldap OpenLDAP / 389 DS / FreeIPA vía syncrepl RFC 4533
ad Microsoft AD vía DirSync (LDAP control 1.2.840.113556.1.4.841)
replicate Replicación live directory-to-directory (cross-vendor)
cdp Continuous Data Protection con RPO bounded
hybrid_sysvol SYSVOL/GPO incluido vía libsmbclient-rs — captura sincronizada de directory + GPO

4. Modos de restore

Modo Granularidad
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 sin aplicar
diff Diff entre estado backup y estado live

5. Diferenciadores técnicos

  • Incremental verdadero vía syncrepl RFC 4533 (LDAP) + DirSync (AD) — no brute-force diff-of-dump.
  • SYSVOL/GPO incluido en modo hybrid_sysvol vía libsmbclient-rs — directory state + GPO state capturados en un solo job.
  • Replicación cross-vendor live directory-to-directory — útil para migración AD → OpenLDAP o DR de FreeIPA a 389 DS.
  • CDP con RPO bounded — ventana de pérdida configurable.
  • Encryption at-rest — AES-256-GCM o ChaCha20-Poly1305 elegible per job.
  • Brazilian Unicode hardened — gate NFC/NFD pt-BR Smoke Gate en CI; nombres con acentos no se corrompen en la chain backup → restore.
  • JSON-Lines logging + métricas Prometheus textfile — observabilidad out-of-the-box.

6. Plataformas soportadas

  • 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 vía modo genérico ldap

7. Postura de licencia

Propietaria — Copyright (c) 2026 Heitor Faria, all rights reserved. No vincula estáticamente ningún source AGPLv3 de Bacula. El cdylib es puro Rust con binding vía crate bacula-fd-abi in-house y extern "C" independiente.

¿Listo para acompañar la alpha?

Trial gratuito de 30 días para deployments AD/LDAP calificados tras release v0.1.0. Garantizamos al menos 50% de descuento vs Bacula Enterprise, Veeam o Commvault, con más funcionalidades — incluyendo replicación cross-vendor y hybrid_sysvol que ningún competidor entrega out-of-the-box.

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

Disponível em: pt-brPortuguês (Portugués, Brasil)enEnglish (Inglés)esEspañol

Deja una respuesta