web-dev-qa-db-ja.com

異常なポートでSSH接続が拒否されました

AWSEC2の使用

リモートマシンからAWSへのリバースSSHトンネル:

/usr/bin/autossh -M 0 -N -R 19999:localhost:22 [email protected] -v -i cloud.pem

AWSセキュリティグループにポート19999を追加しました。

TelnetでAWSに接続できるかどうかを確認しました:

telnet: Unable to connect to remote Host: Connection refused

ただし、セキュリティグループのポート19999を削除すると、別の応答が返されます。

telnet: Unable to connect to remote Host: Connection timed out

したがって、問題はAWSホストにあり、別のマシンのファイアウォールにはないと思います。

次に、接続に応じて、AWS側でsshdトンネルが開始されているかどうかを確認します。 netstatは、サービスがリッスンしていることを示しています。

tcp        0      0 127.0.0.1:19999   

それでも、接続が拒否されたというメッセージが表示されます。他に何を分析できますか? AWSマシンでsshdログが見つかりませんでした。 /var/log/secureこれらの失敗した接続試行はログに記録されません。

2
Tony Sepia

私が理解していることから、EC2インスタンスへのリバーストンネルを実行してから、外部クライアントがその指定されたポート19999に接続できるようにする必要があります。

まず、netstatでわかるように、提供されているようにコマンドを実行すると、ポートはループバックインターフェイスでリッスンします。したがって、これを部外者に対して機能させるには、次のようにバインドアドレスを付加する必要があります。

/usr/bin/autossh -M 0 -N -R 0.0.0.0:19999:localhost:22 [email protected] -v -i cloud.pem

これでもエラーが発生するため、実際に探しているのは、EC2で実行されているsshdサーバーで有効になっているGatewayPortsディレクティブです。

/ etc/ssh/sshd_configを編集して、次のことを確認する必要があります。

GatewayPorts clientspecified

構成内で定義します。 sshdサーバーを再起動し、上記のコマンドを使用します。これのより詳細な説明は次の場所にあります: 逆sshポート転送で企業ファイアウォールをバイパスする

2
ModuleC