Cartella Public di GLPI: Configurazione Sicura per la Produzione

Come configurare il DocumentRoot di GLPI sulla cartella public con Apache e Nginx, perché è obbligatorio e cosa succede se non viene configurato.

Se il DocumentRoot del tuo GLPI non punta alla cartella public, i tuoi dati sono a rischio. Questa è la configurazione di sicurezza più importante di GLPI in produzione.

Perché esiste la cartella public

GLPI 10+ ha separato i file web (accessibili dal browser) dai file interni (config, dati, logica). La cartella public contiene solo:

  • index.php (router principale)
  • .htaccess (regole Apache)
  • File statici (CSS, JS, immagini)

Tutto il resto (configurazione del database, classi PHP, dati sensibili) rimane al di fuori del webroot.

Apache

<VirtualHost *:443>
    ServerName glpi.suaempresa.com
    DocumentRoot /var/www/glpi/public

    <Directory /var/www/glpi/public>
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine On
    SSLCertificateFile /etc/ssl/certs/glpi.crt
    SSLCertificateKeyFile /etc/ssl/private/glpi.key
</VirtualHost>

Nginx

server {
    listen 443 ssl http2;
    server_name glpi.suaempresa.com;
    root /var/www/glpi/public;
    index index.php;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Verifica

Dopo la configurazione, testa accedendo a URL che NON dovrebbero funzionare:

  • /config/config_db.php → deve restituire 404
  • /src/ → deve restituire 404
  • /vendor/ → deve restituire 404
  • /install/install.php → deve restituire 404 (dopo la rimozione)

Se una qualsiasi di esse restituisce contenuto, il DocumentRoot è configurato in modo errato.

Domande Frequenti

A partire da GLPI 10, il server web deve puntare a /var/www/glpi/public (non /var/www/glpi). Questo espone solo i file necessari al browser, proteggendo il codice sorgente e le configurazioni.

I file di configurazione, il database locale e il codice PHP possono diventare potenzialmente accessibili tramite URL. Si tratta di una vulnerabilità di sicurezza critica.

Accedi a https://tuoglpi.com/config/config_db.php nel browser. Se viene mostrato un errore 404 o 403, è corretto. Se viene mostrato contenuto PHP o un download, è sbagliato.

Hai bisogno di aiuto?