Apache - suExec - FastCGI - PHP = problema de seguridad

Apache - suExec - FastCGI - PHP = problema de seguridad

Instalé Apache con FastCGI (mod_fastcgi), suExec y PHP en mi caja de desarrollo local. Funciona perfectamente, excepto una cosa.

Digamos que tengo dos usuarios:

user1 - /home/user1/public_html
user2 - /home/user2/public_html

Descubrí un grave agujero de seguridad en mi configuración: puedo incluir un archivo de la raíz web del usuario2 en el archivo del usuario1. ¿Como prevenir? ¿Algun consejo?

php-cgiEl proceso se está ejecutando con el usuario correcto.

Respuesta1

Te sugiero que configures base_pathdentro de tu VirtualHost:

php_admin_value open_basedir /usr/local/www/sixeightzero

Respuesta2

Si el objetivo es ejecutar php bajo el nombre de los usuarios, para separarlos, intenteapache2-mpm-itk, es mucho más fácil de implementar que fast-cgi y funciona muy bien.

Para usarlo solo necesita agregar esta línea a la configuración del virtualhost:

AssignUserId someuser somegroup

También puede configurar MaxClientsVHost y NiceValue si lo desea.

Respuesta3

La única forma de hacerlo correctamente es prohibir a un usuario leer archivos del directorio principal de otro usuario, pero dejarlos legibles en el servidor web.

Puede lograr esto mediante (ejemplo):

montar el sistema de archivos con opciones acl: mount -o acl /dev/sda /home

Permitir que el servidor web acceda a él:

setfacl -m u:nobody:r-x /home/user1

setfacl -m u:nobody:r-x /home/user2

Permitir que el propietario lo lea:

setfacl -m u:user1:r-x /home/user1

setfacl -m u:user2:r-x /home/user2

información relacionada