INBOX/01_Zusammenfassung_Lernhinweise.md
2026-08-07 15:50:54 +02:00

4.2 KiB

CheckPoint VPS-Projekt — Zusammenfassung & Lernhinweise

Ausgangslage

  • VPS bei IONOS (Typ VPS 6-8-240: 6 vCore, 8 GB RAM, 240 GB NVMe SSD).
  • Alter Zustand: unsauber gewachsen — ein Git-Server und eine unfertige App lagen ohne Struktur durcheinander. Ziel: kompletter sauberer Neuaufbau, kein Reparieren des Bestehenden.
  • Datenschutz-Vorgabe für die geplante App (CheckPoint Ehrenamt): EU-Hosting, eigener Server (= dieser VPS).

Getroffene Entscheidungen

  • Kompletter Wipe statt Reparatur — bereits umgesetzt, VPS ist neu installiert.
  • Reihenfolge: Desktop zuerst sauber (Anker-Maschine), dann VPS, Laptop zuletzt.
  • LLM-Zugriff (Desktop als lokaler LLM-Host) läuft künftig über VPN, nicht über einen SSH-Tunnel via VPS.
  • SSH-Keys: pro Gerät ein eigenes ed25519-Keypair (Desktop, Laptop). Private Key verlässt das Gerät nie.
  • Shell: Analyse gemacht, finale Entscheidung noch offen (siehe Lernhinweise + Status).

Lernhinweise

SSH-Diagnose

  • „Permission denied" = Verbindung steht, Dienst läuft — nur die Authentifizierung scheitert (Key / User / Berechtigung).
  • „Connection refused" = auf dem Port antwortet niemand → Dienst gestoppt/abgestürzt oder etwas blockt davor (Firewall / Fail2ban).
  • Die Reihenfolge „erst denied, dann refused" ist ein typisches Fail2ban-Muster: erst Fehlversuche, dann IP-Bann.
  • ssh -v (verbose) zeigt, wie weit der Verbindungsaufbau kommt → trennt Netzwerk-/Firewall-Problem von Auth-Problem.

Fail2ban

  • Bannt nach mehreren Fehlversuchen die IP. Weitere Blind-Versuche können den Bann verlängern/erneuern → nicht „auf Verdacht" wiederholt probieren.
  • Die Web-Konsole des Hosters ist der Rettungsweg, wenn SSH gesperrt ist.

Backup-Philosophie

  • Ein Wipe ist endgültig. Entscheidend ist nur, ob Daten nur an einem Ort existieren (single-copy).
  • Wenn man bewusst „frisch" neu macht (Keys und LLMs regeneriert man ohnehin), muss das Backup nur das Unwiederbringliche sichern: echte Daten/Dokumente, single-copy-Repos, Passwort-Tresor/2FA-Seeds, ggf. GPG-Keys.
  • In diesem Fall gelöst: Repo-Klone liegen auf der zweiten Laptop-Partition → Wipe war risikofrei.

Shell: interaktiv vs. Skript (die wichtigste Einsicht)

  • Das sind zwei getrennte Entscheidungen, die nur wie eine aussehen.
  • Interaktive Shell = persönlicher Komfort. Per chsh -s … wechselbar, jederzeit reversibel, berührt das System nicht (Arch: /bin/sh → Bash; Systemskripte laufen darüber, unabhängig von der Login-Shell).
  • Skriptsprache = die einzige „klebende" Entscheidung: Alles, was den VPS anfasst oder reproduzierbar sein soll, muss Bash/POSIX sein. Der VPS hat kein Fish; Fish-Skripte laufen dort nicht.
  • Fish: exzellente Ergonomie out-of-the-box, aber nicht-POSIX (set -x VAR x statt export, $status statt $?, Listen 1-indiziert). Eingefügte Bash-Befehle (aus Doku/KI-Tools) brechen gelegentlich.
  • Zsh: Bash-kompatibel (gleiche Sprache wie die Server) + Fish-ähnliche Plugins (zsh-autosuggestions, zsh-syntax-highlighting) → bester Kompromiss für server-zentriertes Arbeiten.
  • Bash + ble.sh / atuin / fzf: maximal gängig, fast gleicher Komfort.

SSH-Key-Architektur

  • Pro Gerät ein eigenes Keypair → ein Gerät verloren/kompromittiert = nur dessen Public Key vom Server entfernen, Rest bleibt unberührt.
  • ed25519 als moderner Standard.
  • Public Keys wandern auf den VPS, Private Keys bleiben lokal.

VPN für LLM-Zugriff

  • „VPN" zum Erreichen des eigenen Desktops = Mesh / Self-Hosted (WireGuard, Tailscale, Netbird) — nicht ein kommerzielles Privacy-VPN (das macht das Gegenteil).
  • Passt zur Eigen-Server-/Datenschutz-Philosophie.

Offene Designfrage: Multi-App-Struktur (noch nicht besprochen)

Der VPS soll mehrere Apps parallel hosten. Zu entscheidende Achsen:

  • Isolation: Container (Docker/Podman) vs. systemd-Services + venvs.
  • Reverse Proxy: Caddy (Auto-HTTPS, simpel) vs. Nginx vs. Traefik.
  • Domains/Subdomains-Organisation.
  • Backup-Strategie für die Zukunft (automatisiert).
  • Hardening: SSH key-only, Fail2ban sinnvoll konfigurieren, Firewall — und die IONOS-Web-Konsole bewusst als Recovery-Weg behalten, um erneutes Aussperren zu vermeiden.