Configuración de servidor de respaldos con BackupPC.

Autores: Joel Barrios Dueñas y Jhon Grados
Correo electrónico: darkshram en gmail punto com y jgrados en unixmexico punto org
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2014 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

BackupPC es un sistema de respaldos y restauración para entornos Unix/Linux y MS Windows, basado sobre Perl y con una interfaz HTTP potente y relativamente sencilla para su administración. BackupPC funciona a través de los protocolos SMB y SSH+rsync.

Resulta una solución menos robusta que Bacula, pero definitivamente es mucho más sencilla y fácil de administrar, configurar y mantener.

La versión estable más reciente de BackupPC es la 3.1.0 y es la recomendada para sistemas en producción.

URL. http://backuppc.sourceforge.net/.

Instalación del equipamiento lógico necesario.

Fedora 9 en adelante incluye el paquete BackupPC en sus depósitos YUM, por lo que solo es necesario instalarlo desde la terminal a través del mandato yum. El siguiente procedimiento solo es necesario para CentOS 5 y Red Hat Enterprise Linux 5, para 32bit o 64bit.

Instalación en CentOS 5.

Como el usuario root, desde una terminal, crear el archivo /etc/yum.repos.d/AL-Server.repo, utilizando cualquier editor de texto. En el siguiente ejemplo se utiliza vi.

vi /etc/yum.repos.d/AL-Server.repo

Añadir a este nuevo archivo el siguiente contenido:

[AL-Server]
name=AL Server para Enterprise Linux $releasever
mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server
gpgcheck=1
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

Importar la firma digital de Alcance Libre ejecutando lo siguiente desde la terminal:

rpm --import http://www.alcancelibre.org/al/AL-RPM-KEY

Instalar el equipamiento lógico (software) necesario, que consiste en los paquetes RPM de BackupPC, Apache, mod_perl y samba-client:

yum -y install BackupPC httpd mod_perl samba-client

Lo anterior creará automáticamente el usuario backuppc e instalará los archivos necesarios con los permisos correspondientes.

Procedimientos.

Configuración de Apache.

Si es la primera vez que se inicia el servicio httpd (Apache), iniciar éste y agregarlo a los servicios de arranque del sistema:

service httpd start
chkconfig httpd on

Si el servicio httpd ya estaba funcionado antes de los procedimientos descritos en este documento, reiniciar éste:

service httpd restart

La instalación de el paquete BackupPC incluye el archivo /etc/httpd/conf.d/BackupPC.conf. Este viene configurado para solo permitir conexiones hacia la herramienta de administración de BackupPC desde la interfaz de retorno del sistema (loopback, 127.0.0.1). Conviene editar este archivo y definir que se permita el acceso a otros equipos a fin de permitir la administración remota de BackupPC. añada justo después de allow from 127.0.0.1 la dirección IP del equipo desde el cual se realizará la administración de BackupPC o bien la red y máscara de subred (en formato de bits) correspondiente. En el siguiente ejemplo, se permitirá el acceso desde cualquier equipo en 192.168.1.0/24:

<Directory       /usr/share/BackupPC/sbin/>
# BackupPC requires valid authentication in order for the web interface to
# function properly.  One can view the web interface without authentication
# though all functionality is disabled.
# 
# htpasswd -c /etc/BackupPC/apache.users yourusername
# 

order deny,allow
deny from all
allow from 127.0.0.1 192.168.1.0/24
AuthType Basic
AuthUserFile /etc/BackupPC/apache.users
AuthName "BackupPC

require valid-user

</Directory>


Alias           /BackupPC/images        /usr/share/BackupPC/html/
ScriptAlias     /BackupPC               /usr/share/BackupPC/sbin/BackupPC_Admin

Recargue la configuración en el servicio httpd, a fin de que surtan efecto los cambios:

service httpd reload

Configuración de BackupPC.

Se deben asignar los contextos correspondientes para SELinux a fin de que éste permita operar normalmente a BackupPC:

chcon -R -t httpd_sys_content_t /etc/BackupPC
chcon -R -t httpd_sys_script_rw_t /etc/BackupPC/pc

Antes de iniciar el servicio, es importante crear un usuario administrador para la interfaz HTTP. Utilice el mandato htpasswd para cerrar el archivo /etc/BackupPC/apache.users y crear un usuario virtual que realizará las funciones de administrador. En el siguiente ejemplo, se creará el archivo /etc/BackupPC/apache.users y el usuario denominado administrador:

htpasswd -c /etc/BackupPC/apache.users administrador

Lo anterior devolverá un diálogo para asignar la clave de acceso para el usuario denominado administrador, misma que deberá confirmar para continuar.

Utilizando cualquier editor de texto, modifique el archivo /etc/BackupPC/config.pl:

vim /etc/BackupPC/config.pl

De este archivo solo es necesario localizar y modificar los siguientes parámetros:

Considerando como ejemplo que el servidor tiene una dirección IP 192.168.1.1, que hay un DNS en la red local que resuelve esta dirección IP con el nombre servidor.redlocal.net y que se va a utilizar el idioma español para la interfaz HTTP de la herramienta de administración, establezca los siguientes valores para los parámetros mencionados arriba:

$Conf{ServerHost} = 'servidor.redlocal.net';
$Conf{PingMaxMsec} = '100';
$Conf{CgiAdminUsers} = 'administrador';
$Conf{CgiURL} = 'http://servidor.redlocal.net/BackupPC'>;
$Conf{Language} = 'es';

Si se carece en la red local de un servidor DNS que resuelva el nombre servidor.redlocal.net, puede establecerse el valor del parámetro $Conf{CgiURL} como http://dirección-ip-servidor/BackupPC. En el siguiente ejemplo, considerando como ejemplo que el servidor tiene una dirección IP 192.168.1.1, se puede utilizar lo siguiente:

$Conf{ServerHost} = 'servidor.redlocal.net';
$Conf{PingMaxMsec} = '100';
$Conf{CgiAdminUsers} = 'administrador';
$Conf{CgiURL} = 'http://192.168.1.1/BackupPC';
$Conf{Language} = 'es';

Iniciar y agregar a los servicios de arranque del sistema al servicio backuppc:

service backuppc start
chkconfig backuppc on

Ingresar con cualquier navegador hacia http://servidor.redlocal.net/BackupPC o bien http://192.168.1.1/BackupPC y autenticar como el usuario administrador. Hacer clic en Edit hosts (Editar anfitriones) e ingresar algunas direcciones IP de equipos GNU/Linux o Windows a respaldar.

Añadiendo anfitriones para respaldar en BackupPC.
Añadiendo anfitriones para respaldar en BackupPC.

Configuración de los sistemas GNU/Linux a respaldar.

Desde la interfaz de administración de BackupPC, edite la configuración del anfitrión remoto con GNU/Linux a respaldar y confirme que se ha definido como método rsync. Defina también el directorio a respaldar en el equipo remoto.

Configurando anfitrión GNU/Linux para respaldar en BackupPC.
Configurando anfitrión GNU/Linux para respaldar en BackupPC.

Los respaldos se realizan a través de el mandato rsync en combinación con el mandato ssh. Para poder realizar cualquier operación es necesario generar una firma digital (id_dsa.pub), sin clave de acceso, para el usuario backuppc del servidor que hospeda BackupPC, la cual se copia en la cuenta del usuario root del equipo remoto a respaldar, en el archivo ~/.ssh/authorized_keys, archivo que deberá tener permisos de solo lectura para el usuario propietario.

Cambie al usuario backuppc especificando /bin/bash como intérprete de mandatos.

su -s /bin/bash -l backuppc

Genere el directorio ~/.ssh, con permisos de acceso exclusivos para el usuario:

mkdir -m 0700 ~/.ssh/

Genere la firma digital utilizando el siguiente mandato:

ssh-keygen -t dsa

Cuando se solicite una clave de acceso, simplemente pulsar la tecla ENTRAR (ENTER) sin ingresar dato alguno.

Un ejemplo de la salida de lo anterior sería como la siguiente:

Generating public/private dsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/usuario/.ssh/id_dsa.
Your public key has been saved in /home/usuario/.ssh/id_dsa.pub.
The key fingerprint is:
2c:73:30:fe:52:21:a5:82:78:49:57:cd:37:af:36:df usuario@cliente

Cambia los permisos de todos los archivos recién creados a solo lectura y escritura para root:

chmod 600 ~/.ssh/{id_dsa,id_dsa.pub}

Crear en la cuenta del usuario root del equipo remoto a respaldar el directorio ~/.ssh y el archivo ~/.ssh/authorized_keys, con premisos de solo lectura y escritura para root.

ssh root@equipo mkdir -m 0700 ~/.ssh
ssh root@equipo touch ~/.ssh/authorized_keys
ssh root@equipo chmod 600 ~/.ssh/authorized_keys

Copiar el contenido de ~/.ssh/id_dsa.pub dentro del archivo /root/.ssh/authorized_keys de la cuenta del usuario root del equipo a respaldar:

cat ~/.ssh/id_dsa.pub | ssh root@equipo "cat >> /root/.ssh/authorized_keys"

A partir de este punto, solo bastará seleccionar al equipo remoto a respaldar desde la interfaz de administración de BackupPC e iniciar un primer respaldo haciendo clic en el botón Comenzar copia de seguridad completa.

Configuración de los sistemas Windows a respaldar.

El método más simple es realizar los respaldos de BackupPC a través de el protocolo SMB. Ingresar a Windows como administrador y configurar el sistema para compartir carpetas e impresoras. Al terminar, compartir la carpeta a respaldar o bien el disco duro completo (C:).

Desde la interfaz de administración de BackupPC, edite la configuración del anfitrión remoto con Windows a respaldar y defina como método smb. Defina también el nombre del recurso compartido a respaldar en el equipo remoto y el nombre del usuario y clave de acceso del administrador del equipo Windows remoto.

Configurando anfitrión Windows para respaldar en BackupPC.
Configurando anfitrión Windows para respaldar en BackupPC.

A partir de este punto, solo bastará seleccionar al equipo remoto a respaldar desde la interfaz de administración de BackupPC e iniciar un primer respaldo haciendo clic en el botón Comenzar copia de seguridad completa.

El procedimiento resumido de respaldo de carpeta compartida desde Windows, sería el siguiente. Primeramente, comparta desde Windows cualquier carpeta. Defina un usuario y clave de acceso para ésta.

Acceda con cualquier navegador hacia http://servidor/BackupPC/ y acceda como el usuario administrador.

Desde Edit Hosts, añada la dirección IP del equipo a respaldar y defina un usuario. Al terminar, haga clic sobre el botón Save que se localiza en la parte superior de la página.

Agregar un equipo

Especifique el protocolo SMB para realizar los respaldos. Defina el nombre del recurso compartido desde Windows, defina el usuario y clave de acceso. Al terminar, haga clic sobre el botón Save que se localiza en la parte superior de la página.

Configurar protocolo, recurso, usuario y clave de acceso.

Puede definir la frecuencia de los respaldos totales y respaldos incrementales. De modo predeterminado el valor para los respaldos totales es cada 7 días y para los incrementales es cada día. Se recomienda utilizar un valor ligeramente inferior a los días. Por ejemplo, 6.97 se utiliza en lugar de 7 días y 0.97 se utiliza en lugar de 1 día. Esto se hace para mejorar la granularidad del respaldo. Al terminar, haga clic sobre el botón Save que se localiza en la parte superior de la página

Configurar periodicidad.

Al terminar todo lo anterior, puede iniciar el primer respaldo haciendo clic sobre el botón de Comenzar copia de seguridad completa. Si ocurren errores, éstos serán registrados y se mostrará un mensaje en la página principal del equipo. Por lo general los errores más comunes se deben a nombre de usuario incorrecto, clave de acceso incorrecta o nombre de recurso incorrecto.

Página principal del equipo a respaldar.