Узрост рукапацірання WireGuard — не тайм-аут сесіі
Таймеры перападбору ключоў кіруюць ключамі, а не доступам карыстальнікаў. Чытанне latest-handshakes гаворыць пра стан пратаколу аднаго піра, а не пра тое, ці скончыўся тэрмін яго аўтарызацыі.
Пір, які перастаў прапускаць трафік, не губляе праз гэта свой ключ, а свежае рукапаціранне не даказвае, што нехта падоўжыў дазвол на яго выкарыстанне. Таймеры WireGuard трымаюць ключы свежымі, а пакеты — у руху; яны не мадэлююць карыстальніка, які выходзіць з сістэмы праз зададзеную колькасць хвілін. Тут блытаюць тры пытанні, і кожнае мае іншыя доказы. Гэтае размежаванне вызначае, якім інструментам карыстацца.
Тры пытанні, адзін вывад каманды
Аператары пытаюць, ці даступны пір, ці быў ён актыўны і ці дагэтуль дазволены. Першае — стан пратаколу, другое — лічыльнікі трафіку, трэцяе — аўтарызацыя. Толькі першыя два можна прачытаць з інтэрфейсу WireGuard, і іх пастаянна выкарыстоўваюць, каб адказаць на ўсе тры.
| 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 |
Чытайце радкі як тры асобныя расследаванні. Першыя два танныя, і на іх можна адказаць уласнымі лічыльнікамі інтэрфейсу. Трэцяе патрабуе канфігурацыі, якая дае доступ, а яна жыве ў іншым файле або іншай сістэме. Выбар не таго радка — гэта просьба да таймера пратаколу выканаць працу палітыкі.
Чым насамрэч кіруюць таймеры
Пратакол вызначае канстанты для паўтору рукапацірання, ратацыі транспартных ключоў і адхілення пакетаў, абароненых старым ключом. Яны рэагуюць на трафік і на стан, а не на каляндар ці палітыку, якая кажа, што чалавек можа быць падключаны да 17:00. Таму пір, які простайвае, можа гадзінамі выглядаць неактыўным і ўсё роўна быць аўтарызаваным.
PersistentKeepalive часта прымаюць за адсутны тайм-аут. Ён дасылае аўтэнтыфікаваныя пустыя пакеты, каб падтрымліваць адлюстраванне NAT жывым, а ўсталяванне нуля спыняе гэтыя пакеты, нічога не адклікаючы.
Чытайце стан выканання для кожнага піра, выкарыстоўваючы адкрыты ключ, а не каментар:
wg show wg0 latest-handshakes
wg show wg0 transfer
Свежае рукапаціранне кажа, што адно рукапаціранне завяршылася. Яно не кажа, што прыватная служба за тунелем даступная, а старая адзнака часу можа належаць піру, які проста маўчыць.
Чаму пір, які простайвае, — не пір, які выйшаў з сістэмы
У WireGuard няма аб'екта сесіі з пачаткам і канцом. Пір — гэта адкрыты ключ з дазволенымі адрасамі, а рукапаціранне, якое абараняе яго трафік, замяняецца па меры неабходнасці без якога-небудзь бачнага карыстальніку ўваходу. Лічыць адсутнасць свежага трафіку выхадам з сістэмы — значыць перавярнуць мадэль.
Калі сапраўдная скарга ў тым, што злучэнне не працуе пасля простаю, прычына звычайна іншая: пратэрмінаванае адлюстраванне NAT, прылада, якая заснула, або брандмаўэр, які страціў стан. Правярайце, дасылаючы трафік з іншага боку і запускаючы новы паток, і параўноўвайце, што змяняецца.
Пакладзіце тэрмін туды, дзе жыве аўтарызацыя
Калі доступ павінен скончыцца ў пэўны час, тэрмін належыць таму, што дае доступ. Кантролер, які выдае канфігурацыі піраў, можа патрабаваць паноўленага адабрэння, перш чым выдаць новую, і гэта ўласцівасць кантролера, а не схаваны параметр інтэрфейсу.
Для піраў, якімі кіруюць уручную, выдаленне павінна дайсці да двух месцаў: працуючага інтэрфейсу і захаванай канфігурацыі. Выдаленне піра толькі падчас працы скасоўваецца перазапускам або цыклам узгаднення, які аднаўляе ідэнтычнасць, якую вы лічылі пратэрмінаванай:
sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0
Потым правярайце мяжу, а не ярлык. Пацвердзіце, што пір адхіляецца пасля тэрміну, што шлях падаўжэння працуе і што стан перажывае перазагрузку мэнэджара. Узрост рукапацірання — карысны аперацыйны сігнал, і гэта не запіс пра доступ.