Apache httpd "Server:" HTTP 헤더 변경

Apache httpd "Server:" HTTP 헤더 변경

HTTP 헤더 중 하나아파치httpd다시 전송되는 응답 데이터는 "서버"입니다. 예를 들어, 내 웹 서버 시스템은 비교적 최신 버전의 Arch Linux입니다. 다시 보내는 헤더는 다음과 매우 유사합니다.

HTTP/1.1 404 Not Found
Date: Thu, 10 Apr 2014 17:19:27 GMT
Server: Apache/2.4.9 (Unix)
Content-Length: 1149
Connection: close
Content-Type: text/html

ServerSignature off이 있지만 /etc/httpd/conf/httpd.conf"Server:" 헤더가 계속 나타납니다. 나는 시도했다모듈 헤더. 나는 그것을 활성화하고 몇 가지를 시도했습니다:

<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>

위 구성을 중지했다가 시작한 후에 httpd는 HTTP 헤더에 유사한 콘텐츠가 포함되지만 ProcessingTime: 1523"Server:" 헤더 행은 변경되지 않습니다. 그래서 나는 "mod_headers"가 설치되어 활성화되어 작동하고 있다는 것을 알고 있지만 내가 원하는 것은 아닙니다.

나는 이를 수행한다고 주장하는 "mod_security"라는 것을 보았지만 mod_security와 함께 제공되는 다른 모든 수하물을 원하지 않았습니다.

고쳐 쓰다:

일단 설치되면 mod_security몇 가지 지침만 있으면 됩니다.

<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>

mod_security2.7.7용 입니다 .

답변1

mod_security는 훌륭하지만 목표를 달성하는 데 꼭 필요한 것은 아닙니다.

모든 모드가 포함되면 httpd.conf원하는 제목을 간단히 설정 해제할 수 있습니다. 댓글에서 언급했듯이 mod_headers이 기능을 활성화해야 합니다.

Header unset Server

# if the above doesn't work, set a default value
# use the keyword 'always' to set the header even with error'ed responses
# (e.g. if your app is down)
Header always set Server "No peeking!"

ServerSignature Off
ServerTokens Prod

http://httpd.apache.org/docs/2.4/mod/core.html#serversignature

답변2

아직도 찾고 있는 사람들을 위해 이것을 업데이트하세요. HTTP 헤더의 서버 라인을 변경하는 데 문제가 있습니다. 이 권장 사항은 systemd 및 Apache 2.4.7이 포함된 Debian 분기 배포판에 적용됩니다. 특히 Ubuntu Server LTS 14.04.03을 사용하고 있습니다. 내가 찾은 몇 가지 제안은 다음과 같습니다.

grep -Ri servertokens /etc/apache2

그러면 ServerTokens 및 ServerSignature가 지정된 /etc/apache2/conf-available/security.conf로 연결됩니다. 따라서 /etc/apache2/apache2.conf에 대한 모든 변경 사항은 security.conf에 이미 지정된 지시문으로 덮어쓰여집니다.

나는 단순히 security.conf의 지시문을 변경했고 Apache는 내가 원하는 방식으로 작동하기 시작했습니다.

ServerTokens Prod
ServerSignature Off

헤더가 서버에 설정되지 않는다는 주제에 대해 Apache 개발자가 이것이 해결할 수 없는 문제라고 언급한 버그 보고서를 발견했습니다. HTTP/1.1 사양인 RFC 2616은 Tim Berners-Lee가 부분적으로 작성했으며 서버 태그는 선택 사항이라고 명시되어 있지만 분명히 이것은 그들에게 철학적인 질문입니다.

Qualys 스캔을 만족스럽게 유지하기 위해 서버 태그를 "알 수 없음"으로 설정하고 싶습니다. 그래서 현재 libapache2-modsecurity라고 불리는 mod_security를 ​​다음과 같이 설치했습니다.이 DigitalOcean 튜토리얼. 행운을 빌어요. 제가 미래의 모든 독자들에게 도움이 되기를 바랍니다.

답변3

서버 ID/토큰 헤더는 "서버 토큰" 지시문( 에서 제공 ). mod_coreApache HTTPD 소스 코드를 수정하거나 모듈을 사용하는 것 외에는 mod_security다른 방법이 없습니다.완전히서버 ID 헤더를 억제합니다.

이렇게 mod_security하면 파일의 모든 모듈 지시문/기능을 비활성화 modsecurity.conf하고 추가 "수하물" 없이 서버 헤더 ID 지시문만 활용할 수 있습니다.

답변4

저는 Oracle HTTP Server 11.1.1.9(Apache 2.2.22를 기반으로 구축됨)에서 무언가를 테스트했는데 어느 정도 효과가 있었습니다.

"ServerTokens"를 "none"으로 설정하면 "Server" 헤더 값이 제거되는 것처럼 보이지만 헤더 자체가 응답으로 전송되었지만 이제 null 값이 있습니다.

서버 토큰 없음

응답 헤더는 다음과 같습니다.

HTTP/1.1 200 확인

날짜: 2015년 12월 28일 월요일 07:02:45 GMT

섬기는 사람:

최종 수정 날짜: 2015년 12월 27일 일요일 07:29:13 GMT

.

.

관련 정보