O restricție geografică este o decizie despre o adresă IP, iar un VPN schimbă ce adresă vede serviciul. Acea singură frază explică majoritatea rapoartelor confuze care ajung într-o coadă de suport: „site-ul funcționează acasă și eșuează pe tunel” și „site-ul funcționează pe tunel, dar nimeni altcineva din birou nu îl poate încărca” sunt același mecanism producând rezultate opuse. Acest ghid parcurge diagnosticul în ordinea care elimină cauzele, începând cu ce v-a spus de fapt marginea. Aceeași adresă de ieșire poate trece un control și poate eșua la următorul, pentru că fiecare control evaluează o proprietate diferită a acelei adrese.

Citiți 403 înainte de a schimba ceva

Un blocaj geografic și un blocaj WAF ajung amândouă ca 403, și se repară în locuri diferite. Capturați antetele răspunsului și prima linie a corpului, pentru că CloudFront include un antet de cache și un șir de motiv care vă spun ce strat a răspuns:

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

Când distribuția însăși a blocat cererea din cauza geografiei, corpul poartă un mesaj care numește restricția de țară. Când a blocat-o o regulă WAF, corpul este de obicei o pagină generică de interzis, iar ID-ul cererii distribuției din antete este ceea ce duceți la jurnalele WAF. O greșeală aici vă trimite la lista țărilor permise pentru o problemă de regulă bazată pe rată, ceea ce este o zi de muncă ce nu poate reuși.

Pasul 1: confirmați ce adresă vede distribuția

Întrebați rețeaua ce vede lumea exterioară, de pe aceeași mașină și pe aceeași rută pe care o folosește browserul care eșuează. curl -s https://checkip.amazonaws.com returnează adresa publică a apelantului, care pentru un client VPN este ieșirea, nu conexiunea de acasă a abonatului:

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

Dacă acea adresă aparține ieșirii furnizorului dvs. într-o altă țară, decizia geografică a fost deja luată și nimic de pe client nu o va schimba. Scrieți adresa în tichet înainte de a atinge o setare, pentru că este singurul fapt din raport asupra căruia dvs. și serviciul sunteți de acord.

Pasul 2: separați țara de reputație

CloudFront determină locația spectatorului dintr-o bază de date GeoIP terță bazată pe adresa sursă a cererii, iar maparea este aproximativă și regională, nu o determinare precisă. Când locația nu poate fi determinată, valoarea implicită documentată este să se servească totuși conținutul. Există deci trei stări posibile: ieșirea este mapată pe o țară blocată, pe o țară permisă, sau baza de date nu are o opinie și cererea continuă.

Un utilizator dintr-o țară blocată poate părea că este într-una permisă dacă furnizorul are o ieșire acolo, iar un utilizator dintr-o țară permisă poate fi blocat pentru că ieșirea este înregistrată în altă parte. Niciunul dintre rezultate nu dovedește că restricția este stricată. Ambele sunt restricția care acționează asupra adresei care i-a fost dată, cum descrie documentația CloudFront privind restricțiile geografice.

Reputația este a doua axă și supraviețuiește tunelului. Grupul de reguli gestionate AWS WAF pentru IP-uri anonime este construit să blocheze cereri de la VPN-uri, proxy-uri, noduri Tor și furnizori de găzduire, așa că o cerere care trece verificarea țării poate fi totuși refuzată din cauza a ceea ce este adresa, nu a unde se află. Dacă blocarea a început când ați mutat tunelul pe un gazdă din cloud, acesta este probabil stratul.

Pasul 3: verificați comportamentul cotei

Ieșirile partajate eșuează într-un al treilea mod. Limitele de rată pe IP și numărările de sesiuni tratează o adresă ca un singur client, iar o ieșire de consumator transportă mulți abonați deodată, așa că un model de cereri banal de pe o conexiune de acasă pare automatizare văzut din ieșire. Simptomul este limitarea sau un blocaj temporar care dispare singur, nu un mesaj de eroare geografică.

O distribuție poate număra sesiuni pe adresă și intenționat, de exemplu cu o funcție Lambda@Edge care scrie în DynamoDB. Aceasta nu identifică persoana din spatele ieșirii, dar face o adresă să se comporte ca un singur client, ceea ce este adesea intenția reală. Înregistrați adresele distincte din spatele unei plângeri înainte de a regla orice prag, pentru că un NAT corporativ în fața a două sute de birouri arată exact ca o ieșire aglomerată din exterior. Așteptați-vă la pozitive false de la NAT corporativ, o rețea universitară sau o gospodărie mare care toate prezintă o singură adresă.

Uitați-vă la cererile eșantionate ale WAF și la valorile regulilor bazate pe rată înainte de a da vina pe geografie. O regulă care se declanșează pe volumul de cereri al ieșirii lasă o semnătură clară și vă spune și dacă remedierea este o ajustare de limită sau o altă cale de ieșire.

Ce trebuie schimbat și în ce ordine

Mai întâi decideți pentru ce este controlul. Menținerea unui catalog regional, limitarea abuzurilor și impunerea unui contract sunt trei obiective diferite, iar doar primul este abordat de o listă de țări. Dacă obiectivul este controlul abuzurilor, ieșirea este unitatea de identitate greșită, iar nicio cantitate de liste permise nu va face o adresă partajată de încredere.

Dacă este cu adevărat nevoie de o adresă stabilă pentru o listă permisă, o ieșire dedicată sau statică ajută pentru că adresa poate fi înregistrată și nu se rotește. Nu face adresa rezidențială și nu schimbă țara pe care i-o atribuie o bază de date GeoIP. Rotirea ieșirilor până când una funcționează este o schimbare temporară de reputație, nu o remediere a politicii.

Apoi scrieți rezultatul în termenii folosiți de solicitant: această adresă este blocată după țară, reputație sau rată, și acesta este controlul care se va schimba. Orice formulare mai vagă invită același tichet săptămâna viitoare cu o altă ieșire.

Articole similare