Broker MQTT dapat diakses dari luar tanpa membuka port di firewall?

9

Saya ingin broker MQTT saya dapat diakses dari luar jaringan rumah saya, tapi saya agak enggan untuk membuka port di firewall. Dan saya ingin menghindari menggunakan IP rumah saya.

Cukup nyaman untuk memiliki broker terbuka yang tidak terenkripsi di rumah, tetapi itu tidak berfungsi jika saya akan mengeksposnya. Opsi apa lagi yang saya miliki?

Thomas Jensen
sumber
@Bence Kaulics ada saran tentang apa yang hilang dari jawaban saya?
hardillb
1
@hardillb Jawaban Anda adalah rangkuman yang bagus tetapi saya pikir akan sangat membantu jika Anda memiliki lebih banyak detail tentang setiap poin. Misalnya Cara mengatur jembatan antara dua broker. Juga saya hanya akan datang ide-ide lain jika ada, deskripsi karunia ini adalah yang terbaik yang bisa saya temukan, jawaban Anda berdiri sendiri juga. Mungkin saya harus memilih alasan "Tidak menerima perhatian yang cukup".
Bence Kaulics
Sebagai non-ahli, saya setuju bahwa poin 2 (yang tampaknya merupakan bagian paling berharga dari jawaban) dapat diuraikan lebih jauh. Mungkin dengan tautan ke caranya, sekarang pasti.
Sean Houlihane
sayangnya setiap jenis broker berbeda memiliki cara berbeda untuk mengkonfigurasi jembatan sehingga tidak mungkin untuk memberikan jawaban umum (Demikian juga dengan otentikasi / pengaturan TLS)
hardillb

Jawaban:

10

Anda pada dasarnya memiliki 3 opsi jika Anda tidak ingin meneruskan porta.

  1. Gunakan broker di cloud sehingga klien dari rumah selalu terhubung dengannya. Gunakan TLS dan otentikasi sehingga orang lain tidak dapat menguping atau menyuntikkan pesan yang tidak diinginkan
  2. Gunakan broker cloud dan buat jembatan antara broker internal dan broker cloud (Anda masih ingin mengenkripsi dan mengatur nama pengguna / kata sandi pada broker cloud). Ini memiliki keuntungan bahwa hal-hal internal tetap berfungsi jika koneksi internet turun.
  3. VPN di semua perangkat eksternal untuk memungkinkan akses ke jaringan rumah Anda (tetapi, jujur ​​saja, Anda mungkin harus membuka port untuk VPN atau memiliki router yang mendukung menjadi server VPN)

Tetapi meneruskan port ke yang dikonfigurasi dengan benar (hampir sama dengan broker cloud) tidak benar-benar risiko.

hardillb
sumber
1
Saya menyukai ide cloud home bridge, yang memiliki bonus tambahan bahwa semua layanan pelaporan di luar jaringan rumah saya akan tetap berfungsi secara normal jika broker lokal saya keluar. Dan broker lokal akan mendapatkan data "terjawab" ketika kembali online. Bagus! :)
Thomas Jensen
3

Karena broker adalah server, Anda HARUS membuka setidaknya satu port untuk dihubungkan klien.

Jadi, masalah Anda menjadi kasus khusus mengekspos layanan di Internet.

Ini telah dilakukan melalui DMZ, baik melalui proxy atau cara lain untuk menegakkan otentikasi yang lebih ketat daripada layanan default. Jika proxy Anda hidup di cloud, itu hanya memperluas DMZ Anda ke cloud.

Pendekatan Anda yang paling sederhana mungkin untuk memperkeras broker Anda (menonaktifkan klien anonim) dan membatasi siapa yang dapat terhubung melalui firewall (hanya mengizinkan alamat IP klien tertentu, jika Anda tahu sebelumnya).

Dukungan Gambit
sumber
3
Itu tidak benar, saya telah menjembatani broker lokal saya dengan cloud. Dan karena koneksi jembatan dimulai dari dalam jaringan rumah saya, pembukaan port tidak diperlukan.
Thomas Jensen
3

@hardillb memberikan jawaban yang bagus tetapi saya ingin menambahkan beberapa detail menambahkan sentuhan "kehidupan nyata":

  1. Pilih beberapa broker MQTT yang tersedia untuk umum. HiveMQ bisa menjadi contoh yang bagus dan Anda bisa mulai dengan halaman uji coba yang menjelaskan cara terhubung ke broker:

Terhubung ke Broker Publik

Host: broker.hivemq.com

Port: 1883

Port Websocket: 8000

  1. Pilih klien mana yang paling cocok untuk Anda dan menggunakannya untuk interkoneksi broker internal dengan broker MQTT publik. Misalnya klien C Anda bisa Paho MQTT . Klien memiliki dukungan untuk SSL / TLS sehingga keamanan Anda tetap pada tingkat tinggi.

  2. Paho MQTT tertanam dapat menjadi pilihan Anda untuk perangkat eksternal.

  3. HiveMQ memiliki kebijakan lisensi pay-as-you-go sehingga Anda dapat mempertimbangkannya dengan hati-hati. Pokoknya Anda dapat memeriksa halaman ini untuk daftar cloud yang tersedia dan menguji broker MQTT yang tersedia.

Amit Vujic
sumber