4.4 KiB
title | weight |
---|---|
RustDesk Servers mehrschichtiges Sicherheitsmodell | 100 |
Freundlicherweise aufgeschrieben von @I-Am-Skoot.
Schichten
- RustDesk Werkzeug zur Fernunterstützung
- NPM Proxy-Manager-Werkzeug
- Docker Werkzeug zur Containerisierung
- Firewall Tool
Voraussetzungen
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.
- 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/
.
- Jede Anwendung hat einen eigenen Ordner in
- 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.
- 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
Docker Compose einrichten
Dadurch wird ein Container mit NPM und den richtigen Netzwerken gestartet.
Kopieren Sie den folgenden Text in die Datei docker-compose.yaml.
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:
- 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
Proxy-Host konfigurieren:
- 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.)
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}
Endergebnis
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.