Log#

I log vengono utilizzati per la risoluzione dei problemi, il monitoraggio operativo, l’analisi degli incidenti e la ricostruzione degli audit. A seconda del tipo di installazione e dei servizi disponibili, i log possono essere memorizzati su storage locale persistente e/o inoltrati a sistemi esterni per la raccolta, la conservazione e l’analisi centralizzate, come ad esempio:

  • server syslog remoto

  • Controller NethSecurity

  • Nethesis Cloud Log Manager

Per audit, risoluzione dei problemi e conservazione a lungo termine, si consiglia l’utilizzo di storage persistente o l’inoltro remoto dei log.

Archiviazione dei log#

NethSecurity può memorizzare i log in modi diversi a seconda del tipo di installazione e dello spazio di archiviazione disponibile.

Appliance fisici#

Sui dispositivi fisici NethSecurity, lo storage persistente viene configurato automaticamente e utilizzato per memorizzare i log. Quando lo storage persistente è disponibile, i log vengono salvati su disco e gestiti tramite rotazione dei log.

Macchine virtuali#

Sulle macchine virtuali, lo storage persistente deve essere configurato esplicitamente. Per audit, troubleshooting e conservazione a lungo termine, si consiglia di collegare e configurare un disco virtuale dedicato per i log.

Per dettagli su come impostare e verificare la configurazione dello storage, consultare la sezione storage Storage.

Log in memoria#

Se lo storage persistente non è configurato, i log vengono scritti in una directory temporanea in memoria. Questo previene potenziali errori sul file system root in caso di guasto, ma non è adatto per la conservazione a lungo termine. I log in memoria sono utili solo per la risoluzione dei problemi a breve termine. Per deployment orientati all’audit, configurare uno storage persistente o l’inoltro remoto dei log.

Cronologia delle connessioni OpenVPN#

La cronologia delle connessioni OpenVPN viene salvata in modo permanente su tutti i sistemi dotati di storage persistente. Questo consente agli amministratori di esaminare l’attività storica delle connessioni OpenVPN sui sistemi con storage. I log delle connessioni OpenVPN possono essere utili per ricostruire la cronologia degli accessi VPN, supportare la risoluzione dei problemi e fornire prove durante audit o analisi di incidenti.

Inoltro a un server remoto#

NethSecurity può inoltrare i log a un server syslog remoto. L’inoltro remoto dei log è consigliato quando è necessario centralizzare i log, conservarli per un periodo più lungo, proteggerli dalla cancellazione locale o integrarli con un SIEM o un sistema di monitoraggio esterno.

È sufficiente configurare il database UCI con le opzioni desiderate, quindi confermare le modifiche e infine riavviare il servizio. I log temporanei continueranno a essere visibili in /var/log/messages e saranno anche inviati al server remoto.

La maggior parte dei server syslog sono configurati per ascoltare sulla porta UDP 514 per impostazione predefinita.

Esempio di configurazione per l’invio dei log al server syslog con IP 192.168.1.88 sulla porta UDP 514. La configurazione è denominata clm (custom log manager):

uci set rsyslog.clm=forwarder
uci set rsyslog.clm.source=*.*
uci set rsyslog.clm.protocol=udp
uci set rsyslog.clm.port=514
uci set rsyslog.clm.target=192.168.1.88

Una volta configurato, è sufficiente confermare le modifiche con il comando:

uci commit rsyslog

E infine, riavviare il servizio:

/etc/init.d/rsyslog restart

Per impostazione predefinita, il forwarder utilizza il TraditionalFileFormat (RFC 3164) per i log. È anche possibile configurare RFC 5424 utilizzando la stessa sintassi:

uci set rsyslog.clm.rfc=5424

È possibile configurare più forwarder ripetendo l’operazione utilizzando un nome di configurazione diverso come clm2.

Inoltro a Nethesis Cloud Log Manager#

Autorizzazione al servizio richiesta

È necessario acquistare un abbonamento per il servizio CLM da Nethesis e ottenere l’identificativo del tenant. Il servizio è attualmente riservato ai clienti Enterprise. Per ulteriori informazioni, contattare il reparto vendite di Nethesis.

Il pacchetto ns-clm inoltra i messaggi syslog al servizio Nethesis Cloud Log Manager (CLM). Fornisce il demone ns-clm-forwarder, che monitora /var/log/messages e tiene traccia della posizione di lettura in /var/run/ns-clm/last_offset. Le nuove righe syslog vengono analizzate, raggruppate e inviate come JSON tramite HTTP POST all’endpoint CLM. Il demone controlla la presenza di nuove righe ogni 10 secondi, rileva automaticamente la rotazione dei log e salva la posizione raggiunta allo spegnimento, in modo da poter riprendere dopo un riavvio.

Il pacchetto non è incluso di default su NethSecurity 8.7.2 o versioni precedenti, ma è disponibile nel repository dei pacchetti e può essere installato manualmente. Installarlo con:

opkg update
opkg install ns-clm

La configurazione UCI è memorizzata in /etc/config/ns-clm:

Opzione

Predefinito

Descrizione

abilitato

0

Abilitare (1) o disabilitare (0) il forwarder

uuid

Nessun testo da tradurre.

Identificatore univoco per il dispositivo, generato con uuidgen e preceduto da «L» per garantire che inizi con una lettera.

Questo è necessario affinché il servizio CLM possa identificare la fonte dei log.

Esempio: L3d50ca11-4415-4e46-9ee9-b1da0f62c337

indirizzo

https://nar.nethesis.it

Indirizzo server CLM

tenant

Nessun testo da tradurre.

Identificatore tenant CLM, disponibile all’interno del portale CLM, sotto Utenti e Aziende -> Aziende

debug

0

Abilita l’output di debug su stderr (1)

Per abilitare il forwarder e impostare l’identificatore del tenant, eseguire:

uci set ns-clm.config.uuid="L$(uuidgen)"
uci set ns-clm.config.enabled=1
uci set ns-clm.config.tenant=<tenant_id>
uci commit ns-clm
reload_config

È possibile trovare l’identificatore del tenant nel portale CLM, sotto Utenti e Aziende -> Aziende.

Per abilitare anche il servizio all’avvio:

/etc/init.d/ns-clm enable && /etc/init.d/ns-clm start

Per arrestare e disabilitare il forwarder:

/etc/init.d/ns-clm stop && /etc/init.d/ns-clm disable

Rotazione e conservazione dei log#

I log vengono ruotati per gestire lo spazio su disco e garantire che i file di log non crescano indefinitamente.

Rotazione dei log di storage#

Quando si utilizza lo storage persistente, la rotazione dei log è gestita dall’utilità logrotate, che è configurata per ruotare i log settimanalmente e conservare un massimo di 52 settimane (1 anno) di log. Dopo la rotazione, i log vengono compressi utilizzando gzip e archiviati nella stessa directory con una convenzione di denominazione che include la data della rotazione (ad esempio, /mnt/data/log/messages-20260315.gz).

Rotazione dei log in memoria#

Se uno storage non è presente, il file di log /var/log/messages viene memorizzato in RAM e ruotato in base alla dimensione. Una volta raggiunto un limite di dimensione predefinito, il log viene ruotato e compresso per risparmiare spazio. Il log ruotato viene salvato come /var/log/messages.1.gz in formato gzip. Il sistema mantiene solo due versioni del log: il file di log attivo e l’ultimo file ruotato e compresso. Dalla versione 1.4.0, per impostazione predefinita, la soglia di rotazione del log è impostata al 10% del filesystem tmpfs montato su /tmp.

Lo script ns-log-size gestisce la dimensione di rotazione dei log per il servizio Rsyslog. Consente di ottenere e impostare la dimensione di rotazione dei log, definita in byte, per il file di log situato in /var/log/messages.

  • Ottieni dimensione attuale: Recupera la dimensione attuale della rotazione del log in byte.

  • Imposta nuova dimensione: Modificare la dimensione di rotazione dei log a un valore specificato, assicurandosi che la nuova dimensione sia un intero positivo e non inferiore a 52428800 byte (50 MB).

  • Sicurezza della configurazione: Se la dimensione specificata è inferiore alla soglia minima, lo script avvisa l’utente e non apporta alcuna modifica alla configurazione.

Utilizzo#

Per utilizzare lo script, eseguirlo con la seguente sintassi:

ns-log-size {get|set <size>}
  • get: Restituisce la dimensione attuale della rotazione dei log in byte.

  • set <size>: Imposta la dimensione di rotazione del log al valore specificato (in byte).

Esempio#

Per ottenere la dimensione attuale della rotazione dei log:

ns-log-size get

Per impostare una nuova dimensione di rotazione dei log a 104857600 byte (100 MB):

ns-log-size set 104857600

Il servizio rsyslog viene riavviato automaticamente dopo che la dimensione è stata impostata.

Tutte le modifiche alla dimensione della rotazione dei log vengono scritte direttamente nel file di configurazione di Rsyslog /etc/rsyslog.conf.

Raccomandazioni per audit e conformità#

Per le distribuzioni orientate all’audit e alla conformità, utilizzare uno storage persistente o l’inoltro remoto dei log.

Configurazione consigliata:

  • sui dispositivi fisici, utilizzare lo storage configurato automaticamente;

  • sulle macchine virtuali, configurare un disco virtuale dedicato per l’archiviazione dei log;

  • configurare l’inoltro syslog remoto, l’inoltro Controller o Cloud Log Manager quando è richiesta la conservazione centralizzata;

  • verificare che l’ora di sistema sia sincronizzata con NTP;

  • definire una policy di conservazione dei dati allineata ai requisiti di sicurezza dell’organizzazione;

  • proteggere i log remoti da accessi non autorizzati o dalla cancellazione;

  • verificare periodicamente che i log vengano raccolti e inoltrati correttamente;

  • Revisionare periodicamente l’accesso amministrativo, le modifiche alla configurazione, l’accesso VPN e gli eventi di sicurezza rilevanti.

L’archiviazione locale persistente fornisce informazioni storiche utili, ma per requisiti di audit più rigorosi si consiglia di inoltrare i log a un sistema esterno come un server syslog, SIEM, Controller o Cloud Log Manager.