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