web-dev-qa-db-ja.com

Webサーバーのベストプラクティス:ディレクトリ構造とセキュリティ

UbuntuサーバーをWebサーバーとして利用したいのですが、設定のベストプラクティスに従うようにします。最適な場所にディレクトリを設定し、そのフォルダに適切なセキュリティを構成する方法を理解したいと思います。サーバーにFTPでファイルをWebフォルダーにプッシュできるようにしたいので、PureFTPdユーザーがWebフォルダー内のファイル/ディレクトリを操作できるようにする方法を理解したいと思います。

15

ユーザーが/var/wwwに直接sftpできるようにサーバーで行ったことは次のとおりです。

Sudo chgrp -R www-data /var/www
Sudo usermod -aG www-data $(whoami)
Sudo chmod -R 775 /var/www/*
Sudo chmod 2775 /var/www

これにより、ユーザーは/ var/wwwとそのすべての子ディレクトリのグループ所有権を持つグループに入れられ、グループ書き込みアクセスを許可するために/ var/wwwのすべてが再帰的に設定され、/ var/wwwディレクトリのsetgidビットが設定されますそのため、後で/ var/wwwの下に作成されるすべてのファイルは、グループを作成者のプライマリグループに設定するのではなく、同じグループ所有権を維持します。

5
maco

これは非常に一般的な質問です。

明らかに、Webサーバーをrootとして実行したくありません。ただし、Ubuntuのインストールでは既に適切な方法で実行されています。

さらに、Apache Webサイトには、いくつかの ディレクトリを適切に構成するためのヒント があります。

Ftpに関して。ユーザー名とパスワードをプレーンテキストでネットワーク経由で送信しない安全なftpサーバーを使用するようにします。 Ubuntuのヘルプページには そのようなftpサーバーのセットアップ方法のチュートリアル があります。

2
txwikinger

複数のユーザーがサーバーをWebサーバーとして使用しているUbuntuサーバーだけの場合は、/var/wwwディレクトリを削除します。なぜなら、/var/wwwはWebファイルをグローバルに配置する場所だからです。 /etc/skelディレクトリを更新し、シンボリックリンクwww -> publicを持つpublicおよびprivateフォルダーを追加し、/home/<user>/publicを指すようにすべての仮想ホストDocumentRootsを更新します。

/var/wwwが複数のユーザーレベルのフォルダーとファイルを配置する場所として表示されません。それが/home/ディレクトリの設計目的です!パスとディレクトリ構造をきれいに保ちます。

0
Marco Ceppi