26.7. Come evitare problemi di sicurezza

Un server Web accessibile pubblicamente via Internet richiede uno lavoro di amministrazione continuativo. È inevitabile che si verifichino problemi di sicurezza, sia relativi al software, sia a un'accidentale errata configurazione. Di seguito sono riportati alcuni suggerimenti per la gestione di questi problemi.

26.7.1. Software aggiornato

In caso vengano trovati punti di vulnerabilità nel software Apache, SUSE pubblicherà un avviso di sicurezza. Questo avviso contiene istruzioni per la correzione dei punti di vulnerabilità, che dovranno essere messe in opera appena possibile. Gli annunci di sicurezza di SUSE sono disponibili agli indirizzi seguenti:

26.7.2. Autorizzazioni DocumentRoot

In SUSE Linux, la directory DocumentRoot che si trova in /srv/www/htdocs e la directory CGI /srv/www/cgi-bin appartengono per impostazione predefinita all'utente root. Non è consigliabile modificare queste autorizzazioni. Se le directory fossero scrivibili per tutti, qualsiasi utente potrebbe aggiungervi dei file. Questi file potrebbero essere eseguiti da Apache con le autorizzazioni di wwwrun che darebbero all'utente l'accesso non desiderato alle risorse dei file system. Utilizzare le sottodirectory di /srv/www per posizionare le directory di DocumentRoot e CGI per gli host virtuali e accertarsi che tali directory e file appartengano a utenti e gruppi root.

26.7.3. Accesso al file system

Per impostazione predefinita, l'accesso all'intero file system non viene concesso in /etc/apache2/httpd.conf. Non sovrascrivere queste direttive, ma abilitare specificamente l'accesso alle directory che Apache deve essere in grado di leggere (per informazioni, vedere la Sezione 26.2.1.2.3, "Configurazione di base dell'host virtuale") Nel fare questo, verificare che nessun file critico, quale un file di password o di configurazione del sistema possa essere letto dall'esterno.

26.7.4. Script CGI

Gli script interattivi in Perl, PHP, SSI o qualsiasi altro linguaggio di programmazione possono eseguire essenzialmente comandi arbitrari e presentano pertanto problemi generali di sicurezza. Gli script che verranno eseguiti dal server devono essere installati solo da origini ritenute attendibili dall'amministratore del server; non è consigliabile consentire agli utenti di eseguire i propri script. È anche consigliato eseguire controlli di sicurezza per tutti gli script.

Per rendere l'amministrazione degli script il più semplice possibile, è pratica comune limitare l'esecuzione degli script CGI a directory specifiche anziché consentirli globalmente. Le direttive ScriptAlias e Option ExecCGI sono utilizzate per la configurazione. La configurazione predefinita di SUSE Linux non consente l'esecuzione di script da qualsiasi posizione.

Tutti gli script CGI vengono eseguiti come se si trattasse dello stesso utente, quindi script differenti possono potenzialmente essere in conflitto fra di essi. Il modulo suEXEC consente di eseguire script CGI come utente e gruppo differenti.

26.7.5. Directory utente

Quando si attivano le directory utente (con mod_userdir o mod_rewrite) è consigliabile non consentire accesso ai file .htaccess, in quanto ciò consentirebbe all'utente di sovrascrivere le impostazioni di sicurezza. Limitare almeno il coinvolgimento dell'utente utilizzando la direttiva AllowOverRide. In SUSE Linux, i file .htaccess sono abilitati per impostazione predefinita, ma all'utente non è consentito sovrascrivere alcuna direttiva Option quando utilizza mod_userdir (vedere il file di configurazione /etc/apache2/mod_userdir.conf).