Protegendo a implementação do Django no servidor Ubuntu

1

Estou apenas começando com o Django e quero implantar um aplicativo de teste em um VPS do Linux que eu tenho. Não estou familiarizado com como posso proteger a implantação. Se eu configurar o Apache para servir o aplicativo do diretório de projetos em / home, acredito que haja um escopo para que alguém com intenção maliciosa possa acessar todo o / home.

Eu estava pensando em criar outro usuário. Existe uma opção melhor?

Obrigado Hari

    
por Hari 08.07.2010 / 13:39

4 respostas

1

Os projetos Django não devem ser colocados na raiz do documento. Coloque-o em /srv e aponte WSGIScriptAlias de acordo.

    
por 08.07.2010 / 13:46
1

A melhor prática de segurança para a implementação do Django é usar um usuário para cada "site", isso é fácil de fazer com mod_wsgi , para cada host virtual, você tem algo assim::

<IfModule mod_wsgi.c>
    WSGIDaemonProcess mydeploygroup user=_myuser group=_mygroup threads=25
    WSGIProcessGroup mydeploygroup
    WSGIScriptAlias / /srv/vhosts/www.example.org/apps/myapp/wsgi/deployment.wsgi
</IfModule>

Esta é uma boa prática para ter seus arquivos .py em um local somente leitura acessível somente a partir desse usuário específico. Dessa forma, se um invasor for capaz de fazer upload de arquivos arbitrários, as permissões impedem que ele modifique o código Python existente e faça backdoor dele.

Há também um recurso chroot , mas nunca testei isso. Alguém tem um feedback?

    
por 09.12.2010 / 11:02
0

Você realmente não precisa de nada em DocumentRoot. Seu WSGIScriptAlias deve apontar para o arquivo wsgi, que pode estar em qualquer lugar onde o usuário www-data possa ler. O arquivo wsgi, por sua vez, aponta para o seu projeto Django, que também pode ser qualquer lugar onde www-data possa ler.

Não parece haver nenhuma regra oficial sobre como configurar sua estrutura. Pessoalmente, tenho todos os meus projetos em subpastas para / var / www.

    
por 06.11.2010 / 13:14
0

Se você não precisar da Internet inteira para acessar o aplicativo, pense em adicionar algumas regras de firewall para restringir o acesso ao aplicativo.

    
por 06.11.2010 / 13:17