Quali diritti di accesso dovrebbero essere scelti per doku wiki?

3

Attualmente sto facendo le mie prime esperienze con un CMS chiamato "DokuWiki" ( Link ). Questo CMS ha bisogno solo di PHP e scrive le informazioni nei file (sembra essere / dokuwiki / data / pages).

Al momento ho dato l'intera cartella dokuwiki + sottocartelle e file i diritti 777. Sono il proprietario dei file / cartelle.

Quali diritti di accesso dovrebbero essere assegnati alla cartella? Devo cambiare il proprietario (ad es. Www-data)?

Conosci qualche attacco basato su molti diritti per cartelle / file? Potrei solo immaginare un attacco che usa una vulnerabilità PHP per ottenere l'accesso al filesystem e quindi usa i diritti per fare del male.

modifica: ho appena trovato installa: permessi . Il mio presupposto è corretto, che il seguente set di permessi è il minimo necessario per l'esecuzione di DokuWiki?

$ sudo chown www-data -R /var/www/wiki
$ sudo chmod 400 /var/www/wiki -R
$ sudo chmod 600 /var/www/wiki/data -R
$ sudo chmod 600 /var/www/lib -R
$ sudo chmod 600 /var/www/conf -R
$ sudo chmod 700 /var/www/wiki/data /var/www/wiki/data/tmp /var/www/wiki/lib var/www/wiki/lib/plugins /var/www/wiki/conf
    
posta Martin Thoma 12.07.2011 - 13:47
fonte

2 risposte

6

In genere, la best practice per le autorizzazioni dei siti Web è quella di fornire all'utente Web, nel tuo caso www-data , leggere, ma non scrivere, l'accesso ai file di dati. Cioè, qualcosa di simile a:

chown root:www-data -R /var/www/html
find /var/www/html -type d -exec chmod 750 {} \;
find /var/www/html -type f -exec chmod 640 {} \;

L'obiettivo è consentire all'applicazione del server Web di leggere i file, ma non essere in grado di scrivere da nessuna parte. In questo modo, se il servizio web stesso viene compromesso, limitiamo la possibilità di un utente malintenzionato di rilasciare file arbitrari. (Leggi su chroot come corollario, ma non rientra nell'ambito di questa risposta).

I wiki, per loro natura, devono violare questa pratica perché funzionino correttamente. Tuttavia, la chiave è capire esattamente quali parti del software wiki hanno bisogno di privilegi più elevati. Per decidere veramente, puoi scegliere:

  1. Utilizza l'interfaccia web per creare / modificare solo pagine.
  2. Utilizza l'interfaccia web per creare / modificare pagine e gestire le configurazioni.

Opzione 1
Questo imposterà tutte le autorizzazioni a livello di file in modo che gli utenti possano modificare / creare pagine, ma richiederà la gestione manuale delle configurazioni. Se tu (o chi gestisce la wiki) ti senti a tuo agio con la sintassi del PHP, e non ti preoccupare di lavorare sui file di configurazione, questa è probabilmente la soluzione migliore. Quindi il tuo set di autorizzazioni dovrebbe essere simile a:

chown root:www-data -R /var/www/wiki  
chmod 750 /var/www/wiki -R
chmod 770 /var/www/wiki/data -R
chmod 750 /var/www/lib -R
chmod 750 /var/www/conf -R
find /var/www -type f -exec chmod -x {} \;

Quindi quello che abbiamo fatto qui è dato come root read / write e www-data read solo a tutti i file wiki. Poi dati www-data i diritti aggiuntivi per scrivere nella sezione dati utente.

Opzione 2
Se vuoi anche gestire le configurazioni attraverso l'interfaccia web, usa la stessa impostazione come sopra, eccetto lo scambio 5 per:

chmod 770 /var/www/conf -R

Dichiarazione di non responsabilità: non ho mai eseguito la configurazione di DokuWiki in questo modo, ma non vedo alcun motivo per cui non funzioni. Provalo prima, eh?

    
risposta data 12.07.2011 - 16:55
fonte
2

Non conosco affatto Dokuwiki e la migliore intuizione è nell'impostare le autorizzazioni troppo basse e quindi doverle aggiornare. Ma .. Non sono sicuro del motivo per cui hai bisogno di leggere & scrivere sulla libreria e conf directory e file? Penserei che leggere solo sulle librerie sia preferibile e anche sui file di configurazione. Lo strumento non dovrebbe cambiare la propria configurazione ...

    
risposta data 12.07.2011 - 16:20
fonte

Leggi altre domande sui tag