0

Ubuntu Server 14.04でApache2 +userdirを実行しています。ユーザーは AD に対して認証され、SSH 経由でこのサーバーに正常にログインできます。各ユーザーには、ユーザーが他のユーザーのファイルを変更および読み取ることを禁止する権限があります。$HOME700

ディレクトリ/home/public_htmlは Apache() によって所有されており、各ユーザー (グループのメンバー) が自分のユーザー名の下に自分のサブディレクトリを作成し、自分の にそのサブディレクトリへのシンボリック リンクを作成できるようにするためのwww-data:www-dataアクセス許可を持っています。username を持つサンプル ユーザーの例を次に示します。775www-data/home/public_html$HOMEjdoe43

  • /home/Domain/jdoe43$HOME ディレクトリです (権限は 700 です)
  • /home/public_html/jdoe43シンボリックにリンクされているユーザーのpublic_htmlディレクトリですjdoe43/home/Domain/jdoe43/public_html

UserDirディレクティブは に設定されてい/home/public_htmlます。残りの部分userdir.confはデフォルトで Ubuntu にインストールされており、参照用に以下にリストされています。

<IfModule mod_userdir.c>
   UserDir /home/public_html
   UserDir disabled root
   <Directory /home/public_html/*>
      AllowOverride FileInfo AuthConfig Limit Indexes
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
      <Limit GET POST OPTIONS>
         Require all granted
      </Limit>
      <LimitExcept GET POST OPTIONS>
         Require all denied
      </LimitExcept>
   </Directory>
</IfModule>

許可する適切なアクセス許可のセットを見つけるのを楽しみにしています

  • ファイルにアクセスするための Apache プロセス/home/public_html/*
  • ユーザーは自分のpublic_htmlディレクトリを完全に制御できます

そして同時に禁止する

  • 別のユーザーの $HOME ディレクトリのコンテンツを表示/変更するユーザー
  • にある別のユーザーのpublic_htmlディレクトリのコンテンツを表示/変更するユーザー/home/public_html/

さまざまなアクセス許可のセットで試したすべてのことは、Apache でユーザーにアクセスできないpublic_htmlか、ユーザーが少なくとも他のユーザー$HOMEまたはpublic_html.

selinuxを使用してファイル システムを構成し、パーミッションを使用して他のユーザーのディレクトリへのアクセスを拒否することを提案するいくつかの投稿を見つけました (私が$HOMEに設定して行ったように700) 。そのすべてのサブディレクトリとともに。また、最近のバージョンの Ubuntu が に置き換えられたことを示すリソースをいくつか見つけたので、このテクノロジの経験が限られているため、実装に向けた動きを延期することにしました。selinux/home/public_htmlselinuxapparmor

提案/推奨事項は大歓迎です。ありがとうございました。

4

1 に答える 1

0

そのようなことを比較的簡単に行えるようにするselinuxブール値があるかもしれません。

ubuntu wiki は、他のディストリビューションと同じ refpolicies を使用していることを確認する debian SELinux ページに移動します (もちろん)。Apacheのポリシーを確認したところ、ブール値がそこにあります。すでに selinux 対応の ubuntu がある場合は、ブール値が有効になっているかどうかを簡単に確認できます

getsebool httpd_enable_homedirs

ブール値が true か false かを確認します (デフォルトは false)。

ここに示すように、UserDir を有効にした後、ブール値を有効にする必要があります

setsebool -P httpd_enable_homedirs true

各ユーザーのディレクトリにラベルを付け直します

chcon -R -t httpd_sys_content_t /home/testuser/public_html

public_html ディレクトリに対する UNIX パーミッションは、まだ 755 か、ユーザー/グループのセットアップに必要なものであることに注意してください。

chown testuser:testuser /home/testuser/public_html
chmod 755 /home/testuser/public_html

SELinux の方法を使用する場合は、それが必要です。私は AppArmor やその他の代替手段についてあまり知りませんが、あなたが言うように、Ubuntu wiki は selinux のサポートについてあまり明確ではありません。

時間があれば、テスト VM で試してみて、どうなるかを確認することをお勧めします。

お役に立てれば!

于 2015-05-11T14:03:17.537 に答える