SYSTEMS · 04 / 06

Linux & Infrastruktur

Server, die niemand mehr anfassen will, sind ein häufiges Ergebnis von jahrelangem Betrieb ohne Automatisierung. Wir planen, härten und automatisieren Linux-Infrastruktur so, dass jeder Host aus einer versionierten Beschreibung reproduzierbar ist. Härtung, Backup mit getestetem Restore und Monitoring gehören dabei zum Grundzustand, nicht zur Ausbaustufe.

Ausgangslage

Woran Linux-Infrastruktur in der Praxis scheitert

Viele Linux-Umgebungen sind über Jahre per SSH gewachsen: Konfiguration wurde direkt auf dem Host geändert, ohne Notiz und ohne Versionsverwaltung. Wer das System aufgesetzt hat, ist längst nicht mehr im Haus. Ein Distributions-Upgrade wird verschoben, weil niemand weiß, welcher Dienst an welcher Datei hängt. Am Ende läuft ein Produktivsystem auf einem Release, für das es keine Sicherheitsupdates mehr gibt – und jede Änderung wird zum Risiko.

Backups existieren fast immer, belastbar sind sie selten. Ein Cronjob schreibt Datenbank-Dumps auf dieselbe Maschine oder denselben Storage, der im Schadensfall mit ausfällt. Niemand kennt den tatsächlichen Wiederherstellungspunkt, und ein vollständiger Restore wurde nie durchgeführt. Ob die Dumps konsistent sind, ob das Entschlüsselungspasswort noch bekannt ist und wie lange eine Wiederherstellung dauert, zeigt sich dann im Ernstfall.

Härtung wird als Einmalaktion bei der Installation behandelt. Der Passwort-Login über SSH bleibt aktiv, Datenbanken und Admin-Oberflächen hängen ohne Not am öffentlichen Interface, alle Dienste laufen unter demselben Konto, und Sicherheitsupdates werden manuell eingespielt – also unregelmäßig. Ein abgelaufenes Zertifikat oder eine vollgelaufene Partition fällt erst auf, wenn Nutzer anrufen.

Monitoring beschränkt sich häufig auf einen externen Ping-Check. Der sagt, dass die Maschine antwortet, aber nichts über Plattenfüllstand, Inode-Verbrauch, Speicherdruck, fehlgeschlagene systemd-Units, ausgebliebene Backup-Läufe oder Zertifikatslaufzeiten. Umgekehrt gibt es Umgebungen mit hunderten Alarmen pro Woche, die niemand mehr liest. Beides führt zum gleichen Ergebnis: Probleme werden entdeckt, wenn sie bereits Wirkung haben.

Vorgehen

Wie wir Systeme aufbauen, absichern und übergeben

Am Anfang steht eine Bestandsaufnahme, nicht ein Umbau. Wir erfassen Hosts, Paketstände, laufende Dienste, offene Sockets über ss -tulpen, Cronjobs und systemd-Timer, Firewallregeln, Zertifikate samt Laufzeit, Speicherplatz und die bestehenden Sicherungen. Das Ergebnis ist ein schriftliches Zustandsbild mit priorisierten Risiken. Erst danach entscheiden wir über Distribution, Zielarchitektur und die Reihenfolge der Eingriffe.

Konfiguration wird zu Code. Wir beschreiben Systeme in Ansible-Rollen, halten sie idempotent und prüfen Änderungen vorab mit ansible-playbook --check --diff gegen die laufende Umgebung. Geheimnisse liegen in ansible-vault oder einem externen Secret-Store, nie im Klartext im Repository. Ein Host lässt sich damit reproduzierbar neu aufsetzen, und jede Änderung ist im Git-Verlauf nachvollziehbar – mit Zeitpunkt, Autor und Begründung.

Die Härtung folgt einem festen Grundgerüst: SSH nur mit Schlüsseln, PermitRootLogin no, nftables mit Default-Deny und expliziten Freigaben, getrennte Systemnutzer pro Dienst, systemd-Units mit ProtectSystem=strict, PrivateTmp und eingeschränkten Capabilities. Sicherheitsupdates laufen über unattended-upgrades in einem definierten Wartungsfenster. Nach außen steht ein Reverse Proxy – nginx oder Caddy – mit ACME-Zertifikaten, automatischer Erneuerung, TLS 1.3 und HSTS.

Sicherungen planen wir vom Wiederherstellungsziel her: der akzeptable Datenverlust und die zulässige Ausfallzeit bestimmen Frequenz, Medium und Aufbewahrung. Wir arbeiten mit verschlüsselten, deduplizierenden Repositories, einer Kopie außerhalb des Standorts und append-only-Zugriff, damit ein kompromittierter Host seine eigenen Backups nicht löschen kann. Der Wiederherstellungstest ist Teil des Auftrags. Metriken sammelt Prometheus, Alarme laufen über Alertmanager, Dashboards liegen in Grafana.

Leistungsumfang

Was konkret dazugehört

01

Distributionswahl und Lebenszyklus
Debian stable und Ubuntu LTS für lange, planbare Wartungszyklen. Wir dokumentieren, bis wann ein Release Sicherheitsupdates erhält, und planen das nächste Upgrade, bevor der Support endet.

02

Systemhärtung
SSH ohne Passwort-Login, nftables mit Default-Deny, Rechtetrennung pro Dienst, systemd-Sandboxing und automatische Sicherheitsupdates. Jede Abweichung vom Standard wird begründet und notiert.

03

Reverse Proxy und TLS
nginx oder Caddy als Eingangspunkt, ACME-Zertifikate mit automatischer Erneuerung, TLS 1.3, HSTS und eine klare Trennung zwischen öffentlich erreichbaren und internen Diensten.

04

Konfigurationsverwaltung mit Ansible
Ansible-Rollen im Git-Repository statt manueller Eingriffe auf dem Host. Neue Systeme entstehen aus derselben Beschreibung, Konfigurationsdrift wird sichtbar, ein Rollback ist ein Commit weit entfernt.

05

Backup und Wiederherstellung
Verschlüsselte, deduplizierte Sicherungen mit Off-site-Kopie und append-only-Zugriff. Der dokumentierte Restore-Test weist nach, wie lange eine vollständige Wiederherstellung tatsächlich dauert.

06

Monitoring und Alerting
Prometheus mit node_exporter und blackbox_exporter, Alertmanager-Regeln für Plattenfüllstand, fehlgeschlagene Units, Zertifikatsablauf und ausgebliebene Backup-Läufe. Wenige Alarme, die etwas bedeuten.

07

Self-Hosting, wo es sich rechnet
Git-Hosting, CI-Runner, Monitoring, Dateiablage oder Datenbanken auf eigener Infrastruktur – wenn Datenhoheit, Kosten oder Latenz dafür sprechen und der Betriebsaufwand tragbar bleibt.

Einsatzfälle

Wann diese Leistung passt

Übernahme einer gewachsenen Serverlandschaft

Mehrere Hosts, keine Dokumentation, unklare Zuständigkeiten. Wir nehmen den Zustand auf, schließen die dringendsten Lücken und überführen die Konfiguration schrittweise in Ansible-Rollen.

Distributions-Upgrade unter Produktionsbedingungen

Ein Release läuft aus dem Sicherheitssupport, etwa beim Wechsel auf Debian 13. Wir testen das Upgrade auf einer identisch beschriebenen Staging-Maschine, dokumentieren Abhängigkeiten und führen den Wechsel im Wartungsfenster durch – mit Rückweg.

Umzug von SaaS-Diensten auf eigene Infrastruktur

Wenn Lizenzkosten, Datenschutzanforderungen oder Exportgrenzen dagegen sprechen: Aufbau der selbst betriebenen Variante, Datenmigration und ein Betriebskonzept, das ohne Spezialwissen auskommt.

Notfallkonzept mit nachgewiesener Wiederherstellung

Die Sicherungen laufen, aber niemand hat sie je zurückgespielt. Wir definieren die Wiederherstellungsziele, richten das Backup neu ein und führen einen vollständigen Restore auf frischer Hardware oder einer neuen VM durch.

Ergebnis

  • Jeder Host ist aus einer versionierten Beschreibung reproduzierbar, ohne mündlich weitergegebenes Wissen.
  • Die Wiederherstellungszeit ist gemessen und dokumentiert, nicht geschätzt.
  • Sicherheitsupdates laufen automatisch, in einem definierten Wartungsfenster und mit Protokoll.
  • Alarme melden Plattenfüllstand, Zertifikatsablauf und ausgefallene Dienste, bevor Nutzer es merken.
  • Offene Standards und portable Konfiguration halten einen Wechsel des Hosters praktikabel.
  • Ihr Team kann die Infrastruktur nach der Übergabe selbst weiterbetreiben.

Ablauf

Wie die Zusammenarbeit läuft

  1. 01 Analyse Bestandsaufnahme von System, Code und Betrieb. Am Ende steht eine belastbare Beschreibung des Ist-Zustands statt einer Vermutung.
  2. 02 Architektur Schnitt der Komponenten, Datenflüsse und Schnittstellen. Entscheidungen werden begründet und schriftlich festgehalten.
  3. 03 Entwicklung Umsetzung in kleinen, überprüfbaren Schritten. Jede Änderung ist nachvollziehbar, reviewbar und rückrollbar.
  4. 04 Automatisierung Alles, was mehr als einmal passiert, wird automatisiert: Build, Tests, Deployment und Infrastruktur.
  5. 05 Testing Tests dort, wo sie Risiko abdecken. Ziel ist Vertrauen in Änderungen, keine Abdeckungsquote als Selbstzweck.
  6. 06 Betrieb & Weiterentwicklung Software ist mit dem ersten Deployment nicht fertig. Betrieb, Beobachtbarkeit und Updates gehören zur Arbeit.

Fragen

Häufige Fragen zu Linux & Infrastruktur

Welche Linux-Distribution empfehlen Sie für Server?

In den meisten Fällen Debian stable oder Ubuntu LTS. Debian-Releases erhalten rund drei Jahre regulären Sicherheitssupport, danach folgt Debian LTS; eine Ubuntu-LTS-Version ist fünf Jahre abgedeckt und über Ubuntu Pro darüber hinaus. Entscheidend ist weniger die Distribution selbst als der Lebenszyklus: Er muss länger reichen als der Zeitraum, für den Sie planen.

Können Sie bestehende Server übernehmen, ohne alles neu aufzusetzen?

Ja. Wir beginnen mit einer Bestandsaufnahme und stabilisieren zuerst das Nötigste: Zugriffswege, Sicherheitsupdates, Backup und Restore. Erst danach überführen wir die Konfiguration Dienst für Dienst nach Ansible. Ein kompletter Neuaufbau ist manchmal der kürzere Weg, aber nie der erste Vorschlag.

Wie oft wird die Wiederherstellung von Backups getestet?

Die Kadenz wird gemeinsam mit den Wiederherstellungszielen festgelegt; ein Test je Quartal ist ein üblicher Richtwert, zusätzlich nach jeder Änderung an Sicherungsplan, Verschlüsselung oder Zielsystem. Getestet wird der vollständige Weg: Repository entsperren, Daten zurückspielen, Dienst starten, Konsistenz prüfen. Ergebnis ist eine gemessene Wiederherstellungszeit statt einer Annahme.

Wann ist Self-Hosting sinnvoller als ein SaaS-Dienst?

Wenn Datenhoheit, Vertragslage oder laufende Kosten dagegen sprechen, wenn der Dienst tief in eigene Systeme integriert ist oder wenn Sie den Datenexport ohnehin selbst betreiben müssten. Gegen Self-Hosting spricht fehlende Betriebskapazität: Ein selbst betriebener Dienst braucht Updates, Sicherungen und einen Ansprechpartner. Wir stellen beide Varianten mit Aufwand und Risiko gegenüber, statt die Frage grundsätzlich zu entscheiden.

Wie vermeiden wir eine Abhängigkeit von Ihnen als Dienstleister?

Das Ansible-Repository, die Runbooks und die Zugangsstruktur gehören Ihnen und liegen in Ihrem Git. Wir setzen auf Werkzeuge, die frei verfügbar und weit verbreitet sind, und verzichten auf eigene Wrapper, die nur wir bedienen können. Nach der Übergabe kann Ihr Team oder ein Dritter ohne uns weiterarbeiten.

Weiter im Zusammenhang

Kontakt

Linux & Infrastruktur besprechen

Beschreiben Sie kurz Ihr System und die offene Frage. Wir antworten mit einer fachlichen Einschätzung – ohne Vertriebsschleife.