18

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

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. Мне было интересно, есть ли способ, о котором я не знаю?

2 ответа2

24

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

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

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

Примечание: настройки одинаковы в обеих версиях, однако в документации 2.4 это примечание добавлено:

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

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

16

Вы можете удалить или замаскировать идентификацию сервера из 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 запускаться последним, в точности так, как описано для chroot.

Заметка

Чтобы эта директива работала, вы должны оставить / установить ServerTokens на Full.

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

Источник: Справочное руководство ModSecurity

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .