웹 서버의 정보 숨기기 (apache)
페이지 정보

본문
curl, nc, httprint 등으로 서버의 정보를 수집하는 방법은 다양하다. 도메인이나 ip주소를 입력하면 해당 서버의 OS, 웹서버, 네임서버 등의 정보를 정리하여 보여주는 사이트들도 많다. curl을 이용해서 테스트 서버의 정보를 보면서 웹서버의 정보를 숨기는 작업에 대해서 정리하고자 한다.
[root@webpress /]# curl -i 1.234.56.789
HTTP/1.1 200 OK
Date: Wed, 21 Apr 2021 05:00:24 GMT
Server: Apache/2.4.6 (CentOS) PHP/7.4.16
Last-Modified: Thu, 25 Mar 2021 04:58:54 GMT
ETag: "0-5be5545af6651"
Accept-Ranges: bytes
Content-Length: 0
Content-Type: text/html; charset=UTF-8
[root@webpress /]#
위의 예에서 사용한 ip주소는 존재할 수 없는 주소이지만 그 아래의 결과는 실제 서버의 헤더정보이다.
Server OS : CentOS / 웹서버 : Apache 2.4.6 / PHP : 7.4.16 이라는 것을 쉽게 알 수 있다.
아래 두 줄을 httpd의 설정 파일인 httpd.conf 에 추가해보자. 위치는 어디든 상관없다.
ServerTokens Prod
ServerSignature Off
이제 웹서버를 재시동 한 후에 다시 확인해보면 아래와 같이 나온다.
[root@webpress /]# curl -i 1.234.56.789
HTTP/1.1 200 OK
Date: Wed, 21 Apr 2021 05:22:25 GMT
Server: Apache
Last-Modified: Thu, 25 Mar 2021 04:58:54 GMT
ETag: "0-5be5545af6651"
Accept-Ranges: bytes
Content-Length: 0
Content-Type: text/html; charset=UTF-8
[root@webpress /]#
ServerTokens는 서버가 클라이언트에 응답하는 헤더의 필드에 포함되는 모듈에 대한 정보를 제어한다. 이 구문을 생략하면 (apache 2.4.x에는 생략되어 있다) Full 옵션을 준것과 동일한데 이는 모든 정보(?)를 다 제공한다. 가장 제한적인 옵션이 Prod이며 웹서버의 종류(이름)만 전송한다. 이 외에 Major, Minor, Min, OS 등의 옵션이 있는데 자세한 것은 아파치 문서를 참고하자.
ServerSignature는 웹사이트의 오류페이지나 ftp의 디렉토리 목록 등에서 페이지의 하단에 출력되는 글을 설정하는데에 사용된다. 기본값이 off이기 때문에 생략해도 무방하다. 이 구문에 의해서 출력되는 서버의 버전정보 등은 ServerTokens에 의해서 제어된다.
- 이전글[Linux] OS별 network 재시작 방법 25.07.22
- 다음글[Apache] 취약한 HTTP Method 제한 (httpd.conf) 25.03.25
댓글목록
등록된 댓글이 없습니다.