Páginas

sábado, 22 de enero de 2011

Instalar y enjaular Apache2 en Ubuntu 10.10

He encontrado en: http://www.javcasta.com/2010/12/18/instalar-y-enjaular-apache2-en-ubuntu-10-10/, esta interesante entrada de como instalar y enjaular Apache2 en ubuntu 10.10.

¿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:

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-python
si necesitas que python se entienda con MySQL
sudo apt-get install python-mysqldb
Buscar 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-suhosin
Si necesitas que PhP se entienda con MySQL
sudo apt-get install php5-mysql
Hasta 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 Apache
mkdir -p /var/www/var/run
Hacemos a root el propietario de la “jaula”
chown -R root:root /var/www/run
Configuramos Apache para que use la “jaula”. Editamos /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
PidFile ${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.