En este manual te enseñaremos paso a paso a instalar el agente de backup 'Bacula'. Se trata de un aplicativo que permite la comunicación entre tu servidor y nuestro servidor de Backups para poder realizar y programar las copias de seguridad por ti.
Atención: Este manual asume que dispones de conocimientos técnicos necesarios para establecer una conexión SSH o RDP con tu servidor y utilizar comandos propios de Debian, Ubuntu o Windows.
1. Establece una conexión SSH a tu servidor
A lo largo de este manual asumiremos que estás conectado como usuario root
2. Instalación del paquete
Para instalar el paquete necesario ejecuta el siguiente comando:
apt-get install bacula-fd
En el caso de que el sistema te indique que no hay ninguna versión candidata para su instalación, revisa la sección Instalar en Linux mediante repositorios de Bacula.org.
3. Cambia el archivo de configuración
El archivo de configuración está ubicado en /etc/bacula/bacula-fd.conf
Te recomendamos editar el documento con el editor 'nano':
nano /etc/bacula/bacula-fd.conf
Primer bloque "Director":
Aquí definiremos los nombres de los servidores de copias y un password de acceso. Tendrás que informar de este password a nuestros ingenieros para que configuren el demonio "Bacula" en el servidor de copias. Al final del manual, te explicaremos como lo puedes hacer.
Atención: Copia el siguiente bloque tal y como se muestra en el ejemplo. Solo tienes que modificar la palabra $PWD_BACULA por tu propio password alfanumérico de 15 a 30 caracteres
Director {
Name = bacula.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula2.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula3.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula4.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula5.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula6.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculaMadrid.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam1.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam2.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam3.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam4.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam5.dnssw.net-dir
Password = "$PWD_BACULA"
}
Segundo bloque "Director":
Este bloque no es necesario, puedes comentarlo añadiendo un # delante de cada una de las líneas. Tiene que quedar de la siguiente forma:
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
# Director {
# Name = bacula3.dnssw.net-mon
# Password = "GexFhZYo843rTweXJq0RJLQtpyd"
# Monitor = yes
# }
Tercer bloque "File Deamon":
En este bloque tenemos que definir el nombre y la IP del director.
Solo tienes que substituir la palabra $SERVER_NAME por el nombre de host de tu servidor y asegurarte que al final haya concatenado "-fd".
Puedes obtener el server name con el comando: hostname -f
Adicionalmente tienes que substituir la dirección IP del campo FDAddress por la dirección IP de tu servidor.
Atención: Copia el siguiente bloque tal y como se muestra en el ejemplo.
FileDaemon {
Name = $SERVER_NAME-fd
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 0.0.0.0
}
Atención: Es posible que el archivo de configuración ya muestre substituido el campo $SERVER_NAME. No necesariamente es correcto. Por favor, comprueba el nombre real con el comando facilitado.
Cuarto bloque "Messages":
Finalmente, hay que definir el servidor al que se enviarán todos los "logs" del proceso de copia. Solo tienes que dejar la línea "Name = Standard". Puedes comentar la otra añadiendo un # al principio de la línea. Tiene que quedar de la siguiente forma:
Messages {
Name = Standard
# director = cl2018123456-dir = all, !skipped, !restored
}
4. Reinicia el demonio de bacula para aplicar la configuración y comprueba que el servicio esté escuchando en el puerto asignado
Ejecuta los siguientes comandos:
/etc/init.d/bacula-fd restart
netstat -pant | grep 9102
En caso que el servicio "bacula-fd" se esté ejecutando, se te mostrará con el estado "LISTEN"
5. Comunica la contraseña a SW
Escribe un nuevo comentario en tu muro de soporte indicando que deseas comunicarnos la contraseña del Bacula. Para más comodidad, adjuntamos un mensaje de muestra que puedes usar como plantilla:
Hola,
Siguiendo vuestro manual ya he configurado el software bacula para las copias de seguridad
que he contratado. Agradecería si podéis revisar la configuración para que se puedan
realizar las copias a partir de esta noche. Os paso los datos:
Servidor: cl20YYMMDDHHNNN.dnssw.net
IP: 81.25.1XX.YYY
Password del bacula: 12345678901234567890
Muchas gracias,
Saludos
Atención: Modifica los campos de Servidor, IP y Password del bacula por los correspondientes a tu servidor. El Password del bacula es el que hemos definido en el primer bloque
¡Ya está! Una vez realizados estos pasos y habiendo comunicado la contraseña a nuestro equipo de ingeniería, se empezarán a realizar las copias de seguridad sin que debas preocuparte de nada más. Puedes realizar un seguimiento desde tu SWPanel.
En algunos casos, podemos encontrarnos con que bacula-fd
o bacula-client
no disponen de un candidato para su instalación. Por ello, hemos preparado una guía para utilizar los repositorios oficiales de Bacula.
NOTA IMPORTANTE: Las versiones de Debian/Ubuntu que no sean LTS (Long-Term Support) no podrán instalar bacula-fd
o bacula-client
en el momento en que pierdan el soporte oficial.
Podemos encontrar más información en:
Ejemplo de correo:
FROM: Bacula Community project <[email protected]>
SUBJECT: Community binary registration
Community binary registration
Dear <NAME>,
This email confirms you have successfully registered to obtain Bacula community binaries.
Bacula community binaries repositories are available here:
https://www.bacula.org/packages/<ACCESS-KEY>
Thank you for your support of the Bacula project
Best regards
Ejecutamos los siguientes comandos para descargar y configurar la clave de verificación GPG:
cd /tmp
wget https://www.bacula.org/downloads/Bacula-4096-Distribution-Verification-key.asc
gpg --dearmor -o /etc/apt/trusted.gpg.d/bacula.gpg Bacula-4096-Distribution-Verification-key.asc
rm Bacula-4096-Distribution-Verification-key.asc
A continuación, crearemos un archivo de repositorios para Bacula:
nano /etc/apt/sources.list.d/Bacula-Community.list
Agregamos la siguiente línea, sustituyendo los valores indicados:
Debian
# Bacula Community
deb https://www.bacula.org/packages/<ACCESS-KEY>/debs/<BACULA-VERSION> <DEBIAN-VERSION> main
Ubuntu
# Bacula Community
deb [arch=amd64] https://www.bacula.org/packages/<ACCESS-KEY>/debs/<BACULA-VERSION> <UBUNTU-VERSION> main
Ejemplo para Debian 10 (Buster) con Bacula 13.0.4 y clave "abc123defxxxyyy":
# Bacula Community
deb https://www.bacula.org/packages/abc123defxxxyyy/debs/13.0.4 buster main
Ejemplo para Ubuntu 22.04 (Jammy Jellyfish) con Bacula 13.0.4 y clave "abc123defxxxyyy":
# Bacula Community
deb [arch=amd64] https://www.bacula.org/packages/abc123defxxxyyy/debs/13.0.4 jammy main
Actualizamos la lista de paquetes:
apt update
Instalamos el cliente de Bacula:
Para instalar solo el File Daemon (bacula-fd
):
apt install bacula-fd
O bien, instalamos el paquete completo del cliente (bacula-client
):
apt install bacula-client
Verificación:
Finalmente, nos aseguramos de que el servicio esté activo con:
systemctl status bacula-fd
Atención: Debemos asegurarnos de que la versión de Debian/Ubuntu y Bacula sean compatibles. Consultemos la documentación oficial en caso de dudas.
Para más información, consultar la guía de instalación oficial:
1. Establece una conexión RDP a tu servidor
A lo largo de este manual asumiremos que estás conectado como usuario Administrador
2. Descargar el paquete de instalación
En un navegador escribe la URL:
https://www.bacula.org/downloads/Bacula-9.6.7/
En el listado que aparece, descarga la versión "bacula-win64-9.6.7.exe"
Una vez descargado, ejecuta el instalador.
3. Instalación del paquete descargado
Al abrirse el instalador hacemos clic en "Next"
Aceptamos la licencia haciendo clic en "I Agree"
Seleccionamos "Automatic" y hacemos clic en "Next"
Nos aseguramos que el tipo de instalación sea de "Cient" y hacemos clic en "Next"
En la siguiente ventana del instalador hacemos clic en "Install"
Nos aseguramos de DESMARCAR la opción "Save Client template in" y hacemos clic en "Next"
Por último finalizamos el instalador haciendo clic en "Finish"
4. Editamos los archivos de configuración necesarios
El archivo de configuración se encuentra en:
C:\Program Files\Bacula\bacula-fd.conf
Primer Bloque "File Daemon"
En este bloque hay que definir el nombre del director.
Substituye la palabra $FQDN_SERVIDOR por el nombre de host de tu servidor y asegúrate que al final haya concatenado "-fd"
Atención: Es posible que el archivo de configuración ya muestre ese campo por defecto. No necesariamente es correcto. Por favor compruébalo explícitamente, ejecutando el comando "ipconfig /all" en un cmd. Toma los valores "Nombre del host" y "Sufijo DNS Principal" que se te mostrarán
Un ejemplo válido para esta línea de configuración sería: CL2020123456.dnssw.net-fd
FileDaemon {
Name = $FQDN_SERVIDOR-fd # this is me
FDport = 9102 # where we listen for the director
WorkingDirectory = "C:\Program Files\Bacula\working"
Pid Directory = "C:\Program Files\Bacula\working"
#Plugin Directory = "C:\Program Files\Bacula\plugins"
Maximum Concurrent Jobs = 10
}
**Atención: ** Es importante permitir las conexiones a los puertos 9102 y 9103 en el firewall local para la correcta realización de las copias de seguridad
Segundo Bloque "File Daemon"
Aquí definiremos los nombres de los servidores de copias y un password de acceso. Tendrás que informar de este password a nuestros ingenieros para que configuren el demonio "Bacula" en el servidor de copias. Al final del manual te explicaremos como lo puedes hacer.
Por favor, especifica los nombres de servidores tal y como se muestra en el ejemplo y substituye la palabra "$PWD_BACULA" por tu propio password alfanumérico de 15 a 20 caracteres
#
# List Directors who are permitted to contact this File daemon
#
Director {
Name = bacula.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula2.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula3.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula4.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula5.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = bacula6.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculaMadrid.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam1.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam2.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam3.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam4.dnssw.net-dir
Password = "$PWD_BACULA"
}
Director {
Name = baculam5.dnssw.net-dir
Password = "$PWD_BACULA"
}
Tercer bloque "Director"
Este tercer bloque no es necesario en nuestra infraestructura. Por lo que se puede eliminar o comentar
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
#Director {
# Name = bacula3.dnssw.net-mon
# Password = "GexFhZYo843rTweXJq0RJLQtpyd"
# Monitor = yes
#}
Cuarto bloque "Messages"
Finalmente, hay que definir el servidor al que se enviarán los "logs" del proceso de copia.
Por defecto, enviará los logs al servidor que ha iniciado el proceso de "backup". Para ello comentaremos la línea "director = @director_name@ = all, !skipped, !restored " añadiendo un # al inicio de la línea, quedando de la siguiente forma:
# Send all messages except skipped files back to Director
Messages {
Name = Standard
# director = @director_name@ = all, !skipped, !restored
}
5. Reinicia y comprueba que el servicio esté escuchando en el puerto asignado
A continuación, deberás reiniciar el servidor para permitir que se inicie el servicio "bacula-fd" de forma automática.
Una vez reiniciado, puedes verificar que el servicio se está ejecutando, comprobando que el cliente bacula esté escuchando en el puerto que configuramos.
Para ello ejecuta el siguiente comando desde el Símbolo del Sistema (CMD):
netstat -a | find "9102"
En caso que el servicio "bacula-fd" se esté ejecutando, se te mostrará con el estado "LISTENING"
5.1 Si el servicio no se encuentra iniciado
Abre una terminal CMD como "Administrador" y ejecuta los siguientes comandos:
C:\Users\Administrador>cd "C:\Program Files\Bacula"
C:\Program Files\Bacula>.\bacula-fd.exe -c bacula-fd.conf
Si hay algún error, te lo indicará:
C:\Program Files\Bacula>
13-Jun 14:40 bacula-fd: ERROR TERMINATION at lib/lex.c:878
Config error: expected a name, got T_EQUALS: =
: line 90, col 15 of file C:/Program Files/Bacula/bacula-fd.conf
director = = all, !skipped, !restored, !verified
En este caso indica que el error está en la línea 90, y da error porqué no se ha comentado la línea del "director" (cuarto bloque).
Recomendamos revisar la configuración establecida.
6. Comunica la contraseña a SW
Escribe un nuevo comentario en tu muro de soporte indicando que deseas comunicarnos la contraseña del Bacula. Para más comodidad, adjuntamos un mensaje de muestra que puedes usarlo como plantilla:
Hola,
Siguiendo vuestro manual ya he configurado el software bacula para las copias de seguridad
que he contratado. Agradecería si podéis revisar la configuración para que se puedan
realizar las copias a partir de esta noche. Os paso los datos:
Servidor: cl20YYMMDDHHNNN.dnssw.net
IP: 81.25.1XX.YYY
Password del bacula: 12345678901234567890
Muchas gracias,
Saludos
Atención: Modifica los campos de Servidor, IP y Password del bacula por los correspondientes a tu servidor. El Password del bacula es el que hemos definido en el segundo bloque
¡Ya está! Una vez realizados estos pasos y habiendo comunicado la contraseña a nuestro equipo de ingeniería, se empezarán a realizar las copias de seguridad sin que debas preocuparte de nada más. Puedes realizar un seguimiento desde tu SWPanel.