Apache에서 디렉토리에 대한 액세스를 허용하지만 하위 디렉토리에 대한 액세스는 허용하지 않는 방법은 무엇입니까?

Apache에서 디렉토리에 대한 액세스를 허용하지만 하위 디렉토리에 대한 액세스는 허용하지 않는 방법은 무엇입니까?

나는 이미 이 질문을 했습니다.아파치 메일링 리스트하지만 원하는 답변을 얻지 못했습니다.

두 명의 사용자가 IP(192.168.1.2 192.168.1.7)를 기반으로 "/var/www/html/ldap" 디렉터리를 사용하도록 허용하고 싶습니다.

<Directory /var/www/html/ldap>
      Order allow,deny
      Allow from 192.168.1.2 192.168.1.7
      Satisfy any
      AuthName "LDAP Authentication"
      AuthType Basic

      AuthBasicProvider ldap
      AuthzLDAPauthoritative off
      AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
      Require valid-user
</Directory>

하지만 하위 디렉터리에 192.168.1.7이 존재하는 것을 허용하고 싶지 않습니다(192.168.1.2만 존재하도록 허용하고 싶습니다).

나는 다음을 추가해 보았습니다:

<Directory /var/www/html/ldap/manager>
      Order allow,deny
      Allow from 192.168.1.2
      Satisfy any
      AuthName "LDAP Authentication"
      AuthType Basic

      AuthBasicProvider ldap
      AuthzLDAPauthoritative off
      AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
      Require valid-user
</Directory>

하지만 192.168.1.7은 ldap 디렉토리의 일부이기 때문에 관리자 디렉토리에 접근할 수 있는 것 같습니다. 이를 어떻게 금지할 수 있습니까?

고쳐 쓰다:

~처럼라자내가 시도한 제안은 다음과 같습니다.

홈 디렉토리의 경우:

 <Directory /var/www/html/ldap>
          Order allow,deny
          Allow from 192.168.1.2 192.168.1.7
          Satisfy any
          AuthName "LDAP Authentication"
          AuthType Basic

          AuthBasicProvider ldap
          AuthzLDAPauthoritative off
          AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
          Require valid-user
    </Directory>

하위 디렉토리의 경우:

 <Directory /var/www/html/ldap/manager>
          Order Deny,Allow
          Deny From All
          Allow From 192.168.1.2
          Satisfy any
          AuthName "LDAP Authentication"
          AuthType Basic

          AuthBasicProvider ldap
          AuthzLDAPauthoritative off
          AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
          Require valid-user
    </Directory>

노트:

두 디렉터리(홈 및 하위 디렉터리)에서 192.168.1.2 및 192.168.1.7에 대해 인증(LDAP AUTH)하라는 요청을 받고 싶지 않습니다.

답변1

192.168.1.7 시스템이 하위 디렉터리에 액세스하는 것을 방지하기 위해 다시 쓰기 규칙을 사용하는 것은 어떻습니까?

RewriteEngine on
RewriteCond   %{REMOTE_ADDR}   ^192\.168\.1\.7$  [NC]
RewriteCond   %{REQUEST_URI}   ^/ldap/manager/.* [NC]
RewriteRule   ^(.*)$           -                 [R=404,L]

원래 답변을 기반으로 편집하면 이제 "금지된" 오류 코드가 다시 전송됩니다.

답변2

.htaccess다음 옵션을 사용하여 목록을 표시하지 않으려는 디렉터리에 파일을 만들 수 있습니다.

     Order Deny,Allow
     Deny From All
     Allow From 192.168.1.2

속도:

cd /var/www/html/ldap/manager
vi .htaccess (use your favorite editor)
copy/past the following :
    Order Deny,Allow
    Deny From All
    Allow From 192.168.1.2

관련 정보