AWS Client VPN з раздзеленым тунэлем: якія маршруты публікаваць
Раздзелены тунэль — гэта спіс маршрутаў, а не сцяжок. Вырашыце, куды ідзе інтэрнэт-трафік, якія прыватныя прэфіксы публікаваць і які рэзалвер выкарыстоўваць.
Кансоль прапануе перамыкач раздзеленага тунэлю, таму рашэнне здаецца простым сцяжком. Гэта не так. Да кліента фактычна даходзіць апублікаваны набор маршрутаў канчатковай кропкі, і менавіта гэты спіс вызначае, якія прыватныя прэфіксы ідуць праз тунэль, ці застаецца агульны інтэрнэт-трафік лакальным або выходзіць праз AWS, і з якім рэзалверам кліент яшчэ можа размаўляць. Тры пытанні вырашаюць праект, і на кожнае можна адказаць дрэнна, пакуль злучэнне ўсё яшчэ паспяховае.
Сцяжок раздзеленага тунэлю — не спіс прызначэнняў
AWS апісвае раздзелены тунэль як даданне маршрутаў канчатковай кропкі ў табліцу маршрутаў кліента пры ўсталяванні злучэння. Маршрут для прыватнай VPC абмяжоўвае тунэль гэтым прызначэннем; усё астатняе ідзе звычайным шляхам кліента. Маршрут па змаўчанні — гэта іншая інструкцыя з іншым эфектам, таму дакументацыя па раздзеленым тунэлі папярэджвае супраць публікацыі 0.0.0.0/0 на канчатковай кропцы, наладжанай для гэтага рэжыму: гэта хутчэй ламае злучэнне, чым пашырае яго. Табліца маршрутаў канчатковай кропкі — гэта палітыка, а табліца маршрутаў кліента — вынік, які можна агледзець.
Чытайце табліцу маршрутаў канчатковай кропкі і ўсталяваныя маршруты кліента разам. Этыкетка апісвае намер; маршруты апісваюць тое, што адбываецца.
Рашэнне першае: ці павінен агульны інтэрнэт-трафік заставацца лакальным?
Калі прагляд павінен выкарыстоўваць уласнае злучэнне карыстальніка, публікуйце толькі тыя прыватныя прызначэнні, якія патрэбны задачы, і спыніцеся на гэтым. Не дадавайце інтэрнэт-маршрут толькі таму, што падручнік па поўным тунэлі ўключыў яго, і не мяркуйце, што лішні маршрут паляпшае бяспеку. Ён змяняе шлях, не дадае палітыку і звычайна каштуе затрымкі, якую вы не планавалі.
Калі інтэрнэт-трафік павінен выходзіць праз AWS, пабудуйце дакументаваную архітэктуру інтэрнэт-доступу: маршрут канчатковай кропкі, правілы аўтарызацыі, шлях звязанай падсеткі, палітыку бяспекі і працоўны выхад уверх. Маршрут па змаўчанні сам па сабе не дае нічога з гэтага.
Рашэнне другое: якія прыватныя прэфіксы і з чыім дазволам?
Публікуйце найменшы набор прызначэнняў, які абслугоўвае рэальную працу, і праверце, што кожная звязаная падсетка можа маршрутызаваць да іх. Мэта маршруту канчатковай кропкі і маршрутызацыя VPC у падсетцы — розныя ўзроўні, і маршрут, які існуе ў адным, не з'яўляецца доказам пра другое. Аўтарызацыя зноў асобная: прызначэнне можа быць дасягальным і ўсё роўна адхіленым, бо група кліента не мае правіла, якое яго дазваляе.
Праверка аднаго паспяховага сеансу даказвае адзін шлях. Праверце кожную звязаную падсетку, бо сувязь падсеткі, дададзеная пазней, — менавіта тое месца, дзе звычайна хаваецца адсутны маршрут.
Калі прызначэнне павінна быць дасягальным па імені, звярніце ўвагу, што наступнае пытанне — пра развязанне імён, а не пра маршрут.
Рашэнне трэцяе: які рэзалвер ідзе за тунэлем?
Кліент можа атрымаць DNS-сервер, дасягальны толькі праз VPN, і гэты рэзалвер працуе, толькі калі яго адрас сам знаходзіцца ўнутры аўтарызаванага маршруту. Праверце абедзве паловы: адрас рэзалвера ідзе па апублікаваным маршруце, а сервер адказвае на імёны, якія запытвае праграма. Запыт, які ўдаецца па адрасе, але не па імені хоста, паказвае на іменаванне, а не на маршрутызацыю, і адладка тунэлю ў такім выпадку марнуе дзень.
Публічныя імёны павінны развязвацца так, як да злучэння, і гэта яшчэ адна прычына быць дакладнымі ў тым, што вы публікуеце.
Змяніце набор маршрутаў, затым праверце абодва светы
AWS піша, што змена маршрутаў на канчатковай кропцы з раздзеленым тунэлем скідае злучэнні кліента. Плануйце змену з гэтым улікам: ужывіце яе, перападключыцеся праз падтрыманы кліент і прачытайце ўсталяваныя маршруты нанова, замест таго каб давяраць стану, ужытаму да праўкі. Састарэлы ўжыты стан — самая частая прычына таго, што правільная змена выглядае зламанай.
Прымайце праект толькі тады, калі адзін прыватны рэсурс і адно публічнае прызначэнне паводзяць сябе як задумана, па імені і па адрасе, у тых сямействах адрасоў, якія вы сапраўды падтрымліваеце. Тунэль, які аўтэнтыфікуецца, — не тое ж самае, што тунэль, які правільна раздзяляе.
Запішыце спіс маршрутаў у runbook побач з абгрунтаваннем, каб наступны чалавек мог адрозніць наўмыснае выключэнне ад забытага.