Изменить Apache httpd «Сервер:» HTTP-заголовок

Один из HTTP-заголовков, который Apache 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 , но заголовок «Сервер:» все еще отображается. Я экспериментировал с mod_headers . Я включил его, и я пробовал несколько вещей:

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

После остановки и запуска httpd с вышеуказанной конфигурацией заголовки HTTP включают что-то вроде ProcessingTime: 1523, но строка заголовка «Сервер:» остается неизменной. Поэтому я знаю, что «mod_headers» установлен и включен и работает, но не так, как я желаю.

Я вижу, что что-то называемое «mod_security» претендует на это, но я не хочу, чтобы все остальное багаж проходил с помощью mod_security.

UPDATE:

Как только вы установите mod_security, вам нужно всего несколько директив:

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

Это для mod_security 2.7.7

28 голосов | спросил Bruce Ediger 10 PMpThu, 10 Apr 2014 21:31:02 +040031Thursday 2014, 21:31:02

4 ответа


9

Заголовок идентификатора сервера /токена контролируется директивой ServerTokens "(предоставляется по mod_core). Помимо изменения исходного кода Apache HTTPD или использования модуля mod_security, нет другого способа полностью подавить заголовок идентификатора сервера.

С помощью подхода mod_security вы можете отключить все директивы /функции модуля в modsecurity.conf и использовать только идентификатор заголовка заголовка сервера без какого-либо дополнительного «багажа».

ответил Chipster 10 PMpThu, 10 Apr 2014 22:31:23 +040031Thursday 2014, 22:31:23
22

mod_security - это здорово, но вам не нужна его для достижения вашей цели.

после того, как все моды были включены в httpd.conf, вы можете просто отключить выбранные вами заголовки.

Header unset Server

ServerSignature Off
ServerTokens Prod

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

ответил Matt Ryan 1 AMpWed, 01 Apr 2015 01:55:40 +030055Wednesday 2015, 01:55:40
11

Просто обновите это для людей, которые все еще ищут. У меня возникли проблемы с изменением строки сервера в HTTP-заголовке. Этот совет должен работать для дистрибутивов филиалов Debian с systemd и Apache 2.4.7. В частности, я использую Ubuntu Server LTS 14.04.03. Некоторые советы, которые я нашел, это сделать

grep -Ri servertokens /etc/apache2

Это привело меня к /etc/apache2/conf-available/security.conf, где были указаны как ServerTokens, так и ServerSignature. Поэтому любые изменения, которые я делал для /etc/apache2/apache2.conf, были перезаписаны директивами, уже указанными в security.conf.

Я просто изменил директивы в security.conf, и Apache начал работать так, как я хотел.

ServerTokens Prod
ServerSignature Off

В связи с отключенным сервером Header, я нашел отчет об ошибке, в котором разработчики Apache сказали, что это не проблема. По-видимому, для них это философская проблема, несмотря на то, что спецификация для HTTP /1.1, RFC 2616, частично автор Тим Бернерс-Ли, говорит, что тег сервера необязателен.

Я действительно хотел установить тег Server на «Unknown», чтобы сделать наши проверки Qualys счастливыми. Итак, я установил mod_security, теперь называемый libapache2-modsecurity, после этот учебник DigitalOcean . Желаю удачи, надеюсь, я помог всем будущим читателям.

ответил slmaq 27 +03002015-10-27T18:18:54+03:00312015bEurope/MoscowTue, 27 Oct 2015 18:18:54 +0300 2015, 18:18:54
1

Я тестировал что-то на Oracle HTTP Server 11.1.1.9 (который построен на Apache 2.2.22), который работал для меня, в некоторой степени.

Установка «ServerTokens» в «none», кажется, удаляет значение заголовка «Server», хотя сам заголовок продолжает отправляться в ответ, но теперь он имеет нулевое значение.

  

ServerTokens none

Заголовок ответа будет выглядеть так:

  

HTTP /1.1 200 OK

     

Дата: Пн, 28 дек 2015 07:02:45 GMT

     

Сервер:

     

Last-Modified: Вс, 27 Дек 2015 07:29:13 GMT

     

.

     

.

ответил Mohab Elsayed 28 MonEurope/Moscow2015-12-28T10:46:15+03:00Europe/Moscow12bEurope/MoscowMon, 28 Dec 2015 10:46:15 +0300 2015, 10:46:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132