Linux 공유 호스팅 환경에서 웹 앱 파일 및 데이터베이스 비밀번호 보안

Linux 공유 호스팅 환경에서 웹 앱 파일 및 데이터베이스 비밀번호 보안

Linux 공유 호스팅 시스템에 웹 앱이 있습니다. .htpasswd데이터베이스 비밀번호를 저장하고 일반적으로 사람들이 취약점을 찾기 위해 내 소스 코드를 스누핑하는 것을 원하지 않는 일부 구성 파일이 있다고 가정해 보겠습니다 .

웹서버(아파치)에는 위 파일에 대한 읽기 액세스(경우에 따라 쓰기)가 필요합니다. 그러나 동일한 공유 호스트에 있는 다른 사람이 액세스하는 것을 원하지 않습니다.

나는 이것이 어떻게 작동하는지 전혀 이해하지 못했습니다. 질문여기유사하지만 웹 앱이 실수로 비밀번호 파일을 호스팅하는 것을 막는 데 더 많은 점을 지적하는 것 같습니다.

AFAIK, 내가 작업해야 할 것은 기본 Linux 권한뿐입니다. 한 서버에서는 Apache에 "기타" 권한을 부여해야 합니다. 그런 다음 다른 모든 사용자가 속한 그룹 권한을 제거하면 해당 사용자의 액세스가 거부됩니다. 이것은 꽤 우회적인 것 같습니다. 다른 서버에는 그룹 권한만 설정된 nobody그룹이 있습니다 .public_html

한 가지 우려 사항은 Apache 사용자가 내 파일에 액세스할 수 있는 경우 다른 사용자가 액세스 권한을 얻기 위해 간단한 스크립트를 작성하고 실행할 수 있다는 것입니다.

<?php
header("Content-Type: text/plain");
include $_GET['f'];
?>

TLDR: 소스 파일과 비밀번호에 액세스하려면 아파치가 필요하지만 동일한 시스템의 다른 사용자는 필요하지 않습니다(admins ofc 제외).

일반적인 설정이란 무엇입니까?

관련 질문:

답변1

그룹을 만들고 그룹에 apache/www-data를 추가합니다. 그 다음에:

chown -R 아파치:그룹 이름 /var/www/mywebapp/ && \ chmod -R 640 /var/www/mywebapp

그러면 폴더와 모든 하위 디렉터리 및 파일에 대한 읽기 및 쓰기(6) 권한과 그룹 읽기(4) 권한이 소유자에게 부여됩니다. Apache 사용자는 소유자와 마찬가지로 파일에 액세스할 수 있지만 다른 사용자는 액세스할 수 없습니다. Apache 사용자에게 su를 사용할 수 없는지 확인해야 합니다.

폴더 수준에서 액세스를 제한하려면 vhost 구성의 디렉터리 블록을 사용하세요. http://httpd.apache.org/docs/2.0/misc/security_tips.html#서버 파일 보호를 참조하세요. http://www.anchor.com.au/hosting/dedicated/Security_Hardening_of_an_Apache_Virtual_Host

관련 정보