IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

remonter dans les repertoires - serveur web mutualisé [Fait]


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut remonter dans les repertoires - serveur web mutualisé
    bonjour

    j'ai fait un serveur web mutualisé (redhat apache 2 php5 mysql4)
    Une personne a mis joomla et un composant xplorer
    Avec ce composant (mais en fait simplement en php), il arrive à remonter plus haut que son repertoire et à allez chez les autres !

    Comment peut on enpecher cela

    Est ce que vous connaissez des tutos pour la création d'un serveur web mutualisé ?

    Merci par avance

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Ça dépend comment est(sera) utilisé PHP (module Apache ou non). Dans certains cas, il est possible de compter sur les permissions instaurées sur les fichiers (avec un module comme suPHP qui ferait appel à PHP en CGI puisque le script serait ainsi exécuté sous l'identité de cet utilisateur). Dans tous les cas, vous pouvez au minimum jouer sur la directive open_basedir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut
    merci pour la réponse

    j'ai installé apache puis php avec un ./configure/make/make install

    dans le point de montage /opt, j'ai le repertoire /static et dedans deux dossiers avec dedans chacun des repertoires de chacunes des personnes que j'heberge
    dans /opt il y a aussi un dossier /peda dans lequel il y a d'autres sites

    chacun des hebergés a un compte linux et appartiennent au meme groupe heberg

    chacun des dossiers ou sous dossiers a un chmod de 770 et les fichiers de 660
    ils sont la propriété de apache et du groupe heberg

    j'ai proftp qui est "securisé" : ils ne peuvent pas remonter plus en avant que leur dossier. quand quelqu'un upload un fichier ou dossier une directive du proftp.conf "chown" avec apache et heberg

    s'ils ont des cms joomla ... quand il y a création de dossier ou fichier ou upload de fichiers une directive du httpd.conf fait que le proprietaire devient apache et le groupe heberg

    je ne sais pas si je suis clair, eventuellement demain, devant le fichier de config, je pourrais etre plus précis

    Merci

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Oui mais justement le problème ici c'est que toute exécution de script se fait sous une seule et même identité : celle sous laquelle tourne le serveur web et qui a besoin de pouvoir lire les scripts notamment, donc problème. Un bon début serait de renseigner la directive open_basedir (et d'individualiser dans le même temps les répertoires temporaires pour l'upload et les sessions) de sorte à ce que chacun de vos utilisateurs ne puissent lire ou manipuler que les fichiers situés dans l'espace qui lui est attribué (c'est +/- ce qui est réalisé chez Free pour la version 4 de PHP).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut
    Bonjour et merci pour votre réponse

    j'avais cru comprendre que open_basedir etait unique
    donc comment je peux bloquer chaque "utilsateur" (et en fait on sait que c'est toujours le meme : apache) dans son repertoire

    pour les dossiers upload et session, je mettais meme pas posé le pb puisque c'est du temporaire mais effectivement des personnes mal intentionnées ... (surtout pour les sessions je pense ...)

    est ce qu'on trouve quelque part sur internet la configuration du serveur de free (ou autre hebergement mutualisé) parce que moi, je me fais tout à la main :creation des dossiers des comptes des bases mysql. D'un coté c'est à moi de reflechir et de faire des scripts ...

    mais j'aimerai trouvé de l'aide pour blinder le serveur et j'ai pas assez de compétence pour le faire de moi meme

    en fait, j'aimerai voir les fichiers de configuration de apache et php pour un serveur mutualisé

    merci par avance

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Ça dépend une nouvelle fois de votre configuration Si PHP est utilisé comme module Apache, alors vous pouvez fixer cette limitation par rapport au répertoire (Directive Directory correspondant à la racine du site utilisateur voir plus bas) via la directive php_admin_value. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Directory /home/toto>
        # Répertoire pour l'upload
        php_admin_value upload_tmp_dir "/home/toto/tmp"
        # Répertoire pour les sessions
        php_admin_value session.save_path "/home/toto/sessions"
        # Seuls les fichiers situés dans cet espace lui seront accessibles
        php_admin_value open_basedir "/home/toto/:/usr/share/php/pear/"
    </Directory>
    Et il faut ensuite trouver le moyen de spécifier ces directives à chaque utilisateur (à la création de leur compte par exemple via un script). Notez que Apache propose une directive Include (améliorée sur les versions 2 car elle peut inclure plusieurs fichiers d'un coup par "motif") pour inclure des fichiers de configuration annexes. Ce procédé est très largement utilisé aujourd'hui (distribution GNU/Linux Debian - et ses dérivées - en est très bon exemple ).

    De ce que j'ai lu, ovh, utilise (utilisait ?) l'approche que j'évoquais plus haut et qui consiste à faire exécuter le script sous l'identité de son propriétaire. Cependant, il reste exceptionnel que les hébergeurs communiquent leur configuration. Les seules informations que l'on peut obtenir sont généralement celles que l'on lit et peut déduire en tant qu'hébergé (phpinfo surtout si celle-ci n'est pas bloquée/réécrite). Chaque méthode a ses avantages et ses inconvénients (sécurité, performances, possibilité ou non d'utiliser les fichiers .htaccess pour redéfinir certains paramètres de configuration de PHP, etc).

    Peut être trouverez-vous le tutoriel Installation complète d'un serveur web sous Debian intéressant : la configuration de PHP n'y est pas traitée mais vous trouverez à sa fin des scripts qui pourraient dans une certaine mesure vous aider ou inspirer du moins.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/05/2009, 17h06
  2. Réponses: 1
    Dernier message: 02/05/2008, 20h34
  3. Fichiers Access Dans Les Repertoires
    Par T'chab dans le forum Access
    Réponses: 3
    Dernier message: 01/06/2006, 11h24
  4. Apache - Droits d'accès dans les répertoires
    Par rabobsky dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 22/03/2005, 22h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo