#kubernetes #kubernetes-ingress #nginx-ingress
#kubernetes #kubernetes-вход #nginx-вход
Вопрос:
Я задаю этот вопрос в стиле вопроса, а затем отвечаю.
Если вы создаете свои объекты Ingress для диаграмм Helm или обычных развертываний «kubectl apply», после развертывания в вашем кластере вы можете увидеть заголовок сервера в своих ответах. Это рассматривается как проблема безопасности. Он не должен присутствовать.
Возможно, у вас нет контроля над вашим кластером или входными контроллерами. Как вы можете удалить соответствующий заголовок?
Комментарии:
1. В последнем выпуске NGINX Ingress Helm Chart от Bitnami server_tokens по умолчанию тоже отключены!
Ответ №1:
Возможно, у вас нет контроля над вашим кластером или входными контроллерами, но у вас есть контроль над вашими входными манифестами.
В каждом из ваших файлов манифеста Ingress (возможно, внутри ваших диаграмм Helm) вы можете обновить свои определения Ingress.
apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Release.Name}}-{{ .Values.baseName }}-ingress-spa
namespace: {{ .Values.global.config.namespace }}
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/configuration-snippet: |
more_clear_headers "Server";
spec:
tls:
- hosts:
Ключевая часть:
nginx.ingress.kubernetes.io/configuration-snippet: |
more_clear_headers "Server";
Это дает указание nginx очистить заголовок сервера. После повторного развертывания вашего приложения теперь вы должны увидеть:
И вуаля, заголовок сервера исчез.
Ответ №2:
Вы можете сделать это для всего входного контроллера nginx в конфигурационной карте настроек:
серверные токены: «false»