Bagaimana cara menghindari penerusan porta saat mengekspos perangkat IoT ke Internet eksternal?

15

Saya menerima beberapa jawaban yang baik dalam pertanyaan. Apa yang saya perlukan untuk membuat cloud pribadi saya sendiri untuk perangkat IoT? dan salah satu hal yang saya mengerti dari sana adalah bahwa saya perlu "mengekspos" HUB atau GATEWAY saya ke internet eksternal. Solusi yang diusulkan untuk itu adalah port forwarding .

Saya membuat ini sebagai pertanyaan terpisah karena akan sulit untuk menindaklanjuti dengan benar hanya dengan komentar pada semua jawaban, seseorang bisa menjadi bingung. Juga, informasi ini mungkin berguna bagi seseorang dengan pertanyaan serupa.

Saya tidak suka gagasan harus pergi ke konfigurasi router saya dan mengkonfigurasi penerusan port karena itu berarti bahwa saya harus mengkonfigurasi perangkat yang meskipun menjadi bagian dari infrastruktur IoT, bukan salah satu dari perangkat "saya". Itu harus menjadi kurang mengganggu jaringan rumah yang sudah ada mungkin. Juga, saya punya contoh di mana saya tidak tahu kata sandi admin dari router tertentu dan sangat sulit untuk mendapatkannya.

Saya yakin ada jalan keluarnya, bahkan jika itu berarti memiliki IOT HUB yang lebih kuat mungkin menjalankan Linux, saya hanya tidak tahu apa itu. Tidak masalah untuk memiliki HUB yang sedikit lebih rumit jika cara "alternatif" tersebut memungkinkan untuk menghindari konfigurasi port forwarding.

Saya mengatakan bahwa saya yakin ada cara berpikir tentang bagaimana aplikasi seperti tim viewer tidak perlu mengonfigurasi port forwarding.

Jadi pertanyaannya adalah, adakah yang tahu cara "mengekspos" perangkat yang tertanam IoT ke internet eksternal untuk mengaksesnya dari mana saja di dunia yang tidak melibatkan port forwarding?

m4l490n
sumber

Jawaban:

10

Jika Anda tidak dapat mem-port forward router Anda, Anda mungkin harus menggunakan hole hole :

Lubang punching adalah teknik dalam jaringan komputer untuk membangun koneksi langsung antara dua pihak di mana satu atau keduanya berada di belakang firewall atau di belakang router yang menggunakan terjemahan alamat jaringan (NAT). Untuk membuat lubang, setiap klien terhubung ke server pihak ketiga yang tidak dibatasi yang sementara menyimpan informasi alamat dan port eksternal dan internal untuk setiap klien. Server kemudian menyampaikan informasi masing-masing klien ke yang lain, dan menggunakan informasi itu setiap klien mencoba untuk membuat koneksi langsung; sebagai hasil dari koneksi menggunakan nomor port yang valid, firewall atau router yang terbatas menerima dan meneruskan paket yang masuk di setiap sisi.

The NAT pada cara router Anda bahwa klien di luar jaringan Anda tidak dapat terhubung ke port terbuka perangkat di dalam jaringan Anda, tetapi tidak membatasi perangkat dalam jaringan Anda menghubungkan ke 'broker'. Menggunakan sedikit tipuan , Anda dapat membuat koneksi langsung antara dua perangkat tanpa benar-benar membuka port - ini pada dasarnya apa layanan seperti Skype dan Hamachi lakukan.

Tentu saja, ini memang memerlukan server eksternal untuk mengoordinasikan koneksi, dan Anda mungkin ingin mempercayai server yang melakukan hole punch.

Komunikasi Peer-to-Peer Di Seluruh Alamat Jaringan Penerjemah oleh Bryan Ford, Pyda Srisuresh dan Dan Kegel adalah bacaan yang menarik untuk informasi lebih lanjut tentang mekanisme pelubang kertas dan seberapa andal itu.

Aurora0001
sumber
Hebat! Namun, satu pertanyaan, bisakah server pihak ketiga atau "broker" itu juga ada di dalam rumah saya? Dan misalnya papan Linux yang tertanam? Karena jika tidak, pendekatan ini akan memperkenalkan masalah yang lebih besar yang berbicara tentang memiliki elemen pihak ke-3 eksternal dalam penyebaran IoT. Jika papan Linux tertanam tidak bisa seperti ini, lalu apa itu?
m4l490n
3
@ m4l490n: Ini harus berada di luar jaringan Anda dalam beberapa cara. Saya akan membayangkan itu bisa menjadi tempat cloud server, atau Anda bisa menggunakan papan Linux jika itu adalah port diteruskan. Meninju lubang UDP hanya berfungsi ketika Anda memiliki server / perangkat yang dapat diakses publik di Internet di suatu tempat. Ini tidak ideal, tetapi Anda tidak dapat menyiasati kenyataan bahwa ada sesuatu yang harus ada di Internet untuk terhubung secara publik. Saya menduga papan Linux tertanam di jaringan rumah Anda tidak akan menawarkan keuntungan; Anda hanya perlu port forward itu daripada perangkat IoT Anda.
Aurora0001
1
Luar biasa! Meskipun itu bukan maksud langsung dari jawaban Anda dan bukan maksud asli dari pertanyaan saya, saya akhirnya memahami peran server cloud dalam infrastruktur IoT !.
m4l490n
Jika saya mengerti, lubang itu semacam virtual, tidak seperti port forwarding di mana keadaan router dimodifikasi. Setiap ujung tautan hanya berkomunikasi dengan server? Jadi ini akan menjadi model khas untuk IoT, saya percaya, karena jaringan umum banyak ke banyak?
Sean Houlihane
7

Di dunia IoT di mana perangkat memiliki sumber daya rendah untuk menangani lalu lintas yang tidak diinginkan dari koneksi eksternal dan tentu saja kebutuhan untuk menangani masalah penerusan port dan firewall dengan router telah mengarah pada pendekatan berikut yang dapat Anda lihat di banyak solusi back end IoT:

Perangkat tidak akan menerima informasi jaringan yang tidak diminta. Semua koneksi dan rute akan dibuat oleh perangkat secara outbound. Jadi perangkat akan membuka koneksi keluar, sehingga tidak ada firewall / router tweak akan diperlukan dan itu akan membuat saluran tetap terbuka selama itu perlu.

Sebuah artikel bagus tentang masalah komunikasi dan solusi dalam dunia IOT.

shachar
sumber
Untuk MQTT, perangkat adalah klien (penerbit atau pelanggan atau keduanya) dan memulai koneksi ke broker (server).
Dukungan Gambit
"perangkat memiliki sumber daya rendah untuk menangani lalu lintas yang tidak diinginkan dari koneksi keluar " ???? itu tidak masuk akal sama sekali. Koneksi keluar hanya dapat dimulai di dalam jaringan.
Chris Stratton
@ ChrisStratton, koneksi keluar dapat diarahkan langsung ke perangkat menggunakan penerusan port jika NAT sedang digunakan. Mereka juga dapat memiliki IP sendiri dan dapat diakses langsung dari internet.
shachar
Anda tampaknya salah memahami arti kata "outbound" dan menggunakannya secara salah di mana yang Anda maksud sebenarnya adalah "inbound". Dan koneksi keluar adalah perangkat IoT yang menjangkau server cloud. Koneksi masuk adalah sesuatu di luar jaringan rumah Anda (katakanlah telepon Anda, saat Anda berjalan di jalan) mencoba menjangkau ke perangkat di dalam jaringan Anda.
Chris Stratton
@ ChrisStratton, Anda benar, Ketika saya menulis keluar saya maksud lalu lintas dari luar, yang pada dasarnya adalah koneksi "Masuk" untuk sensor. Saya telah mengedit jawaban saya, Terima kasih
shachar
3

Coba Port Knocking . Anda masih harus port forward, tetapi port hanya terbuka setelah Anda mengirim kombinasi rahasia ping (Anda pilih). Kemudian Anda dapat menutup port dengan kombo ping rahasia lainnya. Itu dapat berjalan di embedded linux, seperti wifi router dengan OpenWrt.

GusGorman402
sumber
3

Meskipun saya tidak bisa merekomendasikan agar Anda mengizinkan perangkat IoT apa pun dapat dijangkau dari internet publik, Anda dapat mencapainya dengan menggunakan IPv6.

Jika ISP dan jaringan lokal Anda dikonfigurasi untuk IPv6, dan perangkat IoT Anda mendukungnya, mereka dapat secara otomatis mendapatkan alamat IPv6 yang dapat dirutekan dari mana saja di internet (IPv6 menghilangkan kebutuhan untuk NAT dan penerusan port). Anda hanya perlu memastikan bahwa setiap firewall stateful (router Anda) dikonfigurasi untuk memungkinkan lalu lintas ke setiap perangkat. Beberapa mungkin mengizinkan ini (tidak aman) secara default.

multithr3at3d
sumber
2

Siapkan server VPN di rumah, lalu sambungkan dari mana saja. Saya pikir ini akan jauh lebih aman daripada mengekspos semua jenis perangkat IOT ke Internet terbuka.

Maurice
sumber
Bukankah itu semacam gerbang?
Helmar
hm VPN adalah koneksi point-to-point (biasanya dienkripsi) antara perangkat dan jaringan. itu membuat perangkat penghubung bertindak seolah-olah itu adalah bagian dari jaringan. Saya kira Anda bisa menganggapnya sebagai gateway ... tapi itu layanan.
Maurice
Tentu, tetapi layanan itu masih harus melewati router rumah — biasanya melalui port forwarding atau koneksi keluar tanpa henti.
Helmar
ya, Anda masih perlu melakukan port-forward port yang sedang dijalankan VPN. tetapi lebih aman daripada mengekspos perangkat individu (yang berpotensi kurang nyaman, tergantung pada apa yang ingin Anda capai)
Maurice