Cookie

Una regola d’oro: Non dovresti mai dover gestire un sito web dalla tua home directory. MAI. Non dovresti dare al server web la possibilità di passare attraverso la /home/ per vedere la struttura della directory, così come tutte le altre sottocartelle presenti. Un server Web mal configurato, o non configurato, o senza patch può causare una perdita di dati enorme, o la perdita delle credenziali, tale da mettere a rischio i dati personali e gli accessi dei diversi utenti.

In primo luogo, occore creare le directory di produzione all’interno della directory /var/www/html. Verificheremo quindi le autorizzazioni in modo che tu e il server web possiate accedere a qualsiasi contenuto in quella directory e dare all’utente la piena lettura / scrittura a tutti i file e le directory. Quindi, dovrai solo lavorare su /var/www/html per il tuo sito.

Dopo aver creato il contenuto in /var/www/html:

  1. Dai accesso Apache alle cartelle e ai file, in modo che possa servire il sito senza errori 403.
  2. Dai al tuo utente i diritti di lettura / scrittura a file e cartelle, oltre alla possibilità di leggere i contenuti delle directory.
  3. (Facoltativo ma consigliato) Configuralo in modo tale che tutti i file o le cartelle creati da qui nella struttura della directory abbiano il gruppo impostato come www-data.
  4. (Facoltativo) Pulizia finale della sicurezza. Impostiamo le autorizzazioni in modo che l’utente e il server Web possano vedere i dati del sito, ma altri utenti non possono accedere ai file o alla struttura di directory per il sito.

(1) Permettere l’accesso di Apache alle cartelle e ai file.

sudo chgrp -R www-data /var/www/html
sudo find /var/www/html -type d -exec chmod g+rx {} +
sudo find /var/www/html -type f -exec chmod g+r {} +

Questo imposta in modo ricorsivo il ‘gruppo‘ come www-data per le cartelle e i file. Ciò fornisce al server Web l’autorizzazione per accedere alla struttura delle directory radice del documento del sito. Quindi assicura anche che il server Web abbia le autorizzazioni di lettura per tutti i file, in modo che i dati del sito possano essere ricevuti.

Ci possono essere dei casi in cui devi dare il permesso di scrittura al server Web a un file, o in una directory – questo può essere ottenuto facendo sudo chmod g+w /var/www/html/PATH (dove PATH è il percorso per il file o la cartella nella struttura di directory in cui è necessario applicare le autorizzazioni di scrittura per il server Web).

AVVISO: ci sono molti casi in cui questo può esporre informazioni “sicure” su una configurazione del sito (come le credenziali di accesso al database, ecc.) E si dovrebbero rimuovere altri permessi di accesso a quei dati su quei singoli file o directory con il seguente: sudo chmod o-rwx /var/www/html/FILEPATH (sostituendo FILEPATH con il percorso relativo alla cartella /var/www/html per il file).

Si noti inoltre che potrebbe essere necessario rieseguire questi comandi in futuro se i “nuovi file” ottengono un errore 403.

(2) Fornire al proprietario i privilegi di lettura / scrittura per le cartelle e i file e consentire l’accesso alla cartella per attraversare la struttura della directory.

sudo chown -R USER /var/www/html/
sudo find /var/www/html -type d -exec chmod u+rwx {} +
sudo find /var/www/html -type f -exec chmod u+rw {} +

Facciamo tre cose qui. Per prima cosa, impostiamo il tuo utente come “proprietario” di tutti i file e le directory in /var/www/html. Impostiamo i permessi di lettura e scrittura sulle cartelle e ti consentiamo di accedere alle cartelle per inserirli (l’elemento +x sugli elementi della directory). Quindi impostiamo tutti i file in modo che il proprietario abbia i permessi di lettura / scrittura.

(3) (Facoltativo) Assicurarsi che ogni nuovo file venga creato con www-data come utente “privilegiato”.

sudo find /var/www/html -type d -exec chmod g+s {} +

Questo imposta il bit “set gid” per il gruppo nelle directory. I file e le cartelle creati all’interno di queste directory avranno sempre www-data come gruppo, consentendo l’accesso al web server.

(4) (Facoltativo) Pulizia finale della sicurezza, se non si desidera che altri utenti possano vedere i dati

Abbiamo bisogno che il tuo utente veda le directory e i file. Abbiamo bisogno che anche il web server lo faccia. Potremmo non volere altri utenti di sistema (tranne root) che possa vedere i dati. Quindi non diamoloro l’accesso e facciamo in modo che solo il nostro utente e il server web possano vedere i dati.

sudo chmod -R o-rwx /var/www/html/

L’attenzione alla sicurezza quando si parla di server web è al primo posto. Ovviamente questa guida vuole essere uno spunto iniziale. Suggerimenti?


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *