Vraag Wat doet Apache's "Vereist alle verleende" echt?


Ik heb net mijn Apache-server bijgewerkt naar Apache / 2.4.6 die draait onder Ubuntu 13.04. Ik had vroeger een vhost-bestand met de volgende kenmerken:

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

Maar toen ik rende kreeg ik een "Verboden. Je hebt geen toestemming om toegang te krijgen tot /"

Na een beetje googlen kwam ik erachter dat om mijn site weer aan het werk te krijgen, ik de volgende regel "Vereist alle verleend" moest toevoegen zodat mijn vhost er zo uitzag:

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

Ik wil weten of dit "veilig" is en brengt geen beveiligingsproblemen met zich mee. Ik lees op Apache's pagina dat dit "de functionaliteit imiteert die eerder werd geleverd door de 'Allow from all' en 'Deny from all'-richtlijnen.Deze provider kan een van de twee argumenten aannemen die' verleend 'of' geweigerd 'zijn. toegang tot alle verzoeken. "

Maar er werd niet gezegd of dit een soort beveiligingsprobleem was of waarom we het nu moeten doen, terwijl dat in het verleden niet nodig was.


81
2017-10-29 21:51


oorsprong


De upgradesdocumenten leggen de wijzigingen in 'Toegangsbeheer' in detail uit. httpd.apache.org/docs/2.4/upgrading.html - John Magnolia


antwoorden:


De configuratie van de toegangscontrole is gewijzigd in 2.4 en oude configuraties zijn niet compatibel zonder enkele wijzigingen. Zien hier.

Als je oude configuratie was Allow from all (geen IP-adressen geblokkeerd voor toegang tot de service), dan Require all granted is het nieuwe functionele equivilent.


81
2017-10-30 02:31



Om nog maar te zwijgen, de oude methode was vreselijk verwarrend en moest al lang worden vervangen door iets zinnigs. - Michael Hampton♦
Voor zo'n grote verandering zou ik een soort van ondersteuning verwachten om configuratiebestanden automatisch te migreren of op zijn minst alle punten te tonen waar een verandering nodig is. - Wolfgang Fahl
Zou leuk zijn om een ​​werkende demonstratie van te zien Require all denied . - Kraang Prime
Ik denk niet dat dit hetzelfde is als Allow from all. Je moet "samenvoegen" Require all granted met andere bestaande Require reglement. In mijn geval een bestaand Require valid-user werd genegeerd bij het blind converteren van de config alsof deze overal wordt aanbevolen. Dit was het ergste dat kon gebeuren ... - rudimeier
Het zou leuk zijn om een ​​goed antwoord te hebben op de vraag van het OP. "Allow from all equivalent" is niet erg bevredigend. - Sharcoux


Ik weet dat het een oude post is maar ik denk dat dit meer kan helpen met een functioneel voorbeeld dat ik altijd gebruik!

In apache 2.2 zou zijn als:

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

In apache 2.4 zou zijn zoals:

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

Wees voorzichtig  bij gebruik van htacess-authenticatie, deze nieuwe syntaxis kan wat doen slechte en onverwachte dingenals dat het geval is, lees dan: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user en het komt goed!


9
2017-12-08 12:02