Мы небольшой интернет-провайдер. Для доступа в Интернет мы используем NAT (10-20 пользователей на один публичный IP). А недавно мы познакомились с сервисами блокировки Google (капча и полная блокировка) и не смогли найти подходящего решения для наших пользователей. К сожалению, мы не смогли найти никаких официальных рекомендаций и инструкций от Google, объясняющих, как администратор интернет-провайдера может решить проблему. Все, что нам удалось выяснить, - это возможные причины блокировки и методы, которые могут быть использованы нашими клиентами. Но мы хотели бы иметь возможность решить эту проблему глобально и избавить наших клиентов от необходимости решать ее самостоятельно.
Первая идея - захватить пакеты от пользователей с целевым IP-адресом google.com (и вашим локальным доменом Google). Если что-то на ПК пользователя наводняет Google, они генерируют много пакетов.
Пример:
# Find google.com IP
$ host google.com
google.com has address 216.58.209.206
# local google.com.ua has ip in the same network 216.58.209.0/24
# Capture 50k packets with google IP dst
$ sudo tcpdump -i eth0 -nn dst net 216.58.209.0/24 -c 50000 > /tmp/dump.txt
# Parse dump file and find top 10 users
$ cat /tmp/dump.txt | awk '{print $3}' | awk -F '.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head
528 172.30.138.128
473 172.30.137.173
382 172.30.138.117
334 172.30.138.34
312 172.30.137.211
227 172.30.136.50
204 172.30.138.220
192 172.30.139.34
170 172.30.137.217
154 172.30.138.96
Но этот метод не работает должным образом. Выдает случайные результаты, вроде как работает нормальный пользователь. На форумах я нашел информацию о том, что система Google имеет сложный необычный алгоритм обнаружения трафика, основанный на том, что именно вы ищете в Google.
Может кто решил эту проблему? Или вы знаете, как это можно решить? Как я могу обнаружить необычный трафик, поступающий в Google через мой шлюз Linux?
По личному опыту, это проблема, касающаяся слишком большого количества (законных или нет) запросов, поступающих с одного IP-адреса.
То же самое происходит с выходными узлами.
Используйте единый адрес (я знаю, маловероятно) или, еще лучше, начните обеспечивать надлежащее соединение IPv6, и проблемы для законных пользователей исчезнут.