mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2025-01-12 17:28:11 +01:00
Merge pull request #275 from Mr-Update/patch-2
German translation completed
This commit is contained in:
commit
91a59e4807
65
content/self-host/client-configuration/_index.de.md
Normal file
65
content/self-host/client-configuration/_index.de.md
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
title: Client-Konfiguration
|
||||
weight: 300
|
||||
pre: "<b>2.3. </b>"
|
||||
---
|
||||
|
||||
### Übersicht
|
||||
|
||||
Es gibt eine Reihe von Möglichkeiten, RustDesk-Clients so zu konfigurieren, dass sie Ihren eigenen, selbst gehosteten Server nutzen können. Einige davon werden im Folgenden beschrieben.
|
||||
|
||||
### Manuelle Konfiguration
|
||||
|
||||
Im Hauptmenü des RustDesk-Clients klicken Sie auf die Menü-Schaltfläche [ ⋮ ] neben Ihrer ID und dann auf Netzwerk. Sie können nun die Einstellungen mit erhöhten Rechten freischalten und Ihre ID, Relay, API und Schlüssel einstellen.
|
||||
|
||||
![image](/docs/en/self-host/client-configuration/images/network-config.png)
|
||||
|
||||
Geben Sie in das Eingabefeld **ID-Server** den `hbbs`-Host oder die IP-Adresse ein (lokale Seite und entfernte Seite). Die anderen beiden Adressen können leer gelassen werden, RustDesk wird sie automatisch ermitteln (falls nicht speziell eingestellt). Der Relay-Server bezieht sich auf `hbbr` (Port 21117).
|
||||
|
||||
Zum Beispiel
|
||||
|
||||
```nolang
|
||||
hbbs.example.com
|
||||
```
|
||||
|
||||
oder
|
||||
|
||||
```nolang
|
||||
hbbs.example.com:21116
|
||||
```
|
||||
|
||||
### Mit Import oder Export einrichten
|
||||
|
||||
1. Verwenden Sie die Schritte [oben](/docs/de/self-host/client-configuration/#manuelle-konfiguration), um den RustDesk-Client auf einem Gerät zu konfigurieren.
|
||||
2. Gehen Sie für das oben genannte Gerät zu Einstellungen, dann zu Netzwerk und entsperren.
|
||||
3. Klicken Sie auf `Serverkonfiguration exportieren`.
|
||||
4. Fügen Sie die kopierte Zeichenfolge in Notepad o. ä. ein.
|
||||
5. Gehen Sie zu einem neuen Client und kopieren Sie die obigen Angaben in die Zwischenablage.
|
||||
6. Gehen Sie in RustDesk-Client auf Einstellungen und dann auf Netzwerk, entsperren Sie den Zugang und klicken Sie auf `Serverkonfiguration importieren`.
|
||||
7. Die Einstellungen werden dann automatisch eingefügt.
|
||||
8. Klicken Sie auf `Anwenden`.
|
||||
|
||||
### Automatische Konfiguration
|
||||
|
||||
Der einfachste Weg zur automatischen Einrichtung ist die Verwendung von Deployment-Skripten, die Sie [hier](https://rustdesk.com/docs/en/self-host/client-deployment/) finden.
|
||||
|
||||
Sie können festlegen, dass das Passwort erforderlich ist und einen umgekehrten Base64-String im Format `{"host":"HOSTADDRESS", "key":"HOSTKEY", "api":"http://HOSTADDRESS:21114"}` verwenden, um die Clients automatisch zu konfigurieren.
|
||||
|
||||
Sie können auch die Schritte von [oben](/docs/de/self-host/client-configuration/#mit-import-oder-export-einrichten) verwenden, um die Zeichenfolge zu exportieren und sie dann mit [dieser Website](https://string-functions.com/reverse.aspx) umzukehren.
|
||||
|
||||
#### Konfiguration in den Dateinamen von rustdesk.exe einfügen (nur Windows)
|
||||
|
||||
Ändern Sie `rustdesk.exe` in rustdesk-`host=<host-ip-oder-name>,key=<public-key-string>`.exe, z. B. rustdesk-`host=192.168.1.137,key=xfdsfsd32=32`.exe. Das Ergebnis der Konfiguration sehen Sie im untenstehenden Über-Fenster.
|
||||
|
||||
<a name="invalidchar"></a>
|
||||
{{% notice note %}}
|
||||
Sie müssen sowohl `host` als auch `key` setzen, das Fehlen eines der beiden wird nicht funktionieren.
|
||||
|
||||
Fügen Sie nach dem Schlüssel optional ein `,` (Komma) als Trennzeichen vor `.exe` hinzu, um zu verhindern, dass der Schlüssel verstümmelt wird, wenn Windows oder der Browser die Datei beim Herunterladen von doppelten Namen umbenennt.
|
||||
|
||||
Wenn der Schlüssel ungültige Zeichen enthält, die nicht in einem Windows-Dateinamen verwendet werden können, entfernen Sie
|
||||
bitte die Datei `id_ed25519` von Ihrem Server und starten Sie `hbbs`/`hbbr` neu. Dadurch wird die Datei `id_ed25519.pub` neu generiert.
|
||||
Möglicherweise müssen Sie diesen Vorgang wiederholen, bis Sie gültige Zeichen erhalten.
|
||||
{{% /notice %}}
|
||||
|
||||
### [Benutzerdefinierte Einstellungen fest codieren](/docs/en/self-host/client-configuration/hardcode-settings/)
|
312
content/self-host/client-deployment/_index.de.md
Normal file
312
content/self-host/client-deployment/_index.de.md
Normal file
@ -0,0 +1,312 @@
|
||||
---
|
||||
title: Client-Bereitstellung
|
||||
weight: 400
|
||||
pre: "<b>2.4. </b>"
|
||||
---
|
||||
|
||||
Sie können eine Reihe von Methoden für die Bereitstellung verwenden, von denen einige in [Client-Konfiguration](/docs/de/self-host/client-configuration/) beschrieben sind.
|
||||
|
||||
Alternativ können Sie Skripte für die Massenbereitstellung mit Ihrem RMM, Intune usw. verwenden. Die ID und das Passwort werden vom Skript ausgegeben. Sie sollten sie ermitteln oder sie in verschiedene Skripte aufteilen, um die ID und das Passwort zu ermitteln.
|
||||
|
||||
Das permanente Passwort kann von einem Zufallspasswort in ein von Ihnen bevorzugtes Passwort geändert werden, indem Sie den Inhalt in `()` nach `rustdesk_pw` in Ihr bevorzugtes Passwort für PowerShell und die entsprechende Zeile für jede andere Plattform ändern.
|
||||
|
||||
### PowerShell
|
||||
|
||||
```ps
|
||||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
# Der Passwortvariablen ein zufälliges Passwort zuweisen
|
||||
$rustdesk_pw=(-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))
|
||||
|
||||
# Die Konfigurationszeichenkette von Ihrem Webportal abrufen und unten ausfüllen
|
||||
rustdesk_cfg="configstring"
|
||||
|
||||
############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###################################
|
||||
|
||||
# Wird als Administrator ausgeführt und bleibt im aktuellen Verzeichnis
|
||||
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
|
||||
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) {
|
||||
Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
|
||||
Exit;
|
||||
}
|
||||
}
|
||||
|
||||
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)
|
||||
|
||||
if($rdver -eq "1.2.2")
|
||||
{
|
||||
write-output "RustDesk $rdver is the newest version"
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
If (!(Test-Path C:\Temp)) {
|
||||
New-Item -ItemType Directory -Force -Path C:\Temp > null
|
||||
}
|
||||
|
||||
cd C:\Temp
|
||||
|
||||
powershell Invoke-WebRequest "https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.exe" -Outfile "rustdesk.exe"
|
||||
Start-Process .\rustdesk.exe --silent-install -wait
|
||||
|
||||
$ServiceName = 'Rustdesk'
|
||||
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
||||
|
||||
if ($arrService -eq $null)
|
||||
{
|
||||
Start-Sleep -seconds 20
|
||||
}
|
||||
|
||||
while ($arrService.Status -ne 'Running')
|
||||
{
|
||||
Start-Service $ServiceName
|
||||
Start-Sleep -seconds 5
|
||||
$arrService.Refresh()
|
||||
}
|
||||
|
||||
cd $env:ProgramFiles\RustDesk\
|
||||
$rustdesk_id = (.\RustDesk.exe --get-id | out-host)
|
||||
|
||||
net stop rustdesk > null
|
||||
.\RustDesk.exe --config $rustdesk_cfg
|
||||
|
||||
$ProcessActive = Get-Process rustdesk -ErrorAction SilentlyContinue
|
||||
if($ProcessActive -ne $null)
|
||||
{
|
||||
stop-process -ProcessName rustdesk -Force
|
||||
}
|
||||
|
||||
Start-Process "$env:ProgramFiles\RustDesk\RustDesk.exe" "--password $rustdesk_pw" -wait
|
||||
|
||||
Write-Output "..............................................."
|
||||
# Den Wert der ID-Variable anzeigen
|
||||
Write-Output "RustDesk ID: $rustdesk_id"
|
||||
|
||||
# Den Wert der Passwort-Variable anzeigen
|
||||
Write-Output "Password: $rustdesk_pw"
|
||||
Write-Output "..............................................."
|
||||
```
|
||||
|
||||
### Windows batch/cmd
|
||||
|
||||
```bat
|
||||
REM Assign the value random password to the password variable
|
||||
set rustdesk_pw=
|
||||
|
||||
REM Get your config string from your Web portal and Fill Below
|
||||
set rustdesk_cfg="configstring"
|
||||
|
||||
REM ############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###############################
|
||||
|
||||
if not exist C:\Temp\ md C:\Temp\
|
||||
cd C:\Temp\
|
||||
|
||||
curl -L "https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.exe" -o rustdesk.exe
|
||||
|
||||
rustdesk.exe --silent-install
|
||||
|
||||
$ServiceName = 'RustDesk'
|
||||
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
||||
|
||||
cd "C:\Program Files\RustDesk\"
|
||||
for /f "delims=" %i IN ('rustdesk.exe --get-id ^| more') DO set rustdesk_id=%i
|
||||
|
||||
net stop rustdesk > null
|
||||
RustDesk.exe --config %rustdesk_cfg%
|
||||
|
||||
net start rustdesk > null
|
||||
|
||||
RustDesk.exe --password %rustdesk_pw%
|
||||
|
||||
echo "..............................................."
|
||||
REM Den Wert der ID-Variablen ausgeben
|
||||
echo "RustDesk ID: %rustdesk_id%"
|
||||
|
||||
REM Den Wert der Passwort-Variablen ausgeben
|
||||
echo "Passwort: %rustdesk_pw%"
|
||||
echo "..............................................."
|
||||
```
|
||||
|
||||
### macOS Bash
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# Der Passwortvariablen ein zufälliges Passwort zuweisen
|
||||
rustdesk_pw=$(openssl rand -hex 4)
|
||||
|
||||
# Die Konfigurationszeichenkette von Ihrem Webportal abrufen und unten ausfüllen
|
||||
rustdesk_cfg="configstring"
|
||||
|
||||
############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###################################
|
||||
|
||||
# Prüfen, ob das Skript als root ausgeführt wird
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Das Skript muss als root ausgeführt werden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Den Pfad zur Datei rustdesk.dmg angeben
|
||||
dmg_file="/tmp/rustdesk-1.2.2-x86_64.dmg"
|
||||
|
||||
# Den Einhängepunkt für das DMG (temporäres Verzeichnis) angeben
|
||||
mount_point="/Volumes/RustDesk"
|
||||
|
||||
# Die Datei rustdesk.dmg herunterladen
|
||||
echo "RustDesk jetzt herunterladen"
|
||||
|
||||
if [[ $(arch) == 'arm64' ]]; then
|
||||
curl -L https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-aarch64.dmg --output "$dmg_file"
|
||||
else
|
||||
curl -L https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.dmg --output "$dmg_file"
|
||||
fi
|
||||
|
||||
# Einhängen der DMG-Datei in den angegebenen Einhängepunkt
|
||||
hdiutil attach "$dmg_file" -mountpoint "$mount_point" &> /dev/null
|
||||
|
||||
# Prüfen, ob das Einhängen erfolgreich war
|
||||
if [ $? -eq 0 ]; then
|
||||
# Den Inhalt der gemounteten DMG in den Ordner /Applications verschieben
|
||||
cp -R "$mount_point/RustDesk.app" "/Applications/" &> /dev/null
|
||||
|
||||
# Aushängen der DMG-Datei
|
||||
hdiutil detach "$mount_point" &> /dev/null
|
||||
else
|
||||
echo "Die RustDesk-DMG konnte nicht eingehängt werden. Die Installation wurde abgebrochen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Den Befehl rustdesk mit --get-id ausführen und die Ausgabe in der Variable rustdesk_id speichern
|
||||
cd /Applications/RustDesk.app/Contents/MacOS/
|
||||
rustdesk_id=$(./RustDesk --get-id)
|
||||
|
||||
# Neues Passwort auf RustDesk anwenden
|
||||
./RustDesk --server &
|
||||
/Applications/RustDesk.app/Contents/MacOS/RustDesk --password $rustdesk_pw &> /dev/null
|
||||
|
||||
/Applications/RustDesk.app/Contents/MacOS/RustDesk --config $rustdesk_cfg
|
||||
|
||||
# Alle Prozesse namens RustDesk beenden
|
||||
rdpid=$(pgrep RustDesk)
|
||||
kill $rdpid &> /dev/null
|
||||
|
||||
echo "..............................................."
|
||||
# Prüfen, ob die rustdesk_id nicht leer ist
|
||||
if [ -n "$rustdesk_id" ]; then
|
||||
echo "RustDesk-ID: $rustdesk_id"
|
||||
else
|
||||
echo "RustDesk-ID konnte nicht ermittelt werden."
|
||||
fi
|
||||
|
||||
# Den Wert der Passwortvariablen ausgeben
|
||||
echo "Passwort: $rustdesk_pw"
|
||||
echo "..............................................."
|
||||
|
||||
echo "Bitte schließen Sie die Installation auf der GUI ab und starten Sie RustDesk jetzt."
|
||||
open -n /Applications/RustDesk.app
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# Der Passwortvariablen ein zufälliges Passwort zuweisen
|
||||
rustdesk_pw=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
|
||||
|
||||
# Die Konfigurationszeichenkette von Ihrem Webportal abrufen und unten ausfüllen
|
||||
rustdesk_cfg="configstring"
|
||||
|
||||
############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###################################
|
||||
|
||||
# Prüfen, ob das Skript als root ausgeführt wird
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "Dieses Skript muss als root ausgeführt werden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# OS identifizieren
|
||||
if [ -f /etc/os-release ]; then
|
||||
# freedesktop.org und systemd
|
||||
. /etc/os-release
|
||||
OS=$NAME
|
||||
VER=$VERSION_ID
|
||||
|
||||
UPSTREAM_ID=${ID_LIKE,,}
|
||||
|
||||
# Rückgriff auf ID_LIKE, wenn ID nicht 'ubuntu' oder 'debian' war
|
||||
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
|
||||
UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)"
|
||||
fi
|
||||
|
||||
|
||||
elif type lsb_release >/dev/null 2>&1; then
|
||||
# linuxbase.org
|
||||
OS=$(lsb_release -si)
|
||||
VER=$(lsb_release -sr)
|
||||
elif [ -f /etc/lsb-release ]; then
|
||||
# Für einige Versionen von Debian/Ubuntu ohne den Befehl lsb_release
|
||||
. /etc/lsb-release
|
||||
OS=$DISTRIB_ID
|
||||
VER=$DISTRIB_RELEASE
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
# Ältere Debian, Ubuntu usw.
|
||||
OS=Debian
|
||||
VER=$(cat /etc/debian_version)
|
||||
elif [ -f /etc/SuSE-release ]; then
|
||||
# Ältere SuSE usw.
|
||||
OS=SuSE
|
||||
VER=$(cat /etc/SuSE-release)
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
# Ältere Red Hat, CentOS usw.
|
||||
OS=RedHat
|
||||
VER=$(cat /etc/redhat-release)
|
||||
else
|
||||
# Rückgriff auf uname, z. B. "Linux <version>", funktioniert auch für BSD usw.
|
||||
OS=$(uname -s)
|
||||
VER=$(uname -r)
|
||||
fi
|
||||
|
||||
# RustDesk installieren
|
||||
|
||||
echo "Installieren von RustDesk"
|
||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
||||
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.deb
|
||||
apt-get install -fy ./rustdesk-1.2.2-x86_64.deb > null
|
||||
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "$OS" = "Fedora Linux" ] || [ "${UPSTREAM_ID}" = "rhel" ] ; then
|
||||
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-0.x86_64.rpm
|
||||
yum localinstall ./rustdesk-1.2.2-0.x86_64.rpm -y > null
|
||||
else
|
||||
echo "Nicht unterstütztes OS"
|
||||
# Hier könnten Sie den Benutzer um Erlaubnis bitten, die Installation trotzdem zu versuchen
|
||||
# Wenn sie ja sagen, dann installieren Sie
|
||||
# Wenn sie nein sagen, das Skript beenden
|
||||
exit 1
|
||||
fi
|
||||
|
||||
systemctl stop rustdesk
|
||||
|
||||
# Führen Sie den Befehl rustdesk mit --get-id aus und speichern Sie die Ausgabe in der Variable rustdesk_id
|
||||
rustdesk_id=$(rustdesk --get-id)
|
||||
|
||||
# Neues Passwort auf RustDesk anwenden
|
||||
systemctl start rustdesk
|
||||
rustdesk --password $rustdesk_pw &> /dev/null
|
||||
|
||||
rustdesk --config $rustdesk_cfg
|
||||
|
||||
systemctl restart rustdesk
|
||||
|
||||
|
||||
echo "..............................................."
|
||||
# Prüfen, ob die rustdesk_id nicht leer ist
|
||||
if [ -n "$rustdesk_id" ]; then
|
||||
echo "RustDesk-ID: $rustdesk_id"
|
||||
else
|
||||
echo "RustDesk-ID konnte nicht ermittelt werden."
|
||||
fi
|
||||
|
||||
# Den Wert der Passwortvariablen ausgeben
|
||||
echo "Passwort: $rustdesk_password"
|
||||
echo "..............................................."
|
||||
```
|
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: Integration von Drittanbietern
|
||||
weight: 400
|
||||
pre: "<b>2.4.1 </b>"
|
||||
---
|
||||
|
||||
RustDesk wurde erfolgreich in eine Reihe von anderen Projekten integriert, einige davon finden Sie unten. Wenn Ihr Projekt mit RustDesk integriert werden soll oder Sie RustDesk bereits integriert haben, lassen Sie es uns bitte über support@rustdesk.com wissen, damit wir unsere Dokumente ergänzen können.
|
||||
|
||||
{{% children depth="3" showhidden="true" %}}
|
@ -0,0 +1,101 @@
|
||||
---
|
||||
title: Tactical RMM
|
||||
weight: 100
|
||||
---
|
||||
|
||||
## Um Tactical RMM mit RustDesk zu verwenden, müssen Sie Folgendes tun
|
||||
|
||||
1. Installieren Sie Ihren eigenen Tactical RMM-Server, folgen Sie den [offiziellen Dokumenten](https://docs.tacticalrmm.com/) und öffnen Sie Ports.
|
||||
2. Erstellen Sie die folgenden PowerShell-Skripte.
|
||||
3. Erstellen Sie eine [URL-Aktion](https://docs.tacticalrmm.com/functions/url_actions/).
|
||||
4. Erstellen Sie [benutzerdefinierte Felder](https://docs.tacticalrmm.com/functions/custom_fields/) für die RustDesk-ID und das Passwort.
|
||||
5. Erstellen Sie [Sammelaufgaben](https://docs.tacticalrmm.com/functions/automated_tasks/#collector-tasks).
|
||||
|
||||
## Installationsskript zum Ersetzen von IPADDRESS und KEY
|
||||
```ps
|
||||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
If (!(Test-Path C:\Temp)) {
|
||||
New-Item -ItemType Directory -Force -Path C:\Temp > null
|
||||
}
|
||||
|
||||
cd C:\Temp
|
||||
|
||||
powershell Invoke-WebRequest "https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.exe" -Outfile "rustdesk.exe"
|
||||
Start-Process .\rustdesk.exe --silent-install -wait
|
||||
|
||||
$ServiceName = 'Rustdesk'
|
||||
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
||||
|
||||
if ($arrService -eq $null)
|
||||
{
|
||||
Start-Sleep -seconds 20
|
||||
}
|
||||
|
||||
while ($arrService.Status -ne 'Running')
|
||||
{
|
||||
Start-Service $ServiceName
|
||||
Start-Sleep -seconds 5
|
||||
$arrService.Refresh()
|
||||
}
|
||||
net stop rustdesk
|
||||
|
||||
$username = ((Get-WMIObject -ClassName Win32_ComputerSystem).Username).Split('\')[1]
|
||||
Remove-Item C:\Users\$username\AppData\Roaming\RustDesk\config\RustDesk2.toml
|
||||
New-Item C:\Users\$username\AppData\Roaming\RustDesk\config\RustDesk2.toml
|
||||
Set-Content C:\Users\$username\AppData\Roaming\RustDesk\config\RustDesk2.toml "rendezvous_server = 'IPADDRESS' `nnat_type = 1`nserial = 0`n`n[options]`ncustom-rendezvous-server = 'IPADDRESS'`nkey = 'KEY='`nrelay-server = 'IPADDRESS'`napi-server = 'https://IPADDRESS'"
|
||||
Remove-Item C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml
|
||||
New-Item C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml
|
||||
Set-Content C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml "rendezvous_server = 'IPADDRESS' `nnat_type = 1`nserial = 0`n`n[options]`ncustom-rendezvous-server = 'IPADDRESS'`nkey = 'KEY='`nrelay-server = 'IPADDRESS'`napi-server = 'https://IPADDRESS'"
|
||||
|
||||
net start rustdesk
|
||||
```
|
||||
|
||||
## RustDesk ID abfragen (Sammelskript benötigt benutzerdefiniertes Agent-Feld)
|
||||
|
||||
```ps
|
||||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
cd $env:ProgramFiles\RustDesk\
|
||||
.\RustDesk.exe --get-id | out-host
|
||||
```
|
||||
|
||||
## RustDesk Passwort setzen und abfragen (Sammelskript benötigt benutzerdefiniertes Agent-Feld)
|
||||
```ps
|
||||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
$confirmation_file = "C:\Program Files\RustDesk\runonce.txt"
|
||||
|
||||
if ([System.IO.File]::Exists($confirmation_file)) {
|
||||
echo "Bestätigungsdatei ist vorhanden"
|
||||
exit 0
|
||||
}
|
||||
else
|
||||
{
|
||||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
net stop rustdesk > null
|
||||
$ProcessActive = Get-Process rustdesk -ErrorAction SilentlyContinue
|
||||
if($ProcessActive -ne $null)
|
||||
{
|
||||
stop-process -ProcessName rustdesk -Force
|
||||
}
|
||||
|
||||
$rustdesk_pw = (-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))
|
||||
Start-Process "$env:ProgramFiles\RustDesk\RustDesk.exe" "--password $rustdesk_pw" -wait
|
||||
Write-Output $rustdesk_pw
|
||||
|
||||
net start rustdesk > null
|
||||
|
||||
New-Item $confirmation_file > null
|
||||
}
|
||||
```
|
||||
|
||||
## RustDesk URL-Aktion
|
||||
```
|
||||
rustdesk://connection/new/{{agent.rustdeskid}}?password={{agent.rustdeskpwd}}
|
||||
```
|
||||
|
||||
## Benutzerdefinierte Agent-Felder hinzufügen
|
||||
`rustdeskid Type = Text` </br>
|
||||
`rustdeskpwd Type = Text`
|
@ -0,0 +1,137 @@
|
||||
---
|
||||
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).
|
||||
|
||||
## Schichten
|
||||
- [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
|
||||
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/`.
|
||||
- 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.
|
||||
|
||||
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.
|
Loading…
Reference in New Issue
Block a user