Soru Apache'nin “Tüm verilenleri gerektir” gerçekte ne yapar?


Sadece Apache sunucumu Ubuntu 13.04 altında çalışan Apache / 2.4.6'ya güncelledim. Aşağıdakileri içeren bir vhost dosyası kullanmıştım:

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

Ama koştuğumda "Yasaktır. Erişim izni yok."

Biraz googling yaptıktan sonra, sitemin tekrar çalışmaya başladığını öğrendim. Aşağıdaki satırı eklemem gerekiyordu.

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

Bunun "güvenli" olup olmadığını öğrenmek ve herhangi bir güvenlik sorununa yol açmamak istiyorum. Apache'nin üzerinde okudum sayfa Bu "daha önce" Herkesin izin ver "ve" tümüyle inkar "direktifleri tarafından sağlanan işlevselliği taklit eder.Bu sağlayıcı 'verilen' veya 'reddedilen' iki argümandan birini alabilir.Aşağıdaki örnekler verilecek veya reddedilecektir tüm isteklere erişim. "

Ama bunun bir çeşit güvenlik sorunu olup olmadığını ya da neden geçmişte yapmak zorunda kalmadıysanız bunu yapmak zorunda olduğumuzu söylemedi.


81
2017-10-29 21:51


Menşei


Yükseltme yapan dokümanlar 'Erişim kontrolü' değişikliklerini ayrıntılı olarak açıklar. httpd.apache.org/docs/2.4/upgrading.html - John Magnolia


Cevaplar:


Erişim kontrolü yapılandırması 2.4 olarak değiştirildi ve eski konfigürasyonlar bazı değişiklikler olmadan uyumlu değil. Görmek İşte.

Eski yapılandırmanızın Allow from all (hizmete erişmekten engellenen IP adresi yok) Require all granted yeni işlevsel bir birliktir.


81
2017-10-30 02:31



Bahsetmemek gerekirse, eski yöntem korkunç bir şekilde kafa karıştırıcıydı ve uzun bir süre sonra daha mantıklı bir şeyle değiştirilmek için gecikmişti. - Michael Hampton♦
Böyle büyük bir değişiklik için, yapılandırma dosyalarını otomatik olarak taşıyacak veya en azından bir değişikliğin gerekli olduğu tüm noktaları gösterecek bir tür destek beklerdim. - Wolfgang Fahl
Çalışan bir gösteri görmek güzel olurdu Require all denied . - Kraang Prime
Bunun eşdeğer olduğunu düşünmüyorum Allow from all. "Birleştirmek" zorundasın Require all granted diğer mevcut ile Require kurallar. Benim durumumda mevcut Require valid-user yapılandırmayı körü körüne dönüştürürken her yerde önerildiği gibi göz ardı edildi. Bu olabilecek en kötü şeydi ... - rudimeier
OP'nin sorusuna doğru bir cevabın olması güzel olurdu. "Tüm eşdeğerden izin ver" çok tatmin edici değil. - Sharcoux


Bunun eski bir yazı olduğunu biliyorum ama bence her zaman kullandığım işlevsel bir örnekle daha fazla yardımcı olabilir!

Apache 2.2'de şöyle olurdu:

    <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>

Apache'de 2.4 şöyle olurdu:

   <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>

Dikkatli ol  htacess kimlik doğrulaması kullanıldığındaBu yeni sözdizimi bazılarını yapabilir Kötü ve beklenmedik şeylereğer durum buysa lütfen okuyun: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user ve iyi olmalısın!


9
2017-12-08 12:02