Как настроить брандмауэр Cloudflare для блокировки поддельных ботов Google

Я знаю, что это поддельные боты Google, и я бы хотел их заблокировать. IP не статичен, поэтому я хотел бы заблокировать диапазон в Cloudflare.

Однако это не работает. Вот пример журнала поддельного бота Google: https://gyazo.com/f4bd7182923c6caa92cf95a7f84116cd

Вот поддельные IP-адреса ботов:

162.158.74.61
162.158.74.175
162.158.75.188
162.158.75.68
162.158.75.230
162.158.75.242
162.158.75.26
162.158.74.205
172.68.58.213
172.68.58.141
172.68.58.21
172.68.59.40
172.68.59.184
108.162.216.176
108.162.216.248
108.162.216.92

Вот моя текущая конфигурация Cloudflare: https://gyazo.com/91af7d0964621c95d5cc5a462724cb9a

Есть идеи, как это сделать?


person Innmedia    schedule 09.04.2019    source источник


Ответы (2)


Добавить в /etc/nginx/nginx.conf в блоке http:

geo $fakebotip {
    default 0;
    108.162.0.0/16 1;
    141.101.0.0/16 1;
    162.158.0.0/16 1;
    172.68.0.0/16 1;
    172.69.0.0/16 1;
}

А затем в /etc/nginx/sites-available/your-site.pl:

if ($fakebotip = 1) {
    set $naughtyBot A;
}
if ($http_user_agent ~ (Googlebot|SemrushBot|AhrefsBot|bingbot|Qwantify|YandexBot|YandexImages|DotBot|linkfluence|Mediatoolkitbot|BoardReader) ) {
    set $naughtyBot "${naughtyBot}B";
}
if ($naughtyBot = AB) {
    return 404;
}

Проверьте конфигурацию nginx: sudo nginx -t

Если все в порядке, перезагрузите nginx: sudo systemctl reload nginx

person krówek    schedule 09.04.2019

Вы можете заблокировать всех ботов через robots.txt и поместив это

User-agent: * 
Disallow: /

Он заблокирует сканирование всех ботов на вашем сайте.

Также, если вы хотите, чтобы бот, например, googlebot поместил это

User-agent: Googlebot
Allow: /
person Rjj    schedule 09.04.2019
comment
Я не хочу блокировать всех роботов. Просто нужно заблокировать поддельных роботов, и я вставил IP поддельных ботов выше. Блокировка каждого робота разрушит мою оптимизацию поисковых систем. Более того, мне нужно заблокировать его в Cloudflare. - person Innmedia; 09.04.2019