как спрятать версию apache, nginx и php


Зачастую, мы не хотим показывать всем подряд версию софта, установленного на наш сервер.

Если выполнить команду: ** curl -I http://example.com**

мы, скорей всего, увидим версию web сервера и, возможно, еще php, а может, даже узнаем, что за операционная система стоит на нем.

curl -I http://www.ubuntu.com
HTTP/1.0 200 OK
date = "Thu, 03 Jan 2013 07:06:56TGMT:00+03:00"
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Age: 19
Content-Length: 43850
X-Cache: HIT from privet.canonical.com
X-Cache-Lookup: HIT from privet.canonical.com:80
Via: 1.1 privet.canonical.com:80 (squid/2.7.STABLE7)
Connection: close

Для того, чтобы скрыть версию nginx, достаточно в секцию http прописать server_tokens off; и перезапустить nginx.

Вот ссылка на официальную документацию

С php тоже несложно. Открываем php.ini, для Ubuntu он находится в /etc/php5/apache2/php.ini, находим строку с expose_php и меняем параметр с On на Off.

Если таковой строки не было, то добавляем соответственно expose_php = Off

Ну и не забываем перезапустить сервис, который крутит php, будь то Apache или fast-cgi, php-fpm, etc.

Вот результат

curl -I http://prolinux.org
HTTP/1.1 200 OK
Server: nginx
date = "Thu, 03 Jan 2013 06:55:34TGMT:00+03:00"
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie: SESS7163f37e2bf06c9ad5a5d719c0b05c9c=g502mja9qnl7n80g6dg411mba6; expires=Sat, 26-Jan-2013 10:28:54 GMT; path=/
Last-Modified: Thu, 03 Jan 2013 05:33:36 GMT
ETag: "fd69f1040617fd7f55e064bde48897d8"
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: must-revalidate
Vary: Accept-Encoding

Для того, чтобы не показывать версию Apache, надо тоже изменить его главный конфиг и добавить в него такие строки:

ServerTokens ProductOnly
ServerSignature Off

Ну и перезапустить конечно.

comments powered by Disqus