Um par que para de passar tráfego não perde a chave por isso, e um handshake novo não prova que alguém renovou a permissão de usá-la. Os temporizadores do WireGuard mantêm as chaves novas e os pacotes fluindo; eles não modelam um usuário que sai após um número definido de minutos. Três perguntas se confundem aqui, e cada uma tem evidências diferentes. A distinção decide qual ferramenta usar.

Três perguntas, uma saída de comando

Operadores perguntam se um par é alcançável, se esteve ativo e se ainda é permitido. A primeira é estado de protocolo, a segunda são contadores de tráfego e a terceira é autorização. Só as duas primeiras podem ser lidas de uma interface do WireGuard, e elas são usadas rotineiramente para responder às três.

QuestionEvidence it needsWhat does not answer it
Is the peer reachable now?A recent handshake and a working return pathAn interface that exists
Has it been active?Transfer counters moving over timeA handshake timestamp alone
Is access still granted?The configuration or controller that authorizes itAny protocol timer

Leia as linhas como três investigações separadas. As duas primeiras são baratas e podem ser respondidas pelos próprios contadores da interface. A terceira precisa da configuração que concede acesso, que fica em outro arquivo ou em outro sistema. Escolher a linha errada é pedir a um temporizador de protocolo que faça o trabalho de uma política.

O que os temporizadores realmente governam

O protocolo define constantes para nova tentativa de handshake, rotação de chaves de transporte e rejeição de pacotes protegidos por uma chave antiga. Elas respondem ao tráfego e ao estado, não a um calendário nem a uma política que diga que uma pessoa pode se conectar até as 17:00. É por isso que um par ocioso pode parecer inativo por horas e continuar autorizado.

PersistentKeepalive costuma ser confundido com o tempo limite que falta. Ele envia pacotes vazios autenticados para manter vivo um mapeamento NAT, e defini-lo como zero interrompe esses pacotes sem revogar nada.

Leia o estado de execução por par, usando a chave pública em vez do comentário:

wg show wg0 latest-handshakes
wg show wg0 transfer

Um handshake recente diz que um handshake foi concluído. Ele não diz que o serviço privado atrás do túnel é alcançável, e um carimbo de data antigo pode pertencer a um par que está simplesmente calado.

Por que um par ocioso não é um par desconectado

O WireGuard não tem um objeto de sessão com início e fim. Um par é uma chave pública com endereços permitidos, e o handshake que protege o tráfego dele é substituído conforme necessário sem nenhum login visível ao usuário. Tratar a ausência de tráfego recente como desconexão inverte o modelo.

Se a queixa real é que uma conexão falha após ficar ociosa, a causa costuma estar em outro lugar: um mapeamento NAT expirado, um dispositivo que dormiu ou um firewall que descartou o estado. Teste enviando tráfego do outro lado e iniciando um novo fluxo, e compare o que muda.

Coloque o prazo onde vive a autorização

Se o acesso deve terminar em um horário específico, o prazo pertence ao que concede o acesso. Um controlador que emite configurações de pares pode exigir uma aprovação renovada antes de entregar uma nova, e isso é uma propriedade do controlador e não um parâmetro escondido na interface.

Para pares gerenciados à mão, a remoção precisa chegar aos dois lugares: a interface em execução e a configuração salva. Remover o par apenas em tempo de execução é desfeito por um reinício ou por um ciclo de reconciliação, que restaura a identidade que você achava expirada:

sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0

Depois teste a fronteira em vez do rótulo. Confirme que o par é rejeitado após o prazo, confirme que o caminho de renovação funciona e confirme que o estado sobrevive a uma recarga do gerenciador. A idade de um handshake é um sinal operacional útil, e não é um registro de acesso.

Artigos relacionados