Stáří handshake u WireGuardu není časový limit relace
Časovače obnovy klíčů řídí klíče, ne přístup uživatelů. Čtení latest-handshakes říká něco o stavu protokolu jednoho peeru, ne o tom, zda jeho autorizace vypršela.
Peer, který přestane propouštět provoz, tím neztrácí svůj klíč, a nový handshake nedokazuje, že někdo obnovil oprávnění jej používat. Časovače WireGuardu udržují klíče čerstvé a pakety v pohybu; nemodelují uživatele, který se odhlásí po stanoveném počtu minut. Zde se pletou tři otázky a každá má jiné důkazy. Rozlišení rozhoduje o tom, po kterém nástroji sáhneme.
Tři otázky, jeden výstup příkazu
Operátoři se ptají, zda je peer dosažitelný, zda byl aktivní a zda je stále povolen. První je stav protokolu, druhé jsou provozní čítače a třetí je autorizace. Jen první dvě lze přečíst z rozhraní WireGuardu a běžně se jimi odpovídá na všechny tři.
| Question | Evidence it needs | What does not answer it |
|---|---|---|
| Is the peer reachable now? | A recent handshake and a working return path | An interface that exists |
| Has it been active? | Transfer counters moving over time | A handshake timestamp alone |
| Is access still granted? | The configuration or controller that authorizes it | Any protocol timer |
Čtěte řádky jako tři samostatná vyšetřování. První dvě jsou levná a lze je zodpovědět z vlastních čítačů rozhraní. Třetí potřebuje konfiguraci, která přístup uděluje, a ta žije v jiném souboru nebo jiném systému. Volba špatného řádku znamená žádat časovač protokolu o práci politiky.
Čemu časovače skutečně vládnou
Protokol definuje konstanty pro opakování handshake, rotaci transportních klíčů a odmítání paketů chráněných starým klíčem. Reagují na provoz a na stav, ne na kalendář ani na politiku, která říká, že člověk smí být připojen do 17:00. Proto může nečinný peer hodiny vypadat jako neaktivní a přesto být autorizovaný.
PersistentKeepalive se často považuje za chybějící časový limit. Posílá ověřené prázdné pakety, aby udržel mapování NAT naživu, a nastavení na nulu tyto pakety zastaví, aniž by cokoli odvolalo.
Čtěte běhový stav pro každý peer, s použitím veřejného klíče místo komentáře:
wg show wg0 latest-handshakes
wg show wg0 transfer
Čerstvý handshake říká, že jeden handshake byl dokončen. Neříká, že soukromá služba za tunelem je dosažitelná, a staré časové razítko může patřit peeru, který je prostě tichý.
Proč nečinný peer není odhlášený peer
WireGuard nemá objekt relace se začátkem a koncem. Peer je veřejný klíč s povolenými adresami a handshake, který chrání jeho provoz, se podle potřeby nahrazuje bez jakéhokoli uživateli viditelného přihlášení. Považovat nepřítomnost čerstvého provozu za odhlášení obrací model.
Pokud je skutečnou stížností to, že spojení po nečinnosti selže, příčina bývá jinde: vypršelé mapování NAT, zařízení, které usnulo, nebo firewall, který zahodil stav. Testujte tak, že pošlete provoz z druhé strany a začnete nový tok, a porovnejte, co se změní.
Umístěte termín tam, kde žije autorizace
Pokud má přístup skončit v určitou dobu, termín patří tomu, co přístup uděluje. Kontroler, který vydává konfigurace peerů, může vyžadovat obnovené schválení, než vydá novou, a to je vlastnost kontroleru, nikoli skrytý parametr rozhraní.
U ručně spravovaných peerů musí odstranění zasáhnout obě místa: běžící rozhraní a uloženou konfiguraci. Odstranění peeru jen za běhu zruší restart nebo smyčka sladění, která obnoví identitu, kterou jste považovali za vypršelou:
sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0
Pak testujte hranici, ne označení. Ověřte, že je peer po termínu odmítnut, ověřte, že cesta obnovy funguje, a ověřte, že stav přežije znovunačtení správce. Stáří handshake je užitečný provozní signál a není to záznam o přístupu.