Геаблакаванне CloudFront за VPN: дыягностыка выхаду
Край вырашае па адрасе, які бачыць, а агульны выхад мяняе і краіну, і рэпутацыю. Правярайце кожны кантроль асобна, перш чым мяняць вузлы выхаду.
Геаабмежаванне — гэта рашэнне пра 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 яму прызначае. Перабор выхадаў, пакуль адзін не спрацуе, — часовыя змены рэпутацыі, а не выпраўленне палітыкі.
Затым запішыце вынік у тых тэрмінах, якія ўжыў заяўнік: гэты адрас заблакаваны па краіне, па рэпутацыі або па частаце, і вось кантроль, які зменіцца. Усё больш расплывістае запрашае той жа тыкет на наступным тыдні з іншым выхадам.