Я устанавливаю apache на CentOS 6.5 и пытаюсь настроить усиление защиты. Частью этого процесса является удаление подписи сервера с ServerSignature
директива. Поскольку я хотел бы, чтобы это сохранилось после обновлений версий и следовало другим передовым методам, я пытаюсь внести все свои изменения в настройки в /etc/httpd/conf.d/
каталог. Вот мой conf.d/defaults.conf
файл:
ServerTokens Prod
<Directory />
Options -Indexes FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerSignature Off
Это отлично работает, за исключением директивы ServerSignature. Кажется, что, поскольку он установлен в /etc/httpd/conf/httpd.conf
по умолчанию это значение не может быть изменено. Если я закомментирую эту строку в /etc/httpd/conf/httpd.conf
чем эта директива отлично работает в моем conf.d/defaults.conf
файл. Это ошибка в конфигурации apache? Все другие директивы, которые я пробовал, перезапишут значения по умолчанию. Как я могу переопределить это значение, не изменяя строку в /etc/httpd/conf/httpd.conf
?
Что касается исходного вопроса - это может быть потому, что Include conf.d/*.conf
линия идет до ServerSignature On
. Таким образом, последняя настройка для этого имени отменяет предварительный просмотр.
О правильном управлении файлом конфигурации
Это нормально редактировать /etc/httpd/conf/httpd.conf
. Этот файл будет не будет перезаписан обновлением yum / rpm, вместо этого он создаст /etc/httpd/conf/httpd.conf.rpmnew
файл, который системный администратор (вы) должен вручную объединить с локальной конфигурацией (большую часть времени используя vimdiff
).
О безопасности Как говорят другие, скрытие номера версии сервера не поможет вам с безопасностью - это особенно верно для CentOS. По умолчанию все httpd сообщает о себе так: Apache/2.2.15
. Это число не меняется в течение срока службы CentOS 6. Это была версия 2.2.15, когда была выпущена версия 6.0, и она останется неизменной в течение следующих 6 лет, пока CentOS 6 все еще поддерживается. Таким образом, по этому номеру версии атакующий может просто догадаться, что вы используете httpd из репозиториев CentOS 6 - вот и все.
И если идея состоит в том, чтобы вообще скрыть факт использования Apache (а не только номер версии), это практически невозможно, все веб-серверы имеют некоторые уникальные характеристики (документы об ошибках, порядок заголовков, флаги TCP, ...), которые их очень трудно скрыть, и на них легко снять отпечаток пальца.
Имейте в виду, что, как указал Крис С., удаление подписи сервера на самом деле не защищает сервер. Если вы просто хотите уменьшить объем информации, отображаемой сервером, лучше использовать ServerTokens в вашем файле conf.d.