잘못된 내용이 있어서 정정을 위해 글을 올립니다.
아직은 PHP 보안을 완벽히 할 수가 없습니다.
CGI의 경우에는 suexec 를 사용하여 가능합니다.
하지만 아직 PHP에는 그러한 기능이 없어 조금만 노력하면 타 계정의 PHP 소스를 모두 가져
올 수가 있습니다. 당연히 초보자는 이해를 못할지도 모르지만... 또는 타 계정에서 PHP를
사용하여 생성된 파일이나 아파치 서버 구동 권한의 유저에게 쓰기 권한이 있는 파일들에
대해서는 보안이 취약합니다. 그런 파일들은 타 사용자도 쉽게 수정 및 삭제를 할 수가 있
습니다. 또 PHP 소스를 받게 되면 SQL 아이디 및 비밀번호를 알게 되며 디비에 있는 데이터
도 손쉽게 조작 가능합니다. 따라서 아직까진 PHP 제공하는 서버에서 여러 계정을 사용할
경우 자신의 계정의 파일들이 누설되지 않는다고 보장할 수 없습니다. 어떤 파일이든지
모두 타 계정 사용자가 가져갈 수 있을 것입니다. 웹서버 유져에게 읽기 권한을 주지 않은
파일 외에는... 그런데 웹서버 유저에게 읽기 권한을 주지 않은 파일이 있을까요 ? 홈페이
지로 사용하려면 반듯이 웹서버 유져에게 읽기 권한을 줘야하니깐 말이지요~
그렇기 때
문에 PHP를 이용하면 그 파일들을 모두 가져올 수 있게 되는 것입니다... 아예 계정 디렉토
리 전체를 자신의 계정으로 복사할 수도 있겠지요. 아무튼 이 취약점 해결은 PHP 자체에서
나와야 할 것이며 아파치에서 또한 이 점을 지원해 줘야 해결이 가능합니다. CGI의 suexec 와
같은 방법으로 말이지요... 그래서 현재로선 PHP 보단 Perl과 같은 CGI가 보안엔 강하지요.
현재 님처럼 nobody.nobody 로 권한을 주셨다면 그 디렉토리에 안에 타 사용자가 PHP를 이용해
새로운 파일 생성까지도 가능할 것입니다. 또한 디렉토리만이 아닌 타 파일(예를들어 설
정파일 같은경우)까지 nobody.nobody 로 권한을 주셨다면 그 파일을 삭제도 할 수 있습니다.
이 부분에 대해 완전히 이해를 하신 후 조금이나마 더 안전하게 보안을 하시기 바랍니다.
님의 방법대로 nobody.nobody 로 하시면 보안에 더욱 약하게 할 뿐입니다. 그것 보다는 오히려
원래 있던 그대로 root.root 755 가 낫겠죠
저 또한 완벽하지는 않지만 최대한 보안을 해 둔
상태입니다. 이상... 오늘도 즐거운 하루 되시기 바랍니다. ICQ#14555857 : 그냥 읽어보다가
도움이 될까해서 올려봅니다. : : 저 같은 경우, 제가 관리하는 웹 서버에 150명 정도 계정
사용자들이 : : 있습니다. 그래서 보안에 상당히 민감한데요. :
: 제가 현제 취하고 있는 방법은
:
: 일단 아파치 디렉터리 자체를 nobody 권한으로 바꿔버렸습니다.
:
: 위치는 /usr/local/apache 입니다.
:
: 이 디렉터리 자체를 nobody.nobody로 바꿔버렸습니다.
:
: 그리고 다른 사람이 볼수 없게 drwxr-x--- 로 막아 버렸거든요.
:
: 이러니까. php 소스 문제랑 sql 접속 비밀번호 등 커버가 되더군요.
:
: 물론 실행 파일과 환경 설정 파일들도 접근할 수가 없죠.
:
: --
: Powered By Apache.
--
ICQ#14555857