Chciałbym, aby mój broker MQTT był dostępny spoza mojej sieci domowej, ale trochę niechętnie otwieram port w zaporze. I chciałbym uniknąć używania mojego domowego adresu IP.
Posiadanie w domu niezaszyfrowanego otwartego brokera jest dość wygodne, ale to nie działa, jeśli mam go ujawnić. Jakie inne opcje mam?
Odpowiedzi:
Zasadniczo masz 3 opcje, jeśli nie chcesz przekierowywać portu.
Jednak przekierowanie portu do odpowiednio skonfigurowanego (mniej więcej takiego samego jak brokera w chmurze) tak naprawdę nie stanowi ryzyka.
źródło
Ponieważ broker jest serwerem, MUSISZ otworzyć co najmniej jeden port, aby klienci mogli się połączyć.
Twój problem staje się więc szczególnym przypadkiem ujawnienia usługi w Internecie.
Dokonano tego za pośrednictwem DMZ, przez proxy lub w inny sposób, aby wymusić ściślejsze uwierzytelnianie niż usługa domyślna. Jeśli Twój serwer proxy mieszka w chmurze, rozszerza to strefę DMZ do chmury.
Najprostszym podejściem jest prawdopodobnie zahartowanie brokera (wyłączenie anonimowych klientów) i ograniczenie, kto może się z nim połączyć za pośrednictwem zapory ogniowej (zezwalaj tylko na niektóre adresy IP klientów, jeśli znasz je wcześniej).
źródło
@hardillb dał dobrą odpowiedź, ale pozwól mi spróbować dodać kilka szczegółów, dodając trochę „prawdziwego” dotyku:
Wybierz klienta, który najlepiej do Ciebie pasuje, i użyj go do wewnętrznego połączenia brokera z publicznym brokerem MQTT. Na przykład twoim klientem C może być Paho MQTT . Klient obsługuje protokół SSL / TLS, więc Twoje bezpieczeństwo pozostaje na wysokim poziomie.
Wbudowane Paho MQTT może być Twoim wyborem dla urządzeń zewnętrznych.
HiveMQ ma zasady licencjonowania zgodnie z rzeczywistym użyciem, dzięki czemu możesz je rozważnie rozważyć. W każdym razie możesz sprawdzić tę stronę, aby uzyskać listę dostępnych w chmurze i testujących dostępnych brokerów MQTT.
źródło