Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Installazione e sicurezza interna

Gestione dei moduli esterni, configurazione degli utenti, file di configurazione e log di Apache
Gestione dei moduli esterni, configurazione degli utenti, file di configurazione e log di Apache
Link copiato negli appunti

I moduli esterni

Apache è un software modulare ed in quanto tale permette di aggiungere funzionalità caricando moduli compilati separatamente. Va da sé che non devono esser installati sul server moduli esterni non usati. Verifichiamo quanto installato, come root, tramite il gestore di pacchetti Synaptic o da shell tramite il comando:

dpkg -l | grep apache

Che potrebbe restituirci una risposta simile a questa:


apache2-mpm-prefork      2.2.3-3
apache2-utils            2.2.3-3
apache2.2-common         2.2.3-3
libapache2-mod-bt        0.0.19+p4.2296-1
libapache2-mod-php5      5.2.0-6

Nel caso qualcosa non servisse (qui ad esempio: libapache2-mod-bt) è bene disinstallarlo tramite apt-get e/o dpkg.

Protezione interna

Impersonificazione di Apache e directory dell'eseguibile

L'utente di default con cui gira Apache è www-data, appartenente al gruppo omonimo.

Infatti, digitando il seguente comando

ps aux | grep apache2

Otterremo come risposta, lungo la prima colonna, i nomi degli utenti sotto i cui profili è eseguito Apache:

root         /usr/sbin/apache2 -k start
www-data     /usr/sbin/apache2 -k start
www-data     /usr/sbin/apache2 -k start
[...]

Le direttive del suo file di configurazione che definiscono utente e relativo gruppo sono User e Group:

User www-data
Group www-data

Apache dev'esser inizialmente lanciato come utente root, poiché deve porsi in ascolto su porte ben note (80, 443). Una volta lanciato, tuttavia, "figlierà" di modo che il processo attivo abbia privilegi inferiori.

Per evitare che un aggressore possa, in date circostanze, sostituire o modificare l'eseguibile del Web server, in attesa che root lo riavvii (con i relativi permessi!), è necessario che la directory /usr/sbin/apache2 sia accessibile in scrittura solo per root stesso.

File di configurazione e di log

I file di configurazione di Apache 2 sono molti, il principale dei quali è /etc/apache2/apache2.conf (i rimanenti verranno da esso richiamati). Ogni singolo file deve poter esser modificato solo dall'utente root; Debian definisce i permessi come di seguito:

-rw-r--r--     root root     apache2.conf
drwxr-xr-x     root root     conf.d            
-rw-r--r--     root root     envvars
-rw-r--r--     root root     httpd.conf        [config. utente]         
drwxr-xr-x     root root     mods-available
drwxr-xr-x     root root     mods-enabled
-rw-r--r--     root root     ports.conf        [porta su cui Apache deve ascoltare]
drwxr-xr-x     root root     sites-available
drwxr-xr-x     root root     sites-enabled

I moduli e i loro file di configurazione nelle directory /usr/lib/apache2/modules/ e /etc/apache2/mods-available devono generalmente conservare i permessi: -rw-r--r-- [644] root root. Idem per il PID file: /var/run/apache2.pid.

I file di log - in /var/logs/apache2/ troviamo quelli globali - devono essere ad accesso esclusivo per root (come sopra). Inoltre il file access.log viene usato per tracciare le connessioni ad Apache, mentre il file error.log viene usato per registrare gli errori riscontrati da Apache durante le sue operazioni. Per questi file si dovrebbero attuare accorgimenti necessari affinché i file non crescano a dismisura.

Cartella www, ovvero come installare (correttamente) un programma Web PHP

Installare un'applicazione Web altro non vuol dire che copiare la relativa directory nella directory www del server, di solito collocata al percorso /var/www, e definire per essa gli adeguati permessi a livello di filesystem.

Considereremo di qui innanzi, per brevità, che Apache sia configurato per un unico virtual host, come da default e quindi contenga un'unica applicazione Web o più applicazioni, diciamo, "strettamente legate". Per più virtual host la logica è comunque la medesima. Se non noto, si consiglia caldamente di reperire informazioni sul concetto di virtual host prima di proseguire nella lettura.

Torniamo a noi: ogni directory copiata deve esser di proprietà dell'utente www-data ed accessibile solo da questi. In particolare:

Ogni directory interna alla www rappresenta un sito/programma Web: l'albero relativo dev'esser leggibile ed eseguibile solo da www-data. Ciò si ottiene con i seguenti comandi:

chown -R www-data.www-data  /var/www/programma_web
chmod -R 500  /var/www/programma_web/

Ogni sottodirectory interna nella quale si debba anche accedere in scrittura deve avere adeguati permessi:

chmod -R 700  /var/www/programma_web/directory_interna

Ti consigliamo anche