Однажды я прочитал статью где речь шла о том, что можно скрыть факт использования nginx на сервере.
Для этого требуется отредактировать исходный код модуля ngx_http_header_filter_module и изменить строки
static char ngx_http_server_string[] = "Server: nginx" CRLF; static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
Но чтобы пересобрать nginx из исходников, нужно обладать некоторыми знаниями.
Однако, существует и более простой метод, не требующий вообще никаких особых действий, типа редактирования исходников и перекомпиляции.
Для этого нам понадобится установить пакет nginx-extras из репозитория Debian. Этот пакет содержит в себе модуль HttpHeadersMore.
# aptitude install nginx-extras
Если у вас уже был установлен nginx-full, aptitude предложит удалить этот пакет, поскольку он не может использоваться совместно с extras.
После установки пакета, открываем файл /etc/nginx/nginx.conf и в секции http прописываем строку:
more_set_headers "Server: Apache";
И там же не забываем указать это (на всякий случай, если не сделали ранее):
server_tokens off;
И перезапускаем nginx. Вместо Apache можно подставить что-то своё. Либо замаскировать под другой веб-сервер. Простор для фантазии, в общем. :)
Собственно, вопрос: а зачем нам это всё делать? Маскируя nginx под другой сервер, мы усложняем хакерам работу. Ведь им нужно понять, на чём работает сайт, чтобы выяснить, как можно использовать уязвимости веб-сервера. Называя сервер по-другому, мы даём злоумышленнику уникальную возможность бесконечно долго подбирать уязвимость, например, к IIS вместо nginx. :)