# RustDesk

The Fast Open-Source Remote Access and Support Software

# RustDesk - deployment

Environment
```
Operating System: Debian GNU/Linux 12 (bookworm)
```


Create DNS record
```
dig A desk.2dz.fi +short
35.228.9.88
```

Request LE certificate
```bash
cd /etc/nginx/sites-available/
cp default desk.2dz.fi.conf
ln -s /etc/nginx/sites-available/desk.2dz.fi.conf /etc/nginx/sites-enabled/
nginx -t
nginx -s reload
certbot --nginx -d desk.2dz.fi
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-03/scaled-1680-/hqnOjSLdX0behTWR-image-1772806529100.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-03/hqnOjSLdX0behTWR-image-1772806529100.png)


download RustDesk
```bash
export homedir="/home/anton/delme/rustdesk"
mkdir -p ${homedir}
cd ${homedir}
```

download and install
```bash
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh \
    --resolvedns desk.2dz.fi
    --install-http
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-03/scaled-1680-/lWGxt7uajolbrB1I-image-1772806878662.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-03/lWGxt7uajolbrB1I-image-1772806878662.png)

Note down:
1) URL to admin page
2) public key
3) username and password


Verify webserver is running
```bash
systemctl status gohttpserver
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-03/scaled-1680-/GtFfB91CbWuQjfS3-image-1772807071672.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-03/GtFfB91CbWuQjfS3-image-1772807071672.png)

And processes listening
```bash
ss -ntap | grep http
```






Harden:
```bash
TODO: enable TLS/SSL with LE generated cert

TODO: disable google analytics from webserver

```

# RustDesk on SUSE v15.6 Xfc DE

Installing RustDesk remote management solution on pure, clean, fresh install of SUSE 15.6 with 'Xfc' Graphical Desktop Environment. For non-GUI/DE setup, refer [here]().

```bash
hostnamectl set-hostname ku5desk2

zypper lr
zypper mr -d repo-openh264
zypper ps -s
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/NCtZEW2eAPw5HaXH-image-1775195821046.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/NCtZEW2eAPw5HaXH-image-1775195821046.png)

Install 'tmux'
```bash
zypper install \
    tmux
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/NQanSQy9eL6s7Ztw-image-1775195895180.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/NQanSQy9eL6s7Ztw-image-1775195895180.png)


If youhave forgotten during the setup to enable SSH server (as I did), download and start the service
```bash
zypper install \
    openssh-server \
    openssh
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/0Yqulqsk6f9FS0Lm-image-1775195762649.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/0Yqulqsk6f9FS0Lm-image-1775195762649.png)




Enable and start SSH server
```bash
systemctl enable sshd
systemctl start sshd
systemctl status sshd
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/tVEKxckd9bFruA24-image-1775195991358.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/tVEKxckd9bFruA24-image-1775195991358.png)


Open firewall
```bash
firewall-cmd --permanent --add-service=ssh
firewall-cmd --list-services
```


Verify connection
```bash
# on target, get IP address
ip -br a

# connect from local machine
ssh anton@10.xx.xx.xx

# verify over connection
hostnamectl
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/um6hYslbebHFZQ2n-image-1775196231123.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/um6hYslbebHFZQ2n-image-1775196231123.png)



Navigate to RustDesk official repository on Github
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/pwgfHshXYjriHQpy-image-1775196364744.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/pwgfHshXYjriHQpy-image-1775196364744.png)

Right-click on SUSE RPM package and 'Copy link'
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/fkM6s5K1BP2sRGtD-image-1775196427290.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/fkM6s5K1BP2sRGtD-image-1775196427290.png)


Download RustDesk on target
```bash
export dir="/home/anton/delme"
mkdir -p ${dir}
cd ${dir}
pwd

export link="https://github.com/rustdesk/rustdesk/releases/download/1.4.6/rustdesk-1.4.6-0.x86_64-suse.rpm"
wget ${link}
sudo zypper install rustdesk-1.4.6-0.x86_64-suse.rpm
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/ajFz6LDu0xuWxk3i-image-1775199102625.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/ajFz6LDu0xuWxk3i-image-1775199102625.png)

Ignore unsigned package and proceed, respond ```i```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/cRYNS0e6hB8oHput-image-1775199203766.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/cRYNS0e6hB8oHput-image-1775199203766.png)


Enable and start a service
```bash
systemctl enable rustdesk
systemctl start rustdesk
systemctl status rustdesk
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/Z61A18rLFTB1qYuP-image-1775199365506.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/Z61A18rLFTB1qYuP-image-1775199365506.png)


Generate complex password with you password manager and SAVE it to password manager and save it to file.




Still SSH open, create a file with credentials to be used in configuration the service. Usually, this setup is performed within hypervisor's control panel and clipboard might not work as expected.
```bash
vi credentials.txt
```
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/IObuc3so29Gf0B8u-image-1775199738588.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/IObuc3so29Gf0B8u-image-1775199738588.png)


In graphical Desktop Environment (DE), invoke configuration from menu bar
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/rjCL9bkjp0jSQHPK-image-1775199502113.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/rjCL9bkjp0jSQHPK-image-1775199502113.png)


Access menu via icon in top-right corner
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/a5wYGMNHiT9Sn66K-image-1775199566714.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/a5wYGMNHiT9Sn66K-image-1775199566714.png)



Open Network tab and provide destination and credentials (public key) (7-8. copy paste from Terminal, as CTRL combination might not work over console/terminal, use 'Menu > Edit > Copy' and then right-click and 'Paste')
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/WYslzUKqEYLdtUWe-image-1775200023203.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/WYslzUKqEYLdtUWe-image-1775200023203.png)



Under Security tab:
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/yA4Ts8RnaTt69ihi-image-1775200184904.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/yA4Ts8RnaTt69ihi-image-1775200184904.png)

Disable both passwords and set to "Use permanent password"
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/uzncSQVoHLPRO5Jj-image-1775200249600.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/uzncSQVoHLPRO5Jj-image-1775200249600.png)

Define earlier generated password (copy-paste from CLI)
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/hD7sfGT490LCJyaF-image-1775200583454.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/hD7sfGT490LCJyaF-image-1775200583454.png)

Right-click and 'Paste'
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/LPITkBIdCxNQuK1W-image-1775200620850.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/LPITkBIdCxNQuK1W-image-1775200620850.png)


Enable 2FA
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/d7WfHiSRnflBMVaf-image-1775200660268.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/d7WfHiSRnflBMVaf-image-1775200660268.png)

Scan code and provide TOTP to confirm
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/rz0afJiUQFss2vwC-image-1775200718130.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/rz0afJiUQFss2vwC-image-1775200718130.png)

Untick 'Enable trusted devices' for security reasons (to provide TOTP every login).
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/8N0FkdsWETOgNtDY-image-1775200804280.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/8N0FkdsWETOgNtDY-image-1775200804280.png)

Click on 'Home' and save instance ID to your password manager, it will be the unique number, where you will be connecting to.
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/TqL3zcn95rambqtr-image-1775200884642.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/TqL3zcn95rambqtr-image-1775200884642.png)


System is now configured, try to access it remotely
[![](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/scaled-1680-/cfprsdtJqSRcP7YI-image-1775201097848.png)](https://storage.googleapis.com/iau-data-dox/uploads/images/gallery/2026-04/cfprsdtJqSRcP7YI-image-1775201097848.png)



With great power, comes great responsibility.