Protegendo o php em um apache compartilhado

1

Vou instalar o apache + php em um servidor onde dois usuários, A e B, irão implantar seu site. Estou tentando isolar o espaço dos usuários por motivos de segurança: não há scripts do site A que consigam ler arquivos no site B.

Para conseguir isso eu instalei o suphp. Os arquivos de site do usuário A são de propriedade de A: A com perm = 700 e o usuário de B é de propriedade de B: B com perm = 700. Suphp funciona muito bem, mas o apache reclama de permissões para ler .htaccess.

Como posso deixar o apache ler o .htaccess em cada diretório de A e B enquanto mantém o isolamento entre o site A e o site B? Eu joguei com propriedade (group = www-data) e permissões (750), mas não encontrei maneira de manter o isolamento garantido. Alguma idéia?

Talvez executando o apache como root, mas nesse caso há alguma desvantagem?

    
por Jack 28.10.2012 / 20:55

2 respostas

0

Como um sidenote, para restringir ainda mais você pode colocar isso:

disable_functions = “apache_child_terminate, apache_setenv, define_syslog_variables,    escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode” 

em: /etc/php5/apache2/conf.d/disable_functions.ini

link

Espero que isto não seja para offtopic.

    
por 28.10.2012 / 21:42
0

Bem, acho que resolvi.

Diretórios iniciais são perm = 750, proprietário = A: www-data (ou B: www-data). Dentro de casas todos os diretórios e arquivos são de propriedade de A: A (ou B: B) com perm = 644 ou 755 para dir. Fazendo isso, o apache rodando como www-data é sempre capaz de ler .htaccess em todos os diretórios, enquanto o usuário A não pode ler qualquer conteúdo do usuário B, já que seu diretório home é 750, que é 0 para A.

Obrigado pelas sugestões dadas; esses são úteis para melhorar a segurança

    
por 29.10.2012 / 10:17