Как удалить Сервер: заголовок от ответа HTTP с Apache?

Я хотел бы удалить строку:

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 и скомпилируйте Apache самостоятельно. Я задавался вопросом, существует ли способ, о котором я не знаю?

20
задан 07.10.2013, 12:41

0 ответов

Можно удалить или замаскировать идентификацию сервера от Http-заголовка при помощи брандмауэра веб-приложения открытого исходного кода ModSecurity.

Маскирование идентификационных данных сервера

Одна техника, которая часто помогает замедлиться и смутить взломщиков, является изменением идентификационных данных веб-сервера. Веб-серверы обычно отправляют свои идентификационные данные с каждым ответом HTTP в заголовке Сервера. Apache особенно полезен здесь, не только отправляя его имя и полную версию по умолчанию, но и это также позволяет модулям сервера добавлять свои версии также.

Для изменения идентификационных данных веб-сервера Apache, необходимо было бы войти в исходный код, найти, где имя "Apache" трудно кодируется, измените его и перекомпилируйте сервер. Тот же эффект может быть достигнут с помощью

Директива SecServerSignature:

SecServerSignature "Microsoft-IIS/5.0"

Нужно отметить, что, хотя это работает вполне хорошо, квалифицированные взломщики (и инструменты) могут использовать другие методы, чтобы "брать отпечатки пальцев" у веб-сервера. Например, файлы по умолчанию, сообщение об ошибке, упорядочивание исходящих заголовков, способ, которым сервер отвечает на определенные запросы и подобный - могут все выдать истинные идентификационные данные. Я изучу дальнейшее улучшение поддержки маскирования идентификационных данных в будущих выпусках mod_security.

Если Вы изменяете подпись 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

Затем необходимо перестроить модули, загружающие порядок позволить mod_security приходить последним, точно, как объяснено для chrooting.

Примечание:

Для этой директивы для работы необходимо уехать/установить ServerTokens Полному.

Когда директива SecServerSignature будет использоваться для изменения общедоступной подписи сервера, ModSecurity начнет писать реальную подпись в журнал ошибок, позволять Вам определять веб-сервер и используемые модули.

Источник: справочник ModSecurity

16
ответ дан 07.12.2019, 10:09

Если Вы устанавливаете ServerTokens к"Prod", можно уменьшить заголовок до"Server: Apache". См. документацию для полного списка опций:

Документация для Apache 2.2

Документация для Apache 2.4

Примечание: Настройки являются тем же в обеих версиях однако, 2,4 документации добавляет это примечание:

Установка ServerTokens к меньше, чем минимальному не рекомендуется, потому что это делает более трудным отладить межэксплуатационные проблемы. Также обратите внимание что отключение Сервера: заголовок не делает ничего вообще для создания сервера более безопасным. Идея "безопасности через мрак" является мифом и приводит к ложному чувству безопасности.

Если Вы хотите удалить слово "Apache" полностью, необходимо будет изменить источник.

27
ответ дан 07.12.2019, 10:09

Теги

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