syntax cleanup
This commit is contained in:
parent
c5fb4daf0f
commit
2027f90030
12 changed files with 242 additions and 182 deletions
8
README.md
Normal file
8
README.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# Homelab-Dokumentation
|
||||
|
||||
Diese Dokumentation beschreibt Aufbau, Betrieb und bekannte Themen des Homelabs.
|
||||
|
||||
## Bereiche
|
||||
|
||||
- [VPS-Dokumentation](VPS/README.md)
|
||||
|
||||
23
VPS/README.md
Normal file
23
VPS/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# VPS-Dokumentation
|
||||
|
||||
Die VPS dient als öffentliche Edge-Infrastruktur des Homelabs. Die Dokumentation ist nach Verantwortungsbereichen gegliedert.
|
||||
|
||||
## Einstieg
|
||||
|
||||
- [Übersicht](overview.md)
|
||||
- [Dienste](services.md)
|
||||
- [Bekannte Themen und Verbesserungspotenzial](known-issues.md)
|
||||
|
||||
## Infrastruktur
|
||||
|
||||
- [Netzwerk](networking.md)
|
||||
- [WireGuard](wireguard.md)
|
||||
- [Docker](docker.md)
|
||||
- [Sicherheit](security.md)
|
||||
|
||||
## Betrieb
|
||||
|
||||
- [Monitoring](monitoring.md)
|
||||
- [Backup](backup.md)
|
||||
- [Wartung und Betrieb](maintenance.md)
|
||||
|
||||
|
|
@ -5,14 +5,16 @@
|
|||
Die VPS wird per restic auf eine Hetzner Storage Box gesichert.
|
||||
|
||||
Transport:
|
||||
|
||||
- SFTP
|
||||
|
||||
Backup Tool:
|
||||
|
||||
- restic
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Gesicherte Verzeichnisse
|
||||
## Gesicherte Verzeichnisse
|
||||
|
||||
```text
|
||||
/opt
|
||||
|
|
@ -21,11 +23,11 @@ Backup Tool:
|
|||
/etc/letsencrypt
|
||||
```
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Backup Ziel
|
||||
## Backup Ziel
|
||||
|
||||
## Hetzner Storage Box
|
||||
### Hetzner Storage Box
|
||||
|
||||
Repository Struktur:
|
||||
|
||||
|
|
@ -33,48 +35,51 @@ Repository Struktur:
|
|||
backups/vps
|
||||
```
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Retention Policy
|
||||
## Retention Policy
|
||||
|
||||
| Typ | Anzahl |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Daily | 7 |
|
||||
| Weekly | 4 |
|
||||
| Monthly | 6 |
|
||||
|
||||
Zusätzlich:
|
||||
|
||||
- regelmäßiges prune
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Backup Zeitplan
|
||||
## Backup Zeitplan
|
||||
|
||||
## systemd timer
|
||||
### systemd timer
|
||||
|
||||
Nächster Lauf:
|
||||
|
||||
- täglich um 02:30 UTC
|
||||
|
||||
Timer:
|
||||
|
||||
- restic-backup.timer
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Ziele der Backupstrategie
|
||||
## Ziele der Backupstrategie
|
||||
|
||||
- vollständige Wiederherstellbarkeit der VPS
|
||||
- schnelle Recovery
|
||||
- Schutz vor Fehlkonfigurationen
|
||||
- Schutz vor Datenverlust
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Wiederherstellungsziele
|
||||
## Wiederherstellungsziele
|
||||
|
||||
Die folgenden Bereiche müssen wiederherstellbar sein:
|
||||
|
||||
| Bereich | Wichtigkeit |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Docker Stacks | kritisch |
|
||||
| Reverse Proxy | kritisch |
|
||||
| authentik | kritisch |
|
||||
|
|
@ -82,11 +87,11 @@ Die folgenden Bereiche müssen wiederherstellbar sein:
|
|||
| Zertifikate | kritisch |
|
||||
| SSH Zugriff | kritisch |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Verbesserungspotenzial
|
||||
## Verbesserungspotenzial
|
||||
|
||||
## Noch offen
|
||||
### Noch offen
|
||||
|
||||
- Restore-Test dokumentieren
|
||||
- Backup Monitoring ergänzen
|
||||
|
|
@ -94,8 +99,8 @@ Die folgenden Bereiche müssen wiederherstellbar sein:
|
|||
- Alerting bei Fehlern
|
||||
- Dokumentierte Recovery-Anleitung
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Langfristiges Ziel
|
||||
## Langfristiges Ziel
|
||||
|
||||
Die VPS soll vollständig reproduzierbar und innerhalb kurzer Zeit wiederherstellbar sein.
|
||||
|
|
@ -3,32 +3,33 @@
|
|||
## Docker Netzwerke
|
||||
|
||||
| Netzwerk | Zweck |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| proxy | Hauptnetzwerk für Reverse Proxy und Dienste |
|
||||
| authentik_authentik | internes authentik Netzwerk |
|
||||
| nextcloud_internal | internes Nextcloud Netzwerk |
|
||||
| teamspeak_default | isoliertes TeamSpeak Netzwerk |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Hauptnetzwerk „proxy“
|
||||
## Hauptnetzwerk „proxy“
|
||||
|
||||
## Netzwerk
|
||||
### Netzwerk
|
||||
|
||||
- Name: proxy
|
||||
- Subnetz: 172.20.0.0/16
|
||||
|
||||
Das proxy-Netzwerk dient als zentrale Kommunikationsschicht zwischen:
|
||||
|
||||
- Nginx Proxy Manager
|
||||
- öffentlichen Diensten
|
||||
- internen Reverse-Proxy-Zielen
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Container
|
||||
## Container
|
||||
|
||||
| Container | Aufgabe | Netzwerk |
|
||||
|—|—|—|
|
||||
|---|---|---|
|
||||
| npm | Reverse Proxy | proxy |
|
||||
| authentik-server | SSO Frontend | proxy |
|
||||
| authentik-worker | Hintergrundprozesse | authentik_authentik |
|
||||
|
|
@ -46,12 +47,12 @@ Das proxy-Netzwerk dient als zentrale Kommunikationsschicht zwischen:
|
|||
| teamspeak | Voice Server | teamspeak_default |
|
||||
| site | Statische Webseite | proxy |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Öffentlich erreichbare Ports
|
||||
## Öffentlich erreichbare Ports
|
||||
|
||||
| Port | Dienst |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| 80 | NPM HTTP |
|
||||
| 443 | NPM HTTPS |
|
||||
| 9000 | authentik |
|
||||
|
|
@ -62,21 +63,21 @@ Das proxy-Netzwerk dient als zentrale Kommunikationsschicht zwischen:
|
|||
| 30033 | TeamSpeak Dateitransfer |
|
||||
| 51820/UDP | WireGuard |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Localhost-only Bindings
|
||||
## Localhost-only Bindings
|
||||
|
||||
| Port | Dienst |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| 81 | NPM Admin |
|
||||
| 3001 | Uptime Kuma |
|
||||
| 3002 | AdGuard UI |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Docker Speicherstruktur
|
||||
## Docker Speicherstruktur
|
||||
|
||||
## Basisverzeichnis
|
||||
### Basisverzeichnis
|
||||
|
||||
```text
|
||||
/opt/
|
||||
|
|
@ -92,27 +93,29 @@ Beispiele:
|
|||
/opt/npm
|
||||
```
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Persistenzstrategie
|
||||
## Persistenzstrategie
|
||||
|
||||
Die VPS nutzt überwiegend:
|
||||
|
||||
- Bind Mounts
|
||||
- lokale persistente Verzeichnisse
|
||||
|
||||
anstatt vieler benannter Docker-Volumes.
|
||||
|
||||
Vorteile:
|
||||
|
||||
- einfachere Backups
|
||||
- einfachere Migration
|
||||
- einfachere Wiederherstellung
|
||||
- bessere Übersichtlichkeit
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Aktuelle Beobachtungen
|
||||
## Aktuelle Beobachtungen
|
||||
|
||||
## Positiv
|
||||
### Positiv
|
||||
|
||||
- saubere Trennung der Dienste
|
||||
- wenige Netzwerke
|
||||
|
|
@ -120,7 +123,7 @@ Vorteile:
|
|||
- minimale Anzahl ungenutzter Volumes
|
||||
- strukturierter Aufbau
|
||||
|
||||
## Verbesserungspotenzial
|
||||
### Verbesserungspotenzial
|
||||
|
||||
- unnötige öffentliche Portfreigaben reduzieren
|
||||
- Compose-Strukturen vereinheitlichen
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
- Forgejo öffentlich exposed
|
||||
- öffentliche Ports teilweise historisch gewachsen
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Dokumentation
|
||||
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
- Domains/Subdomains noch nicht dokumentiert
|
||||
- Compose Standards noch nicht vereinheitlicht
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Monitoring
|
||||
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
- Backup Monitoring fehlt
|
||||
- VPN Monitoring ausbaufähig
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Docker
|
||||
|
||||
|
|
@ -30,14 +30,14 @@
|
|||
- Netzwerk-Namenskonventionen uneinheitlich
|
||||
- Logging noch nicht standardisiert
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Backups
|
||||
|
||||
- Restore-Prozess noch nicht dokumentiert
|
||||
- kein regelmäßiger Restore-Test
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Langfristige Themen
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
- Uptime Kuma Alerts prüfen
|
||||
- CrowdSec Events prüfen
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
### Wöchentlich
|
||||
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
- Backup Logs prüfen
|
||||
- freien Speicherplatz prüfen
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
### Monatlich
|
||||
|
||||
|
|
@ -26,37 +26,38 @@
|
|||
- Logs prüfen
|
||||
- Sicherheitsreview durchführen
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Automatische Wartung
|
||||
## Automatische Wartung
|
||||
|
||||
## Bereits vorhanden
|
||||
### Bereits vorhanden
|
||||
|
||||
| Funktion | Status |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| apt Updates | aktiv |
|
||||
| Security Updates | aktiv |
|
||||
| restic Backup | aktiv |
|
||||
| logrotate | aktiv |
|
||||
| CrowdSec Updates | aktiv |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Geplante Automatisierung
|
||||
## Geplante Automatisierung
|
||||
|
||||
| Funktion | Status |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Docker Cleanup | geplant |
|
||||
| Journal Cleanup | geplant |
|
||||
| Backup Validation | geplant |
|
||||
| Health Reports | geplant |
|
||||
| Matrix Alerts | geplant |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Wartungsziele
|
||||
## Wartungsziele
|
||||
|
||||
Die VPS soll möglichst:
|
||||
|
||||
- wartungsarm
|
||||
- stabil
|
||||
- nachvollziehbar
|
||||
|
|
|
|||
|
|
@ -4,24 +4,25 @@
|
|||
|
||||
Die VPS nutzt aktuell mehrere Monitoring-Lösungen mit unterschiedlichen Aufgabenbereichen.
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Verwendete Systeme
|
||||
## Verwendete Systeme
|
||||
|
||||
| Dienst | Aufgabe |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Netdata | Live-Systemmonitoring |
|
||||
| Uptime Kuma | Verfügbarkeitsmonitoring |
|
||||
| CrowdSec | Sicherheitsmonitoring |
|
||||
| Ubuntu Timer | Wartung / Updates |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Netdata
|
||||
## Netdata
|
||||
|
||||
## Aufgabe
|
||||
### Aufgabe
|
||||
|
||||
Netdata überwacht:
|
||||
|
||||
- CPU
|
||||
- RAM
|
||||
- Prozesse
|
||||
|
|
@ -31,15 +32,17 @@ Netdata überwacht:
|
|||
- Systemmetriken
|
||||
|
||||
Container:
|
||||
|
||||
- netdata
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Uptime Kuma
|
||||
## Uptime Kuma
|
||||
|
||||
## Aufgabe
|
||||
### Aufgabe
|
||||
|
||||
Uptime Kuma überwacht:
|
||||
|
||||
- externe Erreichbarkeit
|
||||
- HTTPS Checks
|
||||
- Zertifikate
|
||||
|
|
@ -47,6 +50,7 @@ Uptime Kuma überwacht:
|
|||
- Domains
|
||||
|
||||
Container:
|
||||
|
||||
- uptime-kuma
|
||||
|
||||
Localhost Binding:
|
||||
|
|
@ -55,41 +59,43 @@ Localhost Binding:
|
|||
127.0.0.1:3001
|
||||
```
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# CrowdSec
|
||||
## CrowdSec
|
||||
|
||||
## Aufgabe
|
||||
### Aufgabe
|
||||
|
||||
CrowdSec überwacht:
|
||||
|
||||
- Loginversuche
|
||||
- Angriffe
|
||||
- bekannte Bad IPs
|
||||
|
||||
Integration:
|
||||
|
||||
- nftables
|
||||
- Docker
|
||||
- Reverse Proxy
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Systemd Timer
|
||||
## Systemd Timer
|
||||
|
||||
## Aktive Wartungstimer
|
||||
### Aktive Wartungstimer
|
||||
|
||||
| Timer | Aufgabe |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| apt-daily.timer | Paketupdates |
|
||||
| apt-daily-upgrade.timer | Sicherheitsupdates |
|
||||
| restic-backup.timer | Backups |
|
||||
| logrotate.timer | Logrotation |
|
||||
| crowdsec-hub-update.timer | CrowdSec Updates |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Aktuelle Beobachtungen
|
||||
## Aktuelle Beobachtungen
|
||||
|
||||
## Positiv
|
||||
### Positiv
|
||||
|
||||
- mehrere Monitoring-Ebenen vorhanden
|
||||
- Backups automatisiert
|
||||
|
|
@ -97,11 +103,11 @@ Integration:
|
|||
- geringe Systemlast
|
||||
- ausreichende Leistungsreserven
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Verbesserungspotenzial
|
||||
## Verbesserungspotenzial
|
||||
|
||||
## Noch offen
|
||||
### Noch offen
|
||||
|
||||
- zentrales Alerting
|
||||
- Matrix Integration
|
||||
|
|
@ -110,11 +116,12 @@ Integration:
|
|||
- VPN Health Checks
|
||||
- Docker Health Alerts
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Langfristiges Ziel
|
||||
## Langfristiges Ziel
|
||||
|
||||
Das Monitoring soll:
|
||||
|
||||
- frühzeitig Probleme erkennen
|
||||
- automatisch benachrichtigen
|
||||
- Fehlkonfigurationen sichtbar machen
|
||||
|
|
|
|||
|
|
@ -3,29 +3,32 @@
|
|||
## Öffentliches Netzwerk
|
||||
|
||||
| Interface | Adresse |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| eth0 | 46.225.176.170 |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# VPN
|
||||
## VPN
|
||||
|
||||
## WireGuard
|
||||
### WireGuard
|
||||
|
||||
Die VPS dient als zentraler WireGuard-Hub zwischen:
|
||||
|
||||
- VPS
|
||||
- Heimnetz
|
||||
- zusätzlichen Clients
|
||||
|
||||
Interface:
|
||||
|
||||
- wg0
|
||||
|
||||
Listening Port:
|
||||
|
||||
- 51820/UDP
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Heimnetz Routing
|
||||
## Heimnetz Routing
|
||||
|
||||
Folgende Route wird aktuell über WireGuard bereitgestellt:
|
||||
|
||||
|
|
@ -35,35 +38,36 @@ Folgende Route wird aktuell über WireGuard bereitgestellt:
|
|||
|
||||
Dadurch kann die VPS interne Dienste im Heimnetz sicher über VPN erreichen.
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Firewall / Paketfilterung
|
||||
## Firewall / Paketfilterung
|
||||
|
||||
## Aktueller Zustand
|
||||
### Aktueller Zustand
|
||||
|
||||
UFW ist nicht aktiv.
|
||||
|
||||
Stattdessen nutzt die VPS:
|
||||
|
||||
- nftables
|
||||
- Docker-verwaltete Firewallregeln
|
||||
- CrowdSec Integration
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Sicherheitslayer
|
||||
## Sicherheitslayer
|
||||
|
||||
| Layer | Aufgabe |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Docker nftables Regeln | Container-Isolation |
|
||||
| CrowdSec | Dynamische Blockierung |
|
||||
| WireGuard | Sicherer privater Zugriff |
|
||||
| NPM | TLS Terminierung |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Docker Netzwerkarchitektur
|
||||
## Docker Netzwerkarchitektur
|
||||
|
||||
## proxy Netzwerk
|
||||
### proxy Netzwerk
|
||||
|
||||
Subnetz:
|
||||
|
||||
|
|
@ -72,6 +76,7 @@ Subnetz:
|
|||
```
|
||||
|
||||
Wichtige Dienste:
|
||||
|
||||
- NPM
|
||||
- authentik
|
||||
- Nextcloud
|
||||
|
|
@ -79,18 +84,18 @@ Wichtige Dienste:
|
|||
- Forgejo
|
||||
- Monitoring-Dienste
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Aktuelle Sicherheitsbeobachtungen
|
||||
## Aktuelle Sicherheitsbeobachtungen
|
||||
|
||||
## Positiv
|
||||
### Positiv
|
||||
|
||||
- interne Docker-Segmentierung vorhanden
|
||||
- RAW nftables Isolationsregeln aktiv
|
||||
- Localhost Bindings bereits genutzt
|
||||
- CrowdSec in INPUT Chain integriert
|
||||
|
||||
## Mögliche Verbesserungen
|
||||
### Mögliche Verbesserungen
|
||||
|
||||
- direkten öffentlichen Zugriff auf authentik entfernen
|
||||
- öffentliche Erreichbarkeit von Forgejo prüfen
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
## Allgemeine Informationen
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Hostname | ubuntu-8gb-nbg1-1 |
|
||||
| Anbieter | Hetzner Cloud |
|
||||
| Standort | nbg1 (Nürnberg) |
|
||||
|
|
@ -13,9 +13,9 @@
|
|||
| Hauptbenutzer | mbyte |
|
||||
| Container Runtime | Docker |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Aufgabe der VPS
|
||||
## Aufgabe der VPS
|
||||
|
||||
Die VPS dient als öffentliche Edge-Infrastruktur des Homelabs.
|
||||
|
||||
|
|
@ -28,12 +28,12 @@ Hauptaufgaben:
|
|||
- Öffentlicher Einstiegspunkt für interne Dienste
|
||||
- Externes Monitoring
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Hauptdienste
|
||||
## Hauptdienste
|
||||
|
||||
| Dienst | Aufgabe |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Nginx Proxy Manager | Reverse Proxy und TLS |
|
||||
| authentik | SSO / Identity Provider |
|
||||
| CrowdSec | Intrusion Prevention |
|
||||
|
|
@ -47,10 +47,11 @@ Hauptaufgaben:
|
|||
| Collabora | Office-Integration |
|
||||
| TeamSpeak | Voice-Server |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Infrastruktur-Architektur
|
||||
## Infrastruktur-Architektur
|
||||
|
||||
```text
|
||||
Internet
|
||||
↓
|
||||
VPS
|
||||
|
|
@ -68,15 +69,16 @@ Heimnetz
|
|||
├── Seafile
|
||||
├── Immich
|
||||
└── interne Dienste
|
||||
```
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Ressourcenverbrauch
|
||||
## Ressourcenverbrauch
|
||||
|
||||
## Aktueller Status (2026-05-26)
|
||||
### Aktueller Status (2026-05-26)
|
||||
|
||||
| Ressource | Nutzung |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| CPU Load | niedrig |
|
||||
| RAM Nutzung | ~34% |
|
||||
| Festplattennutzung | ~17% |
|
||||
|
|
@ -84,9 +86,9 @@ Heimnetz
|
|||
|
||||
Die VPS besitzt aktuell deutliche Leistungsreserven.
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Zielbild
|
||||
## Zielbild
|
||||
|
||||
Die VPS soll langfristig:
|
||||
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
|
||||
Die VPS nutzt mehrere Sicherheitslayer.
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Sicherheitskomponenten
|
||||
## Sicherheitskomponenten
|
||||
|
||||
| Komponente | Aufgabe |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| CrowdSec | Dynamische Angriffsblockierung |
|
||||
| nftables | Paketfilterung |
|
||||
| Docker Netzwerkisolierung | Segmentierung |
|
||||
|
|
@ -17,36 +17,38 @@ Die VPS nutzt mehrere Sicherheitslayer.
|
|||
| Nginx Proxy Manager | TLS Terminierung |
|
||||
| authentik | Zentrale Authentifizierung |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Firewall
|
||||
## Firewall
|
||||
|
||||
## Aktueller Zustand
|
||||
### Aktueller Zustand
|
||||
|
||||
UFW ist deaktiviert.
|
||||
|
||||
Die VPS nutzt stattdessen:
|
||||
|
||||
- nftables
|
||||
- Docker-verwaltete Regeln
|
||||
- CrowdSec Integration
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Docker Isolation
|
||||
## Docker Isolation
|
||||
|
||||
Die Docker-Netzwerke sind durch nftables-Regeln segmentiert.
|
||||
|
||||
Vorhanden:
|
||||
|
||||
- RAW Regeln
|
||||
- Netzwerkisolation
|
||||
- Interface-basierte Filterung
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Öffentlich erreichbare Dienste
|
||||
## Öffentlich erreichbare Dienste
|
||||
|
||||
| Dienst | Port |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| NPM | 80 / 443 |
|
||||
| Forgejo | 3000 |
|
||||
| Forgejo SSH | 2222 |
|
||||
|
|
@ -54,23 +56,23 @@ Vorhanden:
|
|||
| TeamSpeak | 9987 / 10011 / 30033 |
|
||||
| WireGuard | 51820 |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Lokale Bindings
|
||||
## Lokale Bindings
|
||||
|
||||
Folgende Dienste sind nur lokal erreichbar:
|
||||
|
||||
| Dienst | Binding |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| NPM Admin | 127.0.0.1:81 |
|
||||
| Uptime Kuma | 127.0.0.1:3001 |
|
||||
| AdGuard UI | 127.0.0.1:3002 |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Sicherheitsbeobachtungen
|
||||
## Sicherheitsbeobachtungen
|
||||
|
||||
## Positiv
|
||||
### Positiv
|
||||
|
||||
- CrowdSec aktiv
|
||||
- Docker Netzwerksegmentierung
|
||||
|
|
@ -78,27 +80,27 @@ Folgende Dienste sind nur lokal erreichbar:
|
|||
- VPN sauber getrennt
|
||||
- geringe Angriffsfläche des Hosts
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Verbesserungspotenzial
|
||||
## Verbesserungspotenzial
|
||||
|
||||
## Hohe Priorität
|
||||
### Hohe Priorität
|
||||
|
||||
- authentik nicht direkt öffentlich exposen
|
||||
- Forgejo Exposure prüfen
|
||||
- öffentliche Ports reduzieren
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Mittlere Priorität
|
||||
### Mittlere Priorität
|
||||
|
||||
- Compose Standards vereinheitlichen
|
||||
- zentrale Loggingstrategie
|
||||
- automatische Sicherheitsbenachrichtigungen
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Langfristige Ziele
|
||||
## Langfristige Ziele
|
||||
|
||||
- minimale Angriffsfläche
|
||||
- vollständig dokumentierte Infrastruktur
|
||||
|
|
|
|||
|
|
@ -3,66 +3,66 @@
|
|||
## Reverse Proxy
|
||||
|
||||
| Dienst | Beschreibung |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Nginx Proxy Manager | Öffentlicher Reverse Proxy |
|
||||
| authentik | Zentrale Authentifizierung |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Cloud / Produktivität
|
||||
|
||||
| Dienst | Beschreibung |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Nextcloud | Cloud Plattform |
|
||||
| Collabora | Office Integration |
|
||||
| Vaultwarden | Passwortmanager |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Infrastruktur
|
||||
|
||||
| Dienst | Beschreibung |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| WireGuard | VPN |
|
||||
| CrowdSec | Angriffsschutz |
|
||||
| AdGuard Home | DNS |
|
||||
| Forgejo | Git Hosting |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Monitoring
|
||||
|
||||
| Dienst | Beschreibung |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Netdata | Live Monitoring |
|
||||
| Uptime Kuma | Uptime Monitoring |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
## Kommunikation
|
||||
|
||||
| Dienst | Beschreibung |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| TeamSpeak | Voice Server |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# SSO Status
|
||||
## SSO Status
|
||||
|
||||
| Dienst | SSO |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Nextcloud | aktiv |
|
||||
| Vaultwarden | aktiv |
|
||||
| Immich | aktiv |
|
||||
| Forgejo | geplant |
|
||||
| Matrix | geplant |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Bekannte Abhängigkeiten
|
||||
## Bekannte Abhängigkeiten
|
||||
|
||||
| Dienst | Abhängigkeit |
|
||||
|—|—|
|
||||
|---|---|
|
||||
| Nextcloud | MariaDB |
|
||||
| Nextcloud | Redis |
|
||||
| authentik | PostgreSQL |
|
||||
|
|
|
|||
|
|
@ -3,30 +3,33 @@
|
|||
## Allgemein
|
||||
|
||||
Die VPS dient als zentraler WireGuard-Hub zwischen:
|
||||
|
||||
- VPS
|
||||
- Heimnetz
|
||||
- mobilen Clients
|
||||
- zusätzlichen Geräten
|
||||
|
||||
Interface:
|
||||
|
||||
- wg0
|
||||
|
||||
Listening Port:
|
||||
|
||||
- 51820/UDP
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# VPN Netzwerk
|
||||
## VPN Netzwerk
|
||||
|
||||
## WireGuard Subnetz
|
||||
### WireGuard Subnetz
|
||||
|
||||
```text
|
||||
10.100.0.0/24
|
||||
```
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Heimnetz Routing
|
||||
## Heimnetz Routing
|
||||
|
||||
Folgende Route wird über den Heimnetz-Peer bereitgestellt:
|
||||
|
||||
|
|
@ -36,12 +39,12 @@ Folgende Route wird über den Heimnetz-Peer bereitgestellt:
|
|||
|
||||
Dadurch kann die VPS interne Dienste zuhause sicher erreichen.
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Aktuelle Peers
|
||||
## Aktuelle Peers
|
||||
|
||||
| Peer | Allowed IPs | Beschreibung |
|
||||
|—|—|—|
|
||||
|---|---|---|
|
||||
| 10.100.0.4 | 10.100.0.4/32 | Client |
|
||||
| 10.100.0.6 | 10.100.0.6/32 | Client |
|
||||
| 10.100.0.55 | 10.100.0.55/32 | Client |
|
||||
|
|
@ -51,24 +54,25 @@ Dadurch kann die VPS interne Dienste zuhause sicher erreichen.
|
|||
| 10.100.0.10 | 10.100.0.10/32 + 192.168.0.0/24 | Heimnetz Gateway |
|
||||
| 10.100.0.7 | 10.100.0.7/32 | Client |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Beobachtungen
|
||||
## Beobachtungen
|
||||
|
||||
## Positiv
|
||||
### Positiv
|
||||
|
||||
- Saubere /32 Zuordnung pro Client
|
||||
- Heimnetz sauber über separaten Peer geroutet
|
||||
- Keine offensichtlichen Routing-Konflikte
|
||||
- Keepalive sauber konfiguriert
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Verbesserungspotenzial
|
||||
## Verbesserungspotenzial
|
||||
|
||||
## Dokumentation ergänzen
|
||||
### Dokumentation ergänzen
|
||||
|
||||
Aktuell fehlen:
|
||||
|
||||
- Gerätenamen
|
||||
- Zuordnung der Peers
|
||||
- Zweck einzelner Clients
|
||||
|
|
@ -76,14 +80,14 @@ Aktuell fehlen:
|
|||
Empfehlung:
|
||||
|
||||
| VPN IP | Gerät | Zweck |
|
||||
|—|—|—|
|
||||
|---|---|---|
|
||||
| 10.100.0.x | MacBook | Mobiler Zugriff |
|
||||
| 10.100.0.x | Unraid | Heimnetz Gateway |
|
||||
| ... | ... | ... |
|
||||
|
||||
—
|
||||
---
|
||||
|
||||
# Langfristige Ziele
|
||||
## Langfristige Ziele
|
||||
|
||||
- Vollständige Peer-Dokumentation
|
||||
- Backup der WireGuard-Konfiguration
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue