Armazenando chaves seguras no servidor web Ubuntu

6

Estou executando o Ubuntu 12.04 Precise com um ambiente DUNG (Django, Unix, Nginx & Gunicorn) e meu aplicativo (bem como vários arquivos de configuração) é armazenado em um ambiente virtual python dentro de /srv , que a www-data user tem acesso a.

O nginx & Os processos do gunicorn são todos executados como www-data .

Meu aplicativo da web requer credenciais seguras que estou armazenando em um arquivo environment.sh . Este arquivo contém várias exportações e é executado usando source antes da execução dos processos de gunicorn.

Minha preocupação é a localização do arquivo environment.sh e suas permissões. Ficará tudo bem armazenar esse arquivo dentro da pasta /srv , onde o www-data tem acesso a ele? Ou deveria ser armazenado e pertencente a root em outro lugar, como /var/myapp/environment.sh ?

Além disso, em relação ao usuário www-data , se algum dos meus processos da Web (que são executados como www-data ) estiverem comprometidos e alguém obtiver acesso a eles, isso significa que o usuário poderia ler qualquer arquivo no sistema , mesmo que eles não possam escrever? Incluindo minhas chaves seguras?

    
por Sencha 29.11.2012 / 19:19

1 resposta

1

Você pode definir IDs de usuário e grupo na configuração gunicorn que será usada pelos processos de trabalho. Defina as variáveis ambientais no arquivo de propriedade do root e sem permissões de leitura (rw -------). Isso salvará seu processo de www-data comprometido de ler dados diretamente do arquivo de configuração, mas o processo de www-data comprometido ainda pode ler variáveis diretamente da memória.

ps. +1 para DUNG:)

    
por 13.12.2012 / 16:58