Cosa fa realmente "Richiedi tutto concesso" di Apache?


95

Ho appena aggiornato il mio server Apache su Apache / 2.4.6 che funziona con Ubuntu 13.04. Avevo un file vhost che aveva il seguente:

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

Ma quando ho corso ho ricevuto un "Proibito. Non hai il permesso di accedere /"

Dopo aver fatto un po 'di ricerche su google ho scoperto che per far funzionare di nuovo il mio sito avevo bisogno di aggiungere la seguente riga "Richiedi tutto concesso" in modo che il mio vhost fosse così:

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

Voglio sapere se questo è "sicuro" e non comporta problemi di sicurezza. Ho letto sulla pagina di Apache che questo "imita la funzionalità precedentemente fornita dalle direttive" Permetti da tutti "e" Nega da tutti ". Questo fornitore può prendere uno dei due argomenti che sono" concessi "o" negati ". gli esempi concederanno o negheranno l'accesso a tutte le richieste. "

Ma non ha detto se questo fosse un problema di sicurezza di qualche tipo o perché ora dobbiamo farlo quando in passato non era necessario.


1
I documenti di aggiornamento spiegano in dettaglio le modifiche al "Controllo degli accessi". httpd.apache.org/docs/2.4/upgrading.html
John Magnolia,

Risposte:


87

La configurazione del controllo di accesso è stata modificata in 2.4 e le vecchie configurazioni non sono compatibili senza alcune modifiche. Vedi qui .

Se la tua vecchia configurazione era Allow from all(nessun indirizzo IP bloccato dall'accesso al servizio), allora Require all grantedil nuovo funzionale è equivalente.


4
Per non parlare, il vecchio metodo era terribilmente confuso ed era atteso da tempo per essere sostituito con qualcosa di più sensato.
Michael Hampton

4
Per un cambiamento così importante mi aspetterei un qualche tipo di supporto per migrare automaticamente i file di configurazione o almeno mostrare tutti i punti in cui è necessario un cambiamento.
Wolfgang Fahl,

1
Sarebbe bello vedere una dimostrazione di lavoro di Require all denied.
Kraang Prime,

5
Non credo sia equivalente a questo Allow from all. Devi "unire" Require all grantedcon altre Requireregole esistenti . Nel mio caso, un esistente è Require valid-userstato ignorato durante la conversione alla cieca della configurazione, come è raccomandato ovunque. Questa è stata la cosa peggiore che potesse accadere ...
Rudyier

1
Sarebbe bello avere una risposta adeguata alla domanda del PO. "Consenti da tutti gli equivalenti" non è molto soddisfacente.
Sharcoux,

15

So che è un vecchio post, ma penso di poter aiutare di più con un esempio funzionale che uso sempre!

In apache 2.2 sarebbe come:

    <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 sarebbe come:

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

Fai attenzione quando usi l'autenticazione htacess , questa nuova sintassi può fare cose cattive e inaspettate , se è il tuo caso leggi: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me- per-decidere-richiedere-valido-ip-o-richiedere-valido-utente e dovresti stare bene!


Per me, la presenza require all granteddell'autenticazione HTTP impedita funziona, quindi grazie per le informazioni.
authentictech,

@authentictech Non solo è necessario tutto ciò che è concesso può romperlo. L'autenticazione prevista può essere completamente interrotta con questa nuova sintassi se non si utilizza RequireAll o RequireAny correttamente. Si prega di leggere: unix.stackexchange.com/questions/413309/… . Grazie per il feedback.
Luciano Andress Martini,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.