Forum Linux.général Apache2 : Configuration générique pour tous les virtualhosts

Posté par  . Licence CC By‑SA.
Étiquettes :
0
26
fév.
2013

Bonjour,

Je possède un serveur avec environ 7 virtualhosts, basés sur le port et le sous-domaine…

Afin de limiter l'accès à certaines personnes, j'aimerais mettre en place une authentification LDAP et désactiver cette authentification LDAP pour certaines IP.

J'ai déjà le code qui va bien pour cela, l'ennui, c'est que je dois ajouter cette portion sur tous les de tous mes virtualhosts…. Et ça fait beaucoup…

AuthType Basic
AuthName "Restricted Area"
AuthLDAPBindDN "cn=ldap,dc=dom,dc=lan"
AuthLDAPBindPassword "monpassword"
AuthBasicProvider ldap
AuthLDAPURL ldap://infra.dom.lan/ou=people,dc=dom,dc=lan?uid
AuthzLDAPAuthoritative OFF 
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN OFF 
Require valid-user
Order Allow,Deny
Allow from 127.0.0.1
Allow from 192.168.1.10
Satisfy any

Existe-il une conf Apache2 me permettant de définir une conf UNIQUE qui s'appliquerait à tous mes VirtualHosts ? Cela me permettrait de ne créer qu'une fois cette conf pour qu'elle s'applique à tous les VirtualHosts existants…

Merci

Clem'

  • # Configuration commune

    Posté par  . Évalué à 6. Dernière modification le 26 février 2013 à 11:01.

    Salut,

    Une possibilité pourrait consister à mettre tes directives d'authentification dans un fichier séparé et à inclure ce fichier avec la directive "Include fichier_auth" dans chacun de tes VirtualHosts. Ça oblige encore à modifier tous tes VirtualHosts mais en ajoutant uniquement une ligne à chaque fois. De plus, en cas de modification de la configuration, tu n'auras à faire tes changements qu'une fois dans un emplacement unique.

    A+
    JJD

  • # dans le fichier de config apache2 ?

    Posté par  . Évalué à 1.

    chez moi la config de phpmyadmin qui ajoute le /phpmyadmin à tous mes domaines se trouve dans un seul fichier qui se trouve dans le dossier :
    /etc/apache2/conf.d/

    • [^] # Re: dans le fichier de config apache2 ?

      Posté par  . Évalué à 0.

      Ça n'a pas l'air de marcher :

      J'ai fait un /etc/apache2/conf.d/infra, où j'ai mis :

      <Directory /var/www/test>
      AuthType Basic
      AuthName "Restricted Area"
      AuthLDAPBindDN "cn=ldap,dc=dom,dc=lan"
      AuthLDAPBindPassword "monpassword"
      AuthBasicProvider ldap
      AuthLDAPURL ldap://infra.dom.lan/ou=people,dc=dom,dc=lan?uid
      AuthzLDAPAuthoritative OFF 
      AuthLDAPGroupAttribute memberUid
      AuthLDAPGroupAttributeIsDN OFF 
      Require valid-user
      Order Allow,Deny
      Allow from 127.0.0.1
      Allow from 192.168.1.10
      Satisfy any
      </Directory>
      
      

      Je relance Apache, mais je n'ai aucune demande d'auth'…

      On dirait que le Directory contenu dans /etc/apache2/sites-enable/test écrase le Directory dans conf.d…

      • [^] # Re: dans le fichier de config apache2 ?

        Posté par  . Évalué à 2.

        parce tu veux faire pointer tous tes virtualhosts dans le meme dossier /var/www/test ?

        ou alors j'ai pas compris ce que tu voulais faire.

        si tu le met au niveau general, il me semble evident qu'il ne faut pas recreer les memes directives dans les vhosts.

  • # mod_macro

    Posté par  . Évalué à 6.

    Existe-il une conf Apache2 me permettant de définir une conf UNIQUE qui s'appliquerait à tous mes VirtualHosts ? Cela me permettrait de ne créer qu'une fois cette conf pour qu'elle s'applique à tous les VirtualHosts existants…

    N'étant pas utilisateur d'apache, je ne suis pas sûr que ça soit ce que tu cherches mais mes amis utilisent mod_macro.

    Ça donne des choses dans ce genre :

    $ < /etc/apache2/conf.d/mod-macro.conf
    <Macro Domain $domain $root>
        ServerAdmin     root@example.com
        DocumentRoot    /var/www/$domain/$root
        ServerName      $domain
    
        LogLevel warn
    
        ErrorLog        /var/log/apache2/$domain_error.log
        TransferLog     /dev/null
    
        CustomLog       /var/log/apache2/$domain_combined.log combined env=!from_proxy
        CustomLog       /var/log/apache2/$domain_combined.log combined_forwarded env=from_proxy
    
        <Directory /var/www/$domain/$root>
          Options -Indexes Includes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          Allow from all
          AddDefaultCharset utf-8
          LanguagePriority en fr es de
          ForceLanguagePriority Prefer Fallback
        </Directory>
    </Macro>
    
    […]
    
    $ < etc/apache2/sites-enabled/example.net
    <VirtualHost *:80>
      Use Domain example.net /
    […]
    </VirtualHost>
    
    

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.