GNU/Linux >> Linux の 問題 >  >> Linux

LAN内からのSSH接続が拒否されましたか?

Fedora 19を使用していますが、sshに問題があります 。

Sshが稼働していて、LANIPを入力すると接続できます。しかし、サーバー名(blahblah.no-ip.org)を試してみると )接続が拒否されました。 No-ipはすでにサービスとして実行されており、正しく機能しています(正しいIPを送信しています)。

ルーターでポートフォワーディングを設定しました。sshのポートも変更しました サービスとルーターポートフォワーディングの両方で(私の最愛のISPがこれらのポートをブロックすることを決定した場合)。しかし、それでも接続が拒否され、nmap ホスト名sshポートが閉じていることがわかります。

ただし、同じ外部IPの下に2台のPCがあります(正しい内部IPへのポート転送を設定しました)。 nmap blahblah.no-ip.orgの場合 ポート23と80を開きます。 80は問題ないようですが、自分のマシンでTelnetサービスを開始したことはありません。

他に何を試すべきか?ルーターはztezxv10であり、ポート転送は正しく設定されています。これは、大洪水のポートフォワーディングをすでに設定していて、正常に機能しているためです。

承認された回答:

同じLAN内からポート転送されたパブリックIPアドレスに接続することはできません。これを説明するために、例が必要です。

ルーターのプライベートIPが192.168.1.1でパブリックIPが10.1.1.1だとします。サーバーは192.168.1.2ポート2222にあります。10.1.1.1:1111から192.168.1.2:2222へのポート転送を設定しました。

インターネット(10.3.3.3)の誰かがあなたと話したい場合、彼らはパケットを生成します:

Source: 10.3.3.3 port 33333
Dest:   10.1.1.1 port 1111

ルーターは10.1.1.1でパケットを受信し、それを書き換えます:

Source: 10.3.3.3 port 33333
Dest:   192.168.1.2 port 2222

サーバーはそのパケットを受信し、応答を送信します:

Source: 192.168.1.2 port 2222
Dest:   10.3.3.3 port 33333

ルーターは192.168.1.1でそのパケットを受信し、それを書き換えます:

Source: 10.1.1.1 port 1111
Dest:   10.3.3.3 port 33333

そして、接続は機能し、誰もが幸せです。

ここで、LAN(192.168.1.3)の内部から接続するとします。パケットを生成します:

Source: 192.168.1.3 port 33333
Dest:   10.1.1.1 port 1111

ルーターは10.1.1.1でパケットを受信し、それを書き換えます:

Source: 192.168.1.3 port 33333
Dest:   192.168.1.2 port 2222

サーバーはそのパケットを受信し、応答を送信します:

Source: 192.168.1.2 port 2222
Dest:   192.168.1.3 port 33333

ここで問題が発生します。宛先IPはLAN上にあるため、サーバーはそのパケットをルーターに送信して書き換えることはありません。代わりに、192.168.1.3に直接送信します。しかし、そのマシンは192.168.1.2ポート2222からの応答を期待していません。10.1.1.1ポート1111からの応答を期待しています。したがって、この「偽の」パケットのリッスンを拒否し、動作しません。

関連:SSH 7.4「誓約:ネットワーク」での長時間の一時停止?

これを回避する方法は、DDNSホスト名を検索するときにサーバーのプライベートIPアドレスを返すようにルーター(LANにDNSも提供する)を構成することです。そうすれば、ホームネットワークに接続しているときに、サーバーに直接接続してポート転送をスキップします。 (このソリューションは、ポート転送がポート番号を変更せず、IPアドレスのみを変更する場合にのみ機能します。また、パブリックホスト名ごとにサーバーを1つだけ持つことができます。)


Linux
  1. TCP ラッパーによって拒否された SSH 接続

  2. MongoDB errno 111 への接続が拒否されました

  3. コンテナー内で docker-compose コマンドからシェル スクリプトを実行します。

  1. SSH:ホスト localhost ポート 22 に接続:接続が拒否されました

  2. Linux サーバーのデフォルトの SSH ポートを変更する必要がありますか?

  3. LAN 内から DNAT 化された Web サーバーにアクセスする

  1. ssh接続の速度を確認する方法

  2. シェルがSshから制御されているかどうかを検出する方法は?

  3. デフォルトのSSHサーバーのポート番号を変更する