Ziel dieser Maßnahmen:
wir benutzen den bestehenden wireguard Tunnel von pi-star um die MQTT Daten (früher openhab) für den DB0SL Webserver zugänglich zu machen. Dazu wird der Traffic auf Port: 1883 durch den Tunnel geleitet. Der pi-star Raspi fungiert dazu als Gateway
Gerät / Rolle | IP-Adresse | Beschreibung |
---|---|---|
MQTT Broker (Quelle) | 192.168.144.21 | Läuft auf OpenHAB-Raspi in Hütte |
WG-Gateway (Raspi) | 192.168.144.44 / 10.13.0.2 | Raspi mit WireGuard Tunnel |
Zentrale MQTT-Broker | 192.168.10.88 | Lokaler MQTT-Zielserver |
Zentrale WG-IP | 10.13.0.1 | PC im VPN-Netz |
Der zentrale MQTT-Server (192.168.10.88) oder ein Client im 10.13.0.0/24-Netz soll über 10.13.0.2 auf den entfernten MQTT-Broker 192.168.144.21 zugreifen können. Die Verbindung erfolgt via NAT-Weiterleitung über den WireGuard-Tunnel.
Verwendetes Interface: wg0 (Verifiziert mit `ip route get 10.13.0.1`)
# PREROUTING: Weiterleitung eingehender MQTT-Verbindungen sudo iptables -t nat -A PREROUTING -i wg0 -p tcp --dport 1883 -j DNAT --to-destination 192.168.144.21:1883 # POSTROUTING: Maskieren der Antwortpakete sudo iptables -t nat -A POSTROUTING -s 10.13.0.0/24 -d 192.168.144.0/24 -o eth0 -j MASQUERADE
# Temporär aktivieren sudo sysctl -w net.ipv4.ip_forward=1 # Dauerhaft in /etc/sysctl.conf net.ipv4.ip_forward=1 # Aktivieren sudo sysctl -p
sudo apt install iptables-persistent sudo netfilter-persistent save
Datei: `/etc/mosquitto/mosquitto.conf`
pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log listener 1883 0.0.0.0
Hinweis: Keine doppelten Listener in conf.d!
telnet 10.13.0.2 1883
mosquitto_sub -h 10.13.0.2 -t "#" -v
Problem | Lösung |
---|---|
iptables-Regel auf falschem Interface | korrekter Interface war wg0 |
iptables-Regeln greifen nicht (0 pkts) | IP-Forwarding war deaktiviert |
mosquitto lauschte nur lokal | listener 1883 0.0.0.0 in mosquitto.conf |
Mosquitto-Startfehler durch Duplikate | nur einen Listener definieren |