Bacula PKI, cifrando los datos

Si el otro día hablamos acerca de cómo configurar Bacula para que todos los datos de los que realiza backup viajen cifrados (puedes leer el post completo aquí), hoy vamos a ver otra parte no menos importante: la seguridad de los datos almacenados.
Casi tan importante como tener un buen respaldo de los datos es que estos estén seguros. Si alguien se hace con una cinta y tiene ahí todos los datos almacenados en texto plano, pues ya os podéis imaginar... Así que, para evitar que esto suceda, vamos a emplear la opción, también incluida en Bacula, de cifrar los datos en origen. Con ello conseguimos que los datos salgan del cliente ya cifrados, según una clave privada que sólo el cliente debe de conocer. Esto garantiza que los datos que se escriban en la cinta estén ya cifrados, no los cifra el bacula-sd o el bacula-director, sino que es en origen, es decir, bacula-fd. Aquí es importante recalcar que los datos estarán cifrados, es decir, el fichero no se sabrá lo que tiene, pero tanto ruta, permisos, nombre del fichero, etc. estarán disponibles para que en caso de que se necesite recuperar algo, se pueda hacer sin problema.

Generar las claves de cifrado

Como siempre, vamos primero a generar las claves que necesitamos para hacer el cifrado de datos. Para ello, generamos la clave maestra tal como sigue,
shell> openssl genrsa -out master.key 2048
shell> openssl req -new \
       -key master.key \
       -x509 \
       -out master.cert \
       -days 3650
En este caso, y para evitar futuros problemas, creamos un certificado con 10 años de validez. Este será nuestro certificado maestro.
Ahora debemos de generar el par de claves para cada cliente. Este es el paso que debemos de repetir en cada uno de los clientes.
shell> openssl genrsa -out a.local.net.key 2048
shell> openssl req -new \
       -key a.local.net.key \
       -x509 \
       -out a.local.net.cert \
       -days 3650
shell> cat a.local.net.key a.local.net.cert > a.local.net.pem

Configuración

Y ahora, ya únicamente nos queda por editar el fichero del agente (bacula-fd.conf) y añadir las claves de cifrado en el apartado FileDaemon.
FileDaemon {
   ...
   # Data Encryption
   PKI Signatures = Yes
   PKI Encryption = Yes
   PKI Keypair = "/etc/bacula/tls/a.loca.net.pem"
   PKI Master Key = "/etc/bacula/tls/master.cert"
}
Tras el cambio, reiniciamos el daemon y podemos lanzar una tarea de backup, en la que al finalizar aparecerá lo siguiente:
FD Files Written:       139
SD Files Written:       139
FD Bytes Written:       8,719,243,782 (8.719 GB)
SD Bytes Written:       8,719,264,244 (8.719 GB)
Rate:                   23954.0 KB/s
Software Compression:   None
VSS:                    no
Encryption:             yes
Accurate:               no
Todo el proceso de copia y restauración de backups en el cliente es completamente transparente para el administrador. Es el propio software de Bacula quien lo realiza.

Precauciones

Es muy importante tener las claves de cifrado muy bien respaldadas, pues si se pierden no será posible restaurar ningún fichero del sistema.
En caso de de que clave o certificado del cliente se pierda, mientras tengamos las claves maestro podremos restaurar los ficheros. Para ello únicamente deberemos seguir las siguientes instrucciones.
  1. Concatener las claves maestro
  2. shell> cat master.crt master.key > master.keypair
    
  3. Modificar el fichero del agente (bacula-fd.conf)
    FileDaemon {
       ...
       PKI Keypair = /etc/bacula/tls/master.keypair
    }
    

Referencias



No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios