Назад | Перейти на главную страницу

Подпись сервера в Apache

Я устанавливаю 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.