Ці гатовы WireGuard да прамысловай эксплуатацыі? Адказ не ў пратаколе
Гатоўнасць — гэта пра шлях UDP, валоданне ключамі і суправаджэнне пакета, а не пра рукапацісканне. Чатыры брамы вырашаюць, ці сапраўды гатовае вашае разгортванне.
Людзі пытаюцца, ці гатовы WireGuard да прамысловай эксплуатацыі; гэта гучыць як пытанне пра крыптаграфію, а насамрэч гэта пытанне пра вашае асяроддзе. Пратакол разглядалі шмат гадоў; разгортванню ўсё яшчэ трэба адказаць, ці перадаюць вашыя сеткі яго транспарт, хто рэгіструе і выводзіць прылады і хто ставіць латкі на пакет з абодвух бакоў. Гэтыя адказы розныя для двух сервераў у адной стойцы і тысячы ноўтбукаў. Пратакол у абодвух выпадках адзін і той жа; аперацыі — не.
Пытанне за пытаннем
Звычайна людзі хочуць ведаць, ці могуць яны ўзяць на сябе дызайн, які не паставіць іх у няёмкае становішча праз шэсць месяцаў. Гэта пытанне разгортвання з чатырох частак, і кожная частка можа праваліцца незалежна ад іншых. Добрыя адказы на тры з іх не кампенсуюць чацвёртую.
Старое папярэджанне пра папярэднюю зборку — гэта факт пра тую зборку, а не пастаянная этыкетка на кожным пазнейшым пакеце. Гэтак жа ні адзін пост у блогу не можа абвясціць гатовай вашу канкрэтную камбінацыю ядра, кліента, сеткі і персаналу. Праца ў тым, каб зрабіць камбінацыю яснай і праверыць яе.
Стаўцеся да гатоўнасці як да набору брам, якія вы альбо праходзіце, альбо запісваеце як адкрытыя. Гэта ператварае спрэчку ў кантрольны спіс з адказнымі. Гэта таксама робіць адкрытыя пункты бачнымі для таго, хто падпісвае, а не пахаванымі ў справаздачы пра пілот.
Брама першая: шлях павінен несці UDP
WireGuard перадае свой трафік праз UDP і дакументуе, што ён не прадастаўляе рэжыму TCP або маскіроўкі трафіку. Дызайн, які разлічвае на тое, што трафік будзе выглядаць як звычайны вэб-трафік, або на змену порта дзеля атрымання паводзін TCP, грунтуецца на здагадцы, якую праграма не падтрымлівае.
Таму першая брама — гэта агляд, а не тэст на адной машыне. Пералічыце асяроддзі доступу, у якіх вашыя карыстальнікі сапраўды працуюць, затым праверце зацверджаны шлях UDP у кожным з іх і вырашыце, што адбываецца, калі ён недаступны.
Злучэнне, якое працуе з офіса, нічога не даказвае пра сетку гасцініцы, універсітэцкі файрвол ці мабільнага аператара, які апрацоўвае UDP інакш. Менавіта праз гэтыя асяроддзі разгортванні выдаленага доступу правальваюцца пасля паспяховага пілота. Пілот не быў памылковым; ён быў вузкім. Пашырэнне яго і ёсць брама.
Запішыце і рэзервовы варыянт. Калі адказ у тым, што рэзервовага варыянта няма, гэта рашэнне варта заявіць загадзя, а не выяўляць у час камандзіроўкі.
Брама другая: нехта павінен валодаць ключамі
Піры WireGuard аўтэнтыфікуюцца ключамі, адна пара на ўдзельніка. Гэта проста апісаць і патрабавальна эксплутаваць, бо нішто ў пратаколе не рэгіструе прыладу, не адсочвае, у каго які ключ, і не выдаляе доступ, калі ноўтбук згублены. Пратакол мяркуе, што ключы ўжо правільныя, а правільнасць — гэта чыясьці праца.
Назвіце чалавека, які рэгіструе прыладу, запіс, які звязвае публічны ключ з чалавекам і прыладай, і працэдуру выдалення. Калі выдаленне залежыць ад таго, ці памятаеце вы, дзе былі ўсталяваныя копіі файла канфігурацыі, працэдура не завершана.
Выберыце адну прыладу падчас пілота і выведзіце яе цалкам. Гэтае практыкаванне дае больш карысную інфармацыю, чым чарговы тэст злучэння, бо выяўляе прагалы ў вашых запісах.
Брама трэцяя: пакет патрабуе суправаджальніка
WireGuard можа пастаўляцца як рэалізацыя ў ядры, як пакет дыстрыбутыва або як кліент у прасторы карыстальніка, і кожны мае свой шлях абнаўлення. Аперацыйнае пытанне: які з іх вы запускаеце, адкуль ён узяўся і хто ўжывае бюлетэнь бяспекі.
Мы выкарыстоўваем WireGuard — гэта не інвентарызацыя. Яна не вызначае пакет, які трэба латаць, версію на шлюзе або чалавека, які можа адкаціць дрэннае абнаўленне.
Брама чацвёртая: прымайце нагрузку, а не рукапацісканне
Крытэрыі прыёмкі павінны апісваць тое, што робяць карыстальнікі. Дасягненне ўнутранай праграмы, развязанне яе прыватнага імені, адмова ў недазволеным пункце прызначэння і выкананне вызначаных паводзін, калі тунель не працуе, — усё гэта назіральнае, і паспяховае рукапацісканне не адносіцца да іх.
Прагоньце гэтыя праверкі праз змену сеткі, перазапуск прылады і акно абслугоўвання шлюза, бо менавіта на гэтых пераходах разгортванні ламаюцца.
Трымайце доказы побач з крытэрыямі, уключаючы лакальны стан, які іх стварыў:
wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1
Зялёны тэст у ціхай сетцы з адным ноўтбукам — гэта пачатковае назіранне. Гэта не заява пра надзейнасць, і стаўленне да яго як да такой — гэта шлях, якім працуючы дызайн становіцца дызайнам, якому давяраюць.