Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > sysadmin > boxbackup

boxbackup

boxbackup es un mecanismo de copias de seguridad en red, automático y cifrado, con un buen número de características interestantes.

Pros

  • Emplea arquitectura cliente-servidor.
  • El cliente puede funcionar contínuamente en segundo plano, sin intervención del usuario.
  • Los datos se guardan en un sistema de archivos en el servidor, completamente cifrados.
  • Las copias son incrementales, a semejanza de rsync.
  • Se conservan versiones anteriores de los archivos.
  • Uso opcional de una versión RAID en modo usuario.
  • Conexión seguras mediante TLS y cifrado con AES.

Contras

  • Configuración inicial delicada y algo pesada dado que todo va cifrado.
  • Dependencia extrema de un juego de claves; si se pierden, los datos también.
  • La consulta a los datos se realiza mediante un programa, no con un acceso directo al sistema de archivos, incluso desde el servidor donde se guardan.

Instalación y puesta en marcha

En Debian se dispone de dos paquetes: el servidor boxbackup-server y el cliente boxbackup-cliente.

Configurando el servidor

Instalamos la versión servidor en una máquina funcionado bajo Debian Etch de la forma habitual en Debian, y durante dicha instalación tenemos la opción de crear una configuración contestando a unas preguntas.

La primera cuestión es dónde vamos a almacenar los datos, si en un mecanismo RAID ó en un único directorio, así que si elegimos la primera debemos indicar el nombre de tres directorios, en tres particiones diferentes del disco, ó una única ruta que no es necesario que exista de antemano. En nuestro caso seleccionamos /srv/boxbackup.

Luego indicamos el tamaño del bloque empleado para almacenar las copias, incluso si no hemos seleccionado RAID. 4096 es el valor predeterminado.

Y por último contestamos a la pregunta sobre crear o no una autoridad certificadora, puesto que queremos tener mayor control sobre quién puede conectar ó no.

El programa de instalación crea entonces un usuario y el directorio indicado, junto con una clave y un certificado inicial para el servidor.

Reconfigurando

El paquete Debian incluye el programa bbstored-config con el que es posible reconfigurar el servidor; en realidad es lo mismo que emplea el paquete pero sin las preguntas.

Para usarlo debemos indicarle el directorio de trabajo, el nombre del servidor y el usuario bajo el que van a estar los archivos.

# bbstored-config /etc/boxbackup taquiones.net bbstored

Writing configuration file /etc/boxbackup/bbstored.conf

===================================================================
Checking permissions on /srv/boxbackup/backup
Checking permissions on /srv/boxbackup/backup
Checking permissions on /srv/boxbackup/backup

Setup bbstored config utility.

Configuration:
Writing configuration file: /etc/boxbackup/bbstored.conf
Writing empty accounts file: /etc/boxbackup/bbstored/accounts.txt
Server hostname: taquiones.net
RaidFile config: /etc/boxbackup/raidfile.conf

Creating blank accounts file
Generating private key...

...

Writing configuration file /etc/boxbackup/bbstored.conf

===================================================================


bbstored basic configuration complete.

...

#

y proporciona un resumen de los pasos a seguir desde aquí, y que consisten en:

  1. Firmar la petición del certificado recién creado para el servidor.
  2. Instalar el nuevo certificado
  3. Ajustar el archivo de configuración /etc/boxbackup/bbstored.conf.
  4. Crear las cuentas
  5. Poner en marcha el servicio

Cuentas de acceso

Creando la infraestructura

Dado que el acceso al servidor se lleva a cabo mediante conexiones seguras, necesitamos crear una infraestructura para permitirlo.

En la documentación oficial sugieren que este proceso, la creación y el mantenimiento de una autoridad de certificación (CA), se lleve a cabo en una máquina aislada y se transfieran los certificados tanto al servidor como a los clientes por otros medios, incluyendo copias en soporte físico. Es una buena medida desde el punto de vista de la seguridad, pero yo no voy a describirla así en estas notas.

Comenzamos creando la autoridad certificadora propia con la siguiente orden:

# cd /etc/boxbackup
# bbstored-certs ca init 
Generating RSA private key, 2048 bit long modulus
.+++
......................+++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
...

Signature ok
subject=/CN=Backup system server root
Getting Private key
#

la cual crea el directorio /etc/boxbackup/ca e inicializa las correspondientes claves.

Después tenemos que firmar la clave del servidor y para ello empleamos el programa bbstored-certs de nuevo, proporcionándole el directorio donde se reside la autoridad de certificación (ca) y el archivo con la petición generado en la instalación:

# cd /etc/boxbackup
# bbstored-certs ca sign-server bbstored/taquiones.net-csr.pem
This certificate is for backup server

taquiones.net

Signing the wrong certificate compromises the security of your backup system.

Would you like to sign this certificate? (type 'yes' to confirm)
yes
Signature ok
subject=/CN=taquiones.net
Getting CA Private Key

Certificate signed.

Install the files

ca/servers/taquiones.net-cert.pem
ca/roots/clientCA.pem

on the server.

#

Tal y como nos indica, copiamos los archivos en el directorio de trabajo de boxbackup /etc/boxbackup/bbstored:

  • taquiones.net-cert.pem
  • clientCA.pem

Creando cuentas cliente

Para crear una cuenta cliente necesitamos proporcionar varios datos:

  1. Número de cuenta que identifica al cliente; un número mayor que cero en 31 bits, y que puede expresarse en hexadecimal. Puede ir desde 1 a 75AB23C.
  2. El volumen RAID a emplear, que puede ser cero si no se ha añadido ningún volumen nuevo a la configuración.
  3. El límite blando es la cifra de almacenamiento máximo a la que el cliente se someterá voluntariamente, y que no intentará sobrepasar.
  4. El límite duro es aquél que el cliente no podrá sobrepasar y que provocará un error fatal en el proceso de copia.

La orden a emplear es la siguiente:

# bbstoreaccounts create 1 0 2048M 2252M
NOTICE: Account 0x00000001 created.
#

y le indicamos que cree el cliente número 1, empleando el volumen 0 de almacenamiento y con 2Gb de límite blando y un 10% más de límite duro.

Ahora falta el proceso de configuración en el cliente:

  1. Se configura el cliente y se obtiene una petición de certificación, por ejemplo /etc/boxbackup/bbackupd/1-csr.pem.
  2. Se envía al servidor.
  3. En el servidor se firma el certificado:

    # bbstored-certs ca sign 1-csr.pem
    ...
    Send the files
    
    
    
    ca/clients/1-cert.pem
    ca/roots/serverCA.pem
    
    to the client.
  4. Se envían al cliente los dos archivos, el certificado de cliente 1-cert.pem y el certificado raíz del servidor serverCA.pem.

Enlaces y referencias