Как изменить (скрыть) подпись сервера Nginx?
Я могу скрыть версию Nginx, используя параметр server_tokens, который отключен. Но не удалось изменить подпись сервера Nginx.
Шаги, которые я сделал,
1.) Измените имя сервера Nginx в исходном файле (src/http/ngx_http_header_filter_module.c) на "Мой сервер". После этого скомпилировали nginx. Но он не работает, когда я загружаю URL. Странно здесь, я могу видеть мою обновленную Подпись, когда я использую команду curl. Но это не обновляется в браузере.
2.) Поэтому я попробовал сторонний модуль (headers-more-nginx-module). Это тоже не работает. Получение обновленного имени через Curl. Но не в браузере.
Ответы
Ответ 1
Если вы работаете в ubuntu, тогда
-
Сначала установите nginx-extras
sudo apt-get install nginx-extras
-
Перейдите в /etc/nginx/nginx.conf
и в разделе http
add:
http {
more_set_headers "Server: Your_New_Server_Name";
server_tokens off;
}
-
Перезапустить nginx
sudo service nginx restart
Ответ 2
- Установить
HttpHeadersMoreModule
- http://wiki.nginx.org/HttpHeadersMoreModule - Измените его, используя директиву
more_set_headers
. -
Перезагрузите Nginx, чтобы вступить в силу.
Скрыть информацию о версии nginx.
server_tokens off;
Измените имя сервера.
more_set_headers "Сервер: MyServerName";
Ответ 3
Перейдите в nginx conf и отключите server_tokens.
/etc/nginx/nginx.conf
server_tokens off;
Ответ 4
Если вы используете ModSecurity v2.0 - v2.9, то в файле.conf вы можете использовать
SecServerSignature SomeName
ModSecurity v3 SecServerSignature устарел, но я не знаю, заменили ли они что-то еще.