웹마스터 팁

기본적으로 Apache를 NT 서비스로 설치하면, LocalSystem 권한으로 Apache가 실행되게 됩니다.

그러나 LocalSystem권한은 Administrators권한에 상응하는 권한으로, 심각한 보안 문제를 야기할 수 있습니다.
따라서, Unix/Linux에서처럼 Apache라는 User를 생성한 뒤, 권한으로 설정하는 것이 바람직합니다.

*FAT32 파일 시스템을 사용할 경우, 아래와 같은 보안 설정이 불가능하고. NTFS 사용해야합니다.*

1) 일반적으로 C:, D:, E: 등 드라이브 등록정보에서 Everyone에 대해서 [쓰기], [수정] 권한이 설정되어 있지 않도록 하세요.
(각 드라이브의 등록정보 - 보안 탭에서 설정에서 가능합니다.)

2) System에다가 Apache라는 계정을 만든다
이 때 암호는 가능한 길게 넣어준다. 이 때 Apache라는 User는 기본적으로 ``Users'' 그룹에 속해있다. 이것을 삭제하여 어느 Group에도 속하지 않도록 해 준다.

3) 제어판 - 관리도구 - 서비스 - Apache - 등록정보에서
로그온 탭을 선택한 뒤, 계정 지정을 선택하고, 위에서 만든 Apache계정을 넣어준다.
이제, Apache 웹 서버 서비스는 NTFS에서 ``Apache''와 ``Everyone'', ``Authenticated User'',
그리고 ``Apache''소유의 폴더 중 ``CREATOR OWNER''에 대해 권한이 주어진 폴더만 Access 가능하게 된다.

4) Apache를 깐 디렉토리(C:Program FilesApache)의 폴더 등록정보에서
보안 탭을 선택한 뒤, ``추가(D)''버튼을 누르고 Apache를 넣어준다. 권한은 [읽기 및 실행], [폴더 내용 보기], [읽기]만 준다.

5) Apache Log files 디렉토리(C:Program FilesApachelogs)의 폴더 등록정보에서
보안 탭을 선택한 뒤, Apache User에 대하여 [쓰기], [수정] 권한을 준다. 좀 더 보안에 신중하고 싶다면, ``고급(V)''버튼을 누르고 파일 실행 권한을 꺼 준다.

6) 웹페이지 내용이 담긴 디렉토리(D:httproot), (E:)의 폴더 등록정보에서
보안 탭을 선택한 뒤, ``추가(D)''버튼을 누르고 Apache를 넣어준다. 권한은 [읽기 및 실행], [폴더 내용 보기], [읽기]만 준다. 이미 Everyone에게 위의 권한이 있다면 따로 줄 필요는 없다. 또, ``추가(D)''버튼을 누르고 CREATOR OWNER를 넣어준 뒤, 모든 권한을 준다.
(제로보드 등이 수행될 때, 파일을 자체적으로 생성 및 삭제를 하게 되는 경우에 필요합니다)
좀 더 보안에 신중하고 싶다면, ``고급(V)''버튼을 누르고 파일 실행 권한을 꺼 준다.

7) PHP를 설치했다면, php 디렉토리(C:php)의 폴더 등록정보에서
보안 탭을 선택한 뒤, ``추가(D)''버튼을 누르고 Apache를 넣어준다. 권한은 [읽기 및 실행], [폴더 내용 보기], [읽기]만 준다.

8) PHP의 session.save_path 폴더(C:phptmp)에 대해서 폴더 등록정보에서
보안 탭을 선택한 뒤, Apache User에 대하여 [쓰기], [수정] 권한을 준다. 좀 더 보안에 신중하고 싶다면, ``고급(V)''버튼을 누르고 파일 실행 권한을 꺼 준다.

출처 http://gc.myscan.org/gc15/node9.html