Files
mkdocs-wiki/docs/devops/ssh-bastion.md
T
rewa81 14c30d231f
Build and Push MkDocs Site / build-and-push (push) Successful in 16s
docs: add ssh bastion host page and update navigation
2026-01-11 10:22:35 +01:00

4.2 KiB

SSH Bastion Host & Reverse Tunneling

Diese Seite beschreibt, wie ein Homelab sicher über einen externen VPS (Bastion Host) erreichbar gemacht werden kann. Dies ermöglicht den Zugriff von verschiedenen Endgeräten (PC, Android, iOS) ohne Portfreigaben am heimischen Router.

Szenario: Homelab Fernzugriff

Das Ziel ist es, Dienste im lokalen Netzwerk (Proxmox, Docker-Services, Git) über einen Tunnel an einen öffentlich erreichbaren VPS zu binden.

Architektur Übersicht

  1. VPS (Bastion Host): Läuft bei einem beliebigen Provider (z.B. Hetzner, DigitalOcean). Er dient als öffentlicher Einstiegspunkt.
  2. Homelab (Clients): Die lokalen Server bauen beim Start aktiv eine Verbindung zum VPS auf (Reverse SSH Tunnel).
  3. Endgeräte: Greifen über den VPS auf die getunnelten Dienste zu.

Einrichtung des VPS (Bastion Host)

Der VPS muss "gehärtet" sein, da er direkt aus dem Internet erreichbar ist.

SSH Konfiguration (/etc/ssh/sshd_config)

Um Reverse Tunnels zu ermöglichen und die Sicherheit zu erhöhen:

# Reverse Tunneling erlauben
GatewayPorts clientspecified
AllowTcpForwarding yes

# Sicherheit erhöhen
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Firewall (UFW)

Nur notwendige Ports öffnen:

  • 22: SSH Zugriff für Admin
  • 80/443: HTTPS für Webdienste
  • Spezifische Ports für Gitea/Proxmox (falls direkt exponiert)

Homelab Anbindung (Reverse Tunnel)

Die lokalen Server verbinden sich zum VPS. Hier ein Beispiel-Setup für autossh, um die Verbindung stabil zu halten.

Beispiele für die Dienste

1. Proxmox (Port 8006)

Vom Proxmox-Server zum VPS:

ssh -N -R 8006:localhost:8006 user@vps-ip

2. Docker-Base (Git & SSH)

Hier müssen mehrere Ports getunnelt werden:

  • SSH Linux Update (Port 22): ssh -N -R 22222:localhost:22 user@vps-ip (Port 22222 auf VPS mappt auf 22 lokal)
  • Gitea (Port 2222): ssh -N -R 2222:localhost:222