-
Aide pour securité linux
Bonjour,
Je suis actuellement en train de créer un site ou je laisserai un espace web a mes utilisateur pour qu'ils puissent y mettre des fichiers web (html, css , php...)
En gros j'aurai sur mon serveur debian un dossier dans lequel il y aurai les dossiers de tout mes users :
..
|_Dossier_general
|_ Dossier_user_1
|_Dossier_user_2
|_ Dossier_user_1
|_Dossier_user_2
Chaque user mettra ce qu'il veux dans son dossier ou "espace".
Mais voilà venir un gros pb de sécurité car les users pourront faire des scripts en php par exemple pouvant aller voir dans les autres dossiers ou supprimer des fichiers et pire encore....
Je voudrai donc que le user puisse faire ce qu'il veut a l'intérieur de son dossier mais qu'il ne puisse pas aller ailleurs... Attention le user n'aura pas d'acces ssh ni même de ftp. Les fichiers se feront sur une interface du site ce qui enleve deja un petit pb.
Est-ce possible déjà? Et si oui comment faire?
J'ai déjà vu des chose comme "chroot" mais c'est un peu compliqué et je voudrai crée les dossiers user à la volé lorsqu'il s'inscrive. DE plus dans ce ca il faudrai faire un chroot pour chaque user? J'ai aussi entendu que l'on pouvais faire des sorte de "prisons" ou le user est bloquer dans une certaine partie...
Merci a tous d'avance pour votre aide.
-
Si c'est un site web tu as une configuration au niveau de
ton serveur WEB par exemple pour apache regarde la
directive "DocumentRoot"
Ensuite en php tu peux (tu devrais) positionner au moins les directives open_basedir
et include_path. Je te conseille de lire http://www.php.net/manual/fr/security.php
Attention il y a quelques modifications à partir de la version php 5.3.0 sur l'interprétation, entre autre, de ces directives.
-
precision?
Si j'ai bien compris le DocumentRoot bloque l'acces au fichier parent du chemin précisé ?
Je site n'est pas codé en php mais en ruby.
Merci de ta réponse
-
Je ne connais pas Ruby, tu dois certainement avoir une page sécurité sur le site ruby qui te présente les bons réflexes.
Attention DocumentRoot permet de présenter une page d'accueil ou un répertoire de ton serveur par rapport à une URL ou/et une IP ou/et un port d'écoute.
Par contre rien n'empêche, par exemple dans du code PHP (je pense qu'en Ruby tu peux faire la même chose), d'aller lire un fichier se trouvant en dehors de ce répertoire d'accueil défini dans la directive DocumentRoot de ton serveur Apache.
Vérifie la configuration, coté serveur, de ton module Ruby.
-
Bonjour,
Je te conseille egalement de te documenter du coté de chroot :)
Ensuite ya pas mal de doc existante intitulé " Creer un serveur mutualisé".
Bien cordialement