1 votes

Apache : comment rendre un répertoire accessible uniquement depuis le local et utiliser l'authentification avec valid-user ?

J'ai essayé de faire cela avec require local et require valid-user mais il semble que le require local remplace le valid-user, ce qui fait que l'accès local n'a pas besoin d'être authentifié.

AuthName "Authenticate"
AuthType Basic
AuthUserFile "/home/tmp/.htpassword"
Require local
Require valid-user

Lorsque je supprime l'exigence locale, l'authentification fonctionne, mais l'accès depuis l'extérieur est autorisé. Alors comment configurer ce système pour que je puisse autoriser uniquement l'accès local avec valid-user.

3voto

snowdude Points 2790

À partir d'Apache 2.4, vous avez la possibilité d'utiliser l'option RequireAll Directive sur le regroupement :

<Directory /some/path>
    AuthName "Authenticate"
    AuthType Basic
    AuthUserFile "/home/tmp/.htpassword"
    <RequireAll>
       Require valid-user
       Require ip 192.168.1       
    </RequireAll>               
</Directory>

Sans cet explicite RequireAll Apache utilise une directive implicite RequireAny où il suffit de répondre à une seule des exigences pour se voir accorder l'accès.

Dans Apache 2.2, vous aviez un contrôle moins granulaire, mais vous pouviez utiliser la fonction Satisfy pour indiquer à Apache la façon dont les directives Allow et Require doivent être combinées.

<Directory /some/path>
    AuthName "Authenticate"
    AuthType Basic
    AuthUserFile "/home/tmp/.htpassword"
    Require valid-user
    Order allow,deny
    Allow from 192.168.1       
    Satisfy All                
</Directory>

Cela nécessite à la fois un utilisateur authentifié et l'adresse IP du client à partir de votre gamme locale : dans cet exemple 192.168.1.0/24 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X