Un usuario diferente para cada vhost en Apache

5 Oct
2011

apache

Si tenemos varios dominios servidos desde una misma máquina, una medida de seguridad recomendable es configurar un usuario diferente para cada uno de los dominios. Así, cualquier daño causado por una aplicación maligna o errónea, se reducirá sólo a ese dominio.

Suponiendo un sistema Debian con Apache y vhosts (sería similar con cualquier otro sistema operativo Linux), los pasos para conseguir esta configuración son los descritos a continuación.

Instalar apache2-mpm-itk

aptitude install apache2-mpm-itk

Este paquete sustituirá al actualmente instalado. ¡¡¿¿Desinstalar mi Apache??¡¡ Sí, es rápido e indoloro.

 

Crear el usuario (y grupo)

Necesitamos un usuario por vhost. Según la configuración que queramos, también deberemos crear un grupo por vhost. Si nuestro dominio es example.org:

useradd -d /var/www/vhosts/example.org/httpdocs/ -M -s /bin/false www-example-org

 

Configurar apache2-mpm-itk

Simplemente añadimos al vhost de example.org (/etc/apache2/sites-enabled/example.org, posiblemente).

<IfModule mpm_itk_module>
        AssignUserId www-example-org www-example-org
</IfModule>

 

Cambiar umask para Apache

Si queremos forzar a que los archivos creados por Apache sólo pueda leerlos y, sobre todo, modificarlos y borrarlos el usuario de la web, debemos cambiar los permisos que utiliza para crear nuevos archivos. Simplemente, en la configuración de variables de Apache (/etc/apache2/envvars), añadimos:

umask 0027

 

Reiniciamos Apache 

apache2ctl restart

 

Y listo. Podemos ver que cuando pidamos la web example.org, uno de los hilos de Apache estará siendo ejecutado por el usuario www-example-org.

Fuentes:

Would like to share? These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • Google Bookmarks
  • Ma.gnolia
  • TwitThis
  • LinkedIn

Comment Form

top