Dove deve scrivere il proprio log un server OpenVPN, e perché
log, log-append e syslog differiscono, e il gestore del servizio conserva una propria copia. Scegliete un flusso autorevole, mantenete leggibile il ciclo di vita, fissate la conservazione.
Un progetto di log risponde a tre domande: quale processo ha prodotto un record, dove quel record finisce e per quanto sopravvive. OpenVPN può scrivere su file, consegnare i messaggi al logger di sistema o lasciarli a ciò che cattura il gestore del servizio, e non sono tre copie di un unico flusso. Ogni scelta cambia chi possiede la rotazione, quale utente può leggere il risultato e cosa accade durante l’avvio. Stabilite le risposte prima di un incidente, perché dopo erediterete ciò che è stato configurato.
Che cosa fa davvero il demone con la direttiva
Le direttive non sono astrazioni; ciascuna decide dove il processo scrive i suoi messaggi. log /path apre quel file, log-append /path lo apre in aggiunta e syslog consegna i messaggi al logger di sistema locale tramite il suo socket. Senza nessuna di esse, l’output va allo standard output e il gestore del servizio decide cosa succede dopo. Leggete insieme l’unità effettiva e il profilo prima di concludere che il demone ignora la vostra configurazione.
Quest’ultimo caso è il più comune in un’installazione pacchettizzata, e spiega perché due amministratori non sono d’accordo su dove viva il log. Uno legge il journal dell’unità, l’altro un file che il demone non ha mai scritto.
Controllate la configurazione in esecuzione invece del file su disco. Un override di unità drop-in o un file di ambiente possono cambiare la direttiva effettiva senza toccare il profilo che state leggendo.
log tronca, log-append no
log tronca un file esistente quando la direttiva entra in vigore, quindi un riavvio cancella le prove precedenti. log-append conserva ciò che c’è e vi aggiunge. Nessuna delle due opzioni ruota nulla, e nessuna riapre il file più tardi da sola, per questo la rotazione richiede collaborazione.
Se la rotazione rinomina il file mentre il demone continua a scrivere nel vecchio descrittore, il nuovo file resta vuoto e l’uso del disco continua a crescere in quello rinominato. Segnalate al processo di riaprire, oppure ruotate con una strategia copia-e-tronca e accettate la finestra di copia.
La directory, la proprietà e i permessi fanno parte del progetto. Il demone può girare come utente non privilegiato dopo l’avvio, e una directory creata da root all’installazione può non essere scrivibile in quel momento. Preparatela tramite il pacchetto o il processo di distribuzione invece di correggere i permessi durante un incidente.
Il gestore del servizio conserva una seconda copia
systemd cattura lo standard output e lo standard error per impostazione predefinita, quindi un’unità senza redirezione esplicita ha già un log. Aggiungere una direttiva di file produce due flussi con conservazione, lettori e timestamp diversi.
Non è automaticamente sbagliato, ma deve essere una decisione. Tenete il record di avvio nel journal, perché i guasti precedenti all’esistenza del file configurato non compaiono altrove. Poi rendete il file autorevole per gli eventi a regime e scrivetelo nel runbook. Due flussi autorevoli significano due risposte a ogni domanda.
Confermate la scelta con un test che fallisce di proposito. Avviate il demone con un certificato illeggibile e controllate quale flusso registra l’errore.
La verbosità non è la stessa cosa di un dettaglio utilizzabile
Un livello di verb più alto aggiunge righe e, oltre un certo punto, righe che nessuno legge. Il livello 3 è un regime stabile ragionevole per la maggior parte delle installazioni, mentre il livello 4 e superiori si adattano a un’indagine delimitata con una domanda nota. La soppressione delle ripetizioni riduce il rumore, ma non deve nascondere quanto spesso un evento si ripete. Impostate il livello che potete sostenere e alzatelo solo per un’indagine con un nome e una fine.
Tenete l’identità dell’istanza e i timestamp nel record. Una riconnessione sembra esattamente una prima connessione quando il file riceve aggiunte da mesi e manca il nome dell’istanza.
Fate attenzione a cos’altro finisce in quel file. L’output rediretto può includere testo di script richiamati, e un helper che stampa il proprio ambiente mette credenziali e percorsi di chiavi in un log leggibile. Trattate l’accesso al log come una decisione di sicurezza anche quando il demone stesso non stampa nulla di sensibile.
Rotazione, conservazione e i segnali che ricaricano
Decidete la conservazione con chi possiede il disco e fissatela prima che il volume decida per voi. Un segnale di ricarica non è un comando di manutenzione del log: inviare quello sbagliato riavvia il tunnel e disconnette tutti gli utenti. Scrivete la procedura di riapertura accanto alla regola di rotazione, così le due non si allontanano.
Il risultato dovrebbe essere un servizio che un operatore può descrivere: un flusso autorevole, ogni evento collocato nel ciclo di vita e un record ottenibile senza raccogliere ogni file portatore di segreti sull’host. Quella descrizione è il test di accettazione del progetto, ed è economico verificarla prima del prossimo incidente.