logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 07-01-2019 23:26:58

X260
Membre
Inscription : 07-01-2019

Sécuriser un espace pour PHP

Bonsoir à tous,

Je gère un petit serveur sur lequel j'ai installé Apache et PHP, ainsi qu'un accès SFTP.
J'ai configuré le serveur SFTP de sorte que chaque utilisateur d'un certain groupe sftpusers a un dossier qui lui est propre : /sftp/*user/home/ (avec *user le nom de l'utilisateur). Les owners et groupes des dossiers sont :
root:root /sftp/*user
*user:sftpusers /sftp/*user/home

Ce qui garanti que chaque utilisateur ne peut accéder qu'à son /sftp/*user/home/, c'est parfait.

Maintenant, j'aimerai que chaque utilisateur puisse uploader dans son répertoire ses propres sites internet (donc ses fichiers *.php, *.css, *.html, etc.), et que ceux-ci soient accessibles avec Apache.
Les fichiers sources des sites lisibles avec Apache sont situés dans /var/www/html. J'ai donc créé pour chaque utilisateur un dossier (root:root) /var/www/html/*user et un dossier /sftp/*user/home/www. J'ai créé un lien symbolique /var/www/html/*user -> /sftp/*user/home/www , de sorte à ce que quand un utilisateur upload un fichier pour son site dans /sftp/*user/home/www, il est accessible à l'adresse monsite.fr/*user/, et ça fonctionne très bien !
Le problème, c'est que l'utilisateur peut mettre n'importe quoi, et avec des codes très simples en PHP, modifier l'intégralité des fichiers de la racine / (j'ai testé par exemple avec scandir(), on voit absolument tout les fichier de l'ordi serveur), ce qui n'est pas très sécure, vous en conviendrez ^^.

Comment faire donc pour allouer un espace sur mon serveur lequel chaque utilisateur puisse héberger personnellement son site, mais sans pouvoir aller bricoler les fichiers des autres ou du serveur ? Faut-il utiliser le mod d'Apache UserDir, ou bien jouer avec les droits d'accès des fichiers ?

Merci beaucoup !
Bonne journée

Hors ligne

#2 09-01-2019 00:15:19

d4v3
Membre
Distrib. : Debian Stretch (9.6) 64 bits
Noyau : 4.9.0-8-amd64
(G)UI : XFCE
Inscription : 31-12-2018

Re : Sécuriser un espace pour PHP

Bonjour !

Sans pouvoir répondre exactement à ce que tu demandes (le fichier de configuration en lui-même), je peux tout de même t'indiquer en attendant d'utiliser les fichiers .htaccess et .htpasswd

https://www.commentcamarche.net/contents/7-apache-les-fichiers-htaccess



J'en ai utilisé un peu, mais je ne maîtrise pas assez leur utilisation pour me permettre de te fournir un code en étant sûr qu'il te conviendra ! biggreen.gif

Edit: Peut-être ce genre de code dans chaque dossier utilisateur (avec droits d'accès à root seulement) ?


deny from all
<Files index.php>
allow from all
</Files>

Dernière modification par d4v3 (09-01-2019 00:21:59)

Hors ligne

#3 12-01-2019 11:36:13

X260
Membre
Inscription : 07-01-2019

Re : Sécuriser un espace pour PHP

Merci pour tous ces conseils ! Néanmoins, d'après Apache eux-même, il faudrait mieux éviter d'utiliser Deny, Allow et Order :

https://devdocs.io/apache_http_server/howto/access a écrit :

The Allow, Deny, and Order directives, provided by mod_access_compat, are deprecated and will go away in a future version. You should avoid using them, and avoid outdated tutorials recommending their use.



J'ai beaucoup navigué à travers la doc d'Apache et différents forums, je pense que dans ma situation, il faut plutôt créer un Virtual Host pour chaque utilisateur. Je vais essayer ça !

Dernière modification par X260 (12-01-2019 11:37:04)

Hors ligne

Pied de page des forums