Configurare Apache in un ambiente Chroot: differenze tra le versioni

(Nuova pagina: __TOC__ == Introduzione == ''Chroot'', contrazione di ''change root'', è un metodo di sicurezza usato per isolare i limiti operativi di una applicazione. Il nome deriva dal termine i...)
 
Riga 6: Riga 6:
Normalmente se un cracker riesce a prendere il controllo di una applicazione, avrà tutti i privilegi associati all'applicazione e potrebbe essere in grado di compromettere la sicurezza dell'intero sistema, ad esempio installando un rootkit. Al contrario se il programma compromesso si trova in un ''chroot'', il malintenzionato non potrà uscire dal perimetro; potrà cambiare il contenuto di file del programma stesso, ma senza poter accedere ad altre risorse.<br/>
Normalmente se un cracker riesce a prendere il controllo di una applicazione, avrà tutti i privilegi associati all'applicazione e potrebbe essere in grado di compromettere la sicurezza dell'intero sistema, ad esempio installando un rootkit. Al contrario se il programma compromesso si trova in un ''chroot'', il malintenzionato non potrà uscire dal perimetro; potrà cambiare il contenuto di file del programma stesso, ma senza poter accedere ad altre risorse.<br/>
(''Fonte: [http://it.wikipedia.org/wiki/Chroot Wikipedia]'')
(''Fonte: [http://it.wikipedia.org/wiki/Chroot Wikipedia]'')
== Installazione ==
In questa breve guida vediamo come configurare Apache2 in un ambiente chroot utilizzando il modulo ''mod_chroot'' di Debian.<br/>
Come prerequisito è necessario che sul sistema sia già installato e funzionante un server web Apache2, con ''DocumentRoot'' impostata nella directory <code>/var/www</code>. Per l'installazione di Apache si veda ad esempio la guida: [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]].<br/><br/>
=== Installazione di mod_chroot ===
La prima operazione consiste nell’installare il modulo ''mod_chroot'':
<pre>
# aptitude install libapache2-mod-chroot
</pre>
A questo punto è possibile abilitare ''mod_chroot'' e riavviare Apache:
<pre>
# a2enmod mod_chroot
# /etc/init.d/apache2 restart
</pre>
=== Configurazione di Apache ===
Come detto, la directory utilizzata per l’ambiente chroot sarà <code>/var/www</code>.<br/>
Apache2 di Debian utilizza il file <code>/var/run/apache2.pid</code> come file PID; il PID (acronimo di Process Identifier) è un numero che viene assegnato ad ogni processo alla sua nascita, che lo accompagna durante tutta la sua esistenza e che lo identifica univocamente nel sistema.
<br/>
Dopo aver eseguito il ''chroot'' di Apache il file PID sarà creato in /var/www/var/run/apache2.pid e quindi è necessario creare questa directory:
<pre>
# mkdir -p /var/www/var/run
# chown -R root:root /var/www/var/run
</pre>
A questo punto è possibile istruire Apache per utilizzare la directory <code>/var/www/</code> come gabbia ''chroot'', aggiungendo la riga <code>ChrootDir</code> nel file di configurazione <code>/etc/apache2/apache2.conf</code>:
<pre>
# nano /etc/apache2/apache2.conf
</pre>
ad esempio in questo punto:
<pre>
#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}
ChrootDir /var/www
</pre>