doc.rustdesk.com/content/self-host/rustdesk-server-pro/installscript/Docker/RustDesk Server Layered Security Model/_index.de.md

139 lines
4.4 KiB
Markdown
Raw Normal View History

2023-09-01 21:28:47 +02:00
---
title: RustDesk Servers mehrschichtiges Sicherheitsmodell
weight: 100
---
Freundlicherweise aufgeschrieben von [@I-Am-Skoot](https://github.com/I-Am-Skoot/RustDeskNPMDocker/commits?author=I-Am-Skoot).
2023-10-24 22:18:29 +02:00
### Schichten
2023-09-01 21:28:47 +02:00
- [RustDesk](https://github.com/rustdesk/rustdesk) Werkzeug zur Fernunterstützung
- [NPM](https://nginxproxymanager.com/) Proxy-Manager-Werkzeug
- [Docker](https://www.docker.com) Werkzeug zur Containerisierung
- Firewall Tool
#### Voraussetzungen
2023-10-24 22:18:29 +02:00
Bei diesem Beispiel handelt es sich um eine All-in-one-Lösung, die nur die RustDesk-Dienste hostet. Dies kann zu einer flexibleren Lösung erweitert werden, indem der NPM in eine eigene Docker Compose aufgeteilt wird.
2023-09-01 21:28:47 +02:00
- DMZ-Netzwerk: 192.168.1.0/24
- NPM (extern): 192.168.1.250
- LAN-Netzwerk: 10.0.0.0/24
- RSBackend-Netzwerk: 192.168.254.0/29
- NPM (intern): 192.168.254.1
- HBBS: 192.168.254.2
- HBBR: 192.168.254.3
- Docker-Host: Linux
- Jede Anwendung hat einen eigenen Ordner in `/opt/`.
- Hostname: uniquehostname (dies ändern)
- DNS-Name: rustdesk.example.com
Ändern Sie die Beispiele nach Bedarf ab.
### Docker vorbereiten
Sie müssen Docker bereits installiert haben. Diese Anleitung geht nicht auf die Einzelheiten ein.
Sie müssen ein Netzwerk für das RustDesk Server-Backend und die DMZ erstellen.
Für jede Anwendung, die Sie mit dem NPM (Nginx Proxy Manager) verwenden, sollten Sie ein eigenes Backend-Netzwerk haben, um sie zu isolieren.
```
docker network create \
--driver=bridge \
--subnet=192.168.254.0/29 RSBackend
docker network create \
--driver=ipvlan --subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o ipvlan_mode=l2 \
-o parent=eth0 DMZ
```
### Firewall einrichten
Konfigurieren Sie die folgenden Portweiterleitungen/NAT-Ports von Ihrer öffentlichen IP-Adresse zum NPM-Server.
2023-09-09 22:17:29 +02:00
- 21114 → 8080 TCP
- 21115 → 21115 TCP
- 21116 → 21116 TCP/UDP
- 21117 → 21117 TCP
- 21118 → 21118 TCP
- 21119 → 21119 TCP
- 443 → 443 TCP # Wenn Sie SSL verwenden möchten
2023-09-01 21:28:47 +02:00
### Docker Compose einrichten
Dadurch wird ein Container mit NPM und den richtigen Netzwerken gestartet.
2023-09-09 22:17:29 +02:00
Kopieren Sie den folgenden Text in die Datei docker-compose.yaml.
2023-09-01 21:28:47 +02:00
```
version: '3.5'
services:
NPM:
image: jlesage/nginx-proxy-manager:latest
container_name: proxy-manager
volumes:
- /opt/proxy-manager/config:/config
restart: 'unless-stopped'
networks:
DMZ:
ipv4_address: 192.168.1.250
RSBackend:
ipv4_address: 192.168.254.1
hbbs:
container_name: rustdesk_hbbs
image: rustdesk/rustdesk-server-pro:latest
command: hbbs -k _
hostname: uniquehostname # dies ändern
volumes:
- /opt/rustdeskserver:/root
networks:
RSBackend:
ipv4_address: 192.168.254.2
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: rustdesk_hbbr
image: rustdesk/rustdesk-server-pro:latest
command: hbbr -k _
volumes:
- /opt/rustdeskserver:/root
networks:
RSBackend:
ipv4_address: 192.168.254.3
restart: unless-stopped
networks:
DMZ:
external: true
RSBackend:
external: true
```
### NPM einrichten
Stream Hosts für die folgenden Ports konfigurieren:
2023-09-09 22:17:29 +02:00
- 21115 → 192.168.254.2:21115 TCP
- 21116 → 192.168.254.2:21116 TCP / UDP
- 21117 → 192.168.254.3:21117 TCP
- 21118 → 192.168.254.2:21118 TCP
- 21119 → 192.168.254.3:21119 TCP
- 80 → 127.0.0.1:8080 TCP # erfasst den lokalen Verkehr
2023-09-01 21:28:47 +02:00
Proxy-Host konfigurieren:
2023-09-09 22:17:29 +02:00
- Domainname: rustdesk.example.com
- Schema: http
- Weiterleitung des Hostnamens / IP: 192.168.254.2
- Weiterleitungsport: 21114
- Verbreitete Exploits blockieren: überprüft
- Optional: SSL konfigurieren **(NICHT ERFORDERLICH - Der Client muss in der Lage sein, ohne SSL zu kommunizieren.)**
2023-09-01 21:28:47 +02:00
### RustDesk Server einrichten
Verbinden Sie sich mit der Server-Schnittstelle http://rustdesk.example.com oder https://rustdesk.example.com, wenn Sie SSL für die Web-Schnittstelle konfiguriert haben.
### RustDesk-Client einrichten
Den Client konfigurieren:
- ID-Server: rustdesk.example.com
- Relay-Server: rustdesk.example.com
- API-Server: http://rustdesk.example.com (HTTPS verwenden, wenn Sie SSL konfiguriert haben)
- Key: {Serverschlüssel hier}
2023-10-24 22:18:29 +02:00
### Endergebnis
2023-09-01 21:28:47 +02:00
Ihre Lösung wird von außen über den Proxy-Manager erreichbar sein. Sie können Ihre RustDesk-Server von anderen Systemen isolieren. Insbesondere, wenn Sie ein geteiltes Konfigurationssystem verwenden und andere Anwendungen bzw. Sites hinter einem gemeinsamen NPM haben.