Apache Configuration · 2 min read · Jan 29, 2026

Ejecutando Vhosts Bajo UIDs/GIDs Separados Con Apache2 mpm-itk En Debian Etch

Ejecutando Vhosts Bajo UIDs/GIDs Separados Con Apache2 mpm-itk En Debian Etch

Versión 1.0
Autor: Falko Timme

Este artículo explica cómo puedes instalar y configurar apache2-mpm-itk en un servidor Debian Etch. apache2-mpm-itk es un MPM (Módulo de Procesamiento Múltiple) para el servidor web Apache 2. mpm-itk te permite ejecutar cada uno de tus vhosts bajo un UID y GID separados; en resumen, los scripts y archivos de configuración para un vhost ya no tienen que ser legibles para todos los demás vhosts. mpm-itk funciona con mod_php porque mpm-itk se basa en el MPM prefork tradicional, lo que significa que no es multihilo. Esto significa que ya no necesitas usar suExec o suPHP para ejecutar los scripts PHP de un sitio web como un usuario separado.

¡Este documento se proporciona sin garantía de ningún tipo! No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

Asumo que tienes una instalación de Apache2 funcionando con mod_php en tu servidor Debian Etch.

Por consideraciones de velocidad, echa un vistazo a http://blog.stuartherbert.com/php/2008/04/19/using-mpm-itk-to-secure-a-shared-server/.

Por consideraciones de seguridad, visita http://mpm-itk.sesse.net/.

2 Instalando apache2-mpm-itk

apache2-mpm-itk está disponible como un paquete de Debian para Debian Etch, así que todo lo que tenemos que hacer es ejecutar

apt-get install apache2-mpm-itk

3 Configurando apache2-mpm-itk

apache2-mpm-itk se configura por vhost, es decir, no tenemos que establecer ninguna opción global, y solo hay una directiva que necesitamos establecer en un vhost, AssignUserId, que toma dos parámetros, el nombre de usuario y el grupo con el que se ejecutará el vhost.

En este ejemplo usaré el vhost predeterminado de Debian Apache (puedes encontrar su configuración en /etc/apache2/sites-available/default) con la raíz del documento /var/www (si tienes vhosts diferentes, ajusta esto a tu situación), y quiero que este vhost se ejecute como el usuario web1_admin y el grupo web1.

Si el usuario y el grupo no existen ya, podemos crearlos de la siguiente manera:

groupadd web1
useradd -s /bin/false -d /home/web1_admin -m -g web1 web1_admin

Luego abrimos nuestra configuración de vhost y agregamos las siguientes líneas:

| [...] AssignUserId web1_admin web1 [...] |

Por ejemplo:

vi /etc/apache2/sites-available/default

| NameVirtualHost * ServerAdmin webmaster@localhost DocumentRoot /var/www/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Esta directiva nos permite tener la página de inicio predeterminada de apache2 # en /apache2-default/, pero aún tener / yendo al lugar correcto RedirectMatch ^/$ /apache2-default/ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/log/apache2/error.log # Los valores posibles incluyen: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 AssignUserId web1_admin web1 |

Reinicia Apache después:

/etc/init.d/apache2 restart

¡Eso es todo!

4 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.