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

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

Рукапоцісканне даказвае ключы, а не дастаўку

Рукапоцісканне WireGuard — гэта пагадненне аб ключах з аўтэнтыфікацыяй. Яно праходзіць, як толькі бакі могуць дасягнуць адзін аднаго і маюць сапраўдныя ключы. Маршрутызацыя, палітыка фаервола і само прызначэнне — пытанні, якіх рукапоцісканне ніколі не задае.

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

Адзін унутраны адрас — гэта ўвесь тэст

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

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

ip route get 10.30.8.10
ip -4 addr show wg0
ip route show table all | grep -w wg0

Адрас, які вырашаецца ў фізічны інтэрфейс, ужо адказаў на пытанне. Тунель нічога не адкідвае. Пакет ніколі не ўваходзіў у яго.

Лічыльнікі — гэта доказы, а не прысуд

wg show паведамляе пра байты, адпраўленыя і прынятыя для кожнага боку, і гэтыя два лікі рухаюцца незалежна. Зрабіце замер, выканайце адзін дазволены запыт, а затым зрабіце іншы замер у тую ж хвіліну.

wg show wg0 transfer
wg show wg0 latest-handshakes
ping -c 4 10.30.8.10
wg show wg0 transfer

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

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

Іншы бок сам правярае зваротны пакет

Далёкі бок прымае ўнутраны пакет толькі тады, калі крыніца трапляе ў allowedips гэтага боку. Маршруту, які існуе ў адпраўніка, недастаткова. Адсутны запіс крыніцы ў атрымальніка ціха адкідвае зваротны трафік.

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

Трымайце эксперымент сумленным

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

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

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

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