Apache Chroot · 2 min read · Dec 26, 2025
Chrooting Apache2 Con mod_chroot Su Debian Etch
Chrooting Apache2 Con mod_chroot Su Debian Etch
Versione 1.0
Autore: Falko Timme
Questa guida spiega come impostare mod_chroot con Apache2 su un sistema Debian Etch. Con mod_chroot, puoi eseguire Apache2 in un ambiente chroot sicuro e rendere il tuo server meno vulnerabile agli attacchi di intrusione che cercano di sfruttare vulnerabilità in Apache2 o nelle tue applicazioni web installate.
Non fornisco alcuna garanzia che questo funzionerà per te!
1 Nota Preliminare
Presumo che tu abbia un sistema Debian Etch in esecuzione con un Apache2 funzionante, ad esempio come mostrato in questo tutorial: The Perfect Setup - Debian Etch (Debian 4.0). Inoltre, presumo che tu abbia uno o più siti web configurati all’interno della directory /var/www (ad esempio, se utilizzi ISPConfig).
2 Installazione di mod_chroot
Per installare mod_chroot, eseguiamo semplicemente:
apt-get install libapache2-mod-chroot
Poi abilitiamo mod_chroot e riavviamo Apache:
a2enmod mod_chroot /etc/init.d/apache2 force-reload
3 Configurazione di Apache
Voglio usare la directory /var/www come directory contenente la prigione chroot. L’Apache di Debian utilizza il file PID /var/run/apache2.pid; quando Apache è chrooted in /var/www, /var/run/apache2.pid si traduce in /var/www/var/run/apache2.pid. Pertanto, creiamo ora quella directory:
mkdir -p /var/www/var/run chown -R root:root /var/www/var/run
Ora dobbiamo dire ad Apache che vogliamo usare /var/www come nostra directory chroot. Apriamo /etc/apache2/apache2.conf e subito sotto la riga PidFile, aggiungiamo una riga ChrootDir:
vi /etc/apache2/apache2.conf
| [...] # # PidFile: Il file in cui il server dovrebbe registrare il suo numero # di identificazione del processo quando si avvia. # PidFile /var/run/apache2.pid ChrootDir /var/www [...] |
Successivamente dobbiamo dire ai nostri vhosts che la root del documento è cambiata (ad esempio, un DocumentRoot /var/www si traduce ora in DocumentRoot /). Possiamo farlo cambiando la direttiva DocumentRoot di ogni vhost, oppure più facilmente, creando un symlink nel file system.
3.1 Primo Metodo: Cambiare La DocumentRoot
Supponiamo di avere un vhost con DocumentRoot /var/www. Dobbiamo ora aprire la configurazione del vhost di quel vhost e cambiare DocumentRoot /var/www in DocumentRoot /. Di conseguenza, DocumentRoot /var/www/web1/web si tradurrebbe ora in DocumentRoot /web1/web, e così via. Se vuoi usare questo metodo, devi cambiare la DocumentRoot per ogni singolo vhost.
3.2 Secondo Metodo: Creare Un Symlink Nel File System
Questo metodo è più semplice, perché devi farlo solo una volta e non devi modificare alcuna configurazione del vhost. Creiamo un symlink che punta da /var/www/var/www a /var/www:
mkdir -p /var/www/var cd /var/www/var ln -s ../../ www
Infine, dobbiamo fermare Apache, creare un symlink da /var/run/apache2.pid a /var/www/var/run/apache2.pid e riavviarlo:
/etc/init.d/apache2 stop
ln -s /var/www/var/run/apache2.pid /var/run/apache2.pid /etc/init.d/apache2 start
Questo è tutto. Ora puoi chiamare le tue pagine web come prima, e dovrebbero essere servite senza problemi, purché siano file HTML statici o utilizzino mod_php.

Se stai usando CGI, ad esempio Perl, suPHP, Ruby, ecc., allora devi copiare l’interprete (ad esempio /usr/bin/perl, /usr/sbin/suphp, ecc.) nella prigione chroot insieme a tutte le librerie necessarie all’interprete. Puoi scoprire quali librerie sono necessarie con il comando ldd, ad esempio:
ldd /usr/sbin/suphp
server2:/var/www/web1/log# ldd /usr/sbin/suphp linux-gate.so.1 => (0xffffe000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e34000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e0f000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e03000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7cd2000) /lib/ld-linux.so.2 (0xb7f23000) server2:/var/www/web1/log#
Se hai copiato tutti i file richiesti, ma la pagina non funziona ancora, dovresti dare un’occhiata al log degli errori di Apache. Di solito ti dice dove si trova il problema. Leggi anche http://core.segfault.pl/~hobbit/mod_chroot/caveats.html per problemi noti e soluzioni.
4 Link
- mod_chroot: http://core.segfault.pl/~hobbit/mod_chroot
- Apache: http://httpd.apache.org
- Debian: http://www.debian.org
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.