Подпись (сигнатура) сервера - это информация, отправляемая веб-сервером Apache в заголовках HTTP-ответов. Эта информация обычно включает в себя версию Apache и другие сведения о сервере. Хотя эта информация может показаться безобидной, она может дать потенциальным злоумышленникам ценные сведения о конфигурации вашего сервера.
Отключение подписи сервера - распространенная практика безопасности. Скрывая версию Apache и другие сведения, вы затрудняете злоумышленникам использование известных уязвимостей, характерных для конфигурации вашего сервера.
В Apache подпись сервера контролируется директивами ServerSignature и ServerTokens. Изменяя эти директивы в конфигурационном файле Apache, вы можете контролировать, какая информация, если таковая имеется, раскрывается в HTTP-заголовках.
Шаги по отключению подписи сервера для Apache
Запустите терминал.
Найдите директиву ServerSignature в конфигурационном файле Apache.
1 | sudo grep -nr ServerSignature /etc/{httpd,apache2} |
Пример вывода
1 2 3 | /etc/apache2/conf-available/security.conf:22:#ServerSignature Off /etc/apache2/conf-available/security.conf:23:ServerSignature On /etc/apache2/conf-available/localized-error-pages.conf:31:# ServerAdmin email address regardless of the setting of ServerSignature. |
Откройте файл конфигурации Apache с директивой ServerSignature с помощью удобного текстового редактора.
1 | sudo nano /etc/apache2/conf-available/security.conf |
Установите для директивы ServerSignature значение Off.
1 | ServerSignature Off |
Добавьте новую строку или откомментируйте ServerSignature и установите значение Off.
Найдите директиву ServerTokens в конфигурационном файле Apache.
1 | sudo grep -nr ServerTokens /etc/{httpd,apache2} |
Пример вывода
1 2 3 4 | /etc/apache2/conf-available/security.conf:5:# ServerTokens /etc/apache2/conf-available/security.conf:11:#ServerTokens Minimal /etc/apache2/conf-available/security.conf:12:ServerTokens OS /etc/apache2/conf-available/security.conf:13:#ServerTokens Full |
Откройте файл конфигурации Apache с директивой ServerTokens с помощью удобного для вас текстового редактора.
1 | sudo nano /etc/apache2/conf-available/security.conf |
Установите для директивы ServerTokens значение Prod.
Эта директива определяет, что вы возвращаете в качестве заголовка HTTP-ответа сервера. По умолчанию используется значение 'Full', которое передает информацию о типе ОС и скомпилированных модулях. Установите одно из значений: Full | OS | Minimal | Minor | Major | Prod, где Full передает больше всего информации, а Prod - меньше.
Добавьте новую строку или откомментируйте ServerTokens и установите значение Prod.
Сохраните и выйдите из текстового редактора.
Перезапустите службу Apache, чтобы изменения вступили в силу.
1 | sudo systemctl restart apache2 |
Убедитесь, что подпись сервера была отключена, просмотрев HTTP-заголовки в ответе вашего сервера.
1 | curl -I [IP] иди [домен] |
Пример вывода
1 2 3 4 5 6 | HTTP/1.1 200 OK ... Server: Apache ... Vary: Accept-Encoding Content-Type: text/html |
В заголовке Server теперь должен отображаться только Apache.