9

Web アプリケーションをどこから提供するか、どのユーザーとして実行するかなどについて、オンラインでさまざまなアドバイスを目にします。

たとえば、/var/www/site、/srv/www/site、/home/$USER/site.

ユーザーが www-data、$USER (つまり、私のユーザー アカウント)、またはその目的のために特別に作成されたカスタム ユーザー (ユーザー uwsgi など) であることがわかりました。

セキュリティの観点から、私が選択できる最良のスキームは何ですか?

参考までに、Nginx と uwsgi を使用して Django サイトをデプロイしようとしています。

現在、uwsgi は皇帝モードで root として実行されており、uid/gid は www-data として設定されているため、家臣は Nginx ワーカーと同じ権限でスポーンします。/home からサービスを提供していますが、移動を考えています。

4

1 に答える 1

8

場所については、あなたに最適と思われる場所を選択してください。役立つ考慮事項を次に示します。

  • 以下の場所は、サイズ/varが変化するファイル、または一般に「可変」のファイル用です。
  • /srv通常、マシン上で実行されているサービスに関連するファイルを示します。
  • /home通常、インタラクティブなユーザー用に予約する必要があります。ただし、システム ユーザーのホーム ディレクトリは任意のディレクトリに設定できます。

セキュリティのために、可能な限りセグメント化する必要があります。アプリを Web サーバーと同じユーザーとして実行しないでください。これにより、サーバー自体 (.htaccessまたはその他のもの) に関連する機密ファイルを悪用して読み取ることができなくなります。アプリのバイナリ ファイル (または Django の場合は Python ソース) は、アプリケーション ユーザーへの書き込みアクセスなしで、root が所有する必要があります。

セットアップ方法に関する私の2セントは次のとおりです。

  • Django アプリ:/usr/lib/appname/または/usr/lib/python/site-packages/appname/インストールされている場合。ルート、chmod 644 が所有しています。
  • アプリのファイル (例: sqlite db ファイル、FastCGI 用の Unix ソケット、アップロードされたファイル ストレージなど): /var/lib/appname/. app-user、chmod 600 が所有しています。
  • app-user のシェルは/bin/nologin、ホームは/var/lib/appname/です。ユーザーにはパスワードが設定されていません。
于 2012-10-17T22:10:53.417 に答える