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 :

Bloquer l'accès à un répertoire via vhost


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Bloquer l'accès à un répertoire via vhost
    Bonjour,
    Je voudrais configurer mes virtualhosts de manière à bloquer l'accès à certains répertoires de mon serveur, tout en les conservant accessibles par des scripts PHP présents dans d'autres répertoires du serveur.

    J'ai créé un VH dans sites-available pour bloquer un dossier inc, puis j'ai créé un lien symbolique dans sites-enabled avec la commande a2ensite (archi Debian).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <VirtualHost *:80>
    <Directory /var/www/inc>
    Order deny,allow
    deny from all
    </Directory>
    </VirtualHost>
    Cependant le dossier reste accessible via http://ip_du_serveur/inc

    En revanche, si je place un fichier .htaccess dans inc avec la directive
    Alors c'est bien ce que je veux qui se produit, l'accès au dossier http://ip_du_serveur/inc est refusé.

    Comment faire pour configurer le VH pour qu'il se comporte de la même manière que le htaccess à la racine du dossier ?

    Merci d'avance de votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    J'ai trouvé un moyen plus radical pour y arriver, en mettant deny all sur tout le rep var/www dans default.
    En fait il semble que mon virtualhost inc.conf n'est pas pris en compte par apache. C'est bizarre, parceq qu'il est bien en lien symbolique dans sites-enabled, comme les autres VH, qui, eux, fonctionnent...

    Une idée ?

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Elle est un peu trop minimaliste, ta conf de VH : il n'y a pas de nom (ServerName), pas de DocumentRoot donc comment Apache peut-il savoir comment l'utiliser ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Elle est un peu trop minimaliste, ta conf de VH : il n'y a pas de nom (ServerName), pas de DocumentRoot donc comment Apache peut-il savoir comment l'utiliser ?
    J'ai fait l'essai avec cette conf, mais ça n'a pas plus marché. Peut-être qu'il faut spécifier un autre ServerName ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <VirtualHost *:80>
    ServerName ip_du_serveur/inc
    DocumentRoot /var/www/inc
     
    <Directory /var/www/inc>
    Order deny,allow
    deny from all
    </Directory>
     
    </VirtualHost>

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Le ServerName n'est pas bon : il faut indiquer un nom (http://ce_nom/), pas un chemin. Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <VirtualHost *:80>
    ServerName ip_du_serveur
    DocumentRoot /var/www/inc
     
    <Directory /var/www/inc>
    Order deny,allow
    deny from all
    </Directory>
     
    </VirtualHost>
    et tu accèderas à ce VH avec http://ip_du_serveur/. Mais forcément, si tu utilises déjà cette URL pour un autre VH, ça ne marchera pas comme prévu.

    Assure-toi aussi qu'il y a un NameVirtualHost *:80 quelque part dans ta conf (généralement dans le fichier ports.conf).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci de ta réponse.
    C'est bien le problème, je ne souhaite pas gérer tout l'accès à http://ip_du_serveur/ avec ce VH, mais juste à gérer les accès sur http://ip_du_serveur/inc.
    Dans ce cas quel ServerName faut-il spécifier ?

    Ou alors je colle directement le bloc Directory dans le default, avec la conf d'accès général à var/www ?

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Dans ce cas, ce n'est pas un ServerName qu'il faut paramétrer mais un Alias. Supprime donc ton VH et configure l'Alias dans le VH déjà existant pour ip_serveur ou la conf principale d'Apache s'il n'y en a pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Alias /inc /var/www/inc
    <Directory /var/www/inc>
    Order deny,allow
    deny from all
    </Directory>

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Je savais bien que tu finirais par trouver

    Super, merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/09/2012, 19h58
  2. Réponses: 3
    Dernier message: 04/08/2010, 14h30
  3. Bloquer l'accès à des répertoires
    Par scrouet dans le forum Sécurité
    Réponses: 9
    Dernier message: 11/12/2009, 13h56
  4. Bloquer l'accès à ses répertoires
    Par castaka dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 04/12/2007, 11h13
  5. Réponses: 5
    Dernier message: 20/11/2007, 13h33

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