Поиск по сайту:

Как скрыть номер версии Apache и информацию об операционной системе


Apache — один из самых популярных веб-серверов, но его конфигурация по умолчанию содержит сомнительные варианты во многих дистрибутивах Linux. Apache имеет тенденцию рекламировать свою конкретную версию и платформу, на которой он работает, информацию, которая может быть ценной для злоумышленников.

Эта короткая статья покажет вам, как отключить этот вывод, чтобы защитить ваш сервер. Обычно нет причин для его активности, и его отключение должно занять всего минуту.

В чем проблема?

Вот свежая установка Apache 2.4, отображающая индекс каталога:

Нижний колонтитул страницы показывает код версии Apache, имя операционной системы, а также внутренний IP-адрес и номер порта вашего сервера.

Это потенциально конфиденциальные данные. Уязвимость нулевого дня в Apache может затронуть лишь небольшой диапазон версий. Оставляя этот вывод включенным, вы показываете миру, находится ли ваша машина в опасности. Это значительно облегчает злоумышленникам идентификацию вашего хоста как потенциальной цели.

Apache называет эти данные своей «подписью сервера». Он не ограничивается индексными страницами каталога: код версии включается в каждый HTTP-ответ в заголовке Server:

Он будет присутствовать независимо от кода состояния ответа. Злоумышленники могут найти вашу точную версию Apache, просто отправив запрос на ваш сервер, независимо от того, знают ли они действительный URL-адрес.

Отключение подписи сервера

Есть две части отключения этого нежелательного вывода. Во-первых, это значение ServerSignature в вашем конфигурационном файле Apache. Расположение этого файла может быть разным; /etc/apache2/apache2.conf и /usr/local/apache2/conf/httpd.conf — два распространенных варианта. Директива ServerSignature также поддерживается внутри файлов .htaccess в корневом каталоге вашего веб-сайта.

Установите для директивы значение Off, чтобы отключить подпись, которая появляется на веб-страницах, созданных сервером:

ServerSignature Off

Перезапустите Apache, чтобы применить изменения:

$ sudo service apache2 restart

Это влияет на списки каталогов, страницы ошибок Apache по умолчанию и другой вывод HTML, создаваемый сервером. Off полностью удаляет строку подписи. Этот параметр дополнительно поддерживает третье значение, EMail, которое предоставляет ссылку для отправки электронной почты на адрес, определенный ServerAdmin:

ServerAdmin example@example.com
ServerSignature EMail

Это заменяет информацию о версии Apache на ссылку электронной почты.

Управление токенами сервера

Содержимое заголовка ответа Server управляется другим параметром, ServerTokens. Это может быть установлено только в файле глобальной конфигурации вашего сервера. Он не поддерживается внутри файлов .htaccess.

Значение по умолчанию — Full, которое представляет точную строку версии и имя операционной системы, наблюдаемые в приведенном выше примере. Сюда также могут входить номера версий загруженных модулей и движков содержимого CGI, таких как PHP.

Поддерживаются следующие альтернативные значения:

  • ПолныйApache/2.4.2 (Ubuntu)
  • ProdApache
  • ОсновнойApache/2
  • НезначительныйApache/2.4
  • Мин.Apache/2.4.2
  • ОС — то же, что и Полный, но без информации о загруженных модулях

Выбор Prod является самым безопасным значением. Вы можете думать об этом как о Production, хотя на самом деле это сокращение от ProductOnly. Этот токен сервера означает, что заголовок Server покажет только то, что вы используете Apache, без дополнительной информации о выпуске. Злоумышленникам придется провести больше проб и ошибок, чтобы найти уязвимые места в вашей установке.

К сожалению, полностью удалить заголовок Server невозможно. На самом деле Apache утверждает, что его отключение «ничего не делает для повышения безопасности вашего сервера», и предлагает использовать Min для облегчения отладки межоперационных проблем.

Однако большинство людей никогда не используют заголовок Server, и всегда безопаснее рекламировать как можно меньше информации о вашей системе. Хотя это не предотвратит использование уязвимостей, ServerTokens Prod может удержать злоумышленников от спекулятивных попыток. Это также затруднит прохожим получение подробной информации о внутренней работе вашего технологического стека. Это всего лишь небольшое закаливание, но однажды оно может стать той разницей, которая вам нужна.

Что насчет PHP?

Apache часто используется перед веб-сайтами и приложениями, работающими на PHP. К сожалению, у PHP есть собственная привычка сообщать номер своей версии в Интернет. Он появится в заголовке X-Powered-By ответов, отправленных вашим PHP-кодом.

Вы можете отключить это, изменив файл конфигурации PHP следующей строкой:

expose_php = Off

Файл конфигурации обычно находится по адресу /etc/php/8.1/apache2/php.ini. Замените 8.1 версией PHP, которую вы используете. Вам нужно будет перезапустить веб-сервер, чтобы изменения вступили в силу.

Краткое содержание

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

Отключение подписи сервера — это быстрый способ повысить безопасность вашей среды. Также хорошей идеей будет одновременно решить проблему раскрытия аналогичной информации другим программным обеспечением в вашем стеке. PHP и некоторые веб-фреймворки имеют схожие уязвимости.