LANからインターネットからデバイスに到達する


18

次のように、PCと同じルーターに接続されている場合、イーサネットIPを介してプログラムできる組み込みデバイスがあります。

ここに画像の説明を入力してください

インターネットを介してトラフィック全体を送信し、それでもプログラムすることは可能ですか?それをもう少し明確にするために、次のようなものです:

ここに画像の説明を入力してください


6
「イーサネットIP」?それだけではありません...通常のLANのようなネットワークですか?
-grawity

「イーサネットIP経由のプログラミング」 - ?。まさにそれがどういう意味あなたが話しているどのデバイスとIDE指定することができればそれが役立つだろう、私はIDEがコマンドを受信するために与えられたIPアドレスとTCPポート上のデバイスに接続していると仮定します?
slhck

@grawityはい、それは通常のLANです。slhckのネットワークのように、私はcodesys IDEとcodesysランタイムを搭載したデバイスを使用しています。
エンジン

3
もちろん、明らかな答えはIPv6です。
マイケルハンプトン

1
@grawity Ethernet / IP は産業オートメーションプロトコルであり、IP over Ethernetと混同しないでください。(
richardb

回答:


50

シンプルな(そして安全でない)メソッド

あなたが探しているのはポート転送[ 1 ] [ 2 ]と呼ばれます。

たとえば、次のことを想定してみましょう。

  • プログラマブルデバイスはポート22で動作し、IP192.168.1.5

  • あなたのパブリックIPは 122.176.11.55

次に、あなたのルータの設定に入ると(例えばため、WANポートを転送することができます8022)へ192.168.1.5:22

IDEの122.176.11.55:8022代わりにアクセスすることで、インターネットを介してどこからでもリモートでデバイスにアクセスできるようになり192.168.1.5:22ました。

静的IPがない限り、パブリックIPはいつでも変更できるため、動的DNSサービスをチェックアウトする必要があることに注意してください。

:デバイスに何らかの認証方法がない限り、悪意のあるユーザーはほとんど確実にオープンWebでそのデバイスにアクセスできます。安全な代替策については、以下を参照してください。

安全な(そして正直なところそれほど複雑ではない)メソッド

PC(またはraspberry piなど)をネットワークに接続したままにして、SSHなどの安全なものを介しリモートでアクセス、LAN経由でデバイスをプログラムします。
これには、デバイスがTCPまたはUDPを使用していない場合でも機能するという追加の利点もあります:)

はい、少し退屈です。しかし、安全です。


10
また、OPがこれを行うためにポートフォワーディングを開くように設定すると、世界中の誰もがコードを変更する可能性があることに注意してください。何らかの形の認証も遅かれ早かれない限り、ポートスニファーはポートを見つけ、ハッカーは侵入を試みますが、それは保証です。
-LPChip

@LPChip Indeed!私はそれを言及すべきでした、私の悪い。
rahuldottechはモニカをサポートします

素敵な追加。:)私はあなたにそれを+1しますが、警告なしでさえすでに良い答えだったので、私はすでにそれを以前に与えました。:)
LPChip

2
@FreeManのように、使用するポートによっては、ボットクローラーが登場するまでに数日かかる場合がありますが、運が悪い場合は数分で発生する可能性があるという意味でより早くなります。
LPChip

1
@IsmaelMiguelもちろん、すべての明白な基本的なセキュリティを行う必要があります。この特定のケースで、それらが何であるかを知る方法がありません。
rahuldottechは、モニカを

11

唯一の正解は「VPN」です。

単純にIPv6を使用すると「機能」します(ルーターがデバイスをファイアウォールで保護するように構成されておらず、ISP、デバイス、ラップトップのすべてがIPv6をサポートしていると仮定します)が、ポート転送と同じ理由でひどい考えです。

他のよく知られたIPv6のプロパガンダによって促進されるよりも、あなたは実際にはしていない今までお使いのLAN上の任意のデバイスは、インターネットからの一意に識別可能な、あるいはアクセス可能たいです。いいえ、それはありません良いこと。

ポートフォワーディングは、古き良きIPv4で「機能」しますが、デバイスだけでなく、誰でもアクセスできるようにします。誰も知らないので問題ありませんよね?
まあ、自動化されたポートスキャナ24/7を実行していると希望何かでランダムなアドレス/ポートをスキャンするの軍隊があると、どこでも、おそらく持つので、一般的に、答えるかもしれない任意のオンライン外部からの要求に応答しますデバイスが最適ではありません。デバイスがネットワークを介して入力された内容に応じて喜んでプログラムされる場合、それは災害のレシピです。
上記は原則としてVPNにも当てはまりますが、アクセスが必要な場合は、入手できるものとほとんど同じです。本当に安全なのはインターネット接続がないことだけです。これは明らかな理由で実用的なオプションではありません。「インターネットなし」の次に安全なものはVPNです。正確に1つのデバイスに正確に1つのポート(最大3つのポートに依存)があり、VPNのみ公開し、インターネットにポート転送されます。

VPNを使うことができます-しかし、だれも-インターネット経由でのアクセスお使いのLAN上のデバイスをあるかのように、あなたが同じLAN上にあった(少し遅くはあるが)。不正アクセスを防ぎ、機密性とデータの整合性を提供します。

事実上、すべてのたわごとルーターは、少なくとも1種類のVPNをそのまま使用できます。残念ながら、使用しているルーターのモデルによっては、VPNのフレーバーが不十分な場合や、リモートコンピューターの構成方法が十分に文書化されていない場合があります。それでも、どのように構成するのかを考え出すのは面倒ですが、それ以上のものがない場合は、それが最善のオプションです!
ほとんどの一般的なNASボックスは、VPNの2つまたは3つの吸引なしの方法をサポートしており、クレジットカードサイズの3ワットのコンピューターで20ドルごとにVPNサーバーを実行できます。現代の多くの携帯電話でさえ、追加のソフトウェアをインストールすることなくVPNをサポートしているため、電話のモバイルインターネットを使用している場合でも(プライベートホットスポット経由でも)ホームネットワークにアクセスできます。

たとえば、L2TP / IPSecは最も優れた選択肢ではないかもしれませんが、99%の品質であり、Disk StationとSamsung電話でのセットアップに1分かかります。私のWindowsラップトップも(電話とは無関係に)使用する場合はもう1分です。追加のソフトウェアは必要ありません。
OpenVPNは、ラップトップにクライアントソフトウェアをダウンロードしてインストールする必要があるため、セットアップに3〜5分かかります。しかし、全体像では、5分間のセットアップは完全に安全ではないことに比べて「ゼロ」としてカウントされます。


5
サードパーティのサービスを購入することだけが答えではありません。SSHまたはRDPでも同じ効果を得ることができます。
jpaugh

4
2つの唯一の正しい答えは、VPNまたはSSHトンネルです。一部のVPNプロトコルは、MITMの防止にもあまり適していません
...-trognanders

5
SSHは、道より安く、より便利に、かつ容易に設定すると、このシナリオでは、おそらくより良いオプションです
rahuldottechはモニカサポート

@jpaugh:VPNには、サードパーティのサービスは含まれません。SSHを機能させることができるとすぐに同意しますが、セットアップの容易さ、追加インストール不要、ユニバーサルな可用性、そして最後になりましたがシームレスな使いやすさに関しては、VPNとほとんど同じではありません。 。さて、RDPについて...あなたはもちろん冗談ですよね?おそらく、世界で最も悪用されているソフトウェア(または少なくともトップ5)の原始的な実装であるだけでなく、プロトコル自体も本質的に安全ではなく、壊れた(理論的ではなく実行可能な)暗号とTLSバージョンを使用しています10年前に置き換えられました。
デイモン

4
-1タイトルの「唯一無二」の場合、ポート転送を使用するSSHも完全に有効であり、おそらくネットワーク全体、1つのデバイスの1つのポートだけにリモートアクセスを与える必要がないため、おそらくより安全です。設定は簡単で、まれにしか使用されない機能のルーターのランダムなソフトウェア実装に依存していません。
ビルK

2

ルーター/セキュリティゲートウェイアプライアンス、またはそのボックスにポート転送する別のボックスで、VPNをホストします。リモートで作業する場合は、VPNに接続すると、組み込みデバイスがローカルネットワーク上にあるかのように表示されます。VPNまたは組み込みデバイスが危険にさらされた場合、メインネットワークへの攻撃防ぐために、組み込みデバイスを分離されたサブネットに配置することをお勧めします。


1

IDEなしのWindows PCをsshdを実行して合理的に安全な構成のLinux PCにします。ルーターからLinuxマシンのSSHポートにポートを転送します。SSHトンネルを使用して、組み込みデバイスのIPに接続します。次に、IDEを使用してリモートマシンでプログラミングする場合、LAN IPではなくlocalhostに接続します。

SSHのような強化されたサービスを使用してインターネットで聞くことは、かなり安全です。何かを開発しながらインターネットで直接聞​​くことは、ひどく悪い考えです。SSHはゲートキーパーです。ホストキーを必ず確認すると、MITMから完全に保護されます。優れた暗号化を使用します。トンネリングのセットアップには、ルーティングやブリッジングは含まれませんが、SSHDマシンから直接接続しているように見えます。これは、正しくセットアップするのが非常に簡単です。


WindowsでSSHサーバーを実行するだけで、ここでLinux は必要ありません。
rahuldottechはモニカをサポートします

「その後、IDEを使用してリモートマシンでプログラミングする場合、LAN IPではなくlocalhostに接続します。」このビットは私には意味がありません、手の込んだ?
rahuldottechはモニカをサポートします

@rahuldottech SSHポート転送は、tcpレベルで機能します。サーバー上で、sshdはローカルLAN上のリソースへの接続を開き、そのソケットの内容をSSH経由で転送します。リモートマシンでは、sshクライアントはlocalhostポートでリッスンします。そのポートでlocalhostに接続するとき、それはSSHクライアントであり、tcp接続を一緒にフックします。ちょっと変ですが、IPルーティングがないので本当に多用途です!
トログナンダー

-1

最近、個人専用のリモートアクセスのためのより良いソリューションに出会いました。まず、問題の範囲について説明しましょう。関係する3つの問題があります。nat、ipアドレス、およびセキュリティです。たとえば、ホームネットワークでsshまたはWebサーバーを実行する一般的なケースでは、従来のアプローチはポート転送と動的DNSおよび業界標準のセキュリティのベストプラクティスです。デバイスには標準のセキュリティがないため、これには問題があります。これは、デバイスをインターネットに開くのではなく、sshポートフォワーディングを使用することで軽減できます。

しかし、もっと簡単な解決策があり、それが隠されたサービスではないかと信じています。tor hiddenサービスは基本的にポート転送として機能しますが、natトラバーサルを自動的に処理し、アドレスの変更がないため、動的なDNSは不要です。もちろん、タマネギのアドレスは覚えにくいという問題がありますが、あなたが唯一のユーザーである場合は、プロジェクトファイルの1つに書き留めることができます。認証を提供するために、これをsshサーバーと比較することをお勧めしますが、長いタマネギのアドレスで十分であると判断するかもしれません。また、隠れサービスは、最終ホップを除くリンク全体の暗号化を提供するため、エンドツーエンドの暗号化を改善する唯一の方法は、プログラミングするデバイスによって異なります。


4
タマネギサービスを使用すると、この方法はより複雑になりますが利点追加されません。Torは便利です。この場合はありません。
rahuldottechは、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.