-14

SSH トンネルを介して内部サーバーと通信するインターネット上で利用可能なアプレットがあります。正しい SSH クレデンシャルがアプレットで利用できる必要があります。それらをアプレットにコンパイルするのはあまり便利ではありません。それらを HTML のアプレット パラメータとして提供すると、それらがインターネットに漏洩します。アプレットにアプレットホストサーバーからそれらをダウンロードさせることも同様ですが、それほど明白ではありません。私の質問は、アプレットだけが SSH 資格情報を取得できる、私が考えていなかった別の方法はありますか? おそらく、アプレットにブラウザと同じセッション ID を使用させることができます。その場合、少なくとも認証されたユーザーに制限することができます...しかし、リークのない、より安全なソリューションが本当に欲しいです。

サーバー スタックには、Tomcat、JSF、および Facelets があります。Apache サーバーと FTP も利用できます。

編集:私がトンネリングしている内部サービス自体は、DoS を除けばかなり安全であることを明確にする必要があります。それは、私が懸念している内部ホストのセキュリティであり、どこへのパブリック トンネルにもならないことです。そこでは、SSH PermitOpen 構成要素が大いに役立ちます。

4

5 に答える 5

5

クライアントのマシンがサーバーにログインする必要がある場合、クライアントは使用している資格情報を把握できます。それを回避する方法はありません。誰かが望むなら、彼らは自分のマシンのインターネットトラフィックを盗聴してそれをそのように見つけることができます。

クライアント側からログインするこのsshトンネルをどうしても使用する必要がある場合は、公開鍵認証を使用してホストで鍵を生成し、その鍵へのアクセスを一時的に追加するAPIを介して公開鍵をサーバーに渡すことをお勧めします。

于 2011-08-27T01:36:29.293 に答える
1

ありえない。ユーザーのコンピューターで実行されているJavaアプレットと、同じコンピューターで実行されているユーザーによって作成されたツールを区別する方法はありません。ユーザーの観点からすると、HTTP要求とSSHトラフィックは「同じにおいがします」。最善の策は、ユーザーが必要な穴を自分で開けることを許可するのではなく、ファイアウォールを介して内部サーバー上の必要なポートを公開する方法を見つけることです。

于 2011-08-27T01:40:18.983 に答える
0

ここで目標を定義することに問題があります。

2 つのケースが考えられます: 1) SSH サーバー上でバッチ (一連のコマンド) を実行する必要があり、ユーザーがこれを認識していない場合 2) ユーザーが限定された方法でサーバーと対話できるようにする必要がある場合。

最初のケースでは、HTTP サーバーにバッチを送信し、HTTP サーバーを SSH サーバーに接続させることができます。

2 番目のケースでは、アプレットを介してユーザーに SSH アクセスを提供しています。これは、ユーザーのお気に入りの SSH クライアントを介してユーザー アクセスを提供するのと同じです。そのため、各ユーザーに異なる SSH 資格情報を提供する (そしてそれらをアプレットに渡す) 必要があり、それだけです。資格情報を保護するのはユーザーの仕事ですが、IP アクセスの制限などのセキュリティ対策を追加することもできます。

最後に、機能が制限されたカスタム SSH サーバーも解決策になる可能性があることに注意してください。

于 2011-08-27T07:12:46.170 に答える
-1

最善の方法は、単純な暗号化されていない TCP 接続を使用して、ファイアウォールの外側にある種のプロキシを作成し、セキュリティで保護されたサーバーからアプレットへの接続をプロキシ経由で確立し、SSH 接続をトンネリングすることだと考えています。接続を開きます。

于 2011-08-27T12:57:55.633 に答える