Configuración del Bacula con OpenVPN

Con los valores de VPS y Computación en Nube muy accesibles en estos días, es posible instalar un Bacula remota y configurar un OpenVPN para efectuar directamente la copia de seguridad de los clientes locales detrás de Firewalls y NATs con más facilidad y seguridad.

Para ello vamos a considerar que tenemos un servidor CentOS 7 con una ip fija y con una interfaz tun0 habilitada y con Bacula Enterprise instalado y configurado.

1. En el servidor Bacula, descargue la secuencia de comandos de instalación de VPN y dé permiso de ejecución

wget -c https://www.bacula.lat/wp-content/uploads/2018/08/openvpn-install.txt -O /usr/local/bin/openvpn-install.sh
chmod a+x /usr/local/bin/openvpn-install.sh

Ejecute la secuencia de comandos para iniciar la instalación y dejar las opciones predeterminadas.
La dirección IP debe ser el IP público, ya que es esta dirección que los clientes utilizan para conectarse.

/usr/local/bin/openvpn-install.sh

Welcome to this OpenVPN "road warrior" installer!

I need to ask you a few questions before starting the setup.
You can leave the default options and just press enter if you are ok with them.

First, provide the IPv4 address of the network interface you want OpenVPN
listening to.
IP address: XXX.XXX.XXX.XXX

Which protocol do you want for OpenVPN connections?
1) UDP (recommended)
2) TCP
Protocol [1-2]: 1

What port do you want OpenVPN listening to?
Port: 1194

Okay, that was all I needed. We are ready to set up your OpenVPN server now.
Press any key to continue...

Finished!

Now you need to run the script again to add or remove clients!

2) Ejecutar la secuencia de comandos de nuevo para la creación de los clientes

La mensaje siguiente sólo aparece cuando el servidor OpenVPN está configurado.

Seleccione la opción «1) Add a new user».

Para una estandarización es interesante utilizar el mismo nombre del cliente en el bacula.

Por ejemplo: linux-fd, windows-fd, etc.

* En el nombre del cliente no se deben introducir espacios ni caracteres especiales.

Looks like OpenVPN is already installed.

What do you want to do?
1) Add a new user
2) Revoke an existing user
3) Remove OpenVPN
4) Exit
Select an option [1-4]: 1

Tell me a name for the client certificate.
Please, use one word only, no special characters.
Client name: cliente1-fd

El archivo de configuración del cliente se guardará en: / etc / openvpn / client con el nombre del cliente y la extensión «.ovpn».

Copiar este archivo a la máquina del cliente donde se encuentra FileDaemon instalado.

3) De forma predeterminada, OpenVPN configura el rango de red VPN con la siguiente pista: 10.8.0.0/24 y proporciona las direcciones para los clientes a través de DHCP

El servidor OpenVPN siempre reservará la primera dirección de esta pista para el IP del propio servidor, en el caso 10.8.0.1, y desde el segundo hasta la penúltima dirección estará disponible para los clientes.

Después de configurar el cliente es interesante definir una IP fija para los clientes, ya que con DHCP puede variar y el Bacula no puede conectar. Entonces básicamente el «cliente1-fd» tendrá la dirección 10.8.0.2, «cliente2-fd» la dirección 10.8.0.3 y así sucesivamente.

Cree un archivo dentro del directorio «/etc/openvpn/ccd/» con el mismo nombre del cliente creado anteriormente (sin ninguna extensión) y añada el contenido siguiente:

echo "ifconfig-push 10.8.0.2 255.255.255.0" > /etc/openvpn/ccd/cliente1-fd

Donde «10.8.0.2» es la dirección IP del cliente1. Cambie de acuerdo con el cliente.

4) Instalación y configuración del cliente de Linux

Instalar OpenVPN

Debian/Ubuntu
apt-get install openvpn openssl ca-certificates

CentOS/Red Hat
yum -f install openvpn iptables openssl ca-certificates

Tome el archivo del cliente (cliente1-fd.ovpn) y guarde en /etc/openvpn/ con el nombre «client.conf».

Introduzca los siguientes comandos para habilitar el inicio automático de vpn e iniciar el servicio.

systemctl enable openvpn@client
systemctl start openvpn@client

Si todo ocurre correctamente puede ingresar el comando «ipconfig» o «ip address» que se mostrará una interfaz «tun0».

root@bacula:/# ifonfig
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.8.0.2 netmask 255.255.255.0 destination 10.8.0.10
inet6 fe80::106b:617a:2c2:6e81 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (Não Especificado)
RX packets 29 bytes 2436 (2.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 37 bytes 2820 (2.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

También puede realizar una prueba de ping a la dirección del servidor OpenVPN.

root@bacula:/# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=189 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=187 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=181 ms
64 bytes from 10.8.0.1: icmp_seq=4 ttl=64 time=183 ms

4) Instalación y configuración del cliente de Windows

Acceder a la dirección https://openvpn.net/index.php/download/community-downloads.html y descargar la última versión EXE disponible.

Después de instalar, debe copiar el archivo del cliente (cliente1-fd.ovpn) al directorio «C:Archivos de programaOpenVPNconfig» y acceder a los servicios de Windows «services.msc».

Es para existir 3 servicios OpenVPN:

  • OpenVPNService
  • OpenVPNServiceLegacy
  • OpenVPNServiceInteractive

Haga clic con el botón derecho sobre el primer servicio (OpenVPNService), seleccionar propiedades y cambiar el tipo de inicio a «automático» y también iniciar el servicio.

Con ello, OpenVPN se iniciará automáticamente durante el inicio del sistema y conectarse a la VPN.

6) Configuración del Bacula

Con la VPN configurada tanto en el servidor cuando en los clientes, es necesario cambiar la IP del Storage Daemon del Bacula, a la dirección del Servidor OpenVPN (O crear un nuevo Almacenamiento) y configurar un Client, el Job y un FileSet.

Ejemplo de configuración:

# bacula-sd.conf
Storage {
   Name = "File1"
   Address = 10.8.0.1
   Autochanger = "File1"
   Device = "FileChgr1"
   MaximumConcurrentJobs = 10
   MediaType = "File1"
   Password = "15hMBwwAtL984OA6fEmgCfdrejw3CYlXONKPe/orpcQ6"
   SdPort = 9103
}


Client {
   Name = "client1-fd"
   Address = 10.8.0.2
   AutoPrune = no
   Catalog = "MyCatalog"
   FileRetention = 31536000
   JobRetention = 31536000
   MaximumConcurrentJobs = 5
   Password = "8UswWEjIiXN68yoUtxxIw1tdWygOxxq5t"
}

Job {
   Name = "Backup_Client1"
   Type = "Backup"
   Client = "client1-fd"
   Fileset = "FileSet_Client1"
   JobDefs = "DefaultJob"
   Messages = "Standard"
   Pool = "File"
   Schedule = "WeeklyCycle"
   Storage = "File1"
}

Fileset {
   Name = "FileSet_Client1"
   EnableVss = no
   Include {
      Options {
         Compression = Gzip6
         Signature = Md5
      }
      File = "/usr/sbin/"
   }
}

Con el cliente configurado puede ejecutar un estado de cliente:

[root@bacula]# bconsole
Connecting to Director localhost:9101
1000 OK: 10002 bacula-dir Version: 10.0.2 (30 May 2018)
Enter a period to cancel a command.
*status client=client1-fd
Connecting to Client client1-fd at 10.8.0.2:9102

client1-fd Version: 10.0.2 (30 May 2018) x86_64-pc-linux-gnu-bacula-enterprise debian 9.0
Daemon started 28-jul-18 20:35. Jobs: run=1 running=0.
Heap: heap=266,240 smbytes=4,837,726 max_bytes=5,141,688 bufs=172 max_bufs=213
Sizes: boffset_t=8 size_t=8 debug=0 trace=0 mode=0,2010 bwlimit=0kB/s
Plugin: bpipe-fd.so

Running Jobs:
No Jobs running.
====

Terminated Jobs:
JobId Level Files Bytes Status Finished Name
=======================================================================
*

Y realizar un trabajo de copia de seguridad:

bacula-dir JobId 13: Start Backup JobId 13, Job=Backup_Client1.2018-07-28_19.36.21_37
bacula-dir JobId 13: Using Device "FileChgr1-Dev1" to write.
bacula-dir JobId 13: Created new Volume="Vol-0001", Pool="File", MediaType="File1" in catalog.
bacula-sd JobId 13: Labeled new Volume "Vol-0001" on File device "FileChgr1-Dev1" (/tmp).
bacula-sd JobId 13: Wrote label to prelabeled Volume "Vol-0009" on File device "FileChgr1-Dev1" (/tmp)
bacula-sd JobId 13: Elapsed time=00:17:25, Transfer rate=25.38 K Bytes/second
bacula-sd JobId 13: Sending spooled attrs to the Director. Despooling 30,919 bytes ...
bacula-dir JobId 13: Bacula Enterprise bacula-dir 10.0.2 (30May18):
Build OS: x86_64-redhat-linux-gnu-bacula-enterprise redhat
JobId: 13
Job: Backup_Client1.2018-07-28_19.36.21_37
Backup Level: Full
Client: "client1-fd" 10.0.2 (30May18) x86_64-pc-linux-gnu-bacula-enterprise,debian,9.0
FileSet: "FileSet_Client1" 2018-07-28 19:30:35
Pool: "File" (From Job resource)
Catalog: "MyCatalog" (From Client resource)
Storage: "File1" (From Job resource)
Scheduled time: 28-Jul-2018 19:36:20
Start time: 28-Jul-2018 19:36:28
End time: 28-Jul-2018 19:53:53
Elapsed time: 17 mins 25 secs
Priority: 10
FD Files Written: 150
SD Files Written: 150
FD Bytes Written: 26,510,195 (26.51 MB)
SD Bytes Written: 26,525,714 (26.52 MB)
Rate: 25.4 KB/s
Software Compression: 67.5% 3.1:1
Comm Line Compression: 0.7% 1.0:1
Snapshot/VSS: no
Encryption: no
Accurate: no
Volume name(s): Vol-0001
Volume Session Id: 5
Volume Session Time: 1532387762
Last Volume Bytes: 26,560,522 (26.56 MB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK

Disponível em: esEspañol

Deja una respuesta