Apache - suExec - FastCGI - PHP = 보안 문제

Apache - suExec - FastCGI - PHP = 보안 문제

로컬 개발 상자에 FastCGI(mod_fastcgi), suExec 및 PHP와 함께 Apache를 설치했습니다. 한 가지를 제외하면 완벽하게 작동합니다.

두 명의 사용자가 있다고 가정해 보겠습니다.

user1 - /home/user1/public_html
user2 - /home/user2/public_html

내 구성에서 심각한 보안 허점을 발견했습니다. user1 파일에 user2 웹 루트의 파일을 포함할 수 있습니다. 예방하는 방법? 어떤 팁이 있나요?

php-cgi프로세스가 올바른 사용자로 실행 중입니다.

답변1

base_pathVirtualHost 내에서 다음을 설정하는 것이 좋습니다 .

php_admin_value open_basedir /usr/local/www/sixeightzero

답변2

사용자 이름으로 PHP를 실행하는 것이 목표라면 사용자 이름을 분리한 다음 시도해 보세요.apache2-mpm-itk, fast-cgi보다 배포하기가 훨씬 쉽고 훌륭하게 작동합니다.

사용하려면 virtualhost 구성에 다음 행을 추가하기만 하면 됩니다.

AssignUserId someuser somegroup

원하는 경우 MaxClientsVHost 및 NiceValue를 설정할 수도 있습니다.

답변3

이를 올바르게 수행하는 유일한 방법은 한 사용자가 다른 사용자의 homedir에서 파일을 읽는 것을 금지하고 웹 서버에서는 읽을 수 있도록 남겨 두는 것입니다.

다음과 같은 방법으로 이를 수행할 수 있습니다.

acl 옵션을 사용하여 파일 시스템 마운트: mount -o acl /dev/sda /home

웹서버가 접근할 수 있도록 허용하세요:

setfacl -m u:nobody:r-x /home/user1

setfacl -m u:nobody:r-x /home/user2

소유자가 읽을 수 있도록 허용:

setfacl -m u:user1:r-x /home/user1

setfacl -m u:user2:r-x /home/user2

관련 정보