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

Vue hybride

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    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 averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    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
    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 ?

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    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
    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).

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    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 ?

+ 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