MQTT zabezpieczenie

Witam,
Czy można zabezpieczyć dostęp do MQTT użytkownikiem/hasłem? Domyślnie usługa nie jest zabezpieczona. Jeśli jest to opisane w dokumentacji to proszę o link i przepraszam że nie poszukałem bardziej :slight_smile:
Marek

Jasne, że można, nie robimy tego domyślnie, bo bramka działa lokalnie i wyszliśmy z założenia, że jak wpuszczamy kogoś do naszej sieci domowej, to znaczy, że “mu ufamy”.

Broker MQTT, który mamy na bramce to mosquitto:

$ mosquitto -h
mosquitto version 1.6.7

mosquitto is an MQTT v3.1.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

 -c : specify the broker config file.
 -d : put the broker into the background after starting.
 -h : display this help.
 -p : start the broker listening on the specified port.
      Not recommended in conjunction with the -c option.
 -v : verbose mode - enable all logging types. This overrides
      any logging options given in the config file.

See http://mosquitto.org/ for more information.

sami go kompilujemy, tak jak wszystkie binarki na bramce dostępne przez apt:

$ apt show mosquitto
Package: mosquitto
Version: 1.6.7-1
Maintainer: Nathaniel Wesley Filardo @nwf
Installed-Size: 467 kB
Depends: libuuid, libmosquitto (= 1.6.7-1)
Homepage: https://mosquitto.org/
Download-Size: 158 kB
APT-Manual-Installed: yes
APT-Sources: https://powiedz.co/apt dom-dev/beta arm Packages
Description: MQTT version 3.1/3.1.1 compatible message broker and clients

Konfiguracja jest w

/data/data/pl.sviete.dom/files/usr/etc/mosquitto/mosquitto.conf

można dodać hasło, szyfrowanie, łączyć się z innymi brokerami mqtt (bridge), oczywiście trzeba też zmienić konfigurację klientów (w tym nadpisać w konfigu Home Assistant naszą domyślną konfigurację mqtt)
tu jest opis jak działa konfiguracja brokera mqtt

Dziękuję za odpowiedź. Z zabezpieczeniem brokera sobie poradzę.

Czy mogę prosić o więcej szczegółów odnośnie konfiguracji strony klienckiej w systemie? Mam na myśli "
oczywiście trzeba też zmienić konfigurację klientów (w tym nadpisać w konfigu Home Assistant naszą domyślną konfigurację mqtt"

Które pliki konfiguracyjne trzeba poprawić?

To działa dokładnie tak jak w Home Assistant, główna konfiguracja jest w pliku configuration.yaml
dostępnym w folderze /data/data/pl.sviete.dom/files/home/AIS

Podczas uruchomienia Asystenta domowego łączymy konfigurację użytkownika z domyślną, którą ma wewnętrznie zdefiniowaną - nadpisujemy domyślną parametrami użytkownika.

Jeżeli dodasz w pliku configuration.yaml na końcu taką linijkę:

mqtt: !include mqtt.yaml

następnie w tym folderze dodasz plik mqtt.yaml ze swoimi ustawieniami brokera mqtt (pniżje są nasze domyślne ustawienia):

broker: 127.0.0.1
keepalive: 60
discovery: true
discovery_prefix: homeassistant
protocol: 3.1
birth_message:
  topic: "tele/hass1/LWT"
  payload: "Online"
  qos: 1
  retain: true
will_message:
  topic: "tele/hass1/LWT"
  payload: "Offline"
  qos: 1
  retain: true

sprawdzisz, że konfiguracja jest poprawna i zrestartujesz serwer:

To właśnie napisałeś domyślą konofigurację bokera MQTT dla Asystenta domowego.
Oczywiscie każdy inny klient MQTT (urządzenia) to osobny temat.

PS
tu są opisane wszystkie możliwe ustawienia brokera MQTT w Home Assistant

Uwaga

Nadpisywanie konfiguracji i stosowanie własnych komponentów == wiem co robię i radzę sobie!
Proszę nie liczyć na wsparcie, jeżeli używa się własnych parametrów i konfiguracji - nie mamy czasu na analizowanie problemów powstałych po zmianie konfiguracji lub dodaniu własnych niestandardowych komponentów.
Z góry dziękujemy za zrozumienie :slight_smile:

1 polubienie