Meilleures pratiques pour les serveurs Web: structure de répertoire et sécurité

15

Je voudrais utiliser le serveur Ubuntu comme serveur Web, mais je veux m'assurer de suivre les meilleures pratiques de configuration. Je veux m'assurer de configurer le répertoire au meilleur emplacement et de comprendre comment configurer la sécurité appropriée sur ce dossier. Je voudrais pouvoir FTP vers le serveur et pousser des fichiers dans les dossiers Web, donc je voudrais comprendre comment s'assurer que mon utilisateur PureFTPd peut manipuler des fichiers / répertoires dans les dossiers Web.

JPrescottSanders
la source
J'ai trouvé cette réponse sur serverfault.com et l'ai trouvée très utile. Beaucoup de commentaires sont de bonnes informations pour traiter ce sujet.
MystaMax

Réponses:

5

Ce que j'ai fait sur mon serveur pour que mon utilisateur puisse directement faire les choses /var/wwwest:

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

Cela placera votre utilisateur dans un groupe qui possède la propriété du groupe sur / var / www et tous ses répertoires enfants, définira tout dans / var / www de manière récursive pour permettre à votre groupe d'accéder en écriture et définira le bit setgid sur le répertoire / var / www de sorte que tous les fichiers créés ultérieurement sous / var / www conservent la même propriété de groupe plutôt que d'avoir le groupe défini sur le groupe principal du créateur.

maco
la source
Ce serait une bonne méthode, mais uniquement si vous créez un groupe différent à partir www-dataduquel se trouve le groupe sous lequel le serveur Web s'exécute déjà. Par conséquent, tout compromis des scripts du serveur Web signifie que les fichiers sous /var/wwwpeuvent être modifiés. Changez simplement www-datapour quelque chose comme web-users(et créez d'abord ce groupe, avec sudo addgroup web-users).
Kees Cook du
2

C'est une question très générale.

De toute évidence, vous ne voulez pas exécuter votre serveur Web en tant que root. Cependant, l'installation d'Ubuntu le fait déjà de la bonne manière.

De plus, sur le site Web d'Apache, vous trouverez quelques conseils pour configurer correctement votre répertoire .

En ce qui concerne ftp. Vous voulez vous assurer que vous utilisez un serveur ftp sécurisé qui n'envoie pas vos noms d'utilisateur et mots de passe en texte brut sur le réseau. Les pages d'aide d'Ubuntu contiennent un tutoriel sur la configuration d'un tel serveur ftp .

txwikinger
la source
J'apprécie les informations, je me rends compte qu'elles sont générales, j'espérais qu'il y aurait une interprétation plutôt générale des meilleures pratiques pour la mise en place des choses.
JPrescottSanders
0

Lorsque je n'ai qu'un serveur Ubuntu, avec plusieurs utilisateurs utilisant le serveur comme serveur Web, je supprime le /var/wwwrépertoire car pour moi, /var/wwwc'est là que vous placez les fichiers Web globalement. Je mets à jour le /etc/skelrépertoire et ajoute un dossier publicet privateavec un lien symbolique www -> publicet met à jour tous mes hôtes virtuels DocumentRoots vers lesquels pointer /home/<user>/public.

Je ne vois pas /var/wwwcomme l'endroit pour mettre plusieurs dossiers et fichiers de niveau utilisateur. C'est à cela que /home/sert l' annuaire! Il garde les chemins et les structures de répertoires propres.

Marco Ceppi
la source