Tapatybė išnyksta iš veikiančios sąsajos ir pakeitimas atrodo baigtas. Po paslaugos paleidimo ji grįžta, o tai skaitoma taip, lyg WireGuard ignoruotų komandą. Tai, kas iš tikrųjų įvyko, paprasčiau: paleidimo konfigūracijoje peer vis dar yra.

Tą sąrašą laiko dvi būsenos. Atšaukimas tikras tik tada, kai abi jį praranda.

Ką wg set iš tikrųjų keičia

Komanda wg set wg0 peer <public-key> remove redaguoja veikiančią sąsają branduolyje. Ji nieko nerašo į diską. Konfigūracijos failas, NetworkManager profilis ar maršrutizatoriaus išsaugota būsena lieka nepaliesti. Tai dizainas, o ne klaida.

Šis atskyrimas sąmoningas, nes įrankis neturi supratimo, kam priklauso sąsaja. Vykdymo metu komanda turi būti saugi sąsajai, kurią valdo kažkas kitas. Ji negali atspėti, kur gyvena ilgalaikė kopija. Pasekmė lengvai pasakoma: šalinimas vykdymo metu iš prigimties yra laikinas.

Todėl peer grįžta per kitą paleidimą ir grįžta su savo pradiniais leidžiamais prefiksais. Viskas, kas per jį maršrutizuojama, taip pat sukuriama iš naujo. Taigi tariamai atšaukta tapatybė po perkrovimo gali pasiekti buvusias paskirties vietas. Niekas vykdymo metu išvestyje nieko neįspėjo.

Raskite rašantįjį prieš redaguodami failą

Sąsaja turi savininką. Tai gali būti wg-quick, skaitantis failą, NetworkManager, taikantis profilį, paties maršrutizatoriaus sąsajos konfigūracija ar konteinerio įėjimo taškas, kuris paleidžiant iš naujo sukuria sąsają. Failo, kurio savininkas niekada neskaito, redagavimas neduoda jokio ilgalaikio pakeitimo.

Pradėkite nuo veikiančios sąsajos ir nustatykite viešuosius raktus, nes vardai ir adresai yra silpnesni identifikatoriai už patį raktą. Tada palyginkite tą sąrašą su išsaugota konfigūracija, kurią savininkas tikrai skaito.

wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard

Gyva sąsaja, kurios peer sąrašas ir failo turinys nesutampa, yra visa diagnozė. Paleidimo metu laimi išsaugota konfigūracija, o vykdymo metu būsena pralaimi. Palyginkite juos prieš keisdami bet kurią.

SaveConfig spąstai

wg-quick prideda raukšlę, kuri pagauna failus redaguojančius rankomis. Kai SaveConfig įjungtas, jo dokumentuotas išjungimo elgesys užrašo dabartinę vykdymo metu būseną ant konfigūracijos failo.

Tai apverčia įprastą ilgaamžiškumo kryptį. Pašalinate peer iš failo, tada paslauga sustoja. Veikianti būsena užrašoma ant jūsų pakeitimo ir atkuria ką tik ištrintą peer.

Todėl tvarka svarbi: redaguokite failą, kol sąsaja išjungta, arba prieš redaguodami išjunkite SaveConfig, tada vėl pakelkite sąsają ir patvirtinkite, kas buvo įkelta. Rankinis pakeitimas, kai sąsaja įjungta, yra lenktynės su išjungimo įrašu.

Pakeiskite abi būsenas, tada perkraukite

Vykdymo metu pašalinkite peer pagal raktą. Išsaugotoje konfigūracijoje pašalinkite tą patį bloką per savininko palaikomą operaciją, o ne redaguodami aplink jį.

Tada peržiūrėkite, ką peer nešė. Maršrutizuotas tinklas, priklausęs atšauktai tapatybei, turėtų būti sąmoningai perskirstytas arba pašalintas, o ne tyliai paveldėtas to peer, kuris bus redaguojamas kitas.

Laikykite atkūrimo kelią atvirą, jei tarpinė įranga taip pat neša jūsų administracinę prieigą. Paleidimas iš naujo, pašalinantis ne tą peer, yra savo paties sukelta pertrauka. Tas pats galioja paleidimui, pašalinančiam ne tą maršrutą.

Kaip atrodo sėkmingas testas

Perkraukite arba paleiskite paslaugą iš naujo, tada vėl perskaitykite peer sąrašą. Senojo rakto turi nebūti, o peer, kuriuos norėjote pasilikti, turi likti ir veikti.

wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers

Kur situacija leidžia, patvirtinkite, kad sena tapatybė nebegali pasiekti savo buvusių išteklių. Tvarkingas sąsajos sąrašas prieš paleidimą iš naujo yra pusė testo. Kita pusė yra tai, ką tapatybė dar gali padaryti po to.

Jei koks nors valdytojas vis grąžina peer, nustokite kartoti žemo lygio šalinimą. Sutvarkykite sąrašą, kurį tas rašantysis skaito, nes iki tol kiekvienas paleidimas iš naujo yra dar vienas kvietimas tapatybei vėl pasirodyti.

Susiję straipsniai