# 12. Sicherheit, Backup und Automatisierung



# 12.1 Sicherheit, Backup und Automatisierung

Linux-Systeme werden häufig als Server,
Container-Hosts,
Datenbanksysteme,
Webserver,
NAS-Systeme
oder Administrationssysteme eingesetzt.

Deshalb sind Sicherheit,
Backups
und Automatisierung besonders wichtig.

Ein Linux-System soll nicht nur funktionieren,
sondern auch:

    - sicher betrieben werden
    - nachvollziehbar administriert werden
    - regelmäßig gesichert werden
    - im Fehlerfall wiederherstellbar sein
    - wiederkehrende Aufgaben automatisch erledigen
    - unnötige Risiken vermeiden

Merksatz:

    Administration bedeutet nicht nur einrichten,
    sondern sicher betreiben,
    sichern
    und überwachen.

---

**Lernziele**

Nach dieser Seite solltest du erklären können:

    - welche Grundprinzipien Linux-Sicherheit hat
    - warum minimale Rechte wichtig sind
    - warum Updates sicherheitsrelevant sind
    - warum Backups und Restore-Tests zusammengehören
    - was RPO und RTO bedeuten
    - welche Backup-Arten es gibt
    - wie Automatisierung mit cron,
      systemd Timern
      und Skripten funktioniert
    - warum Automatisierung dokumentiert und überwacht werden muss
    - welche typischen Sicherheits-
      und Backupfehler auftreten

---

**Grundidee**

Ein sicher betriebenes Linux-System braucht mehrere Schutzebenen.

Dazu gehören:

    - Benutzer und Rechte
    - sichere SSH-Konfiguration
    - regelmäßige Updates
    - Firewall-Regeln
    - Diensthärtung
    - Logauswertung
    - Monitoring
    - Backups
    - Restore-Tests
    - Automatisierung
    - Dokumentation

Wichtig:

    Eine einzelne Maßnahme reicht nicht aus.

Merksatz:

    Sicherheit besteht aus mehreren Schichten.

---

**Schutzziele der IT-Sicherheit**

Die klassischen Schutzziele sind:

| Schutzziel | Bedeutung |
|---|---|
| Vertraulichkeit | Daten dürfen nur von Berechtigten gelesen werden |
| Integrität | Daten dürfen nicht unbemerkt verändert werden |
| Verfügbarkeit | Systeme und Daten müssen bei Bedarf nutzbar sein |

Beispiele:

| Beispiel | Schutzziel |
|---|---|
| SSH-Schlüssel schützen | Vertraulichkeit |
| Prüfsummen nutzen | Integrität |
| Backups und Redundanz | Verfügbarkeit |

Merksatz:

    Vertraulichkeit,
    Integrität
    und Verfügbarkeit sind zentrale Schutzziele.

---

**Prinzip der minimalen Rechte**

Ein Benutzer,
Dienst
oder Prozess sollte nur die Rechte haben,
die er wirklich benötigt.

Dieses Prinzip nennt man:

    Least Privilege

Beispiele:

    Ein Webserver braucht keine Root-Rechte,
    wenn er nur Webseiten ausliefern soll.

    Ein Backup-Benutzer braucht nicht automatisch Schreibrechte auf alle Produktivdaten.

    Ein normaler Benutzer sollte keine systemweiten Konfigurationen ändern dürfen.

Vorteil:

    Fehler oder Angriffe richten weniger Schaden an.

Merksatz:

    So wenig Rechte wie möglich,
    so viele wie nötig.

---

**Root-Rechte bewusst nutzen**

Root kann fast alles auf dem System verändern.

Deshalb:

    - nicht dauerhaft als root arbeiten
    - sudo gezielt verwenden
    - Befehle vor Ausführung prüfen
    - Wildcards mit Vorsicht verwenden
    - keine unbekannten Skripte als root ausführen
    - administrative Aktionen dokumentieren

Beispiel:

    sudo systemctl restart nginx

ist besser nachvollziehbar als dauerhaft als root zu arbeiten.

Merksatz:

    Root-Rechte sind Werkzeug,
    keine Arbeitsumgebung.

---

**Dienstkonten**

Dienste sollten unter eigenen Dienstkonten laufen.

Beispiele:

| Dienstkonto | Typischer Zweck |
|---|---|
| www-data | Webserver |
| nginx | Nginx-Webserver |
| postgres | PostgreSQL |
| mysql | MySQL/MariaDB |
| backup | Backup-Aufgaben |

Vorteil:

    Wenn ein Dienst kompromittiert wird,
    hat der Angreifer nur die Rechte dieses Dienstkontos.

Merksatz:

    Dienste sollten nicht unnötig als root laufen.

---

**SSH absichern**

SSH ist ein häufiger Administrationszugang.

Wichtige Schutzmaßnahmen:

    - sichere Passwörter oder SSH-Schlüssel nutzen
    - direkten Root-Login vermeiden
    - nur benötigte Benutzer zulassen
    - Firewall-Regeln setzen
    - Logs prüfen
    - fehlgeschlagene Logins überwachen
    - private Schlüssel schützen
    - bekannte Hosts prüfen

Wichtige Datei:

    /etc/ssh/sshd_config

Merksatz:

    SSH ist mächtig und muss besonders geschützt werden.

---

**SSH-Schlüssel schützen**

Ein SSH-Schlüsselpaar besteht aus:

    privatem Schlüssel

    öffentlichem Schlüssel

Der öffentliche Schlüssel darf auf Servern liegen.

Der private Schlüssel bleibt geheim.

Wichtig:

    privaten Schlüssel nicht weitergeben

    Passphrase verwenden

    Dateirechte passend setzen

    Schlüssel bei Verlust oder Verdacht entfernen

    authorized_keys regelmäßig prüfen

Merksatz:

    Der private SSH-Schlüssel ist wie ein Passwort
    und muss geschützt werden.

---

**Firewall-Grundlagen**

Eine Firewall begrenzt,
welcher Netzwerkverkehr erlaubt ist.

Eine gute Firewall-Regel beschreibt:

    - Quelle
    - Ziel
    - Protokoll
    - Port
    - Richtung
    - Aktion
    - Zweck

Beispiel:

| Feld | Beispiel |
|---|---|
| Quelle | Adminnetz |
| Ziel | Linux-Server |
| Protokoll | TCP |
| Port | 22 |
| Aktion | erlauben |
| Zweck | SSH-Administration |

Merksatz:

    Port allein ist keine vollständige Firewall-Regel.

---

**Nur benötigte Dienste betreiben**

Jeder laufende Dienst kann eine Angriffsfläche sein.

Deshalb prüfen:

    Welche Dienste laufen?

    Welche Ports sind offen?

    Welche Dienste werden wirklich benötigt?

    Sind Dienste aktuell?

    Sind Dienste sicher konfiguriert?

Prüfen:

    systemctl --type=service

    ss -tulpen

Merksatz:

    Nicht benötigte Dienste deaktivieren oder entfernen.

---

**Updates und Patchmanagement**

Sicherheitsupdates schließen bekannte Schwachstellen.

Patchmanagement bedeutet:

    Updates geplant,
    kontrolliert
    und nachvollziehbar einspielen.

Dazu gehören:

    - verfügbare Updates prüfen
    - Sicherheitsrelevanz bewerten
    - Backup prüfen
    - Wartungsfenster planen
    - Updates einspielen
    - Dienste prüfen
    - Logs prüfen
    - Dokumentation aktualisieren

Merksatz:

    Updates sind Teil der Sicherheit.

---

**Warum Updates nicht blind einspielen?**

Updates sind wichtig,
können aber auch Probleme verursachen.

Mögliche Risiken:

    Dienst startet nicht mehr

    Konfiguration ist nicht kompatibel

    Abhängigkeiten ändern sich

    Kernel-Update braucht Neustart

    Anwendung verhält sich anders

    Drittanbieter-Paket verursacht Konflikt

Deshalb:

    vorher sichern

    Änderungen dokumentieren

    Dienste nachher prüfen

    Rollback-Möglichkeit einplanen

Merksatz:

    Sicherheitsupdates sind wichtig,
    aber produktive Systeme brauchen kontrollierte Änderung.

---

**Dateirechte und Sicherheit**

Falsche Dateirechte sind ein häufiger Sicherheitsfehler.

Beispiele:

| Problem | Risiko |
|---|---|
| 777 auf Verzeichnissen | jeder darf schreiben |
| private Schlüssel zu offen | SSH verweigert Zugriff oder Schlüssel kann gelesen werden |
| Konfigurationsdateien für alle lesbar | Geheimnisse können sichtbar sein |
| Dienstdateien falscher Besitzer | Dienst startet nicht oder Sicherheitsrisiko |
| Backups für alle lesbar | Datenabfluss |

Merksatz:

    Rechteprobleme sind Sicherheits-
    und Betriebsprobleme.

---

**Sensible Dateien**

Sensible Dateien müssen besonders geschützt werden.

Beispiele:

    SSH-Schlüssel

    Datenbank-Passwörter

    API-Tokens

    Zertifikatsschlüssel

    Backup-Dateien

    Konfigurationsdateien mit Zugangsdaten

    Passwort-Hashes

Beispiele für Pfade:

    ~/.ssh/id_rsa

    ~/.ssh/authorized_keys

    /etc/shadow

    /etc/ssh/sshd_config

    /etc/sudoers

Merksatz:

    Geheimnisse gehören nicht in offen lesbare Dateien.

---

**sudo sicher nutzen**

sudo sollte gezielt vergeben werden.

Wichtige Punkte:

    - nicht jeder Benutzer braucht sudo
    - sudo-Regeln dokumentieren
    - Gruppenmitgliedschaften prüfen
    - keine unnötigen NOPASSWD-Regeln
    - administrative Aktionen nachvollziehbar halten

Prüfen:

    id benutzer

    groups benutzer

    sudo -l

Merksatz:

    sudo ist kontrollierte Rechteerweiterung.

---

**Logs und Sicherheitsereignisse**

Sicherheitsrelevante Ereignisse findet man häufig in Authentifizierungs-
und Dienstlogs.

Beispiele:

    fehlgeschlagene Logins

    erfolgreiche SSH-Logins

    sudo-Nutzung

    neue Benutzer

    Dienststarts

    Firewall-Blockierungen

    ungewöhnliche Prozesse

Beispiele:

    journalctl -u ssh

    grep -i "failed" /var/log/auth.log

    grep -i "sudo" /var/log/auth.log

Merksatz:

    Sicherheit ohne Logprüfung ist blind.

---

**Backups**

Ein Backup ist eine Sicherung von Daten,
Konfigurationen
oder Systemzuständen.

Backups schützen vor:

    - versehentlichem Löschen
    - Hardwaredefekt
    - Dateisystemfehler
    - Ransomware
    - fehlgeschlagenem Update
    - Fehlkonfiguration
    - Diebstahl
    - Brand oder Wasserschaden
    - Benutzerfehler

Merksatz:

    Kein Backup bedeutet:
    keine sichere Wiederherstellung.

---

**Backup ist nicht gleich Restore**

Ein Backup ist nur dann wertvoll,
wenn es auch wiederhergestellt werden kann.

Deshalb wichtig:

    Restore testen

    Wiederherstellungszeit messen

    Datenintegrität prüfen

    Dokumentation erstellen

    Zuständigkeiten klären

    Notfallzugriff prüfen

Merksatz:

    Ein ungetestetes Backup ist nur eine Hoffnung.

---

**Restore**

Restore bedeutet:

    Wiederherstellung aus einem Backup.

Beispiele:

    einzelne Datei wiederherstellen

    Datenbank zurückspielen

    VM wiederherstellen

    Serverkonfiguration wiederherstellen

    komplettes System neu aufbauen

Wichtig:

    Restore muss geübt und dokumentiert sein.

Merksatz:

    Backup ist die Sicherung.
    Restore ist die Wiederherstellung.

---

**RPO**

RPO steht für:

    Recovery Point Objective

Es beschreibt,
wie viel Datenverlust maximal akzeptabel ist.

Beispiel:

    RPO 24 Stunden

bedeutet:

    Im schlimmsten Fall dürfen Daten seit dem letzten täglichen Backup verloren gehen.

Beispiel:

    RPO 1 Stunde

bedeutet:

    Maximal eine Stunde Datenverlust ist akzeptabel.

Merksatz:

    RPO beantwortet:
    Wie viele Daten dürfen maximal verloren gehen?

---

**RTO**

RTO steht für:

    Recovery Time Objective

Es beschreibt,
wie lange die Wiederherstellung maximal dauern darf.

Beispiel:

    RTO 4 Stunden

bedeutet:

    Der Dienst soll innerhalb von 4 Stunden wieder laufen.

Merksatz:

    RTO beantwortet:
    Wie schnell muss es wieder funktionieren?

---

**RPO und RTO unterscheiden**

| Begriff | Frage | Beispiel |
|---|---|---|
| RPO | Wie viele Daten dürfen verloren gehen? | maximal 1 Stunde |
| RTO | Wie lange darf die Wiederherstellung dauern? | maximal 4 Stunden |

Merksatz:

    RPO = Datenverlust.
    RTO = Wiederherstellungszeit.

---

**Backup-Arten**

| Backup-Art | Bedeutung |
|---|---|
| Vollbackup | vollständige Sicherung |
| inkrementelles Backup | sichert Änderungen seit letztem Backup |
| differentielles Backup | sichert Änderungen seit letztem Vollbackup |
| Snapshot | Zustand zu einem Zeitpunkt |
| Image-Backup | vollständiges Abbild eines Systems |
| Datei-Backup | Sicherung einzelner Dateien und Ordner |
| Datenbankdump | logische Sicherung einer Datenbank |

Merksatz:

    Backup-Art muss zum Wiederherstellungsziel passen.

---

**Vollbackup**

Ein Vollbackup sichert alle ausgewählten Daten vollständig.

Vorteile:

    einfach zu verstehen

    Wiederherstellung oft einfacher

    vollständiger Stand

Nachteile:

    benötigt viel Speicher

    dauert länger

    erzeugt mehr Last

Merksatz:

    Vollbackup ist einfach,
    aber speicherintensiv.

---

**Inkrementelles Backup**

Ein inkrementelles Backup sichert nur Änderungen seit dem letzten Backup.

Vorteile:

    spart Speicher

    schneller als Vollbackup

Nachteile:

    Wiederherstellung kann mehrere Sicherungen benötigen

    Kette muss vollständig sein

Merksatz:

    Inkrementell spart Speicher,
    macht Restore aber abhängiger von der Backup-Kette.

---

**Differentielles Backup**

Ein differentielles Backup sichert Änderungen seit dem letzten Vollbackup.

Vorteile:

    Restore einfacher als bei langer inkrementeller Kette

    weniger Speicher als tägliches Vollbackup

Nachteile:

    wächst bis zum nächsten Vollbackup

Merksatz:

    Differentiell bezieht sich auf das letzte Vollbackup.

---

**Snapshot**

Ein Snapshot ist ein Zustand zu einem bestimmten Zeitpunkt.

Snapshots sind nützlich vor:

    Updates

    Konfigurationsänderungen

    Tests

    größeren Wartungen

Wichtig:

    Snapshots ersetzen nicht immer ein echtes externes Backup.

Risiko:

    Wenn das gesamte Storage-System ausfällt,
    kann auch der Snapshot verloren sein.

Merksatz:

    Snapshot ist praktisch,
    aber nicht automatisch ein vollständiges Backup-Konzept.

---

**3-2-1-Regel**

Eine bekannte Backup-Regel ist:

    3 Kopien der Daten

    2 unterschiedliche Medientypen oder Speicherorte

    1 Kopie extern oder offline

Ziel:

    Schutz vor Hardwareausfall,
    Bedienfehlern,
    Ransomware
    und Standortschäden.

Merksatz:

    3-2-1 reduziert das Risiko,
    dass alle Kopien gleichzeitig verloren gehen.

---

**Offline-Backup**

Ein Offline-Backup ist nach der Sicherung nicht dauerhaft erreichbar.

Vorteile:

    Schutz vor Ransomware

    Schutz vor versehentlichem Löschen

    Schutz vor kompromittierten Zugangsdaten

Beispiele:

    externe Festplatte getrennt lagern

    offline geschalteter Backup-Speicher

    unveränderbare Sicherung

Merksatz:

    Was dauerhaft verbunden ist,
    kann auch dauerhaft angegriffen oder gelöscht werden.

---

**Backup-Verschlüsselung**

Backups enthalten oft sensible Daten.

Deshalb sollten sie geschützt werden durch:

    - Verschlüsselung
    - Zugriffskontrolle
    - sichere Aufbewahrung
    - getrennte Zugangsdaten
    - Protokollierung
    - regelmäßige Prüfung

Wichtig:

    Schlüssel und Passwörter müssen sicher aufbewahrt werden.
    Ohne Schlüssel ist ein verschlüsseltes Backup nicht wiederherstellbar.

Merksatz:

    Verschlüsseltes Backup schützt Daten,
    aber der Schlüssel muss verfügbar bleiben.

---

**Backup-Integrität**

Backups müssen vollständig und unverändert sein.

Mögliche Prüfungen:

    Prüfsummen

    Test-Restore

    Backup-Logs

    Vergleich von Dateianzahlen

    Stichproben

    automatische Prüfberichte

Merksatz:

    Backup erfolgreich gemeldet heißt noch nicht:
    Restore funktioniert.

---

**Backup von Konfigurationen**

Neben Daten sollten auch Konfigurationen gesichert werden.

Beispiele:

    /etc

    systemd-Units

    Firewall-Regeln

    Webserver-Konfiguration

    Datenbank-Konfiguration

    SSH-Konfiguration

    Cronjobs

    Skripte

    Docker Compose Dateien

    Dokumentation

Warum?

    Ohne Konfiguration dauert Wiederherstellung deutlich länger.

Merksatz:

    Daten ohne Konfiguration reichen oft nicht für schnellen Restore.

---

**Backup von Datenbanken**

Datenbanken sollte man nicht einfach im laufenden Betrieb als Dateien kopieren,
wenn dadurch inkonsistente Daten entstehen können.

Sicherer sind oft:

    Datenbankdump

    datenbankspezifische Backup-Werkzeuge

    konsistente Snapshots

    Replikation plus Backup

Beispiele:

    PostgreSQL:
    pg_dump

    MySQL/MariaDB:
    mysqldump

Merksatz:

    Datenbanken brauchen konsistente Backups.

---

**Automatisierung**

Automatisierung bedeutet,
wiederkehrende Aufgaben automatisch auszuführen.

Beispiele:

    Backups

    Logrotation

    Updates prüfen

    Speicherplatz prüfen

    Dienste überwachen

    Reports erstellen

    Dateien aufräumen

    Zertifikatsprüfung

    Synchronisation

Merksatz:

    Automatisierung spart Zeit,
    muss aber überwacht werden.

---

**cron**

cron ist ein klassischer Zeitplaner unter Linux.

Cronjobs können Befehle oder Skripte regelmäßig ausführen.

Crontab bearbeiten:

    crontab -e

Crontab anzeigen:

    crontab -l

Beispiel:

    0 2 * * * /home/felix/backup.sh

Bedeutung:

    Jeden Tag um 02:00 Uhr backup.sh ausführen.

Merksatz:

    cron startet Aufgaben nach Zeitplan.

---

**Crontab-Zeitfelder**

Ein Cronjob hat fünf Zeitfelder.

    Minute Stunde Tag-des-Monats Monat Wochentag Befehl

Beispiel:

    30 3 * * 1 /home/felix/report.sh

Bedeutung:

    Jeden Montag um 03:30 Uhr.

| Feld | Bedeutung |
|---|---|
| Minute | 0 bis 59 |
| Stunde | 0 bis 23 |
| Tag des Monats | 1 bis 31 |
| Monat | 1 bis 12 |
| Wochentag | 0 bis 7, häufig 0 und 7 = Sonntag |

Merksatz:

    Cron hat fünf Zeitfelder vor dem Befehl.

---

**Typische Cron-Beispiele**

| Cron-Eintrag | Bedeutung |
|---|---|
| 0 2 * * * | täglich um 02:00 Uhr |
| */15 * * * * | alle 15 Minuten |
| 0 * * * * | jede volle Stunde |
| 30 3 * * 1 | montags um 03:30 Uhr |
| 0 1 1 * * | am 1. jedes Monats um 01:00 Uhr |

Merksatz:

    Stern bedeutet:
    jeder mögliche Wert.

---

**cron und Umgebung**

Cron hat oft eine andere Umgebung als die normale Shell.

Typische Probleme:

    PATH ist anders

    Variablen fehlen

    Arbeitsverzeichnis ist anders

    Ausgaben gehen verloren

    Berechtigungen unterscheiden sich

Deshalb in Cron-Skripten:

    absolute Pfade verwenden

    PATH bewusst setzen

    Logs schreiben

    Fehlerausgabe umleiten

    Skripte ausführbar machen

Merksatz:

    Ein Skript,
    das manuell funktioniert,
    funktioniert nicht automatisch auch in cron.

---

**cron mit Logging**

Beispiel:

    0 2 * * * /home/felix/backup.sh >> /var/log/backup.log 2>&1

Bedeutung:

    Standardausgabe und Fehlerausgabe werden in backup.log geschrieben.

Merksatz:

    Automatisierung braucht Logausgaben.

---

**systemd Timer**

systemd Timer sind eine moderne Alternative zu cron.

Sie bestehen meist aus:

    .service

    .timer

Beispielhafte Einsatzbereiche:

    regelmäßige Backups

    Prüfskripte

    Aufräumaufgaben

    Monitoring-Jobs

Vorteile:

    Integration in systemd

    Logs über journalctl

    Abhängigkeiten möglich

    Status über systemctl

Merksatz:

    systemd Timer sind zeitgesteuerte systemd-Units.

---

**cron und systemd Timer vergleichen**

| Merkmal | cron | systemd Timer |
|---|---|---|
| Klassiker | ja | moderner |
| einfache Zeitpläne | gut | gut |
| systemd-Integration | gering | hoch |
| Logs | oft manuell | journalctl |
| Abhängigkeiten | begrenzt | besser |
| Statusprüfung | weniger einheitlich | systemctl |

Merksatz:

    cron ist einfach.
    systemd Timer sind stärker in systemd integriert.

---

**Automatisierung überwachen**

Automatisierte Aufgaben können fehlschlagen.

Mögliche Ursachen:

    Ziel nicht erreichbar

    Speicher voll

    Rechteproblem

    Passwort oder Schlüssel ungültig

    Netzwerkproblem

    Skriptfehler

    Dienst nicht verfügbar

    Pfad geändert

Deshalb wichtig:

    Logs

    Exit-Codes

    Benachrichtigung bei Fehler

    regelmäßige Kontrolle

    Monitoring

Merksatz:

    Eine Automatisierung ohne Kontrolle kann unbemerkt ausfallen.

---

**Exit-Codes in Automatisierung**

Exit-Codes zeigen,
ob ein Befehl erfolgreich war.

| Exit-Code | Bedeutung |
|---|---|
| 0 | Erfolg |
| ungleich 0 | Fehler oder besonderer Zustand |

Wichtig für:

    cron

    systemd Timer

    Monitoring

    Skripte

    CI/CD

Merksatz:

    Automatisierung muss Fehler über Exit-Codes erkennbar machen.

---

**Dokumentation**

Sicherheits-
Backup-
und Automatisierungsmaßnahmen müssen dokumentiert werden.

Dokumentieren:

    - Zweck
    - Pfade
    - Zeitpläne
    - Benutzer
    - Rechte
    - Abhängigkeiten
    - Restore-Schritte
    - Verantwortliche
    - Prüftermine
    - bekannte Risiken
    - Änderungen

Merksatz:

    Was nicht dokumentiert ist,
    ist im Notfall schwer wiederherzustellen.

---

**Typische Sicherheitsfehler**

| Fehler | Risiko |
|---|---|
| direkter Root-Login per SSH | leichteres Angriffsziel |
| schwache Passwörter | unberechtigter Zugriff |
| 777-Rechte | jeder darf alles |
| keine Updates | bekannte Schwachstellen bleiben offen |
| unnötige Dienste | größere Angriffsfläche |
| private Schlüssel ungeschützt | Identitätsdiebstahl |
| Geheimnisse in Skripten | Zugangsdaten werden sichtbar |
| keine Logs | Vorfälle schwer nachvollziehbar |
| keine Firewall | unnötige Dienste erreichbar |
| sudo für alle | Rechteausweitung |

---

**Typische Backupfehler**

| Fehler | Risiko |
|---|---|
| kein Restore-Test | Backup eventuell unbrauchbar |
| Backup liegt nur lokal | Verlust bei Hardwaredefekt |
| Backup dauerhaft beschreibbar | Ransomware kann es verschlüsseln |
| Datenbankdateien inkonsistent kopiert | Restore fehlerhaft |
| Backup nicht verschlüsselt | Datenabfluss |
| Backup-Logs nicht geprüft | Fehler bleiben unbemerkt |
| Konfiguration nicht gesichert | Wiederherstellung dauert länger |
| RPO/RTO nicht definiert | unklare Anforderungen |
| Speicherziel voll | Backups schlagen fehl |
| alte Backups nie gelöscht | Speicher läuft voll |

---

**Typische Automatisierungsfehler**

| Fehler | Risiko |
|---|---|
| keine Logs | Fehler bleiben unsichtbar |
| keine Exit-Code-Prüfung | Fehler werden nicht erkannt |
| relative Pfade in cron | Skript findet Dateien nicht |
| PATH nicht gesetzt | Befehl wird nicht gefunden |
| keine Benachrichtigung | Ausfall bleibt unbemerkt |
| Skript nicht getestet | Fehler wird automatisiert |
| Geheimnisse im Klartext | Sicherheitsrisiko |
| keine Dokumentation | Wartung schwierig |
| keine Rechteprüfung | Skript scheitert oder ist unsicher |
| keine Sperre gegen parallele Läufe | Datenkonflikte |

---

**Sichere Arbeitsweise**

Bei Sicherheit:

    minimale Rechte

    Dienste prüfen

    Updates planen

    SSH absichern

    Firewall setzen

    Logs kontrollieren

Bei Backups:

    Backupziel prüfen

    Backup automatisieren

    Restore testen

    RPO/RTO definieren

    Backup verschlüsseln

    externe Kopie vorhalten

Bei Automatisierung:

    Skripte testen

    Logs schreiben

    Exit-Codes nutzen

    Monitoring einrichten

    Dokumentation pflegen

Merksatz:

    Sicherer Betrieb entsteht durch regelmäßige Kontrolle,
    nicht durch einmalige Einrichtung.

---

**Typische Prüfungsfragen**

| Frage | Kurzantwort |
|---|---|
| Was bedeutet Least Privilege? | nur notwendige Rechte vergeben |
| Warum sollte SSH abgesichert werden? | zentraler Administrationszugang |
| Warum sind Updates wichtig? | schließen bekannte Schwachstellen |
| Was ist ein Backup? | Sicherung von Daten oder Systemzuständen |
| Was ist Restore? | Wiederherstellung aus Backup |
| Was bedeutet RPO? | maximal akzeptabler Datenverlust |
| Was bedeutet RTO? | maximal akzeptable Wiederherstellungszeit |
| Was ist ein Vollbackup? | vollständige Sicherung |
| Was ist ein inkrementelles Backup? | Änderungen seit letztem Backup |
| Was ist ein differentielles Backup? | Änderungen seit letztem Vollbackup |
| Was ist ein Snapshot? | Zustand zu einem Zeitpunkt |
| Was macht cron? | zeitgesteuerte Aufgaben ausführen |
| Was ist ein systemd Timer? | zeitgesteuerte systemd-Unit |
| Warum Restore-Test? | prüft, ob Backup wirklich nutzbar ist |

---

**Typische Prüfungsfallen**

| Falle | Richtig denken |
|---|---|
| Backup mit Restore gleichsetzen | Backup sichern, Restore wiederherstellen |
| Backup nie testen | ungetestetes Backup ist unsicher |
| RPO und RTO verwechseln | RPO Datenverlust, RTO Zeit |
| Snapshot als vollständiges Backup sehen | nicht automatisch extern oder unabhängig |
| cron ohne Logging | Fehler bleiben unsichtbar |
| manuelles Skript läuft, cron nicht | andere Umgebung beachten |
| 777 als schnelle Lösung | Sicherheitsrisiko |
| Root dauerhaft nutzen | unnötig gefährlich |
| Updates ohne Prüfung | produktive Dienste können betroffen sein |
| keine Dokumentation | Notfallwiederherstellung erschwert |
| Geheimnisse in Skripten speichern | Sicherheitsrisiko |

---

**IHK-sichere Kurzformulierung**

Linux-Sicherheit basiert auf mehreren Maßnahmen wie minimalen Rechten, sicheren SSH-Zugängen, regelmäßigen Updates, Firewall-Regeln, Diensthärtung, Logging und Monitoring. Backups schützen vor Datenverlust, sind aber nur zuverlässig, wenn auch die Wiederherstellung getestet wurde. RPO beschreibt, wie viel Datenverlust maximal akzeptabel ist, während RTO beschreibt, wie lange die Wiederherstellung maximal dauern darf. Backup-Arten sind unter anderem Vollbackup, inkrementelles Backup, differentielles Backup, Snapshot, Image-Backup und Datenbankdump. Wiederkehrende Aufgaben können mit cron, systemd Timern und Skripten automatisiert werden. Automatisierung muss protokolliert, überwacht und dokumentiert werden, damit Fehler nicht unbemerkt bleiben.

---

**Merksätze**

    Sicherheit besteht aus mehreren Schichten.

    Vertraulichkeit,
    Integrität
    und Verfügbarkeit sind zentrale Schutzziele.

    Least Privilege bedeutet:
    nur notwendige Rechte.

    Root-Rechte bewusst verwenden.

    Dienste nicht unnötig als root betreiben.

    SSH besonders absichern.

    Privater SSH-Schlüssel bleibt geheim.

    Firewall-Regeln brauchen Quelle,
    Ziel,
    Protokoll,
    Port,
    Aktion
    und Zweck.

    Nicht benötigte Dienste entfernen oder deaktivieren.

    Updates schließen bekannte Schwachstellen.

    Patchmanagement ist ein Prozess.

    Backup schützt vor Datenverlust.

    Restore ist die Wiederherstellung.

    Ein ungetestetes Backup ist nur eine Hoffnung.

    RPO = maximal akzeptabler Datenverlust.

    RTO = maximal akzeptable Wiederherstellungszeit.

    Vollbackup sichert alles.

    Inkrementell sichert Änderungen seit letztem Backup.

    Differentiell sichert Änderungen seit letztem Vollbackup.

    Snapshot ist ein Zeitpunktzustand.

    Snapshot ersetzt nicht automatisch ein externes Backup.

    3-2-1-Regel reduziert Backup-Risiken.

    Backup-Speicher besonders schützen.

    Datenbanken brauchen konsistente Backups.

    cron startet Aufgaben nach Zeitplan.

    systemd Timer sind zeitgesteuerte systemd-Units.

    Cron hat oft andere Umgebung als die normale Shell.

    Automatisierung braucht Logs.

    Exit-Codes zeigen Erfolg oder Fehler.

    Automatisierung ohne Kontrolle kann unbemerkt ausfallen.

    Dokumentation ist Teil des Betriebs.

    Sicherer Betrieb ist regelmäßige Kontrolle,
    nicht einmalige Einrichtung.