Apache - suExec - FastCGI - PHP = problema de segurança

Apache - suExec - FastCGI - PHP = problema de segurança

Instalei o Apache com FastCGI (mod_fastcgi), suExec e PHP na minha caixa de desenvolvimento local. Funcionando perfeitamente, exceto uma coisa.

Digamos que eu tenha dois usuários:

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

Descobri uma séria falha de segurança em minha configuração: posso incluir um arquivo da raiz da web do usuário2 no arquivo do usuário1. Como prevenir? Alguma dica?

php-cgio processo está sendo executado sob o usuário correto.

Responder1

Eu sugiro que você defina base_pathdentro do seu VirtualHost:

php_admin_value open_basedir /usr/local/www/sixeightzero

Responder2

Se o objetivo é rodar o php sob o nome dos usuários, para separá-los então tenteapache2-mpm-itk, é muito mais fácil de implantar do que o fast-cgi e funciona muito bem.

Para usar você precisa apenas adicionar esta linha à configuração do virtualhost:

AssignUserId someuser somegroup

Você também pode definir MaxClientsVHost e NiceValue, se desejar.

Responder3

A única maneira de fazer isso direito é proibir um usuário de ler arquivos do homedir de outro usuário, mas deixando-os legíveis para o servidor web.

Você pode fazer isso (exemplo):

monte o sistema de arquivos com opções acl: mount -o acl /dev/sda /home

Permitir que o servidor web acesse:

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

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

Permitir que o proprietário leia:

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

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

informação relacionada