Peer, ktorý ste pridali cez wg set, odpovedá na ping celé popoludnie a po reštarte je preč. Nič sa nepoškodilo: jadro tento peer nikdy neuložilo nikam inam ako do živého rozhrania a všetko, čo rozhranie pri štarte znova vytvára, ho postavilo zo súboru, ktorého ste sa nedotkli. Oprava nie je ďalší wg set. Treba zistiť, ktorý komponent rozhranie vlastní, upraviť stav tohto komponentu a potom dokázať, že peer prežije presne tú udalosť životného cyklu, ktorá ho odstránila.

Zopakujte to raz, naschvál

Neopravujte problém s reštartom, kým ho neuvidíte na vlastné oči. Ak je dostupný prístup cez konzolu alebo mimo pásma, poznačte si zoznam peerov, reštartujte cez službu, ktorá rozhranie vlastní, a porovnajte. Ak tam peer stále je, vaša zmena už dosiahla trvalý stav a ladeníte nesprávnu udalosť.

Zapíšte si pri tom tri fakty: názov rozhrania, unit alebo profil, ktorý ho spustil, a to, či sa počítadlo handshake na preživšom peerovi vynulovalo. Vynulované počítadlo znamená, že rozhranie bolo zničené a znova vytvorené; nezmenené počítadlo s chýbajúcim peerom znamená, že niekto upravil konfiguráciu pod vašimi nohami.

Kto rozhranie vlastní?

Samotný WireGuard nemá žiadneho démona ani konfiguračný súbor. Niečo nad ním pri štarte volá wg a to niečo je zdrojom pravdy. Obvyklí kandidáti sú [email protected], profil pripojenia NetworkManageru, sieťový unit špecifický pre distribúciu alebo správcovský panel, ktorý si píše vlastnú databázu.

Pýtajte sa systému, nie dokumentácie svojej distribúcie. systemctl status wg-quick@wg0 a nmcli connection show to zvyčajne vyriešia jedným príkazom každý. Ak si na rozhranie robia nárok obaja, našli ste chybu pred akoukoľvek úpravou: dvaja vlastníci prepisujú to isté zariadenie pri každom štarte a vyhráva ten, kto sa spustí posledný.

systemctl status wg-quick@wg0 --no-pager
grep -R "Address\|SaveConfig\|PostUp" /etc/wireguard/wg0.conf
nmcli -g NAME,TYPE connection show
wg show wg0 peers

Stav za behu a stav pri štarte nie sú ten istý súbor

wg set ovláda živé zariadenie cez netlink. Nezapisuje /etc/wireguard/wg0.conf, profil NetworkManageru ani databázu panela. Úspešný wg show potom dokazuje, že jadro peer prijalo, nie že ho niečo obnoví.

Existuje aj druhá pasca v opačnom smere. Voľba SaveConfig v wg-quick zapisuje aktuálny stav rozhrania späť do konfiguračného súboru, keď sa rozhranie zhadzuje. Keď je zapnutá, úpravu súboru vykonanú počas behu rozhrania môže prepísať nasledujúce vypnutie a budete prisahať, že ten riadok tam bol. Ak sa peer stále vracia, čítajte súbor po zastavení, nie pred ním.

NetworkManager sa správa zase inak: vlastní profil a uplatňuje ho pri aktivácii, takže ručne upravený .conf vedľa aktívneho pripojenia NetworkManageru je len dekorácia. Vyberte pre rozhranie jedného vlastníka a nechajte druhého správcu, aby ho nechal na pokoji.

Zariadte, aby úprava dopadla na obe miesta

Najprv upravte trvalý stav, potom nechajte vlastníka, aby ho použil, a napokon overte živý stav. Také poradie znamená, že zlyhanie v ktoromkoľvek kroku ukazuje na jednu vec namiesto troch.

# 1. persistent state (wg-quick owner)
sudo vi /etc/wireguard/wg0.conf

# 2. apply through the owner, not by hand
sudo systemctl restart wg-quick@wg0

# 3. verify runtime matches the file
sudo wg show wg0
sudo wg showconf wg0

wg showconf vypisuje živú konfiguráciu v rovnakej syntaxi, akú používa súbor, takže obe sú priamo porovnateľné. Považujte tento výstup za tajný: obsahuje súkromné kľúče, preto ho nevkladajte do tiketu ani do chatovacieho kanála. Porovnajte verejné kľúče peerov a povolené IP adresy a skontrolujte, či sa peer, ktorého ste naschvál odstránili, nevrátil.

Dokážte, že prežije udalosť životného cyklu

Reštartujte cez vlastníka druhýkrát a potom potvrďte tri oddelené veci: peer sa objaví v wg show, počítadlo handshake rastie po prevádzke a aplikácia, ktorá závisí od tunela, skutočne odpovedá. Peer uvedený so zastaraným handshake je problém smerovania alebo kľúča, nie problém trvalosti, a toto rozlíšenie ušetrí zbytočnú úpravu konfigurácie.

Nakoniec skontrolujte, čo reštart obnovil. Reštart, ktorý oživí naschvál odstráneného peera, je tá istá chyba s opačným znamienkom a zvyčajne znamená, že sa odniekiaľ stále načítava stará kópia konfigurácie. Zapíšte vlastníka, cestu k súboru, verejný kľúč peera a overovacie príkazy vedľa konfigurácie, aby to ďalší človek znova neobjavoval reštartom produkčného hostiteľa.

Súvisiace články