En geografisk begrænsning er en beslutning om en IP-adresse, og en VPN ændrer, hvilken adresse tjenesten ser. Den ene sætning forklarer de fleste forvirrende rapporter, der når en supportkø: »siden virker derhjemme og fejler på tunnelen« og »siden virker på tunnelen, men ingen andre på kontoret kan indlæse den« er den samme mekanisme med modsatte resultater. Denne runbook gennemgår diagnosen i den rækkefølge, der udelukker årsager, startende med hvad edge'en faktisk fortalte dig. Den samme udgangsadresse kan bestå én kontrol og fejle den næste, fordi hver kontrol vurderer en anden egenskab ved den adresse.

Læs 403'eren, før du ændrer noget

En geoblokering og en WAF-blokering kommer begge som 403, og de rettes forskellige steder. Gem svarets headere og den første linje af bodyen, fordi CloudFront tilføjer en cache-header og en årsagstekst, der fortæller, hvilket lag der svarede:

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

Når distributionen selv blokerede anmodningen på grund af geografi, bærer bodyen en besked, der navngiver landebegrænsningen. Når en WAF-regel blokerede den, er bodyen normalt en generisk forbudt-side, og distributionens anmodnings-id i headerne er det, du tager med til WAF-loggen. At tage fejl her sender dig til landets allowlist for et problem med en hastighedsbaseret regel, hvilket er en dags arbejde, der ikke kan lykkes.

Trin 1: bekræft, hvilken adresse distributionen ser

Spørg netværket, hvad omverdenen ser, fra den samme maskine og den samme rute, som den fejlende browser bruger. curl -s https://checkip.amazonaws.com returnerer den kaldendes offentlige adresse, som for en VPN-klient er udgangen frem for abonnentens hjemmeforbindelse:

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

Hvis den adresse tilhører din udbyders udgang i et andet land, er den geografiske beslutning allerede truffet, og intet på klienten vil ændre det. Skriv adressen i sagen, før du rører en indstilling, fordi det er det eneste faktum i rapporten, som du og tjenesten er enige om.

Trin 2: adskil land fra omdømme

CloudFront fastslår seerens placering ud fra en tredjeparts GeoIP-database, der er nøglet på anmodningens kildeadresse, og mappingen er omtrentlig og regional snarere end en præcis fastlæggelse. Når placeringen ikke kan bestemmes, er den dokumenterede standard at levere indholdet. Der er altså tre mulige tilstande: udgangen mapper til et blokeret land, til et tilladt land, eller databasen har ingen mening, og anmodningen fortsætter.

En bruger i et blokeret land kan se ud til at være i et tilladt land, hvis udbyderen har en udgang der, og en bruger i et tilladt land kan blive blokeret, fordi udgangen er registreret andre steder. Ingen af udfaldene beviser, at begrænsningen er brudt. Begge er begrænsningen, der virker på den adresse, den fik, som CloudFront-dokumentationen om geobegrænsninger beskriver.

Omdømme er den anden akse, og det overlever tunnelen. Den administrerede AWS WAF-regelgruppe for anonyme IP'er er bygget til at blokere anmodninger fra VPN'er, proxyer, Tor-noder og hostingudbydere, så en anmodning, der består landekontrollen, kan stadig afvises på grund af, hvad adressen er, ikke hvor den er. Hvis blokeringen begyndte, da du flyttede tunnelen til en cloud-host, er det sandsynligvis det lag.

Trin 3: undersøg kvoteadfærden

Delte udgange fejler på en tredje måde. Hastighedsgrænser pr. IP og sessionstal behandler én adresse som én klient, og en forbrugerudgang bærer mange abonnenter på én gang, så et anmodningsmønster, der er upåfaldende fra en hjemmeforbindelse, ser ud som automatisering fra udgangen. Symptomet er begrænsning eller en midlertidig blokering, der forsvinder af sig selv, ikke en geografisk fejlmeddelelse.

En distribution kan også bevidst tælle sessioner pr. adresse, for eksempel med en Lambda@Edge-funktion, der skriver til DynamoDB. Det identificerer ikke personen bag udgangen, men det får én adresse til at opføre sig som én klient, hvilket ofte er den faktiske hensigt. Log de forskellige adresser bag en klage, før du justerer en tærskel, fordi en virksomheds-NAT foran to hundrede skriveborde udefra ser præcis ud som en travl udgang. Forvent falske positiver fra virksomheds-NAT, et universitetsnetværk eller en stor husstand, der alle præsenterer én adresse.

Se på WAF's samplede anmodninger og hastighedsbaserede regelmetrikker, før du bebrejder geografien. En regel, der udløses på udgangens anmodningsvolumen, efterlader en klar signatur, og den fortæller dig også, om rettelsen er en grænsejustering eller en anden udgangsvej.

Hvad du skal ændre, og i hvilken rækkefølge

Beslut først, hvad kontrollen er til. At opretholde et regionalt katalog, begrænse misbrug og håndhæve en kontrakt er tre forskellige mål, og kun det første håndteres af en landeliste. Hvis målet er misbrugskontrol, er udgangen den forkerte identitetsenhed, og ingen mængde allowlister vil gøre en delt adresse troværdig.

Hvis der virkelig er brug for en stabil adresse til en allowlist, hjælper en dedikeret eller statisk udgang, fordi adressen kan registreres og ikke roterer. Det gør ikke adressen bolig, og det ændrer ikke det land, en GeoIP-database tildeler den. At rotere udgange, indtil én virker, er en midlertidig omdømmeforandring, ikke en rettelse af politikken.

Skriv derefter resultatet med de termer, anmoderen brugte: denne adresse er blokeret efter land, efter omdømme eller efter hastighed, og dette er den kontrol, der vil ændre sig. Alt mere upræcist inviterer den samme sag igen i næste uge med en anden udgang.

Relaterede artikler