web-dev-qa-db-fra.com

Meilleures pratiques pour les serveurs Web: structure et sécurité des répertoires

J'aimerais utiliser le serveur Ubuntu comme serveur Web, mais je veux m'assurer de suivre les meilleures pratiques pour configurer les choses. Je veux m'assurer de configurer le répertoire dans le meilleur emplacement et de comprendre comment configurer la sécurité appropriée sur ce dossier. J'aimerais pouvoir utiliser le protocole FTP sur le serveur et les fichiers Push dans les dossiers Web. Je voudrais donc comprendre comment faire en sorte que mon utilisateur PureFTPd puisse manipuler des fichiers/répertoires dans les dossiers Web.

15
JPrescottSanders

Ce que j’ai fait sur mon serveur pour que mon utilisateur puisse envoyer des éléments directement dans /var/www est:

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 appartenant au 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 dans 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 de définir le groupe sur le groupe principal du créateur.

5
maco

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 Ubuntu le fait déjà de la bonne manière.

En outre, sur le site Web Apache, il y a quelques astuces 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 Ubuntu ont un tutoriel sur la configuration d’un tel serveur FTP .

2
txwikinger

Lorsque je n'ai qu'un serveur Ubuntu et que plusieurs utilisateurs l'utilisent comme serveur Web, je supprime le répertoire /var/www, car pour moi, /var/www est l'endroit où vous placez les fichiers Web globalement. Je mets à jour le répertoire /etc/skel et ajoute un dossier public et private avec un lien symbolique www -> public et mets à jour tous mes hôtes virtuels DocumentRoots pour qu'il pointe vers /home/<user>/public.

/var/www ne me permet pas de placer plusieurs dossiers et fichiers au niveau utilisateur. C'est pour cela que le répertoire /home/ est conçu! Il garde les chemins et les structures de répertoires propres.

0
Marco Ceppi