CloudFront-geoblokkering bak en VPN: diagnostiser utgangen
Edge-en avgjør ut fra adressen den ser, og en delt utgang endrer både land og omdømme. Test hver kontroll separat før du roterer utgangsnoder.
En geografisk begrensning er en beslutning om en IP-adresse, og en VPN endrer hvilken adresse tjenesten ser. Den ene setningen forklarer de fleste forvirrende rapportene som når en støttekø: «siden fungerer hjemme og feiler på tunnelen» og «siden fungerer på tunnelen, men ingen andre på kontoret kan laste den» er samme mekanisme med motsatte resultater. Denne runbooken går gjennom diagnosen i den rekkefølgen som utelukker årsaker, og starter med det edge-en faktisk fortalte deg. Samme utgangsadresse kan bestå én kontroll og feile den neste, fordi hver kontroll vurderer en annen egenskap ved den adressen.
Les 403-en før du endrer noe
En geoblokkering og en WAF-blokkering kommer begge som 403, og de rettes på forskjellige steder. Ta vare på svarhodene og den første linjen i kroppen, fordi CloudFront legger til et cache-hode og en årsakstreng som forteller hvilket lag som svarte:
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 distribusjonen selv blokkerte forespørselen på grunn av geografi, bærer kroppen en melding som navngir landbegrensningen. Når en WAF-regel blokkerte den, er kroppen vanligvis en generisk forbudt-side, og distribusjonens forespørsels-ID i hodene er det du tar med til WAF-loggene. Å ta feil her sender deg til landets allowlist for et problem med en hastighetsbasert regel, som er en dags arbeid som ikke kan lykkes.
Trinn 1: bekreft hvilken adresse distribusjonen ser
Spør nettverket hva omverdenen ser, fra samme maskin og samme rute som den feilende nettleseren bruker. curl -s https://checkip.amazonaws.com returnerer den kallendes offentlige adresse, som for en VPN-klient er utgangen fremfor abonnentens hjemmeforbindelse:
curl -s https://checkip.amazonaws.com
nslookup d111111abcdef8.cloudfront.net
Hvis den adressen tilhører tilbyderens utgang i et annet land, er den geografiske beslutningen allerede tatt, og ingenting på klienten vil endre den. Skriv adressen i saken før du rører en innstilling, fordi det er det eneste faktum i rapporten som du og tjenesten er enige om.
Trinn 2: skill land fra omdømme
CloudFront fastslår seerens plassering fra en tredjeparts GeoIP-database som er nøklet på forespørselens kildeadresse, og mappingen er omtrentlig og regional snarere enn en presis fastsettelse. Når plasseringen ikke kan bestemmes, er den dokumenterte standarden å levere innholdet. Derfor er det tre mulige tilstander: utgangen mapper til et blokkert land, til et tillatt land, eller databasen har ingen mening og forespørselen fortsetter.
En bruker i et blokkert land kan se ut til å være i et tillatt land hvis tilbyderen har en utgang der, og en bruker i et tillatt land kan bli blokkert fordi utgangen er registrert et annet sted. Ingen av utfallene beviser at begrensningen er ødelagt. Begge er begrensningen som virker på adressen den fikk, slik CloudFront-dokumentasjonen om geobegrensninger beskriver.
Omdømme er den andre aksen, og det overlever tunnelen. Den administrerte AWS WAF-regelgruppen for anonyme IP-er er bygget for å blokkere forespørsler fra VPN-er, proxyer, Tor-noder og hostingtilbydere, så en forespørsel som består landskontrollen kan fortsatt avvises på grunn av hva adressen er, ikke hvor den er. Hvis blokkeringen startet da du flyttet tunnelen til en skyvert, er dette sannsynligvis det laget.
Trinn 3: undersøk kvoteatferden
Delte utganger feiler på en tredje måte. Hastighetsgrenser per IP og sesjonstellinger behandler én adresse som én klient, og en forbrukerutgang bærer mange abonnenter samtidig, så et forespørselsmønster som er upåfallende fra en hjemmeforbindelse ser ut som automatisering fra utgangen. Symtomet er begrensning eller en midlertidig blokkering som forsvinner av seg selv, ikke en geografisk feilmelding.
En distribusjon kan også bevisst telle sesjoner per adresse, for eksempel med en Lambda@Edge-funksjon som skriver til DynamoDB. Det identifiserer ikke personen bak utgangen, men får én adresse til å oppføre seg som én klient, noe som ofte er den faktiske hensikten. Logg de forskjellige adressene bak en klage før du justerer en terskel, fordi en bedrifts-NAT foran to hundre skrivebord utenfra ser nøyaktig ut som en travel utgang. Forvent falske positive fra bedrifts-NAT, et universitetsnettverk eller en stor husholdning som alle presenterer én adresse.
Se på WAF-ens samplede forespørsler og hastighetsbaserte regelmetrikker før du klandrer geografien. En regel som utløses på utgangens forespørselsvolum etterlater en tydelig signatur, og den forteller deg også om rettelsen er en grensejustering eller en annen utgangsvei.
Hva du skal endre, og i hvilken rekkefølge
Bestem først hva kontrollen er til. Å opprettholde en regional katalog, begrense misbruk og håndheve en kontrakt er tre forskjellige mål, og bare det første håndteres av en landliste. Hvis målet er misbrukskontroll, er utgangen feil identitetsenhet, og ingen mengde allowlister vil gjøre en delt adresse pålitelig.
Hvis en stabil adresse virkelig trengs for en allowlist, hjelper en dedikert eller statisk utgang fordi adressen kan registreres og ikke roterer. Det gjør ikke adressen bolig, og det endrer ikke landet en GeoIP-database tildeler den. Å rotere utganger til én virker er en midlertidig omdømmeforandring, ikke en rettelse av policyen.
Skriv deretter resultatet med begrepene saksbehandleren brukte: denne adressen er blokkert etter land, etter omdømme eller etter hastighet, og dette er kontrollen som vil endres. Noe mer upresist inviterer samme sak igjen neste uke med en annen utgang.