Identitet nestaje iz aktivnog sučelja i promjena izgleda dovršena. Nakon što se servis restartira, vraća se, što izgleda kao da WireGuard zanemaruje naredbu. Ono što se zapravo dogodilo jednostavnije je: konfiguracija pri podizanju još uvijek sadrži peer.

Dva stanja drže taj popis. Opoziv je stvaran samo kada ga izgube oba.

Što wg set zapravo mijenja

Naredba wg set wg0 peer <public-key> remove mijenja aktivno sučelje u kernelu. Ne zapisuje ništa na disk. Konfiguracijska datoteka, NetworkManager profil ili spremljeno stanje usmjerivača ostaju netaknuti. To je dizajn, a ne greška.

To je razdvajanje namjerno, jer alat nema pojma tko posjeduje sučelje. Naredba tijekom rada mora biti sigurna za sučelje kojim upravlja nešto drugo. Ne može pogoditi gdje živi trajna kopija. Posljedica je lako izreći: uklanjanje tijekom rada po konstrukciji je privremeno.

Zato se peer vraća pri sljedećem restartu i vraća se sa svojim izvornim dopuštenim prefiksima. Sve što se usmjerava kroz njega također se ponovno stvara. Tako navodno opozvani identitet nakon ponovnog učitavanja može doći do svojih bivših odredišta. Ništa u izlazu tijekom rada nikoga nije upozorilo.

Nađite onoga koji zapisuje prije nego uredite datoteku

Sučelje ima vlasnika. To može biti wg-quick koji čita datoteku, NetworkManager koji primjenjuje profil, vlastita konfiguracija sučelja usmjerivača ili ulazna točka kontejnera koja ponovno stvara sučelje pri pokretanju. Uređivanje datoteke koju vlasnik nikada ne čita ne daje nikakvu trajnu promjenu.

Počnite od aktivnog sučelja i identificirajte javne ključeve, jer su imena i adrese slabiji identifikatori od samog ključa. Zatim usporedite taj popis sa spremljenom konfiguracijom koju vlasnik zaista čita.

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

Živo sučelje čiji se popis peerova i sadržaj datoteke ne slažu jest cijela dijagnoza. Spremljena konfiguracija pobjeđuje pri podizanju, a stanje tijekom rada gubi. Usporedite ih prije nego promijenite bilo koje od njih.

Zamka SaveConfig

wg-quick dodaje nabor koji hvata ljude koji datoteke uređuju ručno. Kada je SaveConfig omogućen, njegovo dokumentirano ponašanje pri gašenju zapisuje trenutno stanje tijekom rada preko konfiguracijske datoteke.

To obrće uobičajeni smjer trajnosti. Uklonite peer iz datoteke, a zatim se servis zaustavi. Aktivno stanje se zapisuje preko vaše izmjene i vraća peer koji ste upravo izbrisali.

Zato je redoslijed važan: uredite datoteku dok je sučelje ugašeno, ili onemogućite SaveConfig prije uređivanja, pa zatim podignite sučelje i potvrdite što je učitano. Ručna izmjena dok je sučelje podignuto jest utrka sa zapisom pri gašenju.

Promijenite oba stanja, pa ponovno učitajte

Tijekom rada uklonite peer po ključu. U spremljenoj konfiguraciji uklonite isti blok kroz vlasnikovu podržanu operaciju, umjesto uređivanjem oko njega.

Zatim pregledajte što je peer nosio. Usmjerena mreža koja je pripadala opozvanom identitetu treba biti svjesno preraspoređena ili uklonjena, a ne tiho naslijeđena od strane peera koji bude uređivan sljedeći.

Držite put oporavka otvorenim ako gateway nosi i vaš administrativni pristup. Restart koji ukloni pogrešan peer jest prekid koji ste sami sebi priredili. Isto vrijedi i za restart koji ukloni pogrešnu rutu.

Kako izgleda uspješan test

Ponovno učitajte ili restartajte servis, pa ponovno pročitajte popis peerova. Stari ključ mora biti odsutan, a peerovi koje ste htjeli zadržati moraju i dalje biti prisutni i raditi.

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

Gdje situacija dopušta, potvrdite da stari identitet više ne dolazi do svojih bivših resursa. Uredan popis sučelja prije restarta je pola testa. Druga polovina je ono što identitet nakon toga još može učiniti.

Ako neki upravitelj stalno vraća peer, prestanite ponavljati uklanjanje na niskoj razini. Popravite inventar koji taj zapisivač čita, jer do tada je svaki restart još jedan poziv identitetu da se ponovno pojavi.

Povezani članci