웹마스터 팁

Apache 보안

2004.04.05 14:10

u2em

httpd.conf를 수정함으로써 백도어 한개를 줄일 수 있습니다.

1. 유닉스 아파치를 root로 실행해서는 안 됩니다. 아파치를 빼앗길경우 root까지 넘어가게 되겠죠...
user nobody
group nobody 를 추천합니다.

2. htdocs 디렉터리에는 방문자에게 필요하지 않은 파일이 있습니다.

DocumentRoot "D:/htdocs"

htdocs의 내용들을 옮기거나 제거하거나 아니면 DocumentRoot를 옮겨야 좋습니다.

3. 필요없는 모듈을 과감히 주석처리
보통 필요한 모듈은 mod_dir mod_userdir mod_php mod_alias mod_access mod_auth 쯤입니다.
아파치 문서( http://httpd.apache.org/docs-2.0/ )를 참고하여 담당하는 서버에 필요없는 모듈은 다음과 같이 주석처리합니다.
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
서버를 재시작하면 적재되는 모듈이 줄어들어 속도도 향상되고, 버그가 있는 모듈일경우 한개의 백도어가 닫히는 셈입니다.

4. 디렉터리 설정
<directory></directory>로 디렉토리를 설정할경우 Option 지시자에 붙여지는 지시어들 중
Indexes와 FollowSymLink는 가급적 사용하지 않는것이 좋습니다.

Indexes를 사용하게 되면, DirectoryIndex에 해당하는 파일이 디렉토리에 없을 경우 파일 리스트를 보여줍니다.
만약 제로보드 디렉토리에 index.html이 없다면? config.php를 다운로드할수 있으므로 매우 위험합니다. 그래서 사용하지 않는 것이 좋습니다.

FollowSymLink를 사용시 /etc/passwd 등 매우 민감한 파일도 접근이 가능하다고 합니다. 심볼릭 링크때문이라고 하는군요... 윈도즈 운영체제의 바로가기와 비슷한 개념입니다..

또 원하지 않는 방문객이 접근하는것도 막을 수 있습니다.
Order deny,allow
Deny from all
Allow from 61.79.206

를 추가하면 61.79.206.*에서만 해당디렉토리의 접근이 가능합니다.

5. 정보 주지 않기
아는것이 힘입니다. 이 말은 보안쪽에서도 해당됩니다. 크래커는 크래킹 하려는 시스템의 정보를 많이 알수록 크래킹하기 쉽고, 각종 보안홀을 알고 대처를 할경우 보다 안전해집니다.

아파치는 웹브라우저에게 각종 정보를 넘기게 되는데, ServerToken 지시자가 이를 수행합니다.
아래는 httpd.conf의 servertoken 지시자 부근을 번역한 것입니다....

# 이 지시자는 서버가 되돌려주는 HTTP 응답을 설정합니다.
# 기본값은 'Full'인데 OS 정보와 모듈 정보를 넘겨줍니다.
# 하나를 선택하세요:  Full | OS | Minor | Minimal | Major | Prod
# Full은 가장 많은 정보를, Prod는 최소의 정보만을 보여줄 것입니다.
ServerTokens Prod

이 서버의 없는 페이지를 접속할 경우(ErrorDocument 사용안할시)

Not Found
--------------
The requested URL /sdsds was not found on this server.

Apache Server at xxx.xxx.xxx Port 80

과 같은 정보를 넘겨줍니다. 그러나 Full로 설정할 경우

Not Found
------------------------
The requested URL /sdsds was not found on this server.
Apache/2.0.49 (Win32) Server at xxx.xxx.xxx Port 80

비슷하게 나올것입니다. 만약 이 페이지를 찾아온 어떤 크래커가 win32버전 2.0.49의 취약점을 알고 있을경우, 크래커는 순간 이 시스템을 크래킹하고 싶어질 것입니다.

6. 불필요한 설정 제거 혹은 주석처리
아파치는 설치시 불필요한 수많은 기능들이 On 되어 있습니다. 주로 Alias 설정이 그런데, icons 디렉토리와 manual 디렉토리가 그렇습니다.
icons는  index파일이 없는 디렉토리 목록을 보여줄때 사용되는 아이콘들이 있는 디렉토리입니다. 무슨 윈도즈 탐색기도 아니니 파일명 앞에 아이콘이 붙는건 전혀 필요가 없습니다.

manual 디렉토리는 아파치 매뉴얼들이 있는 디렉토리인데, 접속자는 이런것이 필요가 없습니다.(뭐 필요한 사람이 없는건 아니겠지만...)

뭐 이정도면 httpd.conf로 기본적인 보안 설정하기는 다 된것 같습니다. 하지만 절대 방심해서는 안됩니다. 우리의 시스템에 설치된 아파치(알려진 버그가 픽스되었다는 최신버전의)에 알려지지 않은 허점이 존재할 수 있으며, 전혀 예상하지 못한(가령 SSH를 이용하는 내부 사용자의 배신(?), 스니핑 등등 아파치와 전혀 상관없는) 공격을 당할 수도 있습니다.
어쨌든 열심히 서버 운영하시길 바라며 지금까지 읽어주셔서 감사합니다...
제목 글쓴이 날짜
MySQL 설치 file 김 무건 2010.05.12
XE운영을 하려면 닷네임(dotname) 호스팅을 사용하시면 안됩니다 [7] nalireco 2010.05.11
XE 사용하기 - 동영상 강좌 [36] 선우(善友) 2010.05.05
공지글 1페이지에만 보이기 [1] 러키군 2010.04.29
특정 카테고리의 최근 이미지 출력 위젯 [3] file 앙띠2 2010.04.28
모듈 선택기 추가 안되는 에러 해결 : 모둘의 브라우저 제목에서 따옴표 '' 뺏더니 해결 [4] file refree 2010.04.27
레이아웃 적용 후 게시판 접근 제한 -> 게시판 board 모듈 재설치 해결 [1] refree 2010.04.24
게시판 스타일변경시 406에러 해결방법 우리랑 2010.04.21
XE 레이아웃 게시판이 3곳이라는 사실 아시나요? [3] serendip 2010.04.19
XE 속도를 개선하기 위한 4가지 방법 (수정 #3) [9] SMaker 2010.04.14
XE 일일이 메뉴출력하지 말고 XE함수들로 한번에 처리하세요! [1] 소렌트. 2010.04.11
[현원式] 개나 소나 하는 CSS - 레이아웃 만들기 / 기초지식 이해편 [3] 현원 2010.04.10
개인 웹서버의 완성 우분투 (서버이전완료) [1] 준타 2010.04.07
[게시판ex] 상단에 나오는 ''포인트'' 말풍선형태 배경이미지 및 PSD소스입니다. [3] file 빨간발 2010.04.04
XE 기본 카운터의 방문자 / 페이지뷰 출력하고 수정하기 [5] 대류 2010.04.03
트위터와 구글톸을 이용한 제로보드XE 새글 알리미 구축하기 [2] 하우하우 2010.04.03
Content 위젯 목록 가로로 정렬 하기 편법 [3] file teryboy 2010.04.01
속도향상에 관해(경험+의견) [3] 아고라 2010.03.31
홈페이지에 계정 사용량, DB 사용량, 현재 트래픽 출력하기 [7] file 대류 2010.03.29
카페24 웹호스팅에서 서브 도메인으로 접속 방법 [5] 데이스타 2010.03.28