Apache의 HTTP 응답에서 Server : 헤더를 제거하는 방법은 무엇입니까?


20

줄을 제거하고 싶습니다.

Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g

내 서버의 HTTP 응답에서 include/ap_release.h아파치를 직접 수정 하고 컴파일하는 것 외에는 아무것도 찾을 수 없었 습니다. 내가 모르는 방법이 있는지 궁금합니다.

답변:


16

ModSecurity 오픈 소스 웹 애플리케이션 방화벽 을 사용하여 Http-Header에서 서버 식별을 제거하거나 숨길 수 있습니다 .

서버 ID 마스킹

공격자의 속도를 늦추고 혼동하는 데 도움이되는 한 가지 기술은 웹 서버 ID 변경입니다. 웹 서버는 일반적으로 서버 헤더의 모든 HTTP 응답과 함께 ID를 보냅니다. Apache는 기본적으로 이름과 정식 버전을 보내는 것뿐만 아니라 서버 모듈도 버전을 추가 할 수 있도록 도와줍니다.

Apache 웹 서버의 ID를 변경하려면 소스 코드로 이동하여 "Apache"라는 이름이 하드 코딩 된 위치를 찾아서 변경 한 후 서버를 다시 컴파일해야합니다. 같은 효과를 얻을 수 있습니다

SecServerSignature 지시어 :

SecServerSignature "Microsoft-IIS/5.0"

이 방법은 잘 작동하지만 숙련 된 공격자 (및 도구)는 다른 기술을 사용하여 웹 서버를 "지문"할 수 있습니다. 예를 들어, 기본 파일, 오류 메시지, 발신 헤더 순서, 서버가 특정 요청에 응답하는 방식 및 이와 유사한 방식으로 모두 실제 ID를 제공 할 수 있습니다. 향후 mod_security 릴리스에서 ID 마스킹에 대한 지원을 더욱 강화할 것입니다.

Apache 서명을 변경했지만 오류 로그에 이상한 메시지가 표시되는 경우 (일부 모듈이 여전히 표시됨-오류 로그에만 영향을 미치며, 외부에서 여전히 예상대로 작동 함) :

[Fri Jun 11 04:02:28 2004] [notice] Microsoft-IIS/5.0 mod_ssl/2.8.12 OpenSSL/0.9.6b \ configured -- resuming normal operations

그런 다음 chrooting에 대해 설명한대로 mod_security가 마지막으로 실행되도록 모듈 로딩 순서를 다시 정렬해야합니다.

노트

이 지시문이 작동하려면 ServerToken을 Full로 두거나 설정해야합니다.

SecServerSignature 지시문을 사용하여 공용 서버 서명을 변경하면 ModSecurity는 실제 서명을 오류 로그에 기록하기 시작하여 웹 서버와 사용 된 모듈을 식별 할 수 있습니다.

출처 : ModSecurity 참조 매뉴얼


지금 실행 중이지만 공격 조치를 트리거 할 수 있기 때문에 다른 기존 서버 이름을 사용하는 것이 현명하지 않다고 생각합니다.
Codebeat

27

ServerTokens" Prod"로 설정 하면 머리글을 " Server: Apache"로 줄일 수 있습니다 . 전체 옵션 목록은 설명서를 참조하십시오.

Apache 2.2 설명서

Apache 2.4 설명서

참고 : 설정은 두 버전에서 동일하지만 2.4 설명서에이 메모가 추가되어 있습니다.

상호 운용성 문제를 디버그하기가 더 어렵 기 때문에 ServerToken을 최소값 미만으로 설정하지 않는 것이 좋습니다. 또한 Server : 헤더를 비활성화하면 서버 보안을 강화할 수 없습니다. "모호함을 통한 보안"이라는 개념은 신화이며 잘못된 안전 감각으로 이어집니다.

"Apache"라는 단어를 완전히 제거하려면 소스를 수정해야합니다.


대답에 +1 tnx, 나는 이것을 알고 있다고 질문에 언급하는 것을 잊었지만 Microsoft IIS 또는 다른 것을 말하고 싶습니다. 나는 그것을 분명히 했어야했다.
Neo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.