01 · Konzept
Warum zwei Backup-Dateien?
RouterOS kann zwei unterschiedliche Sicherungen erzeugen. Die .backup-Datei ist für eine schnelle Wiederherstellung gedacht, kann aber von Hardware und RouterOS-Version abhängen. Der .rsc-Export ist lesbar, vergleichbar und bei einer manuellen Rekonstruktion hilfreich. Erst beide Dateien zusammen ergeben eine belastbare Sicherung.
Ein Backup ist erst belastbar, wenn eine Wiederherstellung getestet wurde. Das Vorhandensein einer Datei allein ist kein Wiederherstellungsnachweis.
Trennung der Berechtigungen
- Der Router kennt nur den Mailserver, nicht den Archivserver.
- Der Mailserver besitzt einen eigenen SSH-Key nur für die Backup-Zustellung.
- Der Archivbenutzer erhält keine Shell und keine administrativen Rechte.
- Der Router löscht temporäre Dateien erst nach bestätigtem Mailversand.
- Das Archiv veröffentlicht erst vollständig geschriebene und geprüfte Snapshots.
02 · Netzbetrieb
HAMNET oder Internet?
Die Archivlogik bleibt gleich, aber der Weg zum Mailserver folgt unterschiedlichen Regeln. Die Varianten dürfen deshalb nicht vermischt werden.
Unverschlüsseltes SMTP
- Port
- 25
- TLS
- nein
- Authentisierung
- Quellnetz
Mailprotokolle bleiben im HAMNET unverschlüsselt. Der Mailserver nimmt Backups nur aus festgelegten HAMNET-Quellnetzen an.
SMTP Submission mit TLS
- Port
- 587
- TLS
- ja
- Authentisierung
- SMTP-Konto
Über das Internet werden TLS, Serverzertifikat und ein ausschließlich für Backups vorgesehenes SMTP-Konto benötigt.
Die Weiterleitung vom Mailserver zum Archiv erfolgt in beiden Varianten per SSH mit geprüftem Hostkey und eingeschränktem Forced Command.
03 · Arbeitsmaterial
Neutrale Beispielskripte
Die Dateien verwenden Platzhalter statt standortspezifischer Namen oder Zugangsdaten. Die Python-Programme benötigen keine zusätzlichen Pakete.
04 · Linux
Archivserver vorbereiten
Das Beispiel geht von einem aktuellen Linux-System mit Python 3 und OpenSSH aus. Benutzerverwaltung und Pfade können je nach Distribution abweichen.
sudo useradd --create-home --shell /usr/sbin/nologin routerbackup
sudo install -d -o routerbackup -g routerbackup -m 700 /srv/router-backups
sudo install -o root -g root -m 755 archive_receiver.py \
/usr/local/sbin/router-backup-receiver
sudo install -d -o routerbackup -g routerbackup -m 700 \
/home/routerbackup/.ssh
Auf dem Mailserver wird ein eigener Schlüssel erzeugt. Ed25519 ist für aktuelle OpenSSH-Systeme eine geeignete Voreinstellung:
sudo -u backupmail ssh-keygen -t ed25519 \
-f /var/lib/backupmail/.ssh/id_archive -N '' \
-C 'router-backup-delivery'
Der öffentliche Schlüssel wird auf dem Archivserver mit einem erzwungenen Kommando in authorized_keys eingetragen. Die folgende Angabe steht zusammen mit dem Key in einer Zeile:
restrict,command="/usr/local/sbin/router-backup-receiver --base-dir /srv/router-backups" ssh-ed25519 AAAA... router-backup-delivery
Der SSH-Hostkey des Archivservers muss über einen unabhängigen Weg geprüft und in einer eigenen known_hosts-Datei hinterlegt werden. StrictHostKeyChecking=no gehört nicht in diesen Prozess.
05 · Linux
Mailserver anbinden
Für die Backup-Adresse wird ein eigener unprivilegierter Dienstbenutzer verwendet. Der MTA übergibt die vollständige Nachricht unverändert über die Standardeingabe an das Prüfskript.
sudo useradd --create-home --home-dir /var/lib/backupmail \
--shell /usr/sbin/nologin backupmail
sudo install -o root -g root -m 755 mail_ingest.py \
/usr/local/sbin/router-backup-mail-ingest
sudo install -d -o backupmail -g backupmail -m 700 \
/var/lib/backupmail/.ssh
Benötigte Einstellungen
| Variable | Bedeutung | Beispiel |
|---|---|---|
BACKUP_NAS_HOST | Adresse des Archivs | archive.example.net |
BACKUP_NAS_USER | SSH-Benutzer | routerbackup |
BACKUP_NAS_PORT | SSH-Port | 22 |
BACKUP_SSH_KEY | Privater Zustellkey | /var/lib/backupmail/.ssh/id_archive |
BACKUP_KNOWN_HOSTS | Geprüfte Hostkeys | /var/lib/backupmail/.ssh/known_hosts |
BACKUP_MAX_BYTES | Limit beider Dateien | 52428800 |
Exim kann dafür einen Pipe-Transport oder Filter verwenden; bei Postfix bietet sich ein Pipe-Service mit Alias-Zuordnung an. Diese MTA-spezifische Einbindung muss zum vorhandenen Mailsetup passen. Wichtig sind der unprivilegierte Benutzer, ein vorgelagertes Größenlimit und die korrekte Auswertung der Exitcodes.
06 · RouterOS
Router konfigurieren
Im heruntergeladenen RouterOS-Script werden Empfänger, Absender und Mailserver angepasst. Port und TLS-Schalter richten sich nach der gewählten Netzvariante:
:local backupRecipient "router-backup@example.net";
:local backupSender "router@example.net";
:local smtpServer "mail.example.net";
:local smtpPort 25;
:local smtpTls "no";:local backupRecipient "router-backup@example.net";
:local backupSender "router@example.net";
:local smtpServer "mail.example.net";
:local smtpPort 587;
:local smtpTls "yes";Im HAMNET sollte der Mailserver die Zustellung anhand des Quellnetzes erlauben; SMTP-Zugangsdaten sind dort nicht erforderlich. Im Internet wird ein separates SMTP-Konto benötigt. Zugangsdaten gehören weder in veröffentlichte Beispiele noch in öffentliche Konfigurationsexporte.
Für die Internet-Variante werden die Zugangsdaten einmalig außerhalb des Scripts in RouterOS hinterlegt:
/tool e-mail set user="router-backup" password="EIGENES-PASSWORT"
Die ausstellende CA des Mailserver-Zertifikats muss dem Router bekannt sein. Vor dem Weitergeben eines Exports sind sensible Werte mit hide-sensitive auszublenden.
Nach dem Anpassen wird die Datei auf den Router kopiert und importiert:
/import file-name=routeros-backup.rsc
/system script run router-backup
/tool e-mail print
/log print where message~"backup:"
RouterOS verarbeitet /tool e-mail send asynchron. Das Beispiel wartet deshalb auf last-status=succeeded. Bei Fehler oder Timeout bleiben die Dateien zur Diagnose erhalten.
Der Scheduler ist im Beispiel zunächst deaktiviert. Erst nach einem vollständigen Test wird er eingeschaltet:
/system scheduler enable router-backup
07 · Betrieb
Aufbewahrung
Der Empfänger behält alle Snapshots des aktuellen Monats, den jüngsten Snapshot jedes abgeschlossenen Monats im aktuellen Jahr und den jüngsten Snapshot jedes älteren Jahres. Ein täglicher Lauf räumt auch ohne neue Zustellung auf:
45 23 * * * /usr/local/sbin/router-backup-receiver \
--base-dir /srv/router-backups --prune
Diese Regel ist ein Ausgangspunkt. Speicherbedarf, Änderungshäufigkeit und gewünschte Wiederanlaufzeit bestimmen die passende Aufbewahrung.
08 · Abnahme
End-to-End testen
- 01RouterOS meldet für die E-Mail
succeeded. - 02Temporäre Dateien verschwinden erst nach dieser Bestätigung.
- 03Die Mailqueue ist nach der Verarbeitung leer.
- 04Das Archiv enthält genau eine
.backup- und eine.rsc-Datei. - 05Falsche Namen, Endungen und zu große Nachrichten werden abgewiesen.
- 06Bei einem nicht erreichbaren Archiv erfolgt ein kontrollierter neuer Versuch.
09 · Ernstfall
Wiederherstellung üben
Ein Restore-Test gehört in einen Wartungstermin und sollte möglichst auf Ersatzhardware oder einem Testgerät stattfinden. RouterOS-Version, Gerätemodell, Interfaces und Zertifikate sind dabei zu dokumentieren. Der lesbare Export hilft, Abweichungen zu erkennen und Einstellungen selektiv wiederherzustellen.
10 · Sicherheit
Was das Konzept nicht ersetzt
- RouterOS-Backups enthalten möglicherweise Passwörter, Schlüssel und Zertifikate.
- Im HAMNET bleiben SMTP, IMAP und POP unverschlüsselt. SSH ist für die gesicherte Archivübertragung zulässig.
- Der Mailserver sollte die Backup-Adresse nur für festgelegte HAMNET-Quellnetze annehmen.
- Über das Internet sind TLS, Zertifikatsprüfung und ein separates SMTP-Konto erforderlich.
- SHA-256 erkennt Übertragungsfehler, ersetzt aber keine Absenderauthentisierung.
- Der Forced Command begrenzt Rechte, ersetzt aber keine Updates und Protokollkontrolle.
- Ein einzelner Archivserver ist keine vollständige Backup-Strategie. Eine getrennte zweite Kopie bleibt erforderlich.