Географічне обмеження — це рішення про IP-адресу, а VPN змінює, яку адресу бачить сервіс. Цього одного речення достатньо, щоб пояснити більшість заплутаних звернень до підтримки: «сайт працює вдома і не працює через тунель» та «сайт працює через тунель, але більше ніхто в офісі не може його завантажити» — це один і той самий механізм із протилежними результатами. Цей посібник веде діагностику в тому порядку, який виключає причини, починаючи з того, що периферія вам насправді сказала. Та сама вихідна адреса може пройти одну перевірку і не пройти наступну, бо кожна перевірка оцінює іншу властивість цієї адреси.

Прочитайте 403, перш ніж щось змінювати

Геоблок і блок WAF надходять обидва як 403 і виправляються в різних місцях. Збережіть заголовки відповіді та перший рядок тіла, бо CloudFront додає заголовок кешу та рядок причини, які кажуть, який рівень відповів:

curl -sS -o /tmp/body.txt -D /tmp/headers.txt https://d111111abcdef8.cloudfront.net/
grep -i "x-cache\|via" /tmp/headers.txt
head -c 300 /tmp/body.txt

Коли сама дистрибуція заблокувала запит через географію, у тілі є повідомлення із зазначенням країнового обмеження. Коли його заблокувало правило WAF, тіло зазвичай є загальною сторінкою заборони, а ідентифікатор запиту дистрибуції в заголовках — те, що ви несете до журналів WAF. Помилка тут відправляє вас до списку дозволених країн через проблему з правилом на основі частоти, а це день роботи, який не може завершитися успіхом.

Крок 1: підтвердьте, яку адресу бачить дистрибуція

Запитайте в мережі, що бачить зовнішній світ, з тієї самої машини і тим самим маршрутом, який використовує браузер, що не працює. curl -s https://checkip.amazonaws.com повертає публічну адресу того, хто викликає, яка для клієнта VPN є виходом, а не домашнім підключенням абонента:

curl -s https://checkip.amazonaws.com
nslookup d111111abcdef8.cloudfront.net

Якщо ця адреса належить виходу вашого провайдера в іншій країні, географічне рішення вже ухвалено, і ніщо на клієнті його не змінить. Запишіть адресу в тікет, перш ніж торкатися налаштування, бо це єдиний факт у звіті, з яким згодні і ви, і сервіс.

Крок 2: відокремте країну від репутації

CloudFront визначає місцезнаходження глядача з бази GeoIP третьої сторони, прив'язаної до адреси джерела запиту, і зіставлення є приблизним та регіональним, а не точним визначенням. Коли місцезнаходження визначити неможливо, документована поведінка за замовчуванням — усе одно віддати вміст. Отже, є три можливі стани: вихід зіставляється із заблокованою країною, із дозволеною країною, або база не має думки і запит проходить.

Користувач у заблокованій країні може виглядати як такий, що перебуває в дозволеній, якщо провайдер має там вихід, а користувач у дозволеній країні може бути заблокований, бо вихід зареєстрований в іншому місці. Жоден результат не доводить, що обмеження зламане. Обидва — це обмеження, що працює з тією адресою, яку йому дали, як описує документація CloudFront щодо географічних обмежень.

Репутація — друга вісь, і вона переживає тунель. Керована група правил AWS WAF для анонімних IP створена, щоб блокувати запити з VPN, проксі, вузлів Tor і хостинг-провайдерів, тому запит, що пройшов перевірку країни, все ще може бути відхилений через те, що це за адреса, а не де вона. Якщо блокування почалося, коли ви перенесли тунель на хмарний хост, це, ймовірно, той рівень.

Крок 3: перевірте поведінку квоти

Спільні виходи відмовляють третім способом. Обмеження частоти на IP і підрахунок сесій розглядають одну адресу як одного клієнта, а споживчий вихід несе багато абонентів одночасно, тому шаблон запитів, непомітний із домашнього підключення, з боку виходу виглядає як автоматизація. Симптом — тротлінг або тимчасове блокування, яке минає саме, а не географічне повідомлення про помилку.

Дистрибуція може також навмисно рахувати сесії на адресу, наприклад за допомогою функції Lambda@Edge, що пише в DynamoDB. Це не ідентифікує людину за виходом, але змушує одну адресу поводитися як один клієнт, що часто є справжньою метою. Зафіксуйте різні адреси за скаргою, перш ніж налаштовувати будь-який поріг, бо корпоративний NAT перед двомастами столами зовні виглядає точно як завантажений вихід. Очікуйте хибних спрацьовувань від корпоративного NAT, університетської мережі або великої родини, які всі подають одну адресу.

Подивіться на вибіркові запити WAF і метрики правил на основі частоти, перш ніж звинувачувати географію. Правило, що спрацьовує на обсяг запитів виходу, залишає чіткий підпис і підказує, чи є виправленням налаштування ліміту або інший вихідний шлях.

Що змінювати і в якому порядку

Спочатку вирішіть, для чого потрібен контроль. Підтримка регіонального каталогу, обмеження зловживань і виконання контракту — три різні цілі, і лише першу вирішує список країн. Якщо мета — контроль зловживань, вихід — неправильна одиниця ідентичності, і жодна кількість списків дозволів не зробить спільну адресу надійною.

Якщо для списку дозволів справді потрібна стабільна адреса, виділений або статичний вихід допомагає, бо адресу можна зареєструвати і вона не змінюється. Він не робить адресу житловою і не змінює країну, яку призначає їй база GeoIP. Перебирання виходів, доки один не запрацює, — це тимчасова зміна репутації, а не виправлення політики.

Потім запишіть результат тими термінами, які використав заявник: ця адреса заблокована за країною, за репутацією або за частотою, і ось контроль, який зміниться. Усе більш розпливчасте запрошує той самий тікет наступного тижня з іншим виходом.

Схожі статті