NGINXがApache権限でファイルを読み込んでいます。これは間違っていますか?

NGINXがApache権限でファイルを読み込んでいます。これは間違っていますか?

ApacheをWebサーバーとして使用するサーバーS1と、WebサーバーとしてNGINXを実行する他のサーバーS2があります。 S2はS1にマウントされ、S1はNFSを使用してS2にファイルをアップロードします。

したがって、NGINX Server S2に新しく追加されたファイルには、Apacheの所有者とグループがあります。ファイルの提供に問題はなく、すべてがうまく機能しますが、NGINXを使用してApacheファイルを読み取るのにセキュリティ上の問題はありますか?これは単に間違っていますか?それでは、私の選択は何ですか?


アップデート1:設定ファイルで NGINX に設定されたユーザは apache ではなく nginx です。

ベストアンサー1

NFSサーバー上のファイルへのすべてのアクセス(読み取り/書き込み)に対して、クライアントはユーザーのユーザーIDとグループIDをNFSサーバーと共有します。 NFSサーバーがユーザーIDとグループIDが実際にファイルにアクセスできることを確認した場合にのみ、要求は許可されます。

あなたの質問について:

したがって、NGINX Server S2に新しく追加されたファイルには、Apacheの所有者とグループがあります。ファイルの提供に問題はなく、すべてがうまく機能しますが、NGINXを使用してApacheファイルを読み取るのにセキュリティ上の問題はありますか?これは単に間違っていますか?それでは、私の選択は何ですか?

どのようにまず、NGINXはApacheで生成されたファイルにアクセスできますか?ここでは、S1のApacheプロセスがファイルを生成すると仮定します。そして生成されたファイルは誰でも読むことができる(?)ファイルです。その場合、これは状況によってはセキュリティ上の問題である可能性があります。通常、Apacheプロセスによって生成されたファイルは、ファイルの生成を開始するスクリプトに明示的に権限を変更するコードがない限り、誰でも読むことができます。一度見てみたいかもしれません。

S1のApache合計は、user idS2のNGINX合計と一致します。または、そうでない場合、これらのファイルを含むディレクトリは誰でも読むことができ(別のセキュリティ上の問題)、Apache(S1)を除く誰でもアクセスできます。group iduser idgroup idread and executable bits turned on

NGINXとApacheが特権ポートで実行されている場合は、特に注意が必要な場合があります。実行中のバージョンのNGINX / Apacheで識別された特権の昇格またはルートの脆弱性により、ハッカーがサーバーにアクセスする可能性があります。 NGINX / Apacheサーバーの1つが非常に機密性の高いデータを保持している場合は、他のサーバーからそのデータを取得する方法を提供します。

外部の世界では、NGINXプロセスがApacheと同じフォルダを共有していることを知らないかもしれませんが、S1またはS2へのローカルシェルアクセスを持っている人は誰でもこの脆弱性を悪用して他のサーバーにアクセスする可能性があります。

サーバー/プロセス間でファイルを共有する以外に他のオプションがない場合は、次の点を検討してください。 - ファイルの読み取りおよび書き込み権限 - フォルダアクセス権限

共有ファイルがソースファイルの場合は、バージョン管理リポジトリ(GITなど)の一部であり、両方の場所で最新のコードをチェックアウトすることをお勧めします(最終的には2つのコピーを保持することを意味します)。

あなたのユースケースがわかったら、他の人がより良い選択肢を提示することができます。

おすすめ記事