Убираем информацию о используемом ПО в ответах apache


Допустим, что при вызове команды:

wget -S --spider http://example.com

В ответе видим следующее:

HTTP/1.1 200 OK
 Date: Wed, 19 Nov 2014 08:47:22 GMT
 Server: Apache/2.2.15 (CentOS) DAV/2 PHP/5.4.30 mod_ssl/2.2.15 OpenSSL/1.0.1e-fips
 X-Powered-By: PHP/5.4.30

Задача: убрать информацию о версиях да и самих программах.

Как сделать:

в httpd.conf должно быть так:

ServerTokens ProductOnly

ServerSignature Off

Перезапускаем apache, проверяем:

HTTP/1.1 200 OK
  Date: Wed, 19 Nov 2014 09:01:21 GMT
  Server: Apache
  X-Powered-By: PHP/5.4.30

Убираем X-Powered-By: PHP/5.4.30

В php.ini выключаем:

expose_php = off

А если вы хотите убрать и Server: Apache, то быстрый вариант такой:

Для CentOS:

установить Epel репозитарий, после чего:

# yum -y install mod_security

отредактировать файл /etc/httpd/conf.d/mod_security.conf , добавив, например, так (в контекст <IfModule mod_security2.c>):

ServerTokens Full
SecServerSignature "MyServer"

Перезапускаем apache

Итоговый ответ:

HTTP/1.1 200 OK
Date: Wed, 19 Nov 2014 10:04:52 GMT
Server: MyServer

 

Примечание:
замеченно, что для версии apache 2.4.6-18 и mod_security 2.7.3-5 на CentOS 7 нужно директиву apache ServerTokens установить в значение Full

 

Документация по mod_security