Есть немаловажный момент связанный с безопасностью
сервера, а из чего следовательно и расположенных на нём сайтов… Касается
он информации отдаваемой в заголовках web-сервера Apache. Рассмотрим
самые интересные, а зачастую и исчерпывающе-информативные заголовки:
Server и X-Powered-By.
Заголовок Server может поведать нам о
сервере, операционной системе, версии PHP и даже некоторых модулях.
Думаю, что пагубность такой информации объяснять не нужно, ибо
совершенного софта не бывает.
Заголовок X-Powered-By может наделить нас знанием о версии PHP например. Опять нам это ненужно.
В реальности мы видим это таким:
Есть несколько путей решения проблемы:Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g X-Powered-By: PHP/5.2.6
-
пересборка Apache с изменённым параметром AP_SERVER_BASEPRODUCT в файле include/ap_release.h
-
изменение директивы SecServerSignature при установленном mod_security
-
правка заголовков при помощи mod_headers
-
редактирование файлов конфигурации Apache и PHP
Мы остановимся на самом простом и универсальном варианте – редактирование файлов конфигурации Apache и PHP.
Для изменения заголовка Server, следует указать Apache, что именно там стоит выводить. Откроем на редактирование файл /etc/apache2/conf.d/security и найдём следующую строку:
ServerTokens Full
В комментариях написаны различные варианты значений, на мой взгляд достаточно указать следующее:
В таком случае заголовок Server будет отображать только лишь название сервера – Apache.ServerTokens Prod
Рекомендуется так же установить следующие директивы:
ServerSignature отвечает за отображение информации о сервере при ошибках, а TraceEnable за отключение режима TRACE, при котором возможны XSS (Cross-Site Scripting) атаки.ServerSignature Off TraceEnable Off
Чтобы избавиться от заголовка X-Powered-By, следует открыть на редактирование файл php.ini и найти в нём следующую строку:
Соответственно заменить её нужно на:expose_php = On
После всех правок нужно перезагрузить сервер:expose_php = Off
Ну вот, теперь мы стали на шаг ближе к безопасному серверу.sudo /etc/init.d/apache2 restart
Если вы хотите добавить к ответу сервера какие-либо дополнительные данные, воспользуйтесь возможностями mod_headers, добавив в httpd.conf
Header set MyHeader "Hello"
Теперь в заголовке ответа от сервера вы увидите MyHeader: Hello
Алсо You can make modifications to change the web server identity in two places in the source code. One is in the include file httpd.h in Apache 1 (ap_release.h in Apache 2) where the version macros are defined: #define SERVER_BASEVENDOR "Apache Group" #define SERVER_BASEPRODUCT "Apache" #define SERVER_BASEREVISION "1.3.29" #define SERVER_BASEVERSION SERVER_BASEPRODUCT "/" SERVER_BASEREVISION #define SERVER_PRODUCT SERVER_BASEPRODUCT #define SERVER_REVISION SERVER_BASEREVISION #define SERVER_VERSION SERVER_PRODUCT "/" SERVER_REVISION
Комментариев нет:
Отправить комментарий