O Apache pode ser configurado para servir apenas arquivos legíveis por todos?

O Apache pode ser configurado para servir apenas arquivos legíveis por todos?

Estou executando um servidor web Apache experimental apenas por diversão. Parte da ideia por trás deste servidor é que ele deveria ser aberto ao público de maneira incomum; por exemplo, o sistema de arquivos raiz deve estar aberto para qualquer pessoa navegar. (Na verdade, aqui está:http://sylvester.s.zbasu.net/rootfs/) Como consequência, a segurança ficará em segundo plano.

Dito isto, há coisas que o Apache deveria poder acessar, mas o público não deveria. O exemplo que estou encontrando é um site Django. O arquivo settings.pydeve ser legível pelo Apache, caso contrário o Django não funcionará. Mas settings.pynão deve ser legível pelo público, pois contém uma chave secreta. Portanto, o arquivo deve pertencer a www-data, mas o Apache deve, mesmo assim, recusar-se a servi-lo.

Uma solução possível (graças ao ellipsis753Freenode) é criar uma diretiva especial, talvez em um .htaccessarquivo, informando ao Apache para não servir esse arquivo. No entanto, imagino que se um arquivo não for legível por todos os usuários, provavelmente também não deveria ser servido pelo Apache.

Posso dizer ao Apache que, se um arquivo não for legível por todos, ele não deverá ser veiculado?

Responder1

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

Por exemplo, observe que seu arquivo de senha/etc/shadowjá 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, digamos, web-appspor exemplo, e adicionar WSGIDaemonProcess myapp user=web-apps ...à configuração do Apache, então você poderá fazer com que o aplicativo Django seja de propriedade do web-appsusuário, com seu arquivo de configuração não legível por todos, como o shadowarquivo já é.

informação relacionada