---
title: 'Zusätzliche Dienste: Tailscale, Syncthing & Mosquitto'
url: 'https://blog.ro011110ot.de/de/vps/2-zusaetzliche-dienst-tailscale-syncthing-mosquitto'
markdown: 'https://blog.ro011110ot.de/de/vps/2-zusaetzliche-dienst-tailscale-syncthing-mosquitto.md'
lang: de
date: '2026-10-05'
description: 'Zusätzliche Dienste: Tailscale, Syncthing & Mosquitto Diese Notiz beschreibt die Installation und isolierte Konfiguration von Tailscale, Syncthing und dem Mosquitto MQTT-Broker auf einem minimalen Debian-System. User USER anlegen und konfigurieren Wir erstellen den Benutzer, fügen ihn der sudo-…'
---

# Zusätzliche Dienste: Tailscale, Syncthing & Mosquitto

Diese Notiz beschreibt die Installation und isolierte Konfiguration von Tailscale, Syncthing und dem Mosquitto MQTT-Broker auf einem minimalen Debian-System.

### User `USER` anlegen und konfigurieren

Wir erstellen den Benutzer, fügen ihn der `sudo`-Gruppe hinzu und weisen ihm direkt `zsh` als Standard-Shell zu:

Bash

```Bash
# Create the new user (you will be prompted to set a password)
adduser USER

# Add the user to the sudo group
usermod -aG sudo USER

# Set zsh as the default shell for the new user
chsh -s /bin/zsh USER
```

## 1. Tailscale Installation & Tailscale SSH

Tailscale erstellt ein sicheres Mesh-VPN. Damit kannst du verschlüsselt auf das ISPConfig-Panel oder SSH zugreifen, ohne die Ports im Netcup-Panel komplett für das öffentliche Internet öffnen zu müssen. Durch das Aktivieren von **Tailscale SSH** übernimmt Tailscale die SSH-Authentifizierung, sodass du den Standard-SSH-Port komplett schließen kannst.

```Bash
# Tailscale über das offizielle Skript installieren
curl -fsSL https://tailscale.com/install.sh | sh

# Tailscale mit aktivierter SSH-Funktion starten und Server authentifizieren
sudo tailscale up --ssh
```

> \[!NOTE\] Wenn du dich in Zukunft von deinem Hostsystem über Tailscale per SSH verbinden willst, reicht ein einfaches: `tailscale ssh root@server` Du musst dafür keine Passwörter eingeben oder Keys kopieren, solange du auf deinem lokalen Gerät bei Tailscale eingeloggt bist.
> 
> \[!CAUTION\] **Neue IP bei NextDNS Rewrite Rules eintragen**

## 2. Syncthing Installation

Syncthing übernimmt die kontinuierliche, dezentrale Dateisynchronisation. Wir binden hier das offizielle Repository ein, um immer die aktuellste Stable-Version zu erhalten.

```Bash
# Offizielle PGP-Keys für das Repository hinzufügen
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

# Offizielle Apt-Quelle hinzufügen
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

# Paketquellen aktualisieren und Syncthing installieren
sudo apt update
sudo apt install -y syncthing

# Start service once to generate configuration files
systemctl start syncthing@USER.service
# warte 10 Sekunden
sleep 10
# Stop it immediately to safely edit the XML file
systemctl stop syncthing@USER.service
```

 Important

Standardmäßig lauscht das Syncthing-Webinterface nur auf `127.0.0.1:8384`. Um den Zugriff exklusiv auf dein sicheres VPN zu beschränken, ermittle deine Tailscale-IP via
`tailscale ip -4`und trage sie in der `config.xml` ein: `micro /home/USER/.local/state/syncthing/config.xml`

```xml
<address>DEINE_TAILSCALE_IP:8384</address>
```

Danach den Dienst mit `sudo systemctl restart syncthing@root.service` neu starten. Das Webinterface ist nun ausschließlich über das Tailscale-Netzwerk aufrufbar.

# Syncthing starten

```bash
systemctl enable --now syncthing@USER.service
```

## 3. Mosquitto MQTT Broker

Mosquitto dient als leichtgewichtiger Nachrichten-Vermittler (Broker) für die eingebetteten Systeme (ESP32 via CachyOS-Hotspot) und die Dashboard-Kommunikation.

```bash
# Mosquitto Server und Client-Tools installieren
sudo apt install -y mosquitto mosquitto-clients

# Service aktivieren und starten
sudo systemctl enable --now mosquitto
```

### Mosquitto absichern (Exklusiv via Tailscale & Passwort)

Damit der Broker im öffentlichen Internet komplett unsichtbar ist und nur authentifizierte Geräte Daten senden können, binden wir ihn an das Tailscale-VPN und richten eine Benutzer-Authentifizierung ein.

```Bash
# 1. Passwort-Datei erstellen und einen User anlegen (z.B. esp32_client)
# Du wirst danach zur Eingabe eines Passworts aufgefordert
sudo mosquitto_passwd -c /etc/mosquitto/passwd USER

# 2. Tailscale-IP des VPS herausfinden
tailscale ip -4

# 3. Konfiguration für exklusiven VPN-Zugriff und Authentifizierung öffnen
sudo micro /etc/mosquitto/conf.d/default.conf
```

Füge folgende Zeilen in die Konfigurationsdatei ein (Tailscale-IP anpassen):

```Code-Snippet
# /etc/mosquitto/conf.d/default.conf

# =================================================================
# Aktive Konfiguration (Tailscale & Authentifizierung)
# =================================================================

# Binde den Broker deine Tailscale-IP
listener 1883 100.121.130.85

# 2. Listener für Localhost (für Skripte direkt auf dem VPS)
listener 1883 127.0.0.1

# Sicherheit: Nur autorisierte Benutzer
allow_anonymous false
password_file /etc/mosquitto/passwd

# =================================================================
# Zusätzliche Optionen (Dokumentation/Vorlagen)
# =================================================================

# 1. Logging: Aktiviere detaillierte Logs, falls du Fehler suchen musst
# log_dest file /var/log/mosquitto/mosquitto.log
# log_type all

# 2. Persistence: Hilfreich, falls der VPS neu startet (QoS 1 & 2 Nachrichten bleiben erhalten)
# persistence true
# persistence_location /var/lib/mosquitto/

# 3. Connection Timeouts: Falls ESP32-Nodes instabil wirken
# max_keepalive 60

# 4. Sicherheit: ACL (Access Control List) - falls du später einschränken willst,
# welche User auf welche Topics zugreifen dürfen.
# acl_file /etc/mosquitto/aclfile
```

Danach den Broker einmal neu starten, um die Änderungen zu übernehmen:

```Bash
sudo systemctl restart mosquitto
```

> \[!TIP\] Da die ESP32-Nodes über den Hotspot deines CachyOS-Hostsystems laufen, verbinden sie sich im Quellcode einfach direkt mit der Tailscale-IP des VPS auf Port 1883 und authentifizieren sich mit dem angelegten `esp32_client`. Der MQTT-Port muss in der öffentlichen Netcup-Firewall nicht geöffnet werden!

```

Damit sind jetzt alle drei Zusatzdienste (Tailscale SSH, Syncthing und Mosquitto) lückenlos über dein verschlüsseltes VPN isoliert!
```

## 4. Status-Prüfung und Live-Logs

Mit diesen Befehlen kannst du nach der Installation kontrollieren, ob alle drei Dienste sauber laufen:

Bash

```Bash
# Status der einzelnen Dienste prüfen
sudo systemctl status tailscaled
sudo systemctl status syncthing@root
sudo systemctl status mosquitto

# Live-MQTT-Logs über deinen Zsh-Alias einsehen
mqtt
```

## 6. Firewall-Konfiguration & Tailscale-Isolierung

1. Logge dich im ISPConfig Panel über deine Tailscale-IP ein: `https://<TAILSCALE_IP>:8080`.
2. Navigiere zu **System** -> **Firewall** -> **Add new Firewall record**.
3. Konfiguriere die **öffentlichen** Ports extrem restriktiv: 
    - **TCP Ports**: `80, 443` (Nur normales Web-Traffic)
    - **UDP Ports**: (leer lassen)
4. Da Port `22` (SSH) und Port `8080` (ISPConfig) im öffentlichen Netz blockiert sind, erlaube auf der Server-Konsole den vollen Zugriff exklusiv über das Tailscale-Schnittstellen-Interface:

```bash

# Erlaube jeglichen internen Traffic über das verschlüsselte Tailscale-Netzwerk
sudo ufw allow in on tailscale0
```

---

## Navigation

- Next: [uv für den user installieren](https://blog.ro011110ot.de/de/vps/3-scripte-einrichten.md)
