Mencapai perangkat di LAN saya dari Internet

18

Saya memiliki perangkat tertanam yang dapat saya program melalui Ethernet IP ketika terhubung pada router yang sama dengan PC sebagai berikut:

masukkan deskripsi gambar di sini

Apakah mungkin untuk mengirim seluruh lalu lintas melalui Internet dan masih dapat memprogramnya? Untuk membuatnya sedikit lebih jelas, sesuatu seperti:

masukkan deskripsi gambar di sini

Mesin
sumber
6
"Ethernet IP"? Bukankah itu hanya ... jaringan seperti LAN biasa?
grawity
"Pemrograman melalui Ethernet IP" - apa sebenarnya artinya? Ini akan membantu jika Anda dapat menentukan perangkat dan IDE apa yang Anda bicarakan. Saya berasumsi IDE terhubung ke perangkat pada alamat IP dan port TCP yang diberikan untuk menerima perintah?
slhck
@ kegembiraan ya itu LAN biasa. Seperti jaringan & di slhck saya menggunakan IDE codesys dan perangkat dengan codesys Runtime di atasnya!
Engine
3
Jawaban yang jelas adalah IPv6, tentu saja.
Michael Hampton
1
@grawity Ethernet / IP adalah protokol otomasi industri, jangan dikacaukan dengan IP over Ethernet :(
richardb

Jawaban:

50

Metode sederhana (dan tidak aman)

Apa yang Anda cari disebut penerusan port [ 1 ] [ 2 ] .

Misalnya, mari kita asumsikan yang berikut:

  • Perangkat Anda yang dapat diprogram berfungsi pada port 22dan memiliki IP192.168.1.5

  • IP publik Anda adalah 122.176.11.55

Kemudian Anda dapat masuk ke pengaturan router Anda dan meneruskan port WAN (misalnya, 8022) ke 192.168.1.5:22.

Sekarang, Anda dapat mengakses perangkat dari jarak jauh dari mana saja melalui internet dengan mengakses 122.176.11.55:8022alih-alih 192.168.1.5:22dalam IDE Anda.

Ingatlah bahwa kecuali Anda memiliki IP statis, IP publik Anda dapat berubah kapan saja, dalam hal ini Anda harus memeriksa layanan DNS dinamis .

CATATAN : kecuali jika perangkat Anda memiliki beberapa metode otentikasi, seseorang dengan niat jahat hampir pasti akan menemukan aksesnya di web terbuka. Lihat di bawah untuk alternatif yang aman.

Metode yang aman (dan sejujurnya tidak jauh lebih rumit)

Biarkan PC (atau raspberry pi, atau yang serupa) terhubung ke jaringan Anda, dan akses itu dari jarak jauh melalui sesuatu yang aman seperti SSH, dan kemudian program perangkat Anda melaluinya melalui LAN.
Ini juga memiliki keuntungan tambahan untuk bekerja walaupun perangkat Anda tidak menggunakan TCP atau UDP :)

Agak membosankan, ya. Tapi aman.

rahuldottech mendukung Monica
sumber
10
Ini juga akan membantu untuk membuat catatan, bahwa jika OP membuat portforwarding terbuka untuk melakukan ini, semua orang di seluruh dunia berpotensi mengubah kode. Kecuali ada beberapa bentuk otentikasi juga, cepat atau lambat, portniffers akan menemukan port tersebut dan seorang peretas akan berusaha membobolnya, itu jaminan.
LPChip
@LPChip Memang! Seharusnya saya sebutkan itu, salah saya.
rahuldottech mendukung Monica
Tambahan yang bagus. :) Saya akan memberi Anda +1 untuk itu, tapi saya sudah memberikannya, karena bahkan tanpa peringatan, itu sudah jawaban yang bagus. :)
LPChip
2
@ FreeMan nanti seperti dalam, bisa butuh berhari-hari sebelum crawler bot datang, tergantung pada port apa yang Anda gunakan, tetapi lebih cepat dalam arti bahwa, jika Anda beruntung, itu bisa terjadi dalam hitungan menit.
LPChip
1
@ IsmaelMiguel Tentu saja, Anda harus melakukan semua hal keamanan dasar yang jelas. Saya hanya tidak memiliki cara untuk mengetahui apa yang mereka miliki dalam kasus khusus ini.
rahuldottech mendukung Monica
11

Satu-satunya jawaban yang benar adalah "VPN".

Cukup menggunakan IPv6 akan "bekerja" (dengan asumsi router tidak dikonfigurasikan untuk firewall dari perangkat, dan semua ISP, perangkat, dan laptop mendukung IPv6), tetapi itu adalah ide yang mengerikan karena alasan yang sama port forwarding.

Selain dipromosikan oleh propaganda IPv6 terkenal, Anda benar-benar tidak pernah ingin salah satu perangkat pada LAN Anda menjadi diidentifikasi secara unik atau bahkan dapat diakses dari internet. Tidak, itu bukan hal yang baik.

Port forwarding akan "bekerja" dengan IPv4 lama yang baik, tetapi itu membuat perangkat diakses tidak hanya untuk Anda tetapi untuk semua orang. Tidak ada yang tahu, jadi itu tidak masalah, kan?
Nah, ada pasukan pemindai port otomatis yang menjalankan 24/7 dan memindai alamat / port acak dengan harapan apa pun, di mana saja mungkin menjawab, jadi umumnya memiliki perangkat apa pun yang akan menjawab permintaan eksternal online tidak optimal. Jika sebuah perangkat dengan senang hati akan diprogram sesuai dengan apa yang masuk melalui jaringan, itu adalah resep untuk desaster.
Prinsip di atas pada prinsipnya benar untuk VPN juga, tetapi itu cukup baik seperti yang Anda dapatkan, jika Anda menginginkan akses. Satu-satunya hal yang benar-benar aman adalah tidak ada koneksi internet sama sekali, yang bukan merupakan pilihan praktis karena alasan yang jelas. Hal teraman berikutnya untuk "tidak ada internet" adalah VPN. Satu port persis pada satu perangkat (yah, itu tergantung, hingga tiga port), memperlihatkan VPN dan tidak ada yang lain , port-diteruskan ke internet.

VPN memungkinkan Anda - tetapi tidak ada orang lain - mengakses perangkat di LAN Anda melalui internet seolah-olah Anda berada di LAN yang sama (meskipun sedikit lebih lambat). Ini mencegah akses yang tidak sah, memberikan kerahasiaan, dan integritas data.

Hampir setiap router tanpa kotoran mendukung setidaknya satu rasa VPN di luar kotak. Sayangnya, tergantung pada model router apa yang Anda miliki, itu mungkin rasa VPN yang buruk atau mungkin tidak terdokumentasi dengan baik bagaimana mengkonfigurasi komputer jarak jauh. Namun, meskipun ada kemungkinan mencari tahu cara mengkonfigurasinya - jika Anda tidak memiliki yang lebih baik, itu adalah pilihan terbaik!
Kotak NAS yang paling umum mendukung dua atau tiga metode VPN tanpa hisap, dan setiap komputer ukuran kartu 3 Watt seharga $ 20 dapat menjalankan server VPN, tidak ada masalah. Bahkan banyak ponsel modern mendukung VPN tanpa harus menginstal perangkat lunak tambahan, sehingga Anda bahkan dapat mengakses jaringan rumah Anda saat Anda menggunakan internet seluler ponsel Anda (via hotspot pribadi, bahkan).

Misalnya, L2TP / IPSec mungkin bukan pilihan yang paling luar biasa, tapi 99% bagus dan membutuhkan satu menit untuk mengatur di Stasiun Disk saya dan di ponsel Samsung saya. Semenit lagi jika laptop Windows saya akan menggunakannya juga (terlepas dari telepon). Tidak diperlukan perangkat lunak tambahan.
OpenVPN membutuhkan waktu 3-5 menit pengaturan karena Anda harus mengunduh menginstal perangkat lunak klien pada laptop. Tetapi dalam gambar yang lebih besar, pengaturan 5 menit dihitung sebagai "nol", dibandingkan dengan sepenuhnya tidak aman.

Damon
sumber
5
Membeli layanan pihak ke-3 bukan satu-satunya jawaban. Anda bisa mendapatkan efek yang sama dengan SSH atau RDP.
jpaugh
4
Dua dan satu-satunya jawaban yang benar adalah terowongan VPN atau SSH ... Beberapa protokol VPN tidak pandai mencegah MITM ...
trognanders
5
SSH jauh lebih murah, lebih nyaman, dan lebih mudah diatur dan mungkin opsi yang lebih baik dalam skenario ini
rahuldottech mendukung Monica
@ jpaugh: VPN tidak melibatkan layanan pihak ketiga mana pun. Meskipun saya akan dengan mudah setuju bahwa SSH dapat dibuat untuk bekerja, itu sama sekali tidak sama dengan VPN dalam hal kemudahan pengaturan, tanpa-instal-instal-tanpa-simpai ketersediaan universal, dan kegunaan tanpa akhir, mulus. . Sekarang, tentang RDP ... Anda tentu saja bercanda, bukan? Tidak hanya itu implementasi murni perangkat lunak yang mungkin paling dieksploitasi di dunia (atau setidaknya di top-5), tetapi juga protokol itu sendiri secara inheren tidak aman, menggunakan cipher yang rusak (bisa dijalankan, bukan teoretis), dan versi TLS yang digantikan satu dekade lalu.
Damon
4
-1 hanya untuk "satu-satunya" dalam judul, SSH dengan penerusan porta juga sepenuhnya valid dan mungkin lebih aman karena Anda tidak perlu harus memberikan akses jarak jauh ke seluruh jaringan Anda, hanya satu port dari satu perangkat, dan kemungkinan besar mudah untuk dikonfigurasi dan Anda tidak mengandalkan implementasi perangkat lunak perute dari fitur yang jarang digunakan.
Bill K
2

Host VPN, baik di router / alat gateway keamanan, atau kotak lain dengan port forwarding ke kotak itu. Kapan pun Anda ingin bekerja dari jarak jauh, sambungkan ke VPN, dan Anda akan melihat perangkat yang disematkan seolah-olah perangkat itu berada di jaringan lokal. Mungkin ide yang baik untuk menempatkan perangkat tertanam dalam subnet yang terisolasi, untuk membantu mencegah serangan pada jaringan utama Anda jika VPN atau perangkat yang disematkan terganggu.

Michael P
sumber
1

Jadikan Windows PC tanpa IDE menjadi PC Linux dalam konfigurasi yang cukup aman dengan sshd berjalan. Port forward dari router Anda ke port SSH pada mesin Linux. Gunakan terowongan SSH untuk terhubung ke IP perangkat yang disematkan. Kemudian ketika memprogram pada mesin jarak jauh Anda dengan IDE, Anda akan terhubung ke localhost alih-alih IP LAN.

Mendengarkan di internet dengan layanan keras seperti SSH cukup aman. Mendengarkan langsung di internet dengan pengembangan apa pun adalah ide yang sangat buruk. SSH adalah penjaga gerbang. Jika Anda memastikan untuk memverifikasi kunci host, itu melindungi terhadap MITM sepenuhnya. Ini menggunakan kriptografi yang baik. Pengaturan tunneling tidak melibatkan perutean atau penghubungan tetapi sebaliknya tampak seolah-olah Anda terhubung langsung dari mesin SSHD. Ini jauh lebih mudah untuk diatur dengan benar.

trognanders
sumber
Anda dapat ... Cukup jalankan server SSH di Windows, Anda tidak perlu Linux di sini.
rahuldottech mendukung Monica
"Lalu ketika pemrograman pada mesin jarak jauh Anda dengan IDE, Anda akan terhubung ke localhost, bukan IP LAN." Ini sedikit tidak masuk akal bagi saya, rumit?
rahuldottech mendukung Monica
Penerusan port @rahuldottech SSH berfungsi pada level tcp. Pada server sshd membuka koneksi ke sumber daya pada lan lokal dan meneruskan isi soket itu melalui SSH. Pada mesin jarak jauh, klien ssh mendengarkan pada port host lokal. Ketika Anda terhubung ke localhost pada port itu, itu adalah klien SSH, dan itu hanya menghubungkan koneksi tcp. Agak aneh tapi sangat serbaguna karena tidak ada ip routing!
trognanders
-1

Baru-baru ini saya menemukan solusi yang lebih baik untuk akses jarak jauh pribadi saja. Pertama mari kita bahas ruang lingkup masalahnya. Ada tiga masalah yang ikut berperan: nat, alamat ip, dan keamanan. Misalnya dalam kasus umum di mana Anda ingin menjalankan ssh atau server web pada jaringan rumah, pendekatan tradisional adalah penerusan port dan dns dinamis dan praktik terbaik standar industri untuk keamanan. Ini memiliki kerugian untuk kasus Anda karena perangkat Anda tidak memiliki keamanan standar. Ini dapat dikurangi dengan menggunakan penerusan port ssh sebagai kebalikan dari membuka perangkat Anda ke internet,

Namun ada solusi yang lebih sederhana, dan percaya atau tidak itu adalah layanan tersembunyi. Untuk layanan tersembunyi pada dasarnya bertindak sebagai port forward, tetapi secara otomatis menangani nat traversal, dan tidak memiliki alamat yang berubah sehingga dns dinamis tidak diperlukan. Tentu saja ada masalah alamat bawang yang sulit diingat, tetapi jika Anda adalah satu-satunya pengguna, Anda dapat menuliskannya di salah satu file proyek Anda. Saya akan merekomendasikan masih mengupas ini dengan server ssh untuk memberikan otentikasi, tetapi Anda dapat memutuskan bahwa alamat bawang panjang sudah cukup. Juga untuk layanan tersembunyi menyediakan enkripsi seluruh tautan kecuali untuk hop terakhir sehingga satu-satunya cara untuk menjadi lebih baik adalah enkripsi ujung ke ujung, tetapi itu tergantung pada perangkat yang Anda programkan.

Hildred
sumber
4
Menggunakan layanan bawang hanya akan membuat cara ini lebih rumit tanpa manfaat tambahan. Tor bisa bermanfaat. Tidak akan dalam kasus ini.
rahuldottech mendukung Monica