A wg set paranccsal hozzáadott társ egész délután válaszol a pingekre, és az újraindítás után eltűnik. Semmi nem sérült meg: a kernel soha nem tárolta ezt a társat sehol máshol, csak az élő interfészben, és minden, ami indításkor újra létrehozza az interfészt, egy olyan fájlból építette fel, amelyhez nem nyúlt hozzá. A javítás nem egy újabb wg set. Ki kell deríteni, melyik komponens birtokolja az interfészt, szerkeszteni kell annak a komponensnek az állapotát, majd bizonyítani kell, hogy a társ túléli pontosan azt az életciklus-eseményt, amely eltávolította.

Reprodukálja egyszer, szándékosan

Ne javítson újraindítási problémát, amíg nem látja, hogy megtörténik. Ha van konzol- vagy sávon kívüli hozzáférés, jegyezze fel a társak listáját, indítsa újra az interfészt birtokló szolgáltatáson keresztül, és hasonlítsa össze. Ha a társ még ott van, a módosítás már elérte a tartós állapotot, és rossz eseményt hibakeres.

Írjon fel három tényt eközben: az interfész nevét, az őt indító unitot vagy profilt, és hogy a túlélő társ kézfogásszámlálója visszaállt-e. A visszaállt számláló azt jelenti, hogy az interfészt megsemmisítették és újra létrehozták; a változatlan számláló hiányzó társsal azt jelenti, hogy valami a konfigurációt szerkesztette a lábai alatt.

Ki birtokolja az interfészt?

Maga a WireGuard nem rendelkezik daemonnal és konfigurációs fájllal sem. Valami felette hívja a wg parancsot indításkor, és ez a valami az igazság forrása. A szokásos jelöltek a [email protected], egy NetworkManager-kapcsolatprofil, egy disztribúcióspecifikus hálózati unit vagy egy felügyeleti panel, amely a saját adatbázisát írja.

A rendszert kérdezze, ne a disztribúciója dokumentációját. A systemctl status wg-quick@wg0 és a nmcli connection show általában egy-egy paranccsal eldönti a kérdést. Ha mindkettő igényt tart az interfészre, már a szerkesztés előtt megtalálta a hibát: két tulajdonos írja felül ugyanazt az eszközt minden indításkor, és az utoljára futó nyer.

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

A futásidejű állapot és az indítási állapot nem ugyanaz a fájl

wg set a netlinken keresztül kezeli az élő eszközt. Nem írja a /etc/wireguard/wg0.conf fájlt, NetworkManager-profilt vagy egy panel adatbázisát. Egy utána sikeres wg show azt bizonyítja, hogy a kernel elfogadta a társat, nem azt, hogy valami visszaállítja.

Van egy második csapda az ellenkező irányban. A wg-quick SaveConfig beállítása visszaírja az interfész aktuális állapotát a konfigurációs fájlba, amikor az interfészt leviszik. Ha ez engedélyezve van, az interfész fennállása alatt a fájlba tett módosítást felülírhatja a következő leállítás, és megesküdne, hogy a sor ott volt. Ha a társ folyton visszatér, olvassa a fájlt leállítás után, ne előtte.

A NetworkManager megint másképp viselkedik: övé a profil, és aktiváláskor alkalmazza, így egy kézzel szerkesztett .conf egy aktív NetworkManager-kapcsolat mellett csak dísz. Válasszon egyetlen tulajdonost az interfésznek, és hagyja, hogy a másik kezelő békén hagyja.

Érje el, hogy a módosítás mindkét helyen landoljon

Először szerkessze a tartós állapotot, aztán hagyja, hogy a tulajdonos alkalmazza, majd ellenőrizze az élő állapotot. Ez a sorrend azt jelenti, hogy bármely lépés kudarca egy dologra mutat három helyett.

# 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 ugyanabban a szintaxisban írja ki az élő konfigurációt, amit a fájl használ, így a kettő közvetlenül összehasonlítható. Kezelje ezt a kimenetet titokként: privát kulcsokat tartalmaz, ezért ne illessze be jegybe vagy csevegőcsatornába. Hasonlítsa össze a társak nyilvános kulcsait és az engedélyezett IP-címeket, és ellenőrizze, hogy a szándékosan eltávolított társ nem tért-e vissza.

Bizonyítsa, hogy túléli az életciklus-eseményt

Indítsa újra a tulajdonoson keresztül másodszor is, majd erősítsen meg három külön dolgot: a társ megjelenik a wg show kimenetében, a kézfogásszámláló nő a forgalom után, és a tuneltől függő alkalmazás valóban válaszol. Az elavult kézfogással listázott társ útvonal- vagy kulcsprobléma, nem tartóssági probléma, és ez a megkülönböztetés megspórol egy felesleges konfigurációmódosítást.

Végül ellenőrizze, mit állított helyre az újraindítás. Az az újraindítás, amely feltámaszt egy szándékosan eltávolított társat, ugyanaz a hiba ellenkező előjellel, és általában azt jelenti, hogy a konfiguráció régi példánya még mindig betöltődik valahonnan. Jegyezze fel a tulajdonost, a fájl elérési útját, a társ nyilvános kulcsát és az ellenőrző parancsokat a konfiguráció mellé, hogy a következő ember ne fedezze fel újra ezt egy éles hoszt újraindításával.

Kapcsolódó cikkek