Apache pode ser configurado para servir apenas os arquivos mundialmente legível?

1

Estou executando um servidor web Apache experimental e divertido. Parte da ideia por trás desse servidor é que ele deve estar excepcionalmente aberto ao público; por exemplo, o sistema de arquivos raiz deve estar aberto para qualquer um navegar. (De fato, aqui está: link ) Como conseqüência, a segurança vai ficar em segundo plano.

Dito isto, há coisas que o Apache deve ser capaz de acessar, mas o público não deveria. O exemplo em que estou correndo é um site do Django. O arquivo settings.py deve ser legível pelo Apache, senão o Django não funcionará. Mas settings.py não deve ser legível pelo público, pois contém uma chave secreta. Portanto, o arquivo deve ser de propriedade de www-data , mas o Apache deve, no entanto, recusar-se a atendê-lo.

Uma solução possível (graças a ellipsis753 no Freenode) é criar uma diretiva especial, talvez em um arquivo .htaccess , informando ao Apache para não entregar esse arquivo. No entanto, imagino que, se um arquivo não for legível por todos os usuários, ele provavelmente não deve ser servido pelo Apache.

Posso dizer ao Apache que, se um arquivo não é legível para o mundo, ele não deve ser exibido?

    
por Tanner Swett 03.03.2014 / 05:45

1 resposta

1

Se você executar seu aplicativo Django em FastCGI ou no modo Daemon do mod_wsgi, poderá executá-lo como um usuário diferente daquele em que o Apache está sendo executado. Em seguida, você pode remover completamente a permissão do Apache e do Google para ler qualquer arquivo que não deseja veicular.

Por exemplo, observe que o seu arquivo de senha /etc/shadow já não está acessível porque o Apache não tem permissões e não é legível por todos. Se você criar um novo usuário, diga web-apps por exemplo, e adicione WSGIDaemonProcess myapp user=web-apps ... à configuração do Apache, então você pode ter o aplicativo Django de propriedade do usuário web-apps , com seu arquivo de configuração não legível, como o arquivo shadow já é.

    
por 03.03.2014 / 23:35