Почему google пытается получить доступ к моему внутреннему серверу?
У меня есть продакшен Django backend server, работающий как на Kubernetes (Deployment/Service/Ingress) на GCP. Мой django настроен примерно так
ALLOWED_HOSTS = [BACKEND_URL,INGRESS_IP,THIS_POD_IP,HOST_IP]
Все работает так, как ожидалось.
Однако, мой внутренний сервер периодически регистрирует такие ошибки (около 7 в день)
DisallowedHost: Invalid HTTP_HOST header: 'www.google.com'. You may need to add 'www.google.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'xxnet-f23.appspot.com'. You may need to add 'xxnet-f23.appspot.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'xxnet-301.appspot.com'. You may need to add 'xxnet-301.appspot.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'www.google.com'. You may need to add 'www.google.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'narutobm1234.appspot.com'. You may need to add 'narutobm1234.appspot.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'z-h-e-n-116.appspot.com'. You may need to add 'z-h-e-n-116.appspot.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'www.google.com'. You may need to add 'www.google.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'xxnet-131318.appspot.com'. You may need to add 'xxnet-131318.appspot.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'www.google.com'. You may need to add 'www.google.com' to ALLOWED_HOSTS.
DisallowedHost: Invalid HTTP_HOST header: 'stoked-dominion-123514.appspot.com'. You may need to add 'stoked-dominion-123514.appspot.com' to ALLOWED_HOSTS.
Мой основной вопрос заключается в следующем: Почему - что это за хосты? .
Я определенно не хочу разрешать эти хосты, не понимая их назначения.
Бонусный вопрос: Какой лучший способ заставить замолчать нежелательные хосты в моем техстеке?
Django проверяет любой запрос с заголовком на соответствие параметру ALLOWED_HOSTS. Если его там нет, Django выбрасывает ошибку Invalid HTTP_HOST header. См. документацию.
Эти HTTP-запросы могут исходить от ботов с неправильным значением заголовка хоста. Вы можете рассмотреть возможность проверки Cloud Armor для блокировки трафика с определенного заголовка хоста/домена.
Мой главный вопрос: зачем - для чего все эти хосты?
Некоторые из них являются веб-краулерами, которые собирают информацию для различных целей. Например, адрес www.google.com
- это, скорее всего, веб-краулеры, которые заполняют базы данных поисковых систем для поиска Google и т.д.
Google, вероятно, попал на ваш внутренний сайт случайно, следуя цепочке ссылок с какой-либо другой страницы, доступной для поиска, например, с вашего внешнего сайта. Вы можете попытаться определить этот путь. Кажется, есть страница, на которой можно запросить удаление URL из поиска... хотя я не уверен, насколько это будет эффективно для успокоения ваших журналов.
Другие могут быть людьми, проверяющими ваш сайт на наличие уязвимостей.
Я, конечно, не хочу разрешать эти хосты, не понимая их назначения.
Ну, вы никогда не сможете полностью узнать их предназначение. А в некоторых случаях, возможно, вы никогда не сможете узнать.
Бонусный вопрос: Какой лучший способ заставить замолчать нежелательные хосты в моем техстеке?
Один из способов - просто заблокировать доступ с помощью управляемого вручную черного или белого списка.
Второй способ заключается в том, чтобы ваш бэкэнд опубликовал документ "/robots.txt"; см. Об /robots.txt. Обратите внимание, что не все краулеры будут уважать страницу "robots.txt", но авторитетные - будут; см. Как Google интерпретирует спецификацию robots.txt.
Обратите внимание, что легко создать "/robots.txt", который говорит "никто не ползает по этому сайту".
Другие способы включают размещение внутреннего сервера за брандмауэром или присвоение ему частного IP-адреса. (Это кажется немного странным решением - выставлять свои внутренние службы в Интернет.)
Наконец, сайты, которые вы видите, уже заблокированы, и Django говорит вам об этом. Возможно, вам следует спросить, как отключить сообщения журнала для этих событий.