web-dev-qa-db-ja.com

Apacheのホームディレクトリへのアクセスを許可しますが、他のユーザーには許可しませんか?

専用サーバーを自動管理するウェブサイトを構築しています。ユーザーの作成やホームディレクトリを指すApache設定など、あらゆる種類の処理を実行します。

ホームディレクトリホストゲームバイナリ、およびホームフォルダにはWebからアクセスできますが、アクセスできるのは必須ではないリソースファイル(.wav .mdl .sprなど)のみです。これがApacheの構成方法です。したがって、これを機能させるには、すべてのファイルに対する実行および読み取りのアクセス許可が必要です。

問題は、あるユーザーのホームフォルダーで実行されているバイナリが、他のユーザーのホームフォルダーにアクセスし、そこにあるファイルの読み取りと書き込みを行うことができることです。

ユーザーのホームディレクトリに、ユーザー以外のユーザーがapache経由でアクセスできないようにするにはどうすればよいですか?フォルダツリーは次のようになります。

http://i.imgur.com/LVFMle2.png (画像を直接表示する担当者なし)

1
Aron

Apacheがアクセスする必要がある各ユーザーのホームディレクトリにACLを設定します。これにより、グループでのばかげたトリックを回避できます。これは、実際には解決するよりも多くの問題を引き起こす可能性があります。

例えば:

setfacl -R -m u:httpd:rx,d:u:httpd:rx /home/username

httpdユーザーは、サブディレクトリや新しく作成されたファイルなど、そのディレクトリ内のすべてを読み取ることができます。

2
Michael Hampton

各ユーザーのホームディレクトリをユーザーとユーザーのグループが所有し、ユーザーとグループのみがディレクトリ(770)にアクセスできるようにしてから、Apacheを各ユーザーのグループのメンバーにすることをお勧めします。

また、必ず何らかの形のシンボリックリンク攻撃保護を実装してください(一部のオプションについては https://documentation.cpanel.net/display/EA/Symlink+Race+Condition+Protection を参照してください-このリンクは実装していませんcPanelに適用するだけです)。

物事をシンプルに保ち、シンボリックリンク攻撃からの保護を必要としないアプローチは、スピードヒットを気にしない場合はMPM ITKを使用することです(ホームページの「QuirksandWarnings」も参照してください)。その場合、Apacheは個々のWebサイトユーザーとして実行されます。

マルチサイトホスティングのセキュリティやその他のアプローチについては、 マルチサイトホスティング-サイトを相互に保護するために重要な脆弱性が見落とされている? を確認することもできます。

免責事項:上記の提案が100%安全であるとは約束できませんので、ご自身の責任で使用してください=)。

0
sa289