De ce un peer WireGuard șters revine după o repornire
Două stări țin lista de peers: interfața în execuție și ceea ce o scrie la pornire. Eliminați-l din ambele și verificați SaveConfig înainte de a modifica ceva.
Identitatea dispare din interfața în execuție, iar modificarea pare terminată. După ce serviciul repornește, ea revine, ceea ce se citește ca și cum WireGuard ar ignora comanda. Ce s-a întâmplat de fapt este mai simplu: configurația de pornire conține încă peer-ul.
Două stări țin acea listă. Revocarea este reală doar când ambele o pierd.
Ce schimbă de fapt wg set
Comanda wg set wg0 peer <public-key> remove editează interfața în execuție din kernel. Nu scrie nimic pe disc. Fișierul de configurare, profilul NetworkManager sau starea salvată a routerului rămân neatinse. Acesta este designul, nu un defect.
Separarea este intenționată, pentru că instrumentul nu are habar cine deține interfața. O comandă în timpul execuției trebuie să fie sigură pe o interfață administrată de altceva. Nu poate ghici unde locuiește copia durabilă. Consecința este ușor de spus: o eliminare în timpul execuției este temporară prin construcție.
Așa că peer-ul revine la următoarea repornire și revine cu prefixele sale permise originale. Tot ce este rutat prin el este recreat la fel. O identitate presupus revocată poate deci ajunge la destinațiile sale anterioare după o reîncărcare. Nimic din ieșirea în timpul execuției nu avertizase pe nimeni.
Găsiți scriitorul înainte de a edita un fișier
Interfața are un proprietar. Poate fi wg-quick care citește un fișier, NetworkManager care aplică un profil, configurația de interfață a routerului însuși sau un punct de intrare de container care recreează interfața la pornire. Editarea unui fișier pe care proprietarul nu îl citește niciodată nu produce nicio schimbare persistentă.
Începeți de la interfața în execuție și identificați cheile publice, pentru că numele și adresele sunt identificatori mai slabi decât cheia însăși. Apoi comparați acea listă cu configurația salvată pe care proprietarul o citește cu adevărat.
wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard
O interfață activă a cărei listă de peers și conținut al fișierului nu coincid este întregul diagnostic. Configurația salvată câștigă la pornire, iar starea din timpul execuției pierde. Comparați-le înainte de a schimba vreuna.
Capcana SaveConfig
wg-quick adaugă o cută care prinde oamenii care editează fișiere de mână. Cu SaveConfig activat, comportamentul său documentat la oprire scrie starea curentă din timpul execuției peste fișierul de configurare.
Asta inversează direcția obișnuită a persistenței. Eliminați un peer din fișier, apoi serviciul se oprește. Starea în execuție este scrisă peste modificarea dumneavoastră și restaurează peer-ul tocmai șters.
De aceea ordinea contează: editați fișierul cu interfața oprită, sau dezactivați SaveConfig înainte de editare, apoi ridicați interfața din nou și confirmați ce s-a încărcat. O editare de mână cu interfața pornită este o cursă cu scrierea de la oprire.
Schimbați ambele stări, apoi reîncărcați
În timpul execuției, eliminați peer-ul după cheie. În configurația salvată, eliminați același bloc prin operația suportată a proprietarului, în loc să editați în jurul lui.
Apoi revedeți ce transporta peer-ul. O rețea rutată care aparținea identității revocate ar trebui reatribuită în mod deliberat sau eliminată, nu moștenită în tăcere de peer-ul care va fi editat următorul.
Țineți deschisă o cale de recuperare dacă gateway-ul transportă și accesul dumneavoastră administrativ. O repornire care elimină peer-ul greșit este o întrerupere auto-provocate. Același lucru este valabil pentru o repornire care elimină ruta greșită.
Cum arată un test trecut
Reîncărcați sau reporniți serviciul, apoi citiți din nou lista de peers. Cheia veche trebuie să lipsească, iar peer-ii pe care voiați să-i păstrați trebuie să fie în continuare prezenți și funcționali.
wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers
Unde situația permite, confirmați că identitatea veche nu mai ajunge la resursele sale anterioare. O listă de interfață ordonată înainte de repornire este jumătate din test. Cealaltă jumătate este ce mai poate face identitatea după aceea.
Dacă un manager continuă să restaureze peer-ul, opriți repetarea eliminării de nivel scăzut. Reparați inventarul pe care îl citește acel scriitor, pentru că până atunci fiecare repornire este o altă invitație pentru identitate să reapară.