説明: Web ルートの Apache プロセスに対する権限と所有権

説明: Web ルートの Apache プロセスに対する権限と所有権

私は正しい/安全な(1)所有権と(2)Apacheが提供するWebアクセス可能ディレクトリ(たとえば)にあるディレクトリとファイルへのアクセス権についてたくさん読んでいます/var/www/。私は簡単に混乱したり、周りに混乱して矛盾するアドバイスがたくさんあります。

755通常、ディレクトリとファイルには一般的なCMS(drupal、wordpressなど)をお勧めします644。ただし、Webルート(たとえばchown -R :www-data /var/www/

(1)最初の質問:ディレクトリとファイルにグループの所有権が/var/www/*あり、www-data通常どおりApacheプロセスのユーザーがwww-dataグループの唯一のメンバーであるとします。同時に、ディレクトリとファイルのユーザー所有権は、/var/www/*Linuxシステムのグループに属するsudo一般ユーザーに属します(例somesudouser:)。これにより、次のような結果が得られます。

    ----------  1 somesudouser www-data   3012 Jan 10 13:46 some-file.php
    d--------- 16 somesudouser www-data  12288 Jan 10 13:25 some-directory/

上記の所有権構造を考慮して、「その他」へのアクセス権をに設定できます0。たとえば、750ディレクトリ、740ファイルの場合、ブラウザの要求に応答してApacheがこれらのファイルを正しく提供するのを防ぎません。

    -rwxr-----  1 somesudouser www-data   3012 Jan 10 13:46 some-file.php
    drwxr-x--- 16 somesudouser www-data  12288 Jan 10 13:25 some-directory/

これは何の問題ですか?私は「その他」権限を(しばしば推奨されるディレクトリやファイルとは異なり0)他のものに設定することは妥当ではないと思います。ファイルのユーザー所有権を次のように設定しない理由はありません。しばしば推奨されます)。私は何を見逃していますか?5476

(2)2番目の質問:Webルートのディレクトリとファイルのグループ所有権がApacheプロセスを含まないグループに属する場合(例:)somesudouser:somesudouser、Apacheプロセスは「その他」アクセス権がある場合にのみWebルートと対話します。できます。 .NET のディレクトリやファイルと対話できます。セキュリティに関して、次のうち実際の利点/欠点はありますか?

    -rwx---r--  1 somesudouser somesudouser   3012 Jan 10 13:46 some-file.php
    drwx---r-x 16 somesudouser somesudouser  12288 Jan 10 13:25 some-directory/

または:

    -rwxr-----  1 somesudouser www-data   3012 Jan 10 13:46 some-file.php
    drwxr-x--- 16 somesudouser www-data  12288 Jan 10 13:25 some-directory/

でも:

    -r--------  1 www-data www-data   3012 Jan 10 13:46 some-file.php
    dr-x------ 16 www-data www-data  12288 Jan 10 13:25 some-directory/

(3) 権限に関する最後のw質問です。 Apacheプロセスにファイルのグループ所有権があり、グループに次のアクセス権があるとします7

    ----rwx---  1 somesudouser www-data   3012 Jan 10 13:46 some-file.php

これがなぜ問題になるのですか?悪意のある攻撃者がApacheユーザーを拉致し、それを編集してsome-file.phpLinuxシステムで悪意のあるPHPを実行する可能性はありますか?これはどのように行われますか?

ディレクトリに同じ権限がある場合はどうなりますか?

    d---rwx--- 16 somesudouser www-data  12288 Jan 10 13:25 some-directory/

悪意のある行為者は、Apacheプロセスにこのディレクトリに新しいファイルを書き込むことができますか?繰り返しますが、これはどうなりますか?

ありがとうございます。

答え1

(1)最初の質問:...通常のように、Apacheプロセスユーザーのwww-dataがグループの唯一のメンバーです...何が問題ですか? 「その他」権限をゼロ以外の権限に設定することは意味がないと思います(通常はディレクトリに推奨される5、ファイルに4を推奨する代わりに)。

まず、自分のシステム管理者/開発者としてこのグループのメンバーとして追加することは、www-dataWebサーバーで作成されたファイルとフォルダを操作できるようにするため、非常に優れた効果的なアイデアです。
Webサーバー文書のroot権限がこのように設定されている場合、ディレクトリにsetgidビットを設定すると、Webサーバーによって生成されたファイルとフォルダを使用でき、共有のグループ所有権があるため(umaskが002であると仮定)、作成し、FTPを介して転送し、作成したファイルとフォルダへのフルアクセス権で正常に動作します。
この場合、あなたは正しいです。他のUNIXアカウントはドキュメントルートへのアクセス権を持ってはいけませんので、他のビットを0に設定することをお勧めします。
あなたのCMS文書では、ほとんどの非専門家の管理者がsetgidなどを設定するのに十分な知識がないため、他の人が少なくとも読めるようにすることをお勧めします。したがって、www-dataが所有するファイルの場合、1つは別のものです。少なくともファイルを読み取ることができ、その逆も同様です。

(2)2番目の質問:Webルートディレクトリとファイルのグループ所有権がApacheプロセスを含まないグループに属する場合

ディレクトリの目的とWebサーバーが機能するために書き込み権限が必要かどうかによって異なります。通常、ネットワークサーバーが機能するために必要な権限のみを付与する必要がありますが、ネットワークサーバーに権限が必要な場合は、所有権またはグループの役割を介して理想的に割り当てる必要があります。ネットワークサーバーが読み取りおよび書き込みを可能にするために世界中の読み取り/書き込みアクセスを許可すると、他のUNIXユーザーアカウントにも同じ自由が許可されます。たとえば、共有システムの他の「ネイバー」はあなたのファイルにアクセスできないはずですが、システム管理者が間違えたときにアクセスすることがあります。はい。そんなことが起きているのを見たことがあります。

(3) w 権限に関する最後の質問です。 Apacheプロセスにファイルのグループ所有権があり、グループのアクセス権が7であるとします。

はい、これはほとんど問題の主な原因になります。 Webサーバーがインターネットに接続されています。 Webサーバーは絶えず濫用され、悪意のある人はあなたが望むことをするためにWebサーバーをハイジャックしようとします。これにはファイル文書を含めることができます。次のディレクトリとウェブサイト内のルート操作

  • カタログ索引/検索
  • ファイルの書き込み/破損 - Webサーバーが機能するためにこれらのファイルを読み取るだけでよい場合

一般的なセキュリティ問題として、ネットワークサーバーを介したファイルシステムの乱用は、パスワードの読み取りなど、オペレーティングシステムの残りの部分に伝播される可能性があるため、注意してください。そのため、重要なシステム情報、パスワード、ログなどを見ることができるネットワークサーバーの権限にも問題があります。外部ドキュメントルートディレクトリ。
ドキュメントのルート権限に関してうまく設定された権限はどのようなものですか?おすすめしたい

そして読書

関連情報