¿que es enjaular Apache2?
(https://lists.ubuntu.com/archives/ubuntu-es/2010-February/041895.html)
"Consiste en crear una especie de jaula para el usuario que ejecuta apache ( ej, www-data ), de forma que ese usuario en lugar de "ver" el sistema de ficheros normal, tiene la raíz en un directorio y no puede ejecutar, ni ver nada que se encuentre fuera de esa "jaula" Ejemplo: Real /home /bin ... /var /usr/bin/www-data/ ( de aquí partiría la raíz para el usuario www-data ) /usr/bin/www-data/ /home /usr/bin/www-data/ /bin ... Es solo un ejemplo, el chroot, puede hacerse en el lugar que consideres más adecuado. En cuanto a para que sirve, es por motivos de seguridad"
Interesante para todos aquellos que quieran empezar a usar Apache para crearte tu propio "servidor web". Os trascribo literalmente el artículo:
Url de referencias:
- http://library.linode.com/web-servers/apache/installation/ubuntu-10.10-maverick
- http://www.howtoforge.com/chrooting-apache2-with-mod_chroot-on-ubuntu-10.04
Actualizar paquetes y sistema
sudo apt-get update
sudo apt-get upgrade
Instalar Apache2
sudo apt-get install apache2 apache2-doc apache2-utils
Instalar soporte para scripting con Python
sudo apt-get install libapache2-mod-pythonsi necesitas que python se entienda con MySQL
sudo apt-get install python-mysqldbBuscar dependencias de PhP disponibles
sudo apt-cache search php
Instalar paquetes de PhP
sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache
Instalar paquete PhP5-suhosin (proporciona mayor seguridad a PhP)
sudo apt-get install php5-suhosinSi necesitas que PhP se entienda con MySQL
sudo apt-get install php5-mysqlHasta aquí la instalación de Apache2 con soporte para Python, PhP y MySQL.
Test
Para comprobar si apache2 esta corriendo en tu máquina:- * Navega a http://127.0.0.1
- * O desde consola haz un wget a http://127.0.0.1
dice que ¡Trabaja! (el servidor Apache, no tu ni yo … )
Enjaulando Apache2:
Instalar módulo mod_chroot
sudo apt-get install libapache2-mod-chroot
Habilitamos el módulo mod_chroot
con el comando aen2mod (a2enmod, a2dismod – enable or disable an apache2 module)sudo a2enmod mod_chroot
usuario@maquina:~$ sudo a2enmod mod_chroot
Enabling module mod_chroot.
Run ‘/etc/init.d/apache2 restart‘ to activate new configuration!
Y reiniciamos Apache2
usuario@maquina:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 …
waiting [ OK ]
Configuramos la jaula
Creamos el directorio “jaula” de Apachemkdir -p /var/www/var/runHacemos a root el propietario de la “jaula”
chown -R root:root /var/www/runConfiguramos Apache para que use la “jaula”. Editamos /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.confPidFile ${APACHE_PID_FILE}
ChrootDir /var/www
Se asume que se tiene un vhost con DocumentRoot /var/www. Queda cambiar el camino a DocumentRoot de cada vhost cambiando “/var/www” a “/”
Por ejemplo si DocumentRoot de un vhost es /var/www/web1/web –> /web1/web
Y voila. Consultar las urls de referencia si hay dudas.