Server-Backup mit OpenSource Bareos

Server backup

Ein aktuelles Backup ist für jeden Benutzer (insbesondere für Unternehmen) extrem wichtig, da niemand vor dem Risiko eines Ausfalls des Datenträgers, des Verlusts von Informationen, des versehentlichen Löschens usw. gefeit ist. In solchen Situationen ist ein Backup die einzige Möglichkeit, Ihre wertvollen Daten wiederherzustellen und kann Ihnen viel Ärger, Zeit, Nerven und Geld ersparen.

Wir haben uns für die beliebte Software Bareos als Backup-System entschieden, weil sie:

  • eine OpenSource-Lösung ist;
  • aktiv weiterentwickelt wird;
  • viele nützliche Funktionen hat;
  • ihre Funktionalität mit Plugins erweitern kann.

Beschreibung der Aufgabe

Nehmen wir zum Beispiel drei Server: Bareos, BitrixVM und Windows Server 2012 R2. In unserem Fall befinden sie sich alle im selben Netzwerk; Bareos ermöglicht es Ihnen, Backups durchzuführen, auch wenn der Rechner offline ist.

Bareos - 172.16.10.10 BitrixVM - 172.16.10.11 Windows Server - 172.16.10.12

Für den Server mit Bareos werden wir CentOS 7 verwenden. Es erfolgt die übliche Installation:

# yum install -y bareos-client bareos-database-tools bareos-filedaemon bareos-database-mysql bareos bareos-bconsole bareos-database-common bareos-storage bareos-director bareos-common

Als Datenbank wird PostgreSQL verwendet. Die Installation ist ebenso einfach:

# yum install -y PostgreSQL-server postgresql-contrib

Bei der Installation von Bareos in /etc/bareos finden wir die folgende Liste von Dateien und Ordnern vor (mit Ausnahme des ssl-Verzeichnisses, zu dem wir etwas später kommen werden):

/bareos-dir.d
/bareos-sd.d
/ssl
bareos-dir.conf
bareos-fd.conf
bareos-sd.conf
bconsole.conf
.rndpwd

Nach der Installation erscheinen vorbereitete Skripte für die Arbeit mit Bareos im Verzeichnis /usr/lib/bareos/scripts/. Mithilfe dieser Skripte können Sie die Datenbank vorkonfigurieren (Datenbank, Tabellen und Berechtigungen erstellen):

su postgres -c /usr/lib/bareos/scripts/create_bareos_database
su postgres -c /usr/lib/bareos/scripts/make_bareos_tables
su postgres -c /usr/lib/bareos/scripts/grant_bareos_privileges

Ein wichtiger Hinweis: Die Namen der Maschinen müssen gelöst sein; falls nicht, fügen Sie die entsprechenden Zeilen in /etc/hosts ein:

172.16.10.10 bareos-server
172.16.10.10 bareos-fd
172.16.10.11 bitrixvm
172.16.10.12 win-fd

bareos-server - der Server selbst, bareos-fd - wir werden auch ein Backup des Servers selbst erstellen, d. h. er wird gleichzeitig als Client fungieren. Später in der Konfiguration wird er sichtbar sein; bitrixvm ist ein Client mit BitrixVM, win-fd ist ein Client mit Windows Server 2012 R2.

Der Serverteil für Bareos (der Director) muss in der Datei bareos-dir.conf konfiguriert werden. Der Director ist für alle durchgeführten Operationen verantwortlich.

Die wichtigsten Direktiven:

**Director** - Beschreibung des Director selbst;
**Storage** - das Gerät, auf das wir Backups schreiben;
**Catalog** - enthält Informationen über abgeschlossene Aufträge gespeicherte Dateien, Clients und Status;
**Messages** - welche Nachrichten gesammelt werden und wie sie zugestellt werden sollen;
**Console** - Einrichten der Konsole für die Verwaltung des Director;
**Client** - Beschreibung des Clients, von dem die Backups erstellt werden sollen;
**Pool** - ermöglicht die Verwaltung des Volumens, auf das die Daten für die verschiedenen Backup-Typen (Full Backups, Inkrementelle Backups, Differentielle Backups) geschrieben werden, die Begrenzung der Speicherdauer des Volumens und die Größen;
**FileSet** - bestimmt, welche Daten gesichert werden sollen, sowie zusätzliche Attribute; Schedule - Zeitplan;
**Job** - Beschreibung des Backup-Tasks.

Das Schema der Interaktion zwischen den Diensten sieht wie folgt aus (aus der offiziellen Bareos-Dokumentation): Server backup

Inhalt der Datei bareos-dir.conf:

Director {
# Erforderlicher Parameter für den Namen des Direktors
Name = bareos-server
# Erforderlicher Parameter für Abfragedateien
QueryFile="/usr/lib/bareos/scripts/query.sql"
# Anzahl der gleichzeitig ausgeführten Aufträge
Maximum Concurrent Jobs = 10
# Passwort (normalerweise werden 20-40 Zeichen verwendet, für den Test beschränken wir uns auf 9 Zeichen)
Password = "zcx@#$BGj"
# Festlegung der Benachrichtigungen, die verwendet werden sollen (die Message directive wird weiter unten beschrieben)
Messages = standard
# TLS-Verschlüsselung. Wird als nächstes beschrieben.
# TLS aktiviert
TLS Enable=yes
TLS Require = yes

TLS Verify Peer = yes
# Erlaubte CNs
TLS Allowed CN="bareos-server"
TLS Allowed CN="bitrixvm"
TLS Allowed CN="win-fd"
# Speicherort des CA-Zertifikats
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
# Speicherort des Zertifikats TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
# Speicherort des Schlüssels für das Zertifikat TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Storage {
Name=bareos-server-sd
# Sie können sowohl die IP als auch den Namen angeben. Damit TLS korrekt funktioniert, ist es wichtig, den #name anzugeben
Address = bareos-server
Password = "zcx@#$BGj"
# Gibt einen Namen für das Gerät an, auf dem die Daten gespeichert werden sollen. Die Geräteoptionen werden in der Datei bareos-sd.conf festgelegt
Device=bareos-sd
Media Type = File
port=9103
TLS Enable=yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Catalog {
# Setzen Sie alle Parameter für die Verbindung zur Datenbank fest
Name = bareos-server
dbdriver="postgresql"
dbname="bareos"
dbuser="bareos"
dbpassword=""
}

messages {
# Beschreibt die Arten von Nachrichten, die gesendet und protokolliert werden sollen
Name = Standard
mail = root@localhost = all, !skipped, !audit
console = all, !skipped, !saved, !audit
append = "/var/log/bareos/bareos.log" = all, !skipped, !audit
append = "/var/log/bareos/bareos-audit.log" = audit
}

client {
# Client-Name für das Backup
Name=bareos-fd
# Verzeichnisname
Catalog = bareos-server
enabled = yes
# Adresse, nach Name festgelegt
Address = bareos-server
Password = "zcx@#$BGj"
port=9102
# TLS-Parameter werden später beschrieben
TLS Enable=yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Pool {
# Poolname für Vollsicherung
Name = bareos-pool -Full
# Fügt automatisch eine Bezeichnung wie "bareos-client-Full-" + Nummer des #Volume zur Sicherungsdatei hinzu.
# Der endgültige Name des Volumes nach der nächsten Sicherung sieht beispielsweise so aus: bareos-client-# Full-0009
Label Format="bareos-client-Full-"
# Pool-Typ. Laut der offiziellen Dokumentation von BareOS ist derzeit nur der Typ Backup implementiert
Pool Type = Backup
# Volume für ein Full-Backup wird 3 Monate lang aufbewahrt
Volume Retention = 3 months
# Danach wird das Verzeichnis von veralteten Daten bereinigt
AutoPrune = yes
# Volume wird überschrieben
Recycle = yes
}

Pool {
# Poolname für inkrementelles Backup
Name = bareos-pool-incremental
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 10 days
Label Format="bareos-client-Incremental-"
}

Pool {
# Poolname für differenzielles Backup
Name=bareos-pool-Differential
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 11 days
Label Format="bareos-client-Differential-"
}

FileSet {
# Legen Sie einen Namen für eine Gruppe von Dateien fest
Name=bareos-fileset
# In Include geben wir an, welche Dateien gespeichert werden sollen. In diesem Fall der Ordner
/etc
include {
File="/etc"
}
}

Schedule {
# Name des Zeitplans
Name="MonthlyCycle"
# Einmal pro Woche eine Vollsicherung durchführen
Run = Level = Full mon at 2:00
# Tagsüber stündlich 5 inkrementelle Backups
Run = Level= Incremental hourly at 13:00
Run = Level = Incremental hourly at 14:00
Run = Level = Incremental hourly at 15:00
Run = Level = Incremental hourly at 16:00
Run = Level = Incremental hourly at 17:00
}

job {
# Name für den Auftrag
Name = Job-Full
# Sein Typ. Kann Backup oder Wiederherstellung sein
Type = Backup
# Backup-Level. Vollständig, differenziell oder inkrementell
Level = Incremental
# Für welchen Client der Auftrag ausgeführt werden soll
Client=bareos-fd
# Gruppe von Dateien
FileSet = bareos-fileset
# Zeitplan
Schedule = "Monthly Cycle"
# Name des verwendeten Speichers
Storage=bareos-server-sd
# Warnungen
Messages = standard
# Verwendeter Pool
Pool = bareos-pool-Full
Full Backup Pool = bareos-pool -Full
Differential Backup Pool = bareos-pool-Differential
Incremental Backup Pool = bareos-pool-Incremental
}

job {
Name = Job-Full-restore
Type = Restore
Client=bareos-fd
FileSet="bareos-fileset"
Storage=bareos-server-sd
Pool = bareos-pool-Full
Messages = standard
# Geben Sie den Pfad an, in den alle Dateien bei der Wiederherstellung gespeichert werden sollen.
Where=/tmp
}
# Fügen Sie separate Konfigurationsdateien für die beiden anderen Clients hinzu.
@/etc/bareos/bareos-dir.d/win.conf
@/etc/bareos/bareos-dir.d/bitrixvm.conf

Es ist wichtig, dass die Konfigurationen übereinstimmen: Server backup

Als nächstes konfigurieren Sie den Speicher in bareos-sd.conf:

Storage {
# Name
Name=bareos-server-sd
# Maximale Anzahl von gleichzeitig ausgeführten Aufträgen
Maximum Concurrent Jobs = 20
# Adresse, mit Namen angeben
SDAddress = bareos-server
SDPort = 9103
TLS Enable=yes
TLS Require = yes
TLS Verify Peer = no
TLS Allowed CN="bareos-server"
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Director {
# Beschreiben Sie die Parameter des Director, der eine Verbindung zum Storage herstellen kann
Name = bareos-server
Password = "zcx@#$BGj"
TLS Enable=yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN="bareos-server"
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

device {
# Beschreiben Sie das Speichergerät selbst
Name=bareos-sd
Media Type = File
# Pfad zum Gerät
Archive Device = /opt/backup
# Automatische Partitionierung des Datenträgers zulassen
LabelMedia = yes
# Für den gleichzeitigen Zugriff bei der Ausführung mehrerer Aufgaben zur gleichen Zeit
Random Access = yes
# Gerät automatisch mounten
Automatic Mount = yes
RemovableMedia=no
AlwaysOpen = no
}

messages {
Name = Standard
director=bareos-server=all
}
Bareos-fd.conf client configuration:

Director {
# Parameter für die Verbindung zum Director
Name = bareos-server
Password = "zcx@#$BGj"
TLS Enable=yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN="bareos-server"
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

FileDaemon {
# FileDaemon ist ein Synonym für Client
Name=bareos-fd
Maximum Concurrent Jobs = 20
# Deaktiviert die Kompatibilität mit Bacula. In diesem Fall sind alle #bareos-Funktionen, die standardmäßig aktiviert sind, aktiviert.
Compatible = no
TLS Enable=yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem

}

messages {
Name = Standard
director=bareos-server=all
}

Nach dem Festlegen der Grundeinstellungen müssen Sie die bareos-Dienste neu starten:

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

Im Falle von Fehlern sehen wir uns den Status mit dem folgenden Befehl an:

systemctl status bareos-dir.service -l

Fahren wir mit der Installation des Bareos-Client-Plugins für Windows fort. Es kann hier heruntergeladen werden.

Die Installation des Plugins ist ebenso einfach. Aus der Liste der vorgeschlagenen Komponenten wählen wir nur die beiden im Screenshot angezeigten aus: Dann legen wir einen Namen für den Client fest und geben die Parameter eines vorhandenen Director an: Server backup

Server backup

Wir notieren die folgenden Daten:

Client Name - win-fd
Director Name - bareos-server
Password - zcx@#$BGj
Networks Address-bareos-server
Die eingegebenen Einstellungen können jederzeit korrigiert werden, die Standardkonfigurationsdatei befindet sich in: "C:\Program Data\Bareos\bareos-fd.conf". In der Host-Datei geben wir auch die IP für den BareOS-Server an, damit der Name aufgelöst wird. Auf der Serverseite (bareos-server) sieht die Konfiguration für den Client (win-fd) wie folgt aus und befindet sich unter dem Pfad /etc/bareos/bareos-dir.d/win.conf:
client {
Name = win-fd
Address = win-fd
Password = "zcx@#$BGj"
TLS Enable=yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Pool {
Name=win-bareos-pool-Full
Auto Prune = yes
Label Format="bareos-client-Full-"
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 3 months
}

Pool {
Name=win-bareos-pool-Differential
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 11 days
Label Format="win-bareos-client-Differential-"
}

Pool {
Name=win-bareos-pool-incremental
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 10 days
Label Format="win-bareos-client-Incremental-"
}

FileSet {
Name=bareos-fileset-win
include {
File = "C:\\Users\\"
}
}

job {
Name = Job-win-Full
Type = Backup
Level = Incremental
Client=win-fd
FileSet=bareos-fileset-win
Schedule = "Monthly Cycle"
Storage=bareos-server-sd
Messages = standard
pool=win-bareos-pool-incremental
Full Backup Pool = win-bareos-pool-Full
Differential Backup Pool = win-bareos-pool-Differential
Incremental Backup Pool = bareos-pool-Incremental
}

job {
Name = Job-win-Full-restore
Type = Restore
Client=win-fd
FileSet="bareos-fileset-win"
Storage=bareos-server-sd
Pool=win-bareos-pool-Full
Messages = standard
Where = "C:/tmp"
}

Aus der FileSet-Direktive geht hervor, dass bei dem Task Job-win-Full der Benutzerordner C:\Users kopiert und bei dem Task Job-win-Full-restore bei Bedarf im Ordner C:\tmp wiederhergestellt wird.

Es bleibt noch ein weiterer Client übrig (bitrixvm), für den Sie das Stammverzeichnis und in einem separaten Task die MySQL-Datenbank kopieren müssen.

Gehen wir nun zur bitrixvm-Maschine und installieren den Client:yum install -y bareos-client bareos-common

Wechseln wir in das Verzeichnis /etc/bareos

/bareos-dir.d
/bareos-fd.d
/bconsole.conf
/ssl
.rndpwd
tray-monitor.d

Um den Client zu konfigurieren, gehen Sie in das Verzeichnis /bareos-fd.d

/client
/director
/messages

Standardmäßig ist die Konfiguration nach der Installation in die drei oben gezeigten Verzeichnisse verteilt. Der Einfachheit halber werden wir die Teilkonfigurationen in die Verzeichnisse director und messages übertragen und alle Einstellungen in /client/myself.conf vornehmen.

client {
Name = bitrixvm
Maximum Concurrent Jobs = 20
TLS Enable=yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bitrixvm.cert.pem
TLS Key = /etc/bareos/ssl/bitrixvm.nopass.key.pem
compatible = no
}

Director {
Name = bareos-server
Password = "zcx@#$BGj"
TLS Enable=yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN="bareos-server"
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bitrixvm.cert.pem
TLS Key = /etc/bareos/ssl/bitrixvm.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

messages {
Name = Standard
Director = bareos-server = all, !skipped, !restored
Description = "Send relevant messages to the Director."
}

Geben Sie die Parameter ein und starten Sie den Dienst neu:

**/etc/init.d/bareos-fd restart**

Wir registrieren in hosts die Adresse für den bareos-server.

Auf der Serverseite (bareos-server) sieht die Konfiguration für den Client (bitrixvm) wie folgt aus und befindet sich in /etc/bareos/bareos-dir.d/bitrixvm.conf:

client {
Name = bitrixvm
Address = bitrixvm
Password = "zcx@#$BGj"
TLS Enable=yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem

}

Pool {
Name = bitrixvm-bareos-pool-Full
Label Format = "bitrixvm-bareos-client-Full-"
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 3 months
}

Pool {
Name = bitrixvm-bareos-pool-Differential
Pool Type = Backup
Label Format="bitrixvm-bareos-client-Differential-"
AutoPrune = yes
Recycle = yes
Select Job resource (1-6): = 11 days
}

Pool {
Name = bitrixvm-bareos-pool-incremental
Pool Type = Backup
Label Format = "bitrixvm-bareos-client-Incremental-"
AutoPrune = yes
Recycle = yes
Volume Retention = 10 days
}

job {
Name = Job-bitrixvm-mysql
Type = Backup
Level = Full
Client=bitrixvm
FileSet = bareos-fileset-bitrixvm-mysql
Schedule = "Monthly Cycle"
Storage=bareos-server-sd
Messages = standard
Pool = bitrixvm-bareos-pool-incremental
Full Backup Pool = bitrixvm-bareos-pool-Full
Differential Backup Pool = bitrixvm-bareos-pool-Differential
Incremental Backup Pool = bitrixvm-bareos-pool-Incremental

RunScript {
# Führt das in diesem Abschnitt beschriebene Skript aus, bevor die Sicherung durchgeführt wird.
RunsWhen = Before
# Führt das Skript aus, wenn der Task (Job) nicht erfolgreich abgeschlossen wird
RunsOnFailure = Yes
RunsOnClient = Yes
#
# Der Befehl für das Skript
Command = "sh -c 'mysqldump -uroot -ppassword --opt --all-databases > /tmp/dump.sql'"
}
}

job {
Name = Job-bitrixvm-Full
Type = Backup
Level = Full
Client=bitrixvm
FileSet = bareos-fileset-bitrixvm
Schedule = "Monthly Cycle"
Storage=bareos-server-sd
Messages = standard
Pool = bitrixvm-bareos-pool-incremental
Full Backup Pool = bitrixvm-bareos-pool-Full
Differential Backup Pool = bitrixvm-bareos-pool-Differential
Incremental Backup Pool = bitrixvm-bareos-pool-Incremental
}

FileSet {
Name = bareos-fileset-bitrixvm
include {
Options {
compression = GZIP
}
File="/"
}
}

FileSet {
Name = bareos-fileset-bitrixvm-mysql
include {
Options {
# Festlegen der Art der Komprimierung
compression = GZIP
signature = MD5
}
File="/tmp/dump.sql"
}
}

job {
Name = Job-bitrixvm-mysql-restore
Type = Restore
Client=bitrixvm
FileSet="bareos-fileset-bitrixvm-mysql"
Storage=bareos-server-sd
Pool = bitrixvm-bareos-pool-Full
Messages = standard
Where=/tmp
}

job {
Name = Job-bitrixvm-Full-restore
Type = Restore
Client=bitrixvm
FileSet="bareos-fileset-bitrixvm"
Storage=bareos-server-sd
Pool = bitrixvm-bareos-pool-Full
Messages = standard
Where=/tmp
}

In der Sektion RunScript des Command-Parameters führen wir den Befehl mysqldump aus und übertragen alle erforderlichen Parameter "mysqldump -uroot -ppassword -opt -all-databases > /tmp/dump.sql".

Die gespeicherte Datei dump.sql wird dann wie für das FileSet namens "bareos-fileset-bitrixvm-mysql" angegeben gesichert.

Bareos verwendet das TLS-Protokoll zur Verschlüsselung der Datenübertragung. Für jeden Client und den Director müssen wir ein CA-Zertifikat, ein Zertifikat und einen Schlüssel haben. Wir werden selbstsignierte Zertifikate verwenden. All dies kann mit openssl durchgeführt werden.

Folgen wir dem Pfad der openssl-Konfigurationsdatei /etc/pki/tls/openssl.cnf

Erzeugen eines CA-Zertifikats:

#openssl req -config openssl.cnf -new -x509 -extensions v3_ca -keyout private/myca.key -out certs/myca.crt

Nach Eingabe des Passworts und anderer Daten erhalten wir zwei Dateien:

/etc/pki/CA/private/myca.key

/etc/pki/CA/certs/myca.crt

Korrigieren/überprüfen wir die openssl.cnf-setting Datei, damit die Pfade zu den Zertifikaten korrekt angegeben sind.

Sie müssen auch die Dateien index.txt und serial im Ordner /etc/pki/CA erstellen:

touch /etc/pki/CA/index.txt

In die serielle Datei geben wir gleich den Wert "01" ein. Die Datei wird die folgende Nummer für das folgende Zertifikat enthalten:

echo '01' > /etc/pki/CA/serial

Inhalt von openssl.cnf:

dir=/etc/pki/CA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
#unique_subject = no

new_certs_dir = $dir/newcerts

certificate = $dir/certs/myca.crt
serial = $dir/serial
crlnumber = $dir/crlnumber

crl = $dir/crl.pem
private_key = $dir/private/myca.key
RANDFILE = $dir/private/.rand

x509_extensions = usr_cert

Wir generieren einen Schlüssel für den Server. Sie müssen ein Passwort eingeben.

openssl genrsa -aes256 -out bareos-server.key.pem 4096

Wir generieren eine Zertifikatsanforderung. Wichtig: Bei der Erstellung eines Zertifikats müssen Sie an dieser Stelle den Common Name (CN) korrekt angeben, damit er mit dem Namen der Maschine übereinstimmt. Andernfalls treten Fehler auf, wenn Sie versuchen, einen Task auszuführen. In diesem Beispiel ist der CN = bareos-server

openssl req -config openssl.cnf -key bareos-server.key.pem -new -sha256 -out bareos-server.csr.pem

Wir signieren die CSR durch die CA und erhalten das Zertifikat.

openssl ca -config openssl.cnf -in bareos-server.csr.pem -out bareos-server.cert.pem

Wir entfernen das Passwort für den Schlüssel, da bareos kein Passwort benötigt.

openssl rsa -in bareos-server.key.pem -out bareos-server.nopass.key.pem

CA-Schlüssel und Zertifikat werden in eine Datei mit PEM-Erweiterung umgewandelt.

cat /etc/pki/CA/private/myca.key /etc/pki/CA/certs/myca.cert > ca-chain.cert.pem

Erzeugen eines DH-Schlüssels

openssl dhparam -out dh1024.pem -5 1024

Kopieren Sie die Zertifikate bareos-server.cert.pem bareos-server.nopass.key.pem ca-chain.cert.pem dh1024.pem in den Ordner /etc/bareos/ssl, den Sie zuerst erstellen und die bareos-Gruppe installieren müssen.

Ändern Sie für jedes Zertifikat die Gruppe in bareos.

chgrp bareos*

Ähnliche Aktionen müssen für jeden Client (bitrixvm, win-fd) durchgeführt werden:

openssl genrsa -aes256 -out bitrixvm.key.pem 4096
openssl req -config openssl.cnf -key bitrixvm.key.pem -new -sha256 -out bitrixvm.csr.pem
openssl ca -config openssl.cnf -in bitrixvm.csr.pem -out bitrixvm.cert.pem
openssl rsa -in bitrixvm.key.pem -out bitrixvm.nopass.key.pem

Kopieren Sie mit SCP die 4 Dateien bitrixvm.cert.pem bitrixvm.nopass.key.pem ca-chain.cert.pem dh1024.pem auf den bitrixvm-Remote-Rechner in den Ordner /etc/bareos/ssl, den Sie zuvor erstellen und die bareos-Gruppe als für Ordner und für Zertifikate festlegen müssen.

In der bitrixvm-Client-Konfiguration (/etc/bareos/bareos-fd.d/client/myself.conf) müssen im Abschnitt Director {} die Client-Zertifikate, aber nicht die Director-Zertifikate angegeben werden. In der serverseitigen Konfiguration (/etc/bareos/bareos-dir.d/bitrixvm.conf) werden die Zertifikate des Directors im Abschnitt Client {} angegeben. Starten Sie nach den Konfigurationsänderungen die Dienste neu.

Die Erstellung von Zertifikaten für den win-fd-Rechner ist identisch.

Sie müssen außerdem Zertifikate für bconsole registrieren – ein Dienstprogramm, mit dem Sie den Director in der Datei /etc/bareos/bconsole.conf verwalten können:

Director {
Name = bareos-server
DIRport = 9101
address = bareos-server
Password="mmm_777"
TLS Enable=yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN="bareos-server"
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Das Verfahren für Backups oder Wiederherstellungen ist wie folgt. Verwenden wir das Dienstprogramm bconsole, sehen wir: * run (zeigt alle möglichen Tasks an):

*run
A job name must be specified.
The defined Job resources are:
1: Job-Full
2: Job-Full-restore
3: Job-bitrixvm-mysql
4: Job-bitrixvm-Full
5: Job-bitrixvm-mysql-restore
6: Job-bitrixvm-Full-restore
Select Job resource (1-6): 3

Run backup job
JobName: Job-bitrixvm-mysql
Level: Full
Client: bitrixvm
Format: Native
FileSet: bareos-fileset-bitrixvm-mysql
Pool: bitrixvm-bareos-pool-Full (From Job FullPool override)
Storage: bareos-server-sd (From Job resource)
When: 2016-10-16 11:05:16
Priority: 10
OK to run? (yes/mod/no):
# Die Aufgabe, die noch ausgeführt werden soll, erhält JobId
Job queued. JobId=75

Das Ergebnis der Befehlsausführung kann wahlweise über den Nachrichtenbefehl angezeigt werden. Als Antwort erhalten wir etwa Folgendes:

16-Oct 11:05 bareos-server-sd JobId 75: Volume "bitrixvm-bareos-client-Full-0011" previously written, moving to end of data.
16-Oct 11:05 bareos-server-sd JobId 75: Ready to append to end of Volume "bitrixvm-bareos-client-Full-0011" size=2086097429
16-Oct 11:05 bareos-server-sd JobId 75: Elapsed time=00:00:01, Transfer rate=319.2 K Bytes/second
16-Oct 11:05 bareos-server JobId 75: Bareos bareos-server 15.2.2 (16Nov15):
Build OS: x86_64-redhat-linux-gnu redhat CentOS Linux release 7.0.1406 (Core)
JobId: 75
Job: Job-bitrixvm-mysql.2016-10-16_11.05.38_07
Backup Level: Full
Client: "bitrixvm" 16.3.1 (01Jul16) x86_64-redhat-linux-gnu,redhat,CentOS release 6.6 (Final),CentOS_6,x86_64
FileSet: "bareos-fileset-bitrixvm-mysql" 2016-10-14 04:57:40
Pool: "bitrixvm-bareos-pool-Full" (From Job FullPool override)
Catalog: "bareos-server" (From Client resource)
Storage: "bareos-server-sd" (From Job resource)
Scheduled time: 16-Oct-2016 11:05:16
Start time: 16-Oct-2016 11:05:42
End time: 16-Oct-2016 11:05:42
Elapsed time: 0 secs
Priority: 10
FD Files Written: 1
SD Files Written: 1
FD Bytes Written: 319,187 (319.1 KB)
SD Bytes Written: 319,285 (319.2 KB)
Rate: 0.0 KB/s
Software Compression: 71.0% (gzip)
VSS: no
Encryption: no
Accurate: no
Volume name(s): bitrixvm-bareos-client-Full-0011
Volume Session Id: 3
Volume Session Time: 1476554202
Last Volume Bytes: 2,086,417,588 (2.086 GB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK

Oder über den Befehl status dir

Terminated jobs:
JobId Level Files Bytes Status Finished Name
================================================= ==================
72 Full 0 0 Error 15-Oct-16 13:39 Job-bitrixvm-Full
73 Full 49,442 515.4 M OK 15-Oct-16 14:03 Job-bitrixvm-Full
74 Incr 20 36.81 K OK 16-Oct-16 02:01 Job-Full
75 Full 1 319.1 K OK 16-Oct-16 11:05 Job-bitrixvm-mysql

Hier in der Spalte "Status" können Sie den Status des Backups einsehen. Auftrag Nummer 75 war erfolgreich.

Die Wiederherstellung erfolgt mit dem restore Befehl

*restore

Danach wird eine Liste mit allen verfügbaren Optionen angezeigt:

To select the JobIds, you have the following choices:

1: List the last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter a list of comma-separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Custom Server

Custom Server

Erstellen Sie Ihren eigenen leistungsstarken benutzerdefinierten Server

Zum Konfigurator

Schauen wir uns eine Liste der letzten 20 Aufgaben an: Server backup

Drücken Sie 3 und geben Sie die JobID-Nummer an, zum Beispiel 75. Danach gelangen wir automatisch in die Konsole, um die Dateien auszuwählen, die wir wiederherstellen wollen:

cwd is: /
$

Eine Liste aller verfügbaren Befehle kann mit dem Befehl help angezeigt werden. Wir prüfen, welche Dateien in diesem Backup vorhanden sind und markieren die benötigten Dateien mit dem Befehl mark durch Angabe von Dateien oder durch *, wodurch wir alle auswählen. Nach Fertigstellung führen wir den Befehl done aus, woraufhin der Dialog mit dem System beginnt.

$ls
tmp/
$ cd tmp/
cwd is: /tmp/
$ls
dump.sql
$ mark*
1 file marked.
$done

The job will require the following Volume(s) Storage(s) SD Device(s) ================================================= =========================

bitrixvm-bareos-client-Full-0011 bareos-server-sd bareos-sd

Volumes marked with "*" are online.

1 file was selected to be restored.

Wählen Sie die benötigte Wiederherstellungsaufgabe aus (Punkt 2)

The defined Restore Job resources are: 1: Job-Full-restore 2: Job-bitrixvm-mysql-restore 3: Job-bitrixvm-Full-restore Select Restore Job (1-3): 2

Geben Sie den Client an, für den wir die Wiederherstellung durchführen (2)

Defined Clients: 1: bareos-fd 2: bitrixvm 3: win-fd Select the Client (1-3): 2

Using Catalog "bareos-server" Run Restore job JobName: Job-bitrixvm-mysql-restore Bootstrap: /var/lib/bareos/bareos-server.restore.1.bsr Where: /tmp Replace: Always FileSet: bareos-fileset-bitrixvm-mysql Backup Client: bitrixvm Restore Client: bitrixvm Format: Native Storage: bareos-server-sd When: 2016-10-16 11:26:54 Catalog: bareos-server Priority: 10 Plugin Options: None OK to run? (yes/mod/no): yes

Wir bestätigen die Aufgabe mit yes. Mit dem Befehl mod können Sie die Wiederherstellungsoptionen vor dem Start bearbeiten, einschließlich der Änderung des Wiederherstellungsverzeichnisses. Als nächstes wird der Aufgabe eine JobId zugewiesen.

job queued. JobId=76

Mit dem Befehl status dir können Sie den Wiederherstellungsstatus einsehen. Wie Sie sehen können, ist alles gut gelaufen. Danach können Sie zum Remote-Client gehen, und im Ordner /tmp finden wir die wiederhergestellte Datei dump.sql.

76 1 1.100 M OK 16-Oct-16 11:27 Job-bitrixvm-mysql-restore

Zusammenfassend lässt sich sagen, dass Bareos sich aktiv weiterentwickelt und über viele nützliche Funktionen verfügt, die den Rahmen dieses Artikels sprengen würden. Auch das Vorhandensein von Plugins, die die Funktionalität erweitern können, macht einen positiven Eindruck (MS SQL-Backup, Plugins für die Speicherung von Daten auf Ceph, Gluster, LDAP-Backup).

Stichworten:

#server

Hat dir der Artikel gefallen?

Cookie-Zustimmung

Indem Sie auf «Ich stimme zu» klicken, stimmen Sie der Verwendung von Cookies auf unserer Website zu. Die Verwendung dieser Cookies dient der Optimierung Ihrer Nutzererfahrung, indem u. a. Präferenzen für kommende Besuche auf unserer Website gespeichert werden. Sie können unter «Cookies verwalten» detaillierte Einstellungen vornehmen und Ihre Cookie-Auswahl anpassen. Mehr dazu

Cookie-Einstellungen

funktional

Funktionale bzw. notwendige Cookies sind für die Grundfunktionen der Website von entscheidender Bedeutung und die Website funktioniert ohne sie nicht wie vorgesehen.

analyse

Analytische Cookies werden verwendet, um zu verstehen, wie Besucher mit der Website interagieren.

werbung

Werbe-Cookies werden verwendet, um Besuchern relevante Anzeigen und Angebote bereitzustellen.