Apache의 "모든 권한 부여 필요"는 실제로 무엇을합니까?


95

방금 Apache 서버를 Ubuntu 13.04에서 실행되는 Apache / 2.4.6으로 업데이트했습니다. 나는 다음과 같은 vhost 파일을 가지고있었습니다.

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
</Directory>

그러나 내가 그것을 실행했을 때 나는 "금지되었습니다. 당신은 /에 액세스 할 수있는 권한이 없습니다"

약간의 인터넷 검색을 수행 한 후 내 사이트를 다시 작동 시키려면 다음과 같은 줄을 추가해야합니다.

<Directory "/home/john/development/foobar/web">
    AllowOverride All 
    Require all granted
</Directory>

이것이 "안전"하고 보안 문제를 일으키지 않는지 알고 싶습니다. 나는 아파치의 페이지 에서 "이것은 이전에 '모두 허용'과 '거부 모두 거부'지시어에 의해 제공되었던 기능과 유사하다. 예는 모든 요청에 ​​대한 액세스 권한을 부여하거나 거부합니다. "

그러나 이것이 일종의 보안 문제인지 또는 과거에 당신이 할 필요가 없었을 때 우리가 지금 해야하는 이유는 말하지 않았습니다.


1
업그레이드 문서는 '액세스 제어'변경 사항에 대해 자세히 설명합니다. httpd.apache.org/docs/2.4/upgrading.html
존 매그놀리아

답변:


87

액세스 제어 구성은 2.4에서 변경되었으며 이전 구성은 일부 변경없이 호환되지 않습니다. 여기를 참조 하십시오 .

이전 구성이 Allow from all(서비스에 액세스하는 데 차단 된 IP 주소 Require all granted가없는 경우) 새로운 기능적 기능입니다.


4
말할 것도없이, 이전의 방법은 몹시 혼란스럽고 더 합리적인 것으로 대체되기까지 오랜 시간이 걸렸습니다.
Michael Hampton

4
이러한 주요 변경 사항에 대해서는 구성 파일을 자동으로 마이그레이션하거나 최소한 변경이 필요한 모든 지점을 표시하는 일종의 지원이 필요합니다.
Wolfgang Fahl

1
의 실무 데모를 보는 것이 좋을 것입니다 Require all denied.
Kraang Prime

5
나는 이것이 이것과 동등한 것이라고 생각하지 않습니다 Allow from all. Require all granted다른 기존 Require규칙 과 "병합"해야합니다 . 필자의 경우 Require valid-user어디에서나 권장되는 것처럼 맹목적으로 변환 할 때 기존 항목 이 무시되었습니다. 이것은 일어날 수있는 최악의 일이었다 ...
rudimeier

1
OP의 질문에 대한 적절한 답변을 얻는 것이 좋을 것입니다. "동등한 항목을 모두 허용"은 만족스럽지 않습니다.
Sharcoux

15

나는 그것이 오래된 게시물이라는 것을 알고 있지만 항상 사용하는 기능적인 예를 통해 더 많은 것을 도울 수 있다고 생각합니다!

아파치 2.2에서는 다음과 같습니다.

    <Location />
       Order deny, allow
       allow from all
    </Location>
    <Location /adm>
        Order deny, allow
        deny from all
        allow from myniceip
    </Location>
    <Location /disabled>
        Order deny, allow
        deny from all
    </Location>

아파치 2.4에서는 다음과 같습니다.

   <Location />
       require all granted
    </Location>
   #Note that you dont need to use require all denied
   #to require only a group of ips.. 
    <Location /adm>
        require ip myniceip
    </Location>
    <Location /disabled>
        Require all denied
    </Location>

htacess 인증을 사용할 때 주의 깊게이 새로운 구문은 예상치 못한 일을 할 수 있습니다 . https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me- to-require-require-valid-ip-or-require-valid-user 를 사용하면 괜찮을 것입니다!


나를 위해, require all grantedHTTP 인증이 작동하지 않기 때문에 정보 덕분에 감사합니다.
authentictech

@authentictech 모든 권한 부여가 필요한 것은 아닙니다. RequireAll 또는 RequireAny를 올바르게 사용하지 않으면이 새로운 구문으로 예상 인증이 완전히 중단 될 수 있습니다. unix.stackexchange.com/questions/413309/…를 읽으 십시오 . 의견을 보내 주셔서 감사합니다.
Luciano Andress Martini
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.