Netzwerk-Konfiguration
Firewall, Reverse Proxy und SSL/TLS fuer deinen PluriKey-Server. Die drei Deployment-Modi bestimmen, wer auf den Server zugreifen kann.
Deployment-Modi
| Modus | Binding | Zugriff | Verwendung |
|---|---|---|---|
local | 127.0.0.1:8200 | Nur localhost | Einzelplatz, Extension auf gleichem Rechner |
lan | 0.0.0.0:8200 | Lokales Netzwerk | Heimnetz, mehrere Geraete |
remote | 0.0.0.0:8200 | Internet (via Reverse Proxy) | Ueberall erreichbar, erfordert SSL |
Firewall (UFW)
# Nur LAN-Modus: Port 8200 fuer lokales Netz
sudo ufw allow from 192.168.0.0/16 to any port 8200
# Remote-Modus: HTTPS oeffentlich, PluriKey nur lokal
sudo ufw allow 443/tcp
sudo ufw deny 8200/tcp
Warnung
Im Remote-Modus NIEMALS Port 8200 direkt ins Internet freigeben. Immer einen Reverse Proxy mit SSL davor schalten!
Reverse Proxy mit nginx
Beispiel-Konfiguration fuer /etc/nginx/sites-available/plurikey:
server {
listen 443 ssl http2;
server_name plurikey.example.com;
ssl_certificate /etc/letsencrypt/live/plurikey.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/plurikey.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8200;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
SSL-Zertifikat via Let's Encrypt (certbot) empfohlen. Siehe Abschnitt SSL/TLS mit Let's Encrypt weiter unten.
Reverse Proxy mit Caddy
Caddy ist eine einfachere Alternative zu nginx. Die gesamte Konfiguration in der Caddyfile:
plurikey.example.com {
reverse_proxy localhost:8200
}
Tipp
Caddy holt und erneuert SSL-Zertifikate automatisch. Ideal fuer einfache Setups.
SSL/TLS mit Let's Encrypt
Fuer nginx-basierte Setups:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d plurikey.example.com
Certbot richtet einen systemd Timer ein, der das Zertifikat automatisch erneuert. Zum Testen der Erneuerung:
sudo certbot renew --dry-run
DNS-Konfiguration
Erstelle folgende DNS-Eintraege bei deinem Domain-Anbieter:
| Typ | Name | Wert |
|---|---|---|
A | plurikey.example.com | Deine-Server-IP |
AAAA | plurikey.example.com | (optional, IPv6) |
Sicherheits-Empfehlungen
- HTTPS immer verwenden im Remote-Modus
- HTTP Strict Transport Security (HSTS) Header setzen
- Rate-Limiting auf API-Endpunkte (nginx
limit_req) - fail2ban fuer SSH und nginx konfigurieren
- PluriKey-Server als eigener Systembenutzer (nicht root!)