I due laboratori di questo modulo sembrano lo stesso esercizio e non lo sono. Diagnosticare la connessione dei log significa stabilire se le voci arrivano dal dispositivo che le produce al server che le conserva. Diagnosticare SmartLog significa stabilire perché voci già arrivate non si trovano cercandole. Chi confonde i due laboratori applica la cura sbagliata al sintomo giusto.
Provare la consegna prima di sospettare il contenuto
Il modo più rapido per orientarsi è produrre traffico noto e guardarlo nascere. Sul Security Gateway, fw log apre $FWDIR/log/fw.log quando non si indica un file, e con -f «continues to monitor the log file indefinitely and shows the new entries». Con -c si filtra per azione e con -s ed -e si stringe l’intervallo temporale.
L’esito di questa prova taglia il problema in due.
Se la riga non compare nemmeno in locale, la consegna non c’entra: o il traffico non passa da lì, o la regola che lo tratta non registra, o la generazione è ferma. Se la riga compare in locale ma non sul server, la generazione funziona ed è la consegna a essere rotta. Tutto ciò che si fa su SmartLog prima di aver fatto questa distinzione è lavoro a caso.
Le tre cose che tengono aperta la connessione dei log
Quando la consegna è il problema, i sospetti sono ordinati.
Il processo. Il trasporto dei log è affidato a un demone sorvegliato dal Check Point WatchDog, che «attempts to restart them if they fail»; fra i processi monitorati la documentazione elenca fwd accanto a fwm, cpd e DAService. cpwd_admin list ne stampa lo stato con le colonne APP, PID, STAT, #START, START_TIME, MON e COMMAND. Come sempre, STAT a E da solo non basta: un #START alto con un START_TIME recente descrive un demone che muore e viene rialzato, cioè la condizione che produce consegne a singhiozzo. Il dettaglio sta in $CPDIR/log/cpwd.elg.
La fiducia. SIC è il meccanismo con cui i computer Check Point «authenticate each other over SSL, for secure communication», e le connessioni che stabilisce abilitano sia l’installazione della policy sia la trasmissione sicura dei log. Un gateway in stato Untrusted, definito come «Cannot make Secure Internal Communication», non ha un problema di log: ha un problema di fiducia che si manifesta come assenza di log. Ripristinare la fiducia revoca il certificato precedente e aggiorna la Certificate Revocation List.
Lo spazio e la rotazione. fw logswitch chiude il file attivo, lo rinomina e ne apre uno nuovo; senza un nome esplicito il file ruotato prende un nome con data e ora nella forma YYYY-MM-DD_HHMMSS.log. Il parametro -audit ruota invece $FWDIR/log/fw.adtlog e funziona solo sui Management Server. Con -h seguito dal bersaglio si ruota il log su un server remoto, ed è possibile copiarlo o spostarlo sul server locale comprimendolo: è il modo pulito per portarsi via il log locale di un gateway senza dipendere dalla connessione che si sta diagnosticando.
Quando i log arrivano ma SmartLog resta vuoto
Qui il sintomo si sposta di un anello. I file crescono sul server, eppure la ricerca non restituisce niente o restituisce solo una parte.
La chiave è che la ricerca non legge i file di log: legge un indice. Sono due oggetti distinti, e un indice può mancare, essere parziale o coprire una finestra temporale più corta di quella che si sta cercando. La documentazione dell’import offline per SmartEvent rende esplicito il principio: con $INDEXERDIR/log_indexer -days_to_index si allarga la finestra di indicizzazione, perché per impostazione predefinita viene indicizzato solo il giorno più recente, e serve intervenire «To import and analyze logs from earlier dates». Una ricerca che non trova nulla su una data vecchia può quindi essere perfettamente coerente con log presenti e integri.
Il secondo punto è il percorso. SmartLog ha una propria directory, $SMARTLOGDIR. In Multi-Domain il percorso dipende dal contesto del Domain Management Server e si ricava senza indovinare: MDSVERUTIL CMASmartLogDir «Returns the full path for the $SMARTLOGDIR directory in the context of the specified Domain Management Server», per esempio /opt/CPmds-R82/customers/MyDomain_Server/CPSmartLog-R82. Cercare nel contesto sbagliato produce esattamente il vuoto che si stava indagando.
Il terzo punto è la verifica indipendente. fwm logexport esporta il file in ASCII e ne stampa nella prima riga i nomi dei campi, con i valori separati da punto e virgola. Se la voce esiste nell’esportazione ma non nella ricerca, il verdetto è chiuso: il dato c’è, l’indice no.
Trappole tipiche d’esame
- Concludere che un log non esiste quando non è stato consegnato. L’assenza in console non è una prova. La prova positiva si fa alla fonte con
fw log, oppure sul file del server confwm logexport. - Non distinguere un problema di SmartLog da uno della connessione dei log. Se i file sul server crescono, la connessione funziona e il guasto è nell’indice o nel contesto di ricerca. Se non crescono, reindicizzare non cambierà niente.
- Aumentare il dettaglio dei log senza sapere che cosa si cerca. Su un guasto di consegna, più verbosità aggrava il problema: riempie il disco e accelera la rotazione, facendo sparire proprio le voci vecchie che servivano.
- Scambiare Untrusted per un guasto di logging. Lo stato riguarda SIC: ripristinare la fiducia è la cura, e ogni indagine sull’indice è fuori strada.