バイナリの権限を変更する必要がありますか?

バイナリの権限を変更する必要がありますか?

rootとして実行しCentOS 6.2てインストールしますnginx。インストール後のセキュリティを強化するために、インストール所有者とグループを独自のユーザーとグループに変更しました。

rootとしてログインしてyum update更新を実行しましたnginxが、多くのファイル所有者グループがrootに戻ることがわかりました。

アップデート中に希望の所有権を維持する方法はありますか?nginxユーザーとしてログインして更新を実行することもできます(これは可能か推奨ですか?)

答え1

あなたがしたことはひどかった。止まる

アプリケーションをnginxユーザーが所有しnginx、そのユーザーとして実行している場合は、nginxアプリケーションが悪用されたときに独自のファイルを上書きする可能性があります。あなたはこれをしたくありません。

アプリケーションバイナリはほぼ常に所有している必要がありますroot。サービスは、ほとんど常にnobody権限のない他の同様のアカウントで実行する必要があります。

同様に、Webサーバーを実行しているのと同じユーザーがWebコンテンツを所有することを望まないでしょう。これを行うと、攻撃者はあなたのコンテンツを変更する可能性があります(つまり、サイトを損傷する可能性があります)。

できるだけ多くの権限分離を使用し、できるだけ少ない権限を使用しようとします。

  • アプリケーション所有者root(したがってroot修正のみ許可)
  • 権限のないユーザーが実行するサービス(したがって、システムにほとんどまたはまったくアクセスできない)
  • 可能であれば、サービスユーザーはサービスコンテンツを所有してはいけません。

答え2

nginxは、ユーザーが指定したファイルに書き込む必要はありません。実際、そうする能力はセキュリティ上危険です。 nginxを破壊する攻撃者は、Webディレクトリまたは設定ファイルに必要なものをすべて書き込むことができます。そのため、最初はルートが所有しています。

したがって、サーバーをより安全にするのではなく、安全性が低いように見えます。

Webディレクトリの場合、実際にはデフォルトディレクトリを移動する必要はありません。代わりに、新しいnginxserver構成ブロックを作成し、Webサイトのファイルをユーザーのホームディレクトリまたは/srv

関連情報