Print
카테고리: [ Apache HTTP Server ]
조회수: 3729

1. 개요

Apache HTTP Server는 Server Header 정보 노출 정도를 ServerTokens 항목의 세부 옵션을 통하여 조절할 수 있다. 공식 문서 중의 설명을 참조한다. 그러나 노출을 최소화하는 ServerTokens Prod 디렉티브를 사용한다고 해도 외부에 이 제품이 Apache  HTTP Server 임을 알려주는 것은 피할 수가 없다.

그렇다면 방법은 없을까?

본 문서에서는 두 가지 방법을 제시한다.


2. PRODUCT 정보 변경을 통한 보안 강화

Apache 2.x 기준으로 설치 작업 이전 ap_release.h 파일을 수정하여 보안을 강화하는 방법이다. 수정할 대상인 ap_release.h 파일은 include 디렉토리 아래에 위치하고 있다. 이번 테스트는 Apache 2.0.64 기반으로 진행하였다. 파일을 열어보자.

테스트를 위해 AP_SERVER_BASEPRODUCT가 “Apache”로 되어 있는데 이를 “APA”로 변경하였다.

컴파일 이후 Header 정보가 어떻게 표시되는지 확인하여 본다.

물론 버전 변조와 추가 문자열 삽입도 가능하다. 제품 이름을 “Web Server”로 변경하고, 버전을 오늘 날짜로 수정하고 임의의 문자열을 표시하도록 수정하여 보았다.

컴파일 이후 화면을 띄워본다.


3. ServerToken None을 통한 보안 강화

Apache 2.x 기준으로 core.c 파일을 수정하여 보안을 강화하는 방법으로 ServerTokens None을 만든다. 수정할 대상인 core.c 파일은 server 디렉토리에 위치하고 있다. 이번 테스트는 Apache 2.2.23 기반으로 진행하였다. 파일은 크게 세 군데 수정이 필요하다.

컴파일 이후 화면을 띄워본다.