Пакіньце прыватныя маршруты і адкіньце перанакіраванне: раздзельны тунэль OpenVPN
Тунэль толькі для прыватных сетак патрабуе двух правілаў: прыватныя прэфіксы ідуць праз яго, звычайны прагляд захоўвае свой лакальны шлях. Выдаленне маршруту па змаўчанні — не палітыка.
Тунэль узнікае, праграма загружаецца, і тады ўсё астатняе на ноўтбуку пачынае паводзіць сябе дзіўна. Гэта звычайная форма палітыкі «толькі прыватнае», рэалізаванай выдаленнем аднаго радка. Выдаленне прасунутага маршруту па змаўчанні сапраўды змяняе кірунак трафіку, але не кажа, куды трафік павінен ісці замест гэтага, і зусім не закранае развязанне імёнаў. Палітыка патрабуе дзвюх станоўчых палов, перш чым яе можна будзе праверыць.
Выдаленне перанакіравання — гэта толькі палова змены
Перанакіраванне ўсяго тунэля і палітыка «толькі прыватнае» адрозніваюцца тым, што яны сцвярджаюць пра свет. Перанакіраванне сцвярджае кожны пункт прызначэння, а прыватная палітыка сцвярджае спіс і пакідае астатняе ў спакоі. Выдаленне сцвярджэння без напісання спісу стварае кліента, які не дасягае нічога па-за LAN, што выглядае як збой маршрутызацыі, а не як прабел у палітыцы. Напішыце спіс перад выдаленнем сцвярджэння, і парадак гэтых двух крокаў перастане мець значэнне.
Абедзве паловы — гэта патрабаванні, а не значэнні па змаўчанні. Прыватныя прэфіксы павінны ўваходзіць у тунэль, а звычайныя пункты прызначэння павінны захаваць шлях, які яны мелі да злучэння.
Калі арганізацыя патрабуе поўнага тунэля, нішто з гэтага не прымяняецца. Дызайн «толькі прыватнае» належыць разгортванням, дзе раздзельная маршрутызацыя ўхвалена.
pull-filter — гэта супадзенне, а не перамыкач
Дырэктыва pull-filter выдаляе прасунутыя параметры, імёны якіх супадаюць з прэфіксам, і гэта ўсё, што яна робіць. Ігнараванне перанакіравання пакідае кожны іншы прасунуты параметр на месцы, што звычайна і патрэбна: маршруты, налады DNS і значэнне шлюзу маршруту ўсё яшчэ прыходзяць. Яна таксама не можа выдаліць дырэктыву, запісаную ў лакальным профілі, бо фільтраванне датычыцца таго, што прасоўвае сервер.
Супраціўляйцеся спакусе ігнараваць кожны параметр, які пачынаецца з route. Гэты шаблон таксама адкідае прыватныя маршруты, патрэбныя злучэнню, і можа скінуць інфармацыю пра шлюз, ад якой залежыць тунэль.
route-nopull — гэта шырэйшае рашэнне, чым здаецца. Яно спыняе прыняцце кліентам прасунутых маршрутаў і параметраў у стылі DHCP як групы, што адрозніваецца ад фільтравання аднаго параметра.
Напішыце спіс маршрутаў ад праграмы вонкі
Пачніце з таго, што карыстальнік сапраўды адкрывае, затым дадайце дапаможныя часткі. Праграма на 10.60.20.15 мае на ўвазе сваю падсетку 10.60.0.0/16, а прыватнае імя мае на ўвазе развязальнік, які на яго адказвае. Такім чынам, карыстальніку, які папрасіў адну праграму, патрэбны два пункты прызначэння і адно рашэнне DNS. Усё за межамі гэтага спісу па-за абсягам па самой пабудове, і менавіта гэта робіць палітыку даступнай для агляду.
На серверы, які супрацоўнічае, гэта становяцца двума прасунутымі маршрутамі, і ні адзін з іх не з'яўляецца перанакіраваннем. Захавайце тапалогію тунэля і значэнні шлюзу маршруту, якія падае існуючая служба.
Калі гэтая палітыка патрэбна толькі некаторым карыстальнікам, ужывайце яе для кожнага кліента або групы. Змяняць маршрутызацыю ўсіх, каб выправіць патрабаванне адной каманды, — гэта шлях, якім раздзельны тунэль становіцца збоем.
| Destination | Intended path |
|---|---|
10.60.0.0/16 | Tunnel, for the approved application services |
10.61.0.53/32 | Tunnel, to reach the internal resolver |
corp.example queries | Internal resolver, selected per namespace |
| Everything else | Local path and local resolver |
Няхай DNS ідзе тым жа шляхам
Маршрут да развязальніка — не палітыка развязальніка. На кліенце systemd-resolved сэнсавы вынік — гэта дамен маршрутызацыі для прыватнай прасторы імёнаў, які паказвае на ўнутраны развязальнік, і менавіта гэта прымушае толькі гэтыя імёны ўжываць яго. Кліенту Windows патрэбны ўласны механізм палітыкі прастор імёнаў. Радок DNS-сервера ў профілі не ўсталёўвае ні адно з гэтага сам па сабе.
Правярайце тое, што выбрала аперацыйная сістэма, а не тое, што запытаў профіль. У Linux resolvectl status паказвае дамен і сервер для кожнага злучэння; у Windows эквівалентным доказам з'яўляецца табліца палітыкі прастор імёнаў.
Трымайце развязальнік дасягальным праз тунэль, інакш палітыка паказвае на адрас, які немагчыма запытаць. Адрас развязальніка, да якога тунэль не дасягае, ператварае працуючую палітыку ў тайм-аўт.
Праверце абедзве паловы пры перападлучэнні
Перападключыце кліента пасля змены і аглядзіце эфектыўны маршрут да прыватнага адраса і да публічнага. Затым развяжыце прыватнае імя і публічнае імя і пацвердзіце, што кожнае выкарыстала прызначаны развязальнік. Загрузка публічнага сайта даказвае толькі другую палову, і менавіта гэтая палова звычайна працуе выпадкова.
Запішыце гатовую палітыку адным сказам: гэтыя прэфіксы і імёны выкарыстоўваюць гэтае злучэнне, усё астатняе ідзе лакальным шляхам. Затым трымайце яе ў профілі, а не рамантуйце налады адаптара пасля кожнага ўваходу.