Dokumentation
AutoSSH – Hochverfügbare Reverse-Tunnel-Anbindung (Heimnetz)
Zweck dieser Komponente
AutoSSH stellt die externe Erreichbarkeit des Heimnetzes über einen VPS sicher, ohne dass Ports im Heimnetz geöffnet werden müssen.
Die Verbindung ist:
-
verschlüsselt
-
bootfest
-
redundant
-
selbstheilend
Diese AutoSSH-Architektur ist ein zentraler Bestandteil der Heimnetz-Sicherheits- und HA-Strategie.
Grundprinzip
Die Tunnel funktionieren als Reverse SSH Tunnels:
-
Das Heimnetz baut aktiv eine SSH-Verbindung zum VPS auf
-
Der VPS stellt darüber lokale Ports bereit
-
Nginx auf dem VPS nutzt diese Ports als Backend
-
Externe Clients sehen ausschließlich den VPS
➡️ Kein eingehender Traffic ins Heimnetz
Architekturübersicht
Beteiligte Systeme
| Rolle | System |
|---|---|
| Edge / DMZ | VPS (212.227.30.204) |
| Tunnel 1 | VM auf Proxmox Node 1 |
| Tunnel 2 | LXC auf Proxmox Node 2 |
| Routing intern | Nginx auf Tunnel-Systemen |
| Routing extern | Nginx auf VPS |
Netzwerkfluss
Client (Internet) ↓ HTTPSVPS (Nginx + TLS) ↓ localhostAutoSSH Reverse Tunnel ↓Interner Nginx (Tunnel-VM/LXC) ↓Heimnetz-Dienste
Redundanzkonzept
Tunnel-Instanzen
| Tunnel | Host | VPS-Port |
|---|---|---|
| Tunnel 1 (primär) | VM (Node 1) | 29000 |
| Tunnel 2 (Backup) | LXC (Node 2) | 39000 |
Beide Tunnel:
-
laufen permanent
-
nutzen getrennte SSH-Keys
-
starten automatisch beim Boot
Failover-Mechanismus
-
VPS-Nginx verwendet ein
upstreammitbackup -
Fällt Tunnel 1 aus, wird automatisch Tunnel 2 genutzt
-
Umschaltzeit: wenige Sekunden
-
Keine manuelle Intervention nötig
Sicherheitsmodell
Keine offenen Heimnetz-Ports
-
Alle Tunnel-Ports auf dem VPS sind nur an
127.0.0.1gebunden -
Kein direkter Internetzugriff auf Tunnel-Ports möglich
Getrennte SSH-Keys
-
Jede Tunnel-Instanz nutzt einen eigenen Key
-
Keys können unabhängig gesperrt/ersetzt werden
SSH-Nutzung
-
Nur Reverse-Forwarding
-
Kein Shell-Zugriff notwendig
-
Kein Agent-Forwarding
AutoSSH – Funktionsweise
AutoSSH überwacht die SSH-Verbindung und:
-
erkennt Verbindungsabbrüche
-
baut die Verbindung automatisch neu auf
-
toleriert Netzwerk- und DNS-Probleme
-
toleriert VPS-Neustarts
Die Überwachung erfolgt ohne zusätzlichen Monitoring-Port (-M 0).
systemd-Service (Referenzkonfiguration)
Beispiel: Backup-Tunnel (Node 2)
Anpassungen für Tunnel 1
-
Key:
id_ed25519_tunnel1 -
Port:
29000
Erklärung wichtiger Parameter
-R 127.0.0.1:PORT:127.0.0.1:18080
-
bindet den Tunnel nur lokal auf dem VPS
-
leitet Traffic an den internen Proxy weiter
-
verhindert externe Port-Exposition
ExitOnForwardFailure=yes
-
stellt sicher, dass AutoSSH nicht „still“ läuft
-
bei Fehlern wird sofort neu gestartet
ServerAliveInterval / CountMax
-
erkennt stille Verbindungsabbrüche
-
wichtig bei NAT, DSL, Mobilfunk
Restart=always
-
garantiert Wiederherstellung nach:
-
Stromausfall
-
Netzwerkverlust
-
VPS-Neustart
-
SSH-Fehler
-
Boot-Verhalten
Proxmox
-
Tunnel-VM/LXC ist auf „Start at boot“ gesetzt
-
definierte Startreihenfolge
systemd
-
Service ist
enabled -
wartet auf
network-online.target -
blockiert nicht bei temporärem Netzausfall
➡️ Nach Komplettausfall kommt der Tunnel automatisch zurück.
Zusammenspiel mit Nginx (VPS)
Upstream-Definition
Nutzung in vHosts
Der AutoSSH-Tunnel ist für Nginx transparent austauschbar.
Wartung & Betrieb
Status prüfen (VPS)
Funktionstest
Service-Status (Tunnel-System)
Backup & Recovery
-
AutoSSH-Konfiguration ist vollständig in:
-
/etc/systemd/system/haos-tunnel.service -
/root/.ssh/
-
-
Bestandteil der wöchentlichen Proxmox-Backups
-
Wiederherstellung:
-
VM/LXC restore
-
Service startet automatisch
-
Tunnel wieder aktiv
-
Design-Entscheidungen (Begründung)
| Entscheidung | Grund |
|---|---|
| Reverse SSH | Keine offenen Ports |
| Zwei Tunnel | HA bei Node-Ausfall |
| Nginx-Failover | Einfach, stabil |
| Getrennte Keys | Sicherheit & Wartbarkeit |
| Kein Monitoring-Port | Weniger Angriffsfläche |
Zusammenfassung
Die AutoSSH-Architektur bietet:
-
sichere externe Erreichbarkeit
-
automatische Wiederherstellung
-
echte Redundanz
-
minimale Wartung
-
saubere Trennung von Verantwortung
Status: produktiv, stabil, HA-fähig.
No comments to display
No comments to display