Copias de seguridad

Backup de la configuración de Zentyal

Zentyal ofrece un servicio de backups de configuración, vital para asegurar la recuperación de un servidor ante un desastre, debido por ejemplo a un fallo del disco duro del sistema o un error humano en un cambio de configuración.

_images/zentyal-backup-menu.png

Pantalla de backup

Los backups se pueden hacer en local, guardándolos en el disco duro de la propia máquina Zentyal. Tras ello se recomienda copiarlos en algún soporte físico externo, ya que si la máquina sufriera un fallo grave podríamos perder también el backup de la configuración.

También es posible realizar estos backups de forma remota, ya que están incluidos en los servicios de subscripción que provee Zentyal. Tanto la Subscripción Profesional como la Subscripción Empresarial, ambas como parte de la oferta comercial de Zentyal, incluyen estos backups de configuración. Así mismo, la Subscripción Básica [1], totalmente gratuita y orientada a dar soporte a entornos de prueba del servidor Zentyal, también incluye los backups remotos de la configuración. Con cualquiera de las tres opciones, en caso de que por fallo de sistema o humano se perdiera la configuración del servidor, ésta siempre se podría recuperar rápidamente desde los repositorios en la nube de Zentyal.

[1]http://store.zentyal.com/serversubscriptions/subscription-basic.html

Para acceder a las opciones de estas copias de seguridad lo haremos a través del menú principal Sistema ‣ Backup. No se permite realizar copias de seguridad si existen cambios en la configuración sin guardar, como puede verse en el aviso que aparece en la imagen.

Realizar una copia de seguridad

Realizar una copia de seguridad

Una vez introducido un nombre para la copia de seguridad, seleccionado el tipo deseado (configuración o completo) y pulsando el botón Backup, aparecerá una pantalla donde se mostrará el progreso de los distintos módulos hasta que finalice con el mensaje de Backup finalizado con éxito.

Posteriormente, si volvemos a acceder a la pantalla anterior, veremos que en la parte inferior de la página aparece una Lista de backups. A través de esta lista podemos restaurar, descargar a nuestro disco, o borrar cualquiera de las copias guardadas. Así mismo aparecen como datos informativos el tipo de copia, la fecha de realización de la misma y el tamaño que ocupa.

En la sección Restaurar backup desde un archivo podemos enviar un fichero de copia de seguridad que tengamos previamente descargado, por ejemplo, perteneciente a una instalación anterior de un servidor Zentyal en otra máquina, y restaurarlo mediante Restaurar. Al restaurar se nos pedirá confirmación, hay que tener cuidado porque la configuración actual será reemplazada por completo. El proceso de restauración es similar al de copia, después de mostrar el progreso se nos notificará el éxito de la operación si no se ha producido ningún error.

Herramientas de línea de comandos para el backup de la configuración

Existen dos herramientas disponibles a través de la línea de comandos que también nos permiten guardar y restaurar la configuración. Residen en /usr/share/ebox, se denominan ebox-make-backup y ebox-restore-backup.

ebox-make-backup nos permite realizar copias de seguridad de la configuración, entre sus opciones están elegir qué tipo de copia de seguridad queremos realizar. Entre éstos está el informe de configuración que ayuda a los desarrolladores a diagnosticar un fallo al enviarlo, incluyendo información extra. Cabe destacar que en este modo, las contraseñas de los usuarios son reemplazadas para mayor confidencialidad. El informe de configuración puede generarse también desde General ‣ Informe de configuración en la interfaz web.

Podemos ver todas las opciones del programa con el parámetro –help.

ebox-restore-backup nos permite restaurar ficheros de copia de seguridad de la configuración. Posee también una opción para extraer la información del fichero. Otra opción a señalar es la posibilidad de hacer restauraciones parciales, solamente de algunos módulos en concreto. Es el caso típico cuando queremos restaurar una parte de una copia de una versión antigua. También es útil cuando el proceso de restauración ha fallado por algún motivo. Tendremos que tener especial cuidado con las dependencias entre los módulos. Por ejemplo, si restauramos una copia del módulo de cortafuegos que depende de una configuración del módulo objetos y servicios debemos restaurar también estos primero. Aún así, existe una opción para ignorar las dependencias que puede ser útil usada con precaución.

Si queremos ver todas las opciones de este programa podemos usar también el parámetro –help.

Configuración de las copias de seguridad de un servidor Zentyal

En primer lugar, debemos decidir si almacenamos nuestras copias de seguridad local o remotamente. En este último caso, necesitaremos especificar qué protocolo se usa para conectarse al servidor remoto.

Configuración

Configuración de las copias de seguridad

Método:
Los distintos métodos que son soportados actualmente son FTP, Rsync, SCP, Zentyal Cloud y Sistema de ficheros. Debemos tener en cuenta que dependiendo del método que se seleccione deberemos proporcionar más o menos información. Todos los métodos salvo Sistema de ficheros acceden a servicios remotos. Si se selecciona FTP, Rsync o SCP tendremos que introducir la dirección del servidor remoto y la autenticación asociada.

Advertencia

Si usamos SCP, tendremos que ejecutar sudo ssh usuario@servidor y aceptar la huella del servidor remoto para añadirlo a la lista de servidores SSH conocidos. Si no se realiza esta operación, la copia de respaldo no podrá ser realizada ya que fallará la conexión con el servidor.

Ordenador o destino:
Para FTP, y SCP tenemos que proporcionar el nombre del servidor remoto o su dirección IP con el siguiente formato: otro.servidor:puerto/directorio_existente. En caso de usar Sistema de ficheros, introduciremos la ruta de un directorio local.
Usuario:
Nombre de usuario para autenticarse en la máquina remota.
Clave:
Contraseña para autenticarse en la máquina remota.
Cifrado:
Se pueden cifrar los datos de la copia de seguridad usando una clave simétrica que se introduce en el formulario, o se puede seleccionar una clave GPG ya creada para dar cifrado asimétrico a tus datos. El anillo de claves de GPG se obtiene del usuario ebox.
Frecuencia de copia de seguridad completa:

Este parámetro se usa para determinar la frecuencia con la que las copias de seguridad completas se llevan a cabo. Los valores son: Sólo la primera vez, Diario, Semanal, Dos veces al mes y Mensual. Si seleccionas Semanal, Dos veces al mes o Mensual, aparecerá una segunda selección para poder decidir el día exacto de la semana o del mes en el que se realizará la copia.

Si se selecciona Sólo la primera vez, entonces hay que establecer una frecuencia para el backup incremental.

Frecuencia de backup incremental:

Este valor selecciona la frecuencia de la copia incremental o la deshabilita.

Si la copia incremental está activa podemos seleccionar una frecuencia Diaria o Semanal. En el último caso, se debe decidir el día de la semana. Sin embargo, hay que tener en cuenta que la frecuencia seleccionada debe ser mayor que la frecuencia de copia completa.

Los días en los que se realice una copia completa, no se realizará cualquier copia incremental programada.

El proceso de respaldo comienza a las:
Este campo es usado para indicar cuándo comienza el proceso de la toma de la copia de respaldo, tanto el completo como el incremental. Es una buena idea establecerlo a horas cuando no haya nadie en la oficina ya que puede consumir bastante ancho de banda de subida.
Guardar copias completas anteriores:

Este valor se usa para limitar el número de copias totales que están almacenadas. Puedes elegir limitar por número o por antigüedad.

Si limitas por número, solo el número indicado de copias, sin contar la última copia completa, será guardado. En el caso de limitar por antigüedad, sólo se guardarán las copias completas que sean más recientes que el período indicado.

Cuando una copia completa se borra, todas las copias incrementales realizadas a partir de ella también son borradas.

Configuración de los directorios y ficheros que son respaldados

La configuración por defecto efectuará una copia de todo el sistema de ficheros excepto los ficheros o directorios explícitamente excluidos. En el caso de que usemos el método Sistema de ficheros, el directorio objetivo y todo su contenido será automáticamente excluido.

Puedes establecer exclusiones de rutas y exclusiones por expresión regular. Las exclusiones por expresión regular excluirán cualquier ruta que coincida con ella. Cualquier directorio excluido, excluirá también todo su contenido.

Para refinar aun más el contenido de la copia de seguridad también puedes definir inclusiones, cuando un ruta coincide con una inclusión antes de coincidir con alguna exclusión, será incluida en el backup.

El orden en que se aplican las inclusiones y exclusiones se puede alterar usando los iconos de flechas.

La lista por defecto de directorios excluidos es: /mnt, /dev, /media, /sys, /tmp, /var/cache y /proc. Es una mala idea incluir alguno de estos directorios ya que como resultado el proceso de copia de respaldo podría fallar.

Una copia completa de un servidor Zentyal con todos sus módulos pero sin datos de usuario ocupa unos 300 MB.

Lista de inclusión y exclusión

Lista de inclusión y exclusión

Comprobando el estado de las copias

Podemos comprobar el estado de las copias de respaldo en la sección Estado de las copias remotas. En esta tabla podemos ver el tipo de copia, completa o incremental, y la fecha de cuando fue tomada.

Estado de las copias

Estado de las copias

Restaurar ficheros

Hay dos formas de restaurar un fichero. Dependiendo del tamaño del fichero o del directorio que deseemos restaurar.

Es posible restaurar ficheros directamente desde el panel de control de Zentyal. En la sección Copia de seguridad ‣ Restaurar ficheros tenemos acceso a la lista de todos los ficheros y directorios que contiene la copia remota, así como las fechas de las distintas versiones que podemos restaurar.

Si la ruta a restaurar es un directorio, todos sus contenidos se restaurarán, incluyendo subdirectorios.

El archivo se restaura con sus contenidos en la fecha seleccionada, si el archivo no está presente en la copia de respaldo en esa fecha se restaurará la primera versión que se encuentre en las copias anteriores a la indicada; si no existen versiones anteriores se notificará con un mensaje de error.

Advertencia

Los archivos mostrados en la interfaz son aquéllos que están presentes en la última copia de seguridad. Los archivos que están almacenados en copias anteriores pero no en la última no se muestran, pero podrían ser restaurados a través de la línea de comandos.

Podemos usar este método con ficheros pequeños. Con ficheros grandes, el proceso es costoso en tiempo y no se podrá usar el interfaz Web de Zentyal mientras la operación está en curso. Debemos ser especialmente cautos con el tipo de fichero que restauramos. Normalmente, será seguro restaurar ficheros de datos que no estén siendo abiertos por aplicaciones en ese momento. Estos archivos de datos están localizados bajo el directorio /home/samba. Sin embargo, restaurar ficheros del sistema de directorios como /lib, /var o /usr mientras el sistema está en funcionamiento puede ser muy peligroso. No hagas ésto a no ser que sepas muy bien lo que estás haciendo.

Restaurar un fichero

Restaurar un fichero

Los ficheros grandes y los directorios y ficheros de sistema deben ser restaurados manualmente. Dependiendo del fichero, podemos hacerlo mientras el sistema está en funcionamiento. Sin embargo, para directorios de sistema usaremos un CD de rescate como explicamos más tarde.

En cualquier caso, debemos familiarizarnos con la herramienta que usa este módulo: duplicity [2]. El proceso de restauración de un fichero o directorio es muy simple. Se ejecuta el siguiente comando:

duplicity restore --file-to-restore -t 3D <fichero o directorio a restaurar> <URL remota y argumentos> <destinos>
[2]duplicity: Encrypted bandwidth-efficient backup using the rsync algorithm <http://duplicity.nongnu.org/>.

La opción -t se usa para seleccionar la fecha que queremos restaurar. En este caso, 3D significa hace tres días. Usando now podemos restaurar la copia más actual.

Podemos obtener <URL remota y argumentos> leyendo la nota que se encuentra encima de la sección Restaurar ficheros en Zentyal.

<URL remota y argumentos>

URL remota y argumentos

Por ejemplo, si queremos restaurar el fichero /home/samba/users/john/balance.odc ejecutaríamos el siguiente comando:

# duplicity restore --file-to-restore home/samba/users/john/balance.odc \
  scp://backupuser@192.168.122.1 --ssh-askpass --no-encryption /tmp/balance.odc

El comando mostrado arriba restauraría el fichero en /tmp/balance.odc. Si necesitamos sobreescribir un fichero o un directorio durante una operación de restauración necesitamos añadir la opción –force, de lo contrario duplicity rechazará sobreescribir los archivos.

Cómo recuperarse de un desastre

Tan importante es realizar copias de seguridad como conocer el procedimiento y tener la destreza y experiencia para llevar a cabo una recuperación en un momento crítico. Debemos ser capaces de restablecer el servicio lo antes posible cuando ocurre un desastre que deja el sistema no operativo.

Para ello, puede optarse por la contratación de un servicio de subscripción de recuperación de desastres de Zentyal [3]. Este servicio permite guardar la configuración, los ficheros y los directorios críticos del servidor en una ubicación remota y, en caso de desastre, recuperar todo el sistema mediante la instalación del mismo CD de instalación de Zentyal y seguir unos sencillos pasos.

[3]https://store.zentyal.com/other/disaster-recovery.html

Por otro lado, si no se ha contratado este servicio, el servidor se puede recuperar de un desastre usando un CD-ROM de rescate en el arranque que incluya el software de copia de respaldos duplicity, como por ejemplo grml [4].

[4]grml <http://www.grml.org/>.

Descargaremos la imagen de grml y arrancaremos la máquina con ella. Usaremos el parámetro nofb en caso de problemas con el tamaño de la pantalla.

Arranque grml

Arranque grml

Una vez que el proceso de arranque ha finalizado podemos obtener un intérprete de comandos pulsando la tecla enter.

Comenzar un intérprete de comandos

Comenzar un intérprete de comandos

Si nuestra red no está configurada correctamente, podemos ejecutar netcardconfig para configurarla.

El siguiente paso es montar el disco duro de nuestro sistema. En este caso, vamos a suponer que nuestra partición raíz es /dev/sda1. Así que ejecutamos:

# mount /dev/sda1 /mnt

El comando anterior montará la partición en el directorio /mnt. En este ejemplo haremos una restauración completa. Primero eliminaremos todos los directorios existentes en la partición. Por supuesto, si no haces una restauración completa este paso no es necesario.

Para eliminar los ficheros existentes y pasar a la restauración ejecutamos:

# rm -rf /mnt/*

Instalaremos duplicity en caso de no tenerlo disponible:

# apt-get update
# apt-get install duplicity

Antes de hacer una restauración completa necesitamos restaurar /etc/passwd y /etc/group. En caso contrario, podemos tener problemas al restaurar archivos con el propietario incorrecto. El problema se debe a que duplicity almacena los nombres de usuario y grupo y no los valores numéricos. Así pues, tendremos problemas si restauramos ficheros en un sistema en el que el nombre de usuario o grupo tienen distinto UID o GID. Para evitar este problema sobreescribimos /etc/passwd y /etc/group en el sistema de rescate. Ejecutamos:

# duplicity restore --file-to-restore etc/passwd \
# scp://backupuser@192.168.122.1 /etc/passwd --ssh-askpass --no-encryption --force

# duplicity restore --file-to-restore etc/group \
# scp://backupuser@192.168.122.1 /etc/group --ssh-askpass --no-encryption --force

Advertencia

Si usamos SCP, tendremos que ejecutar sudo ssh usuario@servidor para añadir el servidor remoto a la lista de servidores SSH conocidos. Si no se realiza esta operación, la copia de respaldo no podrá ser realizada ya que fallará la conexión con el servidor.

Ahora podemos proceder con la restauración completa ejecutando duplicity manualmente:

# duplicity restore  scp://backupuser@192.168.122.1 /mnt/ --ssh-askpass --no-encryption --force

Por último debemos crear los directorios excluidos de la copia de respaldo así como limpiar los directorios temporales:

# mkdir -p /mnt/dev
# mkdir -p /mnt/sys
# mkdir -p /mnt/proc
# rm -fr /mnt/var/run/*
# rm -fr /mnt/var/lock/*

El proceso de restauración ha finalizado y podemos reiniciar el sistema original.

Restaurando servicios

Además de los archivos se almacenan datos para facilitar la restauración directa de algunos servicios. Estos datos son:

  • copia de seguridad de la configuración de Zentyal
  • copia de seguridad de la base de datos de registros de Zentyal

En la pestaña Restauración de servicios ambos pueden ser restaurados para una fecha dada.

La copia de seguridad de la configuración de Zentyal guarda la configuración de todos los módulos que hayan sido habilitados por primera vez en algún momento, los datos del LDAP y cualquier otro fichero adicional para el funcionamiento de cada módulo.

Debes tener cuidado al restaurar la configuración de Zentyal ya que toda la configuración y los datos de LDAP serán remplazados. Sin embargo, en el caso de la configuración no almacenada en LDAP deberás pulsar en “Guardar cambios” para que entre en vigor.

Restaurar servicios

Restaurar servicios