누구나 읽을 수 있는 파일만 제공하도록 Apache를 구성할 수 있습니까?

누구나 읽을 수 있는 파일만 제공하도록 Apache를 구성할 수 있습니까?

저는 재미를 위해 실험적인 Apache 웹 서버를 실행하고 있습니다. 이 서버의 기본 아이디어 중 하나는 이 서버가 대중에게 비정상적으로 공개되어야 한다는 것입니다. 예를 들어, 루트 파일 시스템은 누구나 탐색할 수 있도록 열려 있어야 합니다. (실제로는 다음과 같습니다.http://sylvester.s.zbasu.net/rootfs/) 결과적으로 보안은 뒷전으로 밀릴 것입니다.

즉, Apache가 액세스할 수 있어야 하지만 대중이 액세스할 수 없는 것들이 있습니다. 제가 겪고 있는 예는 Django 사이트입니다. 파일은 settings.pyApache에서 읽을 수 있어야 합니다. 그렇지 않으면 Django가 작동하지 않습니다. 하지만 settings.py비밀 키가 포함되어 있으므로 대중이 읽을 수 없어야 합니다. 따라서 파일은 의 소유여야 www-data하지만 그럼에도 불구하고 Apache는 파일 제공을 거부해야 합니다.

한 가지 가능한 해결책(Freenode 덕분에 ellipsis753)은 파일에 특수 지시어를 생성하여 .htaccessApache에게 이 파일을 제공하지 않도록 지시하는 것입니다. 그러나 모든 사용자가 파일을 읽을 수 없는 경우 Apache에서도 해당 파일을 제공해서는 안 된다고 생각합니다.

파일을 누구나 읽을 수 없으면 제공해서는 안 된다고 Apache에 알릴 수 있나요?

답변1

FastCGI 또는 mod_wsgi의 데몬 모드에서 Django 애플리케이션을 실행하는 경우 Apache를 실행하는 사용자가 아닌 다른 사용자로 실행할 수 있습니다. 그런 다음 제공하고 싶지 않은 파일을 읽을 수 있는 Apache 및 World의 권한을 완전히 제거할 수 있습니다.

예를 들어, 비밀번호 파일/etc/shadowApache에 권한이 없고 누구나 읽을 수 없기 때문에 이미 액세스할 수 없습니다. 예를 들어 새 사용자를 만들고 Apache 구성에 web-apps추가하면 WSGIDaemonProcess myapp user=web-apps ...Django 응용 프로그램을 사용자가 소유하게 할 수 있으며 구성 파일은 이미 파일 web-apps처럼 누구나 읽을 수 없습니다 .shadow

관련 정보