Прайдзіце гэтыя праверкі па парадку і спыніцеся на першай, якая не пройдзе, бо кожны адказ змяняе сэнс наступнага кроку. Сапраўднае пытанне вузкае: ці ідзе звычайны HTTP у сетцы ZeroTier адкрытым праз інтэрнэт? Паміж двума вузламі ZeroTier звычайна не, бо накладзеная сетка шыфруе гэты пераход. Але гэта сцвярджэнне пра два канцавыя пункты, а не пра кожны сегмент, які перасякае запыт. Маршрутызатар, мост або зваротны проксі пераносіць канцавы пункт, і адкрыты тэкст аднаўляецца па іншы бок ад яго.

Праверка 1: знайдзіце адрас, да якога звяртаецца браўзер

Параўнайце URL з тым, што машына фактычна мае. ip -brief addr show паказвае інтэрфейс zt і адрас накладзенай сеткі, які прызначыў кантролер сеткі; калі URL выкарыстоўвае гэты адрас, сокет браўзера ідзе ў накладзеную сетку.

Калі ж імя замест гэтага развязаецца ў адрас LAN, накладзеная сетка можа быць зусім не задзейнічаная, што б ні падказваў індыкатар стану кліента. ip route get 10.147.20.5 друкуе інтэрфейс і адрас крыніцы, які выбера ядро, таму інтэрфейс zt там азначае, што пакет уваходзіць у накладзеную сетку, а імя вашай фізічнай сеткавай карты азначае, што не. Імёны дадаюць яшчэ адзін пласт: запіс, які паказвае на адрас накладзенай сеткі, паводзіць сябе інакш, чым запіс, які паказвае на адрас LAN, а пошукавы суфікс або запіс у файле hosts могуць ціха вырашыць, які з іх вы атрымаеце.

Праверка 2: пераканайцеся, што абодва канцы — гэта вузлы, а не разшыфроўваючы рэтранслятар

ZeroTier шыфруе паміж вузламі, і там, дзе няма прамога шляху, пакеты перадаюцца праз корань, які перасылае іх усё яшчэ зашыфраванымі. zerotier-cli peers пазначае шлях кожнага вузла як DIRECT або RELAY з паказчыкам затрымкі. Перададзены шлях каштуе кругавых паездак, а не канфідэнцыяльнасці.

Што сапраўды змяняе адказ, дык гэта ўдзельнік, які не з'яўляецца сапраўдным канцавым пунктам. Калі той бок — гэта ўдзельнік ZeroTier, які маршрутызуе або мастуе ў фізічную LAN, накладзеная сетка сканчаецца на гэтым удзельніку, а наступны пераход — звычайны Ethernet.

Праверка 3: глядзіце, дзе запыт робіцца чытэльным

На хосте, які, на вашу думку, аддае старонку, перахапіце інтэрфейс накладзенай сеткі, пакуль перазагружаеце: sudo tcpdump -i ztxxxxxxx -A -c 5 'tcp port 80'. Чытэльны радок запыту ў гэтым вывадзе даказвае, што трафік прыйшоў расшыфраваным на гэты хост, а гэта і ёсць мяжа, якую вы шукаеце.

Затым перахапіце на інтэрфейсе, які глядзіць на астатнюю LAN. Калі той жа запыт з'явіцца там адкрытым, ён пакінуў накладзеную сетку яшчэ да таго, як дасягнуў праграмы, і кожная прылада ў гэтым сегменце можа яго прачытаць. Калі ж на баку LAN нічога не з'яўляецца, а старонка ўсё яшчэ загружаецца, праграма завяршаецца на самім хосце ZeroTier.

Перахоп loopback таксама мае значэнне, калі наперадзе стаіць зваротны проксі, бо проксі, які прымае HTTPS і перадае HTTP, пераносіць мяжу на ўласны бэкэнд.

Праверка 4: улічыце кожны пераход за маршрутызатарам або мостам

Удзельнік, наладжаны маршрутызаваць паміж накладзенай сеткай і LAN, — звычайная канструкцыя і месца, дзе большасць гэтых здагадак ламаецца. Накладзеная сетка абараняе ўчастак ад браўзера да маршрутызатара і нічога пасля яго. Мост расказвае тую ж гісторыю іншым механізмам: накладзеная сетка і фізічны сегмент становяцца адным шырокавяшчальным даменам, таму запыт з падлучанага праз мост ноўтбука ідзе па звычайным Ethernet, нават калі гэты ноўтбук знаходзіцца ў сетцы ZeroTier.

Прасочыце гэта замест таго, каб меркаваць. traceroute ад кліента да адраса службы плюс табліца маршрутызацыі на шлюзавым удзельніку пакажуць, ці апошні пераход — zt або eth.

ZeroTier таксама прапануе рэжым давераных шляхоў, які можа адмовіцца ад бяспекі транспарту на вызначаных лакальных шляхах дзеля прадукцыйнасці. Сетка, якая яго выкарыстоўвае, не атрымлівае ў спадчыну звычайную здагадку пра зашыфраваны шлях, таму прачытайце канфігурацыю сеткі, перш чым спасылацца на яе. Дакументацыя пратакола апісвае і шыфраванне паміж вузламі, і гэта выключэнне.

Праверка 5: вырашыце, што яшчэ павінна зрабіць праграма

Членства ў накладзенай сетцы аўтэнтыфікуе прыладу ў сетцы і нічога не кажа пра тое, ці служба на тым баку — тая, да якой вы хацелі дабрацца. HTTPS адказвае на іншае пытанне, прывязваючы імя хоста да ключа, таму дзве аховы перасякаюцца, не замяняючы адна адну. Аўтарызаваны вузел можа быць не той службай, а скампраметаваны канцавы пункт чытае запыт і да шыфравання, і пасля расшыфроўкі. Ні адзін з механізмаў не аўдытуе тое, што запісвае праграма.

Для ўсяго, што мае паўторна выкарыстоўваемую сесію або пароль, завяршайце TLS у праграме або ў проксі, які вы кантралюеце, і пакідайце праверку сертыфіката ўключанай. Там, дзе старая служба павінна заставацца на звычайным HTTP, запішыце дакладны шлях ад хоста да хоста, які яна можа выкарыстоўваць, хто можа да яе дабрацца і які сегмент застаецца неабароненым; гэтая нататка — тое, што патрэбна будучаму рэцэнзенту.

"VPN падключаны" — гэта не ацэнка нічога з гэтага. Сумленная версія называе абодва канцавыя пункты, шлях паміж імі і першы пераход, які не пакрыты.

Трымайце вывад перахопу і спіс вузлоў побач з дакументацыяй службы, каб той, хто зменіць маршрут або дадасць мост, бачыў, якую здагадку ён вось-вось зламае.

Падобныя артыкулы