baroes backup system auf debian 12 installieren

Requiremnts: root, 2GB RAM, 2 Kerne

Der Director läuft auf einem eigenen Server.
Alle miteinander verbundenen Deamons/Directors kommunizieren mit Port 9101, 9102, 9103 – diese in der Firewall freigeben.

				
					date
sudo timedatectl set-timezone Europe/Berlin
date
				
			
				
					sudo apt-get update && sudo apt upgrade
				
			
				
					apt-get -y install gnupg
				
			

1. Hinzufügen des Bareos Installation Scrips, da es nicht in den offiziellen Debian paketquellen enthalten ist

				
					curl -o add_bareos_repositories.sh https://download.bareos.org/current/Debian_12/add_bareos_repositories.sh

				
			

Ausfühen

				
					sh add_bareos_repositories.sh

				
			
				
					sudo apt-get update
				
			

Weitere Dependencies installieren

				
					sudo apt install postgresql postgresql-contrib bareos bareos-database-postgresql

				
			

Wir landen im Installationsassitenten

wir wählen“Yes“

wir wählen“localhost“ für eine datenbank auf dem selben server, wie wir bareos laufen haben.

wir entscheiden uns für ein Passwort und sagen OK, danach widerholen wir das PW im nächsten Dialog Fenster.

Der Guide schließt und die Installation wird beendet. 

Sobald die Installation abgeschlossen ist, werden die Bareos-Konfigurationen in /etc/bareos/ gespeichert und können wie folgt angezeigt werden.

 

				
					ls /etc/bareos/
				
			

WEB UI installieren

				
					apt-get install bareos-webui
				
			
				
					systemctl reload apache2
				
			

Jetzt starten wir die Services und schauen danach ob sie erfolgreich gestartet sind.

				
					systemctl start bareos-dir
systemctl start bareos-sd
systemctl start bareos-fd
				
			
				
					systemctl status bareos-dir bareos-sd bareos-fd
				
			

Jetzt wollen wir einen Bareos Admin user erstellen. Es gibt mehre wege das zu tun. Ich nehme den Manuellen weg . ohne bconsole und erstelle mit nano folgende datei.

				
					nano /etc/bareos/bareos-dir.d/console/admin.conf
				
			

Wir kopieren folgenden Inhalt in die Datei und speichern. strg+s und strg+x

				
					Console {
  Name = "admin"
  Password = "secret"
  Profile = "webui-admin"
  TlsEnable = false
}
				
			

Jetzt müssen wir alle bareos services nochmal neustarten.

				
					systemctl restart bareos
systemctl restart bareos-sd
systemctl restart bareos-fd
				
			

Unter http://<deine_IP>/bareos-webui ist jetzt dein Webinterface erreichbar.
Nutze die von dir eingetragenen logindaten für den admin account.

bareos Filedemon installieren

Wir müssen die ersten schritte von oben wiederholen, falls es sich um einen neuen/anderen Server handelt, da die das Paket sonst wieder nicht in der Registry enthalten ist.

				
					apt install bareos-filedaemon
				
			

Mit dieser Installation werden mehrere Dateien angelegt:

  • /etc/bareos/bareos-fd.d/client/myself.conf
  • /etc/bareos/bareos-fd.d/director/bareos-dir.conf
  • /etc/bareos/bareos-fd.d/director/bareos-mon.conf
  • /etc/bareos/bareos-fd.d/messages/Standard.conf


Davon müssen wir in zweien das PW des Directors einfügen. Das steht auf dem bareos-director Server in : 

				
					nano /etc/bareos/bareos-dir.d/client/bareos-fd.conf
				
			

Und jetzt das Passwort auf dem File-Deamon Server in folgende Dateien einfügen:

				
					nano /etc/bareos/bareos-fd.d/director/bareos-dir.conf
nano /etc/bareos/bareos-fd.d/director/bareos-mon.conf

				
			

Jetzt den Filedeamon einmal restarten.

				
					service bareos-fd restart
				
			

Setze zusätzlich den namen des neuen Deamons in:

				
					nano /etc/bareos/bareos-fd.d/client/myself.conf
				
			

bareos direcor backup job erstellen

Wir gehen zum Server mit dem Director und nutzen die „bconsole“ – ein inbuild Terminal für Bareos.

				
					bconsole
				
			
				
					configure add job name=bareos-fd-job client=bareos-fd jobdefs=DefaultJob
				
			
				
					*configure add job name=bareos-fd-job client=bareos-fd jobdefs=DefaultJob
Created resource config file "/etc/bareos/bareos-dir.d/job/bareos-fd-job.conf":
Job {
  Name = "bareos-fd-job"
  Client = "bareos-fd"
  JobDefs = "DefaultJob"
}
*
				
			
				
					estimate listing job=bareos-fd-job
				
			

Ein langes Output.

				
					run job=bareos-fd-job

				
			

Dadurch erhältst du eine JobID. In meinem fall 1. Diese brauchen wir im nächsten Schritt.

Für das starten des Jobs yes wählen. 

				
					Run Backup job
JobName:  bareos-fd-job
Level:    Incremental
Client:   bareos-fd
Format:   Native
FileSet:  SelfTest
Pool:     Incremental (From Job IncPool override)
Storage:  File (From Job resource)
When:     2024-02-22 16:00:59
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=1
*
				
			

oder mod

				
					OK to run? (yes/mod/no): mod
Parameters to modify:
 1: Level
 2: Storage
 3: Job
 4: FileSet
 5: Client
 6: Backup Format
 7: When
 8: Priority
 9: Pool
10: Plugin Options
Select parameter to modify (1-10):
				
			
				
					wait jobid=1
				
			

Output:

JobId=1
JobStatus=OK (T)
*

Für Logs des lauferden Jobs nutze folgende befehle: 

				
					list joblog jobid=1
list files jobid=1
list volumes
				
			

Im Frontend sehen wir dass die Jobs erfolgreich angelegt und ggf. auch schon durchgeführt wurden. Wir haben jedoch noch keinen Storage deamon angelegt. Aktuell werden backups auf localhost (directors) unter /var/lib/bareos/storage/gespeichert. Da der Storage deamon mit dem bareos-director mit installiert wurde.

Es ist auch möglich den Storage Deamon auf einem anderen server laufen zu haben oder mehrere SDs zu nutzen.

Diese Jobs beschreiben, welche Dateien oder Verzeichnisse gesichert werden sollen und wie die Sicherung durchgeführt werden soll.

Storage Deamon konfiguration (remote storage via SSH)

Zuerst die Paketquellen Herunterladen (siehe oben) und dann nur den SD installieren.

				
					sudo apt-get install bareos-storage

				
			

Jetzt Konfigurieren wir den SD indem wir definieren wo die Backups gespeichert werden sollen. 

				
					nano /etc/bareos/bareos-sd.d/storage/bareos-sd.conf
				
			
				
					Device {
  Name = MYSERVER_STORAGE
  Media Type = File
  Archive Device = /pfad/zum/speicherort
  LabelMedia = yes
  Random Access = Yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
}
				
			

Auf dem Director müssen wir jetzt die Verbindungsdaten bereitstellen.

				
					nano /etc/bareos/bareos-sd.d/director/bareos-dir.conf
				
			
				
					Storage {
  Name = MYSERVER_STORAGE
  Address = SPEICHERSERVER                # Hostname oder IP-Adresse des Speicherservers
  SDPort = 9103                          # Standard-Port des Storage Daemons
  Password = "geheim"                    # Passwort für die Kommunikation
  Device = MYSERVER_STORAGE
  Media Type = File
}

				
			

Um die Backups auf einem Remote Speicher via SSH zu speichern müssen wir folgende Datei bearbeiten und Zeile 5 bis 12 des folgenden Beispiels zusätzlich Konfigurieren.

				
					Storage {
  Name = bareos-sd
  Maximum Concurrent Jobs = 20

  Password = "DEIN_SSH_PASSWORT"  # Das Passwort für die SSH-Authentifizierung
  Device = "ssh"                  # Verwenden Sie das "ssh" Device
  DeviceOptions = "host=REMOTE_URLoderIP,port=22,user=DEIN_SSH_BENUTZERNAME"  # Konfiguration für SSH-Verbindung
  Media Type = File               # Typ des Medienpools (z.B. File, Tape)
  #Maximum File Size = 50GB        # Maximale Dateigröße pro Backup
  Archive Device = /mnt/backup    # Verzeichnis auf dem Remote-Server, in dem die Backups gespeichert werden sollen
  LabelMedia = yes                # Medien automatisch beschriften
  Random Access = Yes             # Zufälliger Zugriff ermöglichen

  # remove comment from "Plugin Directory" to load plugins from specified directory.
  # if "Plugin Names" is defined, only the specified plugins will be loaded,
  # otherwise all storage plugins (*-sd.so) from the "Plugin Directory".
  #
  # Plugin Directory = "/usr/lib/bareos/plugins"
  # Plugin Names = ""
}
				
			
				
					sudo systemctl restart bareos-director
				
			

Enryption/ Verschlüsselung der Backups sowie Encryption/Entschlüsselung

Kompression

Email Notifications via msmtp

Da die bsmtp pakete auf Debian nicht Standartmäßig installiert sind, nutzen wir msmtp.

				
					sudo apt-get install msmtp

				
			

„NO“ wählen

Jetzt erstellen wir eine Datei:

				
					nano ~/.msmtprc
				
			

Jetzt fügen wir folgenden Inhalt in die Datei ein:

				
					# Set default values for all following accounts.
defaults
port 587
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log

# SMTP-Einstellungen für Ihren externen Mailserver
account your_account
host your_mail_server_address  # Adresse des SMTP-Servers
from your_email@example.com  # Absenderadresse
auth on
user your_username  # Benutzername für die SMTP-Authentifizierung
password your_password  # Passwort für die SMTP-Authentifizierung

# Setzen Sie die Standardkonfiguration für alle E-Mails
account default : your_account

				
			

Jetzt müssen wir die Konfiguration vom bareos- director anpassen und in folgender Datei folgendes Hinzufügen. Hier definieren wir an wen die Emails gesendet werden soll.

				
					nano /etc/bareos/bareos-fd.d/director/bareos-dir.conf
				
			
				
					Messages {
  Name = "EmailNotifications"
  
  # Specify the email address where messages should be sent
  Mail = "your_email@example.com" = all, !skipped, !terminate
  
  # Customize the Mail Command to include authentication credentials
  Mail Command = "/usr/sbin/bsmtp -S -d -t -f \"\(Bareos\) %r\" -h your_mail_server_address -U username -P password -s \"Bareos: %t %e of %c %l\" %r"
}

				
			
				
					sudo systemctl restart bareos-director
				
			

SSL

Monitoring

				
					# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
  Name = client1-mon
  Password = "8BoVwTju2TQlafdHFExRIJmUcHUMoIyIqPJjbvcSO61P"
  Monitor = yes
}