Re: Как закрыть сервер для всех стран кроме своей и сервисов гугл

Gena Makhomed gmm на csdoc.com
Чт Июн 3 06:40:52 UTC 2021


On 03.06.2021 0:40, Shilov wrote:

> Использую на базе Nginx реверсный прокси, работает чудесно, спасибо его создателю!
> 
> Как в нем грамотно сделать то же самое - ограничить доступ к нему со всех стран, кроме своей и некоторых сервисов (гугл, счетчик и т.п.)?

самый простой способ - это закрыть сайт с помощью cloudflare
и настроить там фильтры соответствующим образом:

1. known bots: allow - это разрешит ходить на сайт гуглу и яндексу
2. country 'RU': allow - это разрешит ходить всем со своей страны
3. all: block - это запретит доступ всем остальным.

в п.2 можно указать несколько стран, из которых доступ разрешен.

Если попробовать обойтись без cloudflare - тогда проблематично будет
узнать все ип гугловских ботов, чтобы их не блокировать. Теоретически
- возможно поможет сканирование подсетей автономных систем гугла,
и составление белого списка всех гугловских ип адерсов.

Вот список автономных систем по состоянию на март 2014 года:
http://www.gilles-bertrand.com/2014/03/google-network-ip-address-business-intelligence-autonomous-systems.html

Вот список подсетей одной из этих автономных систем:
https://www.dan.me.uk/bgplookup?asn=15169

Более простой и менее надежный способ - это по наличию
подстроки 'google' в строке user-agent, но такой способ
не надежен, потому что строку user-agent легко подделать.

Документированный способ определения гугловского бота - с помощью днс,
https://developers.google.com/search/docs/advanced/crawling/verifying-googlebot
но этот способ в nginx не получится использовать в реальном
времени для не блокирования доступа гугловских ботов на сайт.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru