Prečo sa vymazaný peer WireGuard po reštarte vracia
Zoznam peerov držia dva stavy: bežiace rozhranie a to, čo ho zapisuje pri štarte. Odstráňte ho z oboch a pred akoukoľvek úpravou skontrolujte SaveConfig.
Identita zmizne z bežiaceho rozhrania a zmena vyzerá hotová. Po reštarte služby sa vráti, čo sa číta tak, akoby WireGuard príkaz ignoroval. Čo sa v skutočnosti stalo, je jednoduchšie: konfigurácia pri štarte peer stále obsahuje.
Ten zoznam držia dva stavy. Odvolanie je skutočné len vtedy, keď ho stratia oba.
Čo wg set naozaj mení
Príkaz wg set wg0 peer <public-key> remove upravuje bežiace rozhranie v jadre. Na disk nezapisuje nič. Konfiguračný súbor, profil NetworkManageru alebo uložený stav routera zostávajú nedotknuté. To je zámer, nie chyba.
To oddelenie je úmyselné, pretože nástroj netuší, kto rozhranie vlastní. Príkaz za behu musí byť bezpečný voči rozhraniu, ktoré spravuje niečo iné. Nemôže hádať, kde žije trvalá kópia. Dôsledok sa dá ľahko vysloviť: odstránenie za behu je svojou konštrukciou dočasné.
Peer sa teda pri ďalšom reštarte vráti a vráti sa so svojimi pôvodnými povolenými prefixmi. Všetko, čo sa cez neho smeruje, sa tiež znova vytvorí. Domnelo odvolaná identita tak po opätovnom načítaní môže dosiahnuť svoje predchádzajúce ciele. Nič vo výstupe za behu nikoho nevarovalo.
Nájdite zapisovateľa, kým upravíte súbor
Rozhranie má vlastníka. Môže ním byť wg-quick čítajúci súbor, NetworkManager aplikujúci profil, vlastná konfigurácia rozhrania routera alebo vstupný bod kontajnera, ktorý rozhranie pri štarte znova vytvorí. Úprava súboru, ktorý vlastník nikdy nečíta, neprinesie žiadnu trvalú zmenu.
Začnite od bežiaceho rozhrania a určte verejné kľúče, pretože mená a adresy sú slabšie identifikátory než samotný kľúč. Potom tento zoznam porovnajte s uloženou konfiguráciou, ktorú vlastník skutočne číta.
wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard
Živé rozhranie, ktorého zoznam peerov a obsah súboru sa nezhodujú, je celá diagnóza. Pri štarte vyhráva uložená konfigurácia a stav za behu prehráva. Porovnajte ich, kým zmeníte ktorýkoľvek z nich.
Pasca SaveConfig
wg-quick pridáva záhyb, ktorý chytá ľudí upravujúcich súbory ručne. Keď je SaveConfig zapnutý, jeho dokumentované správanie pri vypnutí zapíše aktuálny stav za behu cez konfiguračný súbor.
To obracia obvyklý smer trvácnosti. Odoberiete peer zo súboru, potom sa služba zastaví. Bežiaci stav sa zapíše cez vašu úpravu a obnoví peer, ktorý ste práve zmazali.
Preto záleží na poradí: upravte súbor, kým je rozhranie vypnuté, alebo pred úpravou vypnite SaveConfig, potom rozhranie znova zapnite a overte, čo sa načítalo. Ručná úprava pri zapnutom rozhraní je pretek so zápisom pri vypnutí.
Zmeňte oba stavy a znova načítajte
Za behu odoberte peer podľa kľúča. V uloženej konfigurácii odoberte ten istý blok podporovanou operáciou vlastníka, namiesto upravovania okolo neho.
Potom prejdite, čo peer niesol. Smerovaná sieť, ktorá patrila odvolanej identite, má byť vedome prerozdelená alebo odstránená, nie ticho zdedená peerom, ktorý bude upravený najbližšie.
Nechajte otvorenú cestu obnovy, ak brána nesie aj váš administratívny prístup. Reštart, ktorý odstráni nesprávny peer, je výpadok, ktorý ste si spôsobili sami. To isté platí pre reštart, ktorý odstráni nesprávnu trasu.
Ako vyzerá úspešný test
Znova načítajte alebo reštartujte službu a potom znova prečítajte zoznam peerov. Starý kľúč musí chýbať a peery, ktoré ste chceli zachovať, musia byť stále prítomné a funkčné.
wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers
Kde to situácia dovoľuje, overte, že stará identita už nedosiahne na svoje predchádzajúce zdroje. Usporiadaný výpis rozhrania pred reštartom je polovica testu. Druhou polovicou je, čo identita potom ešte dokáže.
Ak nejaký správca peer stále obnovuje, prestaňte opakovať odstraňovanie na nízkej úrovni. Opravte inventár, ktorý tento zapisovateľ číta, pretože dovtedy je každý reštart ďalším pozvaním, aby sa identita znova objavila.