Eu tenho um LAMP básico instalado e gostaria de garantir que o PHP não consiga acessar nada fora do diretório /var/www. Como eu posso fazer isso? Por "acesso", quero dizer também a leitura de arquivos e listagem de diretórios.
Estou pedindo isso por questão de segurança. Estou executando o WordPress no meu servidor e se alguém acessar a conta do administrador, poderá editar o código do modelo através do qual poderá acessar qualquer lugar do sistema.
Obrigado!
Responder1
Aqui estão as principais etapas para proteger uma configuração LAMP:
- Certifique-se de que todos os sites sejam executados com seu próprio usuário. Você pode conseguir isso com Apache mod_itk/mod_php ou PHP-FPM (geralmente com Apache ou Nginx)
- Certifique-se de que o root possua os arquivos e o grupo seja o usuário do servidor web (ou vice-versa)
- Certifique-se de que os direitos de acesso sejam 640 para arquivos e 750 para diretórios. Apenas as pastas de upload do Wordpress são 660/770.
- Somente quando você atualizar ou instalar plug-ins, altere os direitos de acesso dos arquivos PHP.
Certifique-se de que os arquivos PHP não possam ser executados na pasta de imagens:
<FilesMatch "/uploads/\.(asp|php|php5|pl)$"> Deny from all </FilesMatch>
Esta técnica não funciona muito bem com o Wordpress porque os plugins instalam arquivos php nessa pasta. Talvez seja melhor proteger as pastas uploads/2017 etc.
- Mantenha a instalação atualizada
- Mantenha o software do servidor atualizado
- Execute uma revisão regular do registro
- Tenha backups
- Ser capaz de reconstruir rapidamente