보안과 관련있는 httpd.conf 파일의 항목 분석


1) 먼저 httpd.conf에서 사용되는 태그를 살펴보자.


ㄱ. <Directory> ~ </Directory> : 현재 서버의 특정디렉토리를 지정할 때 쓴다.
ㄴ. <Location> ~ </Location> : 특정 서버를 지정할 때 쓴다.
ㄷ. <Files> ~ </Files> : 현재 서버의 특정파일을 지정할 때 쓴다.



2) 다음은 위 태그안에 사용될 수 있는 필드의 내용들이다.



2.1 options


* 사용법 : options <설정 내용>


* 설정 내용의 종류


ㄱ. All : MultiViews를 제외한 모든 옵션을 부여한다.(default 설정값이다.)
ㄴ. None : 옵션을 주지 않는다.
ㄷ. ExecCGI : CGI 프로그램을 실행할 수 있도록 한다.
ㄹ. FollowSymLinks : 심볼릭링크로의 이동을 가능하게 한다.
ㅁ. Includes : Server Side Includes를 가능하게 한다.
ㅂ. IncludesNOEXEC : Server Side Includes를 가능하게 하지만 exec는 사용 불가능.


ㅅ. Indexes : 해당 디렉토리안에 DirectoryIndex에 명기된 파일(예를 들면 index.html등)이


                없을 경우 디렉토리와 파일 목록을 보여준다.
ㅇ. MultiViews : 유사한 파일이름을 찾아주는 기능을 실행한다. 예를 들면 index라고만 입력하
                   더라도 index.*를 찾아서 보여준다.
ㅈ. SymLinksIfOwnerMatch: 사용자 아이디와 동일한 링크가 있을 때 심볼릭링크로의 이동을 가능
                                 하게 한다.



2.1 Override
이 항목은 클라이언트의 디렉토리 접근 제어에 관한 설정을 나타낸다. 예를 들면 특정 디렉토리에 접근할 때 해당 디렉토리에 있는 유저 인증파일인 .htaccess를 읽게 되는데, 여기를 None으로 설정하면 아파치서버에서 이 파일을 무시하게 된다.
* 사용법 : allow override <값>
* 값의 종류
None : Override를 사용하지않는다. 즉 유저 인증파일을 사용하지 않는다.
All : httpd.conf파일의 AccessFileName 지시자로 설정한 파일을 사용하며 또한 지시자를 사용
      할 수 있다.
AuthConfig : AccessFileName 지시자에 명시한 파일에 대해서 사용자 인증 지시자 사용을 허락
             한다. AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName,
                AuthType, AuthUserFile, require등을 사용할 수 있다.
FileInfo : AccessFileName 지시자로 설정한 파일에 대해서 문서 유형을 제어하는 지시자 사용
           을 허락한다. AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument,
           LanguagePriority등을 사용할 수 있다.
Indexes : AccessFileName 지시자로 설정한 파일에 대해서 디렉토리 Indexing을 제어하는 지시
           자 사용을 허락한다. AddDescription, AddIcon, AddIconByEncoding, AddIconByType, 
           DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOpti
           ons, ReadmeName등을 사용할 수 있다.
Limit : AccessFileName 지시자로 설정한 파일에 대해서 호스트 접근을 제어하는 지시자 사용
        을 허락한다. Allow, Deny, order 등을 사용할 수 있다.
Options : AccessFileName 지시자에 명시한 파일에 대해서 Options 그리고 XBiHack 등과 같은
            지시자 사용을 허락한다. Options, XBitHack등을 사용할 수 있다.


2.3 order, allow, deny 지시어
아파치 1.3에서는 다음의 3가지 지시어를 사용하고 있다.
- order : allow와 deny중 우선순위를 결정한다.
- allow
- deny
 
아파치에서 적용하는 보안설정은 몇가지 범위로 나눠볼수 있다.
- 서버 설정 보안
- 사용자 인증
1) 기본 사용자 인증(패스워드 사용)
2) 호스트 도메인 or ip주소로 접근통제
3) 권한 부여
4) SSL/TLS 적용
- 로그관리및 보안패치
 
클라이언트가 사용하는 호스트의 IP주소나 도메인에 의해서 웹서버의 데이터에 대한 접근을 통제할 수 있다. 기본적인 서버 설정은 DocumentRoot의 내용에 대해 누구나 접속을 허락하도록 설정되어 있다. Apache의 "Allow"와 "Deny"지시자는 사용자 시스템의 호스트 이름과 호스트 주소를 근간으로 접속을 허락 또는 차단할 수 있도록 지정할 수 있다.
또한, "Allow"와 "Deny"지시자를 동시에 사용할 경우 그 순서를 정하는 "Order"지시자를 사용하여 보다 정교한 정책설정을 할 수 있다.
- 사용예
ㄱ. Order Deny,Allow : Deny지시자가 Allow지시자보다 먼저 검사된다. 접근을 기본적으로 허
                         용된다. 즉 Deny지시자나 Allow지시자에 일치하지 않는 클라이언트의
                         접속을 허용한다.
ㄴ. Order Allow,Deny : Allow지시자가 Deny지시자보다 먼저 검사된다. 접근을 기본적으로 차단
                           된다. 즉, Deny지시자나 Allow지시자에 일치하지 않는 클라이언트의 접
                           속은 차단한다.
ㄷ. Order Mutual-failure: Allow 리스트에 있고, Deny리스트에 없는 호스트만 접근을 허용한다.
                             순서는 "Allow,Deny"때와 같다.


(참고) 일반적인 Firewall이나 라우터의 접근통제 Rule은 순차적으로 비교하다가 최초로 일치하
는 Rule을 적용하고 그 이후는 비교하지 않지만, Apache에서는 Allow와 Deny를 일단 모두
비교하고 둘 중에 하나라도 일치할 경우 적용한다는 점에서 차이가 있다. 또한 "Order"
지시자 사용시 키워드(Allow 또는 Deny)는 콤마(,)에 의해서만 분리되고 공백이 들어가서         
는 안된다.

-------------------------------------------------------------------------------------------------------
출처 : http://cafe.naver.com/nsis/10608

2010/05/10 18:32 2010/05/10 18:32
샤이 이 작성.

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Trackback RSS : http://www.worldwalker.co.kr/rss/trackback/65

Trackback ATOM : http://www.worldwalker.co.kr/atom/trackback/65


당신의 의견을 작성해 주세요.

: 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : ... 11 :