5

ポート80で静的コンテンツと動的コンテンツの両方を提供するJavaサーブレットコンテナを実行する場合、サーバーを次のように実行するかどうかという古典的な質問があります。

  1. 可能であれば、chroot刑務所のルートとして(これはまだ機能していません)
  2. root以外のユーザーとして、IPTablesを使用して、ポート80をコンテナーが実行されている他のポート(> 1024)に転送します。
  3. 両方:非rootユーザー、IPTables、およびchrootjailとして。

optの問題。1は、chrootingの複雑さであり、rootを実行する際のセキュリティの問題です。optの問題。2つは、LinuxディストリビューションごとにIPTablesを永続化する方法が異なることです。もちろん、オプション3はおそらくアイデアですが、セットアップが非常に困難です。

最後に、すべてのディストリビューションには、デーモンスクリプトに厄介な違いがあります。

人々はディストリビューションにとらわれない最良の解決策として何を見つけますか、そしてこれを行う方法を示すためのリソースはありますか?

編集:サイトはほとんど動的であり、総メモリフットプリントが重要であるため(ホスティングコスト)、サーブレットコンテナの前でApacheを実行したくありません。

4

5 に答える 5

5

非ルートとして実行し、ポート80で標準のウェブサーバー( apache)または軽量のウェブサーバー( lighttpdnginxなど)を使用してインスタンスにリダイレクトします。

これには、標準のWebサーバーが静的コンテンツを提供できるという利点があり、Webアプリケーションの負荷が軽減されます。リバースプロキシを使用して、Webアプリケーショントラフィックをキャッシュすることもできます。

于 2010-06-17T16:03:21.803 に答える
3

authbindを確認してください。これは、root以外のユーザーが特権ポートへのアクセスを制御できるように特別に設計されています。

このようにして、Webアプリケーションプロセスに大混乱をもたらす不要な権限を与えることなく、Tomcatユーザーの権限を必要なルート権限(特権ポートを開く)だけに効果的にエスカレートできます。

于 2010-06-17T20:31:00.097 に答える
2

ポート8080で桟橋を使用し、

iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

于 2010-06-19T01:22:35.877 に答える
0

Struts2で最近発見された脆弱性-https : //www.imperva.com/blog/2017/03/cve-2017-5638-new-remote-code-execution-rce-vulnerability-in-apache-struts-2/-ルートとして実行することは危険であることを明確に示しています。

于 2017-03-23T08:24:14.427 に答える
-2

単純にrootとして実行してみませんか?何が悪いことが起こりますか?

Javaサーブレットコンテナがハッキングされ、ハッカーがJVMから抜け出し、OSにアクセスできるという話は聞いたことがありません。

それが起こったとしましょう。ハッカーはJVMコードを読み、穴を見つけました。彼はサーブレットコンテナを介してシステムに侵入し、サーブレットコンテナを実行するユーザーとしてログインします。

その後、あなたはねじ込まれます。サーバー上で最も価値があり、唯一価値のあるものはすべて、そのユーザーがアクセスできます。ユーザーが通常のユーザーであるかどうかは関係ありません。

そのユーザーがrootである場合、さらにどのようなダメージを与えることができますか?OSは使い捨てです。きれいに拭いてから再インストールしてください。

于 2010-06-17T20:42:28.927 に答える