Como devo estruturar meus usuários / grupos / permissões para um servidor web?

2

Como devo configurar as permissões da maneira mais segura em meu servidor dedicado no qual estou executando o FTP + Nginx? Eu quero que o FTP seja capaz de ler / gravar arquivos e eu quero que o Nginx seja capaz de ler / escrever os mesmos arquivos. Devo definir a máscara de usuário no ProFTPd para gravar arquivos como o usuário nginx?

Devo definir permissões para 700 para diretórios e 600 para arquivos, supondo que sejam de propriedade do usuário e do grupo nginx?

Qualquer informação é apreciada

    
por Brandon Wamboldt 24.06.2012 / 23:38

1 resposta

4

Se o seu servidor web puder gravar em todos os seus arquivos, o site não será necessariamente seguro; qualquer exploit (conhecido ou desconhecido) contra o nginx, PHP (ou Rails ou qualquer outra pilha, etc.) ou os aplicativos da web que você pode estar usando significa que um invasor pode gravar em tudo.

O método mais seguro é ter todos os arquivos pertencentes a um usuário diferente do usuário no qual o servidor da web (e PHP, etc.) seja executado, e apenas tornar as coisas graváveis que devem ser graváveis para o aplicativo funcionar, como diretórios de upload de usuários.

Por exemplo, no meu servidor web, nginx é executado como usuário nginx, php-fpm também é executado como usuário nginx e todos os arquivos são de propriedade de minha própria conta de usuário, exceto os diretórios de upload, que são de propriedade do nginx. o recurso de upload de arquivos do aplicativo da Web funciona.

Sempre que eu uso SFTP, eu faço login com minha própria conta de usuário, e eu su to root para alterar a propriedade de tais diretórios de upload (como o WordPress /wp-content/uploads directory). A maioria dos aplicativos da Web imprimirá um aviso durante a instalação quando um arquivo ou diretório precisar ser gravável.

    
por 10.07.2012 / 06:01