Monitorare un peer VPN richiede quattro fatti, e nessuno di essi è una destinazione. Se il tunnel è attivo, quando ha scambiato traffico l’ultima volta, quali chiavi sono coinvolte e quanto si è mosso bastano per la disponibilità. Qualsiasi cosa oltre è un record su una persona, e dovrebbe essere una decisione deliberata anziché un effetto collaterale dell’apertura di una pagina di stato. Parti dalla domanda a cui devi rispondere, poi scegli l’output più piccolo che vi risponde.

Decidi la domanda prima dello strumento

Scrivi prima la domanda operativa: questo peer è connesso e sta muovendo traffico? Quella domanda richiede una vista dal vivo, e una vista dal vivo non ha problemi di conservazione. Una seconda domanda, se il peer era connesso alle 02:00 di martedì scorso, richiede una serie memorizzata e quindi una decisione di conservazione. Separare le due è tutto il progetto, perché la vista dal vivo è economica mentre la serie memorizzata diventa una conversazione sulla protezione dei dati.

Tieni anche il controllo di salute separato dall’output di stato. Un handshake recente prova che il tunnel ha negoziato, non che l’applicazione privata dietro funzioni, quindi prova l’applicazione con un controllo autorizzato invece di dedurlo dai contatori. Quando il controllo fallisce e l’handshake è recente, il problema è oltre il tunnel.

Leggi i tre campi che vi rispondono

L’output di stato semplice di WireGuard contiene l’interfaccia, la chiave pubblica, l’endpoint, l’ultimo handshake e i contatori di trasferimento. La presenza richiede la chiave pubblica e l’ultimo handshake; se serve, aggiungi i contatori di byte per vedere il movimento. L’endpoint non serve alla presenza ed è il primo campo da scartare, perché identifica da dove si connette un dispositivo. La pagina del manuale descrive ogni campo stampato dallo strumento, ed è abbastanza breve da leggerla una volta:

wg show
wg show wg0 latest-handshakes

Leggi quei numeri come età anziché come booleani. Un handshake è attuale solo rispetto all’intervallo di rinnovo delle chiavi del protocollo stesso, e un contatore che non si è mosso può indicare un peer inattivo invece di uno guasto. Tieni entrambi nella stessa vista perché età e movimento si leggano insieme.

Scegli un intervallo che puoi difendere

Ogni campione di stato è un record, quindi l’intervallo è una decisione di conservazione con un’etichetta di monitoraggio. Un campione ogni dieci secondi dà dettaglio fine e moltiplica le righe memorizzate, mentre un campione al minuto di solito basta per la disponibilità a un sesto del costo. Scegli l’intervallo dal tempo di risposta promesso e non da ciò che lo strumento sa fare. Poi scrivi il numero accanto alla dashboard.

Per OpenVPN, la funzione di stato scrive un file a un intervallo configurato. Nella configurazione del server appare così status /var/log/openvpn-status.log 60, dove il numero finale sono i secondi tra le riscritture, e il file viene sostituito anziché accodato. Quel dettaglio conta: un file sostituito non ha cronologia, mentre un raccoglitore che vi accoda ne crea una.

Conferma che anche il raccoglitore rispetti l’intervallo. Uno strumento che campiona ogni secondo e memorizza una riga al minuto legge comunque ogni secondo.

Mantieni stabili le etichette e limitata la mappatura

Una chiave pubblica identifica una relazione tra dispositivi anche senza un nome allegato, quindi tratta la chiave come dato personale anziché come identificatore opaco. Etichetta i peer con identificatori interni stabili che sopravvivono alle riconnessioni, e tieni la mappatura da identificatore a persona in un luogo riservato. Una dashboard che scrive una serie temporale è un record memorizzato anche quando la VPN non tiene alcun file proprio. Quando la dashboard è l’unico archivio, è lì che si applica la regola di conservazione.

Rivedi anche il percorso di esportazione, perché un CSV copiato sopravvive al sistema che lo ha prodotto. La disponibilità aggregata spesso basta per un rapporto: la proporzione di peer con un handshake entro la finestra risponde alla domanda operativa senza elencare chi era connesso e quando.

Documenta ciò che raccogli e ciò che non raccogli

Scrivi la descrizione della raccolta in linguaggio semplice: quali campi, da quale interfaccia, a quale intervallo, memorizzati dove, conservati per quanto tempo e chi può leggerli. Mettila accanto al runbook e non in un archivio di politiche che nessuno apre durante un incidente. La descrizione dovrebbe anche dire ciò che il monitoraggio non può vedere, perché è questo che impedisce a qualcuno di assumere che l’assenza di dati di navigazione significhi l’assenza di registrazioni.

Rivedi la finestra di conservazione ogni volta che il monitoraggio cambia, perché un nuovo campo estende silenziosamente ciò che viene conservato. Poi cancella ciò che la descrizione dice che cancelli, e verifica che la cancellazione sia realmente avvenuta.

Articoli correlati