Sicurezza

Come inviare i log di Linux a un server remoto

Come inviare i log di Linux a un server remoto
Il motivo principale per applicare la registrazione remota è lo stesso motivo per cui è consigliata una partizione /var dedicata: una questione di spazio, ma non solo. Inviando i log a un dispositivo di archiviazione dedicato puoi evitare che i tuoi log occupino tutto lo spazio mantenendo un enorme database storico per permetterti i bug.

Il caricamento dei registri su un host remoto ci consente di centralizzare i report per più di un dispositivo e di conservare un backup dei report per la ricerca nel caso in cui qualcosa non riesca impedendoci di accedere ai registri localmente.

Questo tutorial mostra come configurare un server remoto per ospitare i registri e come inviare questi registri dai dispositivi client e come classificare o dividere i registri nelle directory per host client.

Per seguire le istruzioni puoi utilizzare un dispositivo virtuale, ho preso un VPS di livello gratuito da Amazon (se hai bisogno di aiuto per configurare un dispositivo Amazon, hanno degli ottimi contenuti dedicati su LinuxHint all'indirizzo https://linuxhint.com/categoria/aws/). Nota che l'IP pubblico del server è diverso dal suo IP interno.

Prima di iniziare:

Il software utilizzato per inviare i log in remoto è rsyslog, viene fornito di default su Debian e distribuzioni Linux derivate, nel caso in cui non lo si esegue:

# sudo apt install rsyslog

Puoi sempre controllare lo stato di rsyslog eseguendo:

# sudo service rsyslog status

Come puoi vedere lo stato sullo screenshot è attivo, se il tuo rsyslog non è attivo puoi sempre avviarlo eseguendo:

# sudo service rsyslog start

O

# systemctl avvia rsyslog

Nota: Per ulteriori informazioni su tutte le opzioni per gestire i servizi Debian, controlla Arrestare, avviare e riavviare i servizi su Debian.

L'avvio di rsyslog non è rilevante in questo momento perché dovremo riavviarlo dopo aver apportato alcune modifiche.

Come inviare i log di Linux a un server remoto: il lato server

Prima di tutto, sul server modifica il file /etc/resyslog.conf usando nano o vi:

# nano /etc/rsyslog.conf

All'interno del file, decommenta o aggiungi le seguenti righe:

modulo (carica = "imudp")
input (tipo = "imudp" porta = "514")
modulo(load="imtcp")
input (tipo = "porta imtcp" = "514")

Sopra la ricezione dei log non commentati o aggiunti tramite UDP e TCP, è possibile consentire solo uno di essi o entrambi, una volta decommentati o aggiunti sarà necessario modificare le regole del firewall per consentire i log in ingresso, per consentire la ricezione dei log tramite l'esecuzione TCP:

# ufw allow 514/tcp

Per consentire l'esecuzione dei log in entrata tramite il protocollo UDP:

# ufw allow 514/udp

Per consentire tramite TCP e UDP eseguire i due comandi sopra.

Nota: per maggiori informazioni su UFW puoi leggere Lavorare con i firewall Debian (UFW).

Riavvia il servizio rsyslog eseguendo:

# sudo service rsyslog riavvio

Ora continua sul client per configurare l'invio dei log, quindi torneremo al server per migliorare il formato.

Come inviare i log di Linux a un server remoto: lato client

Sui log di invio client aggiungere la seguente riga, sostituendo l'IP 18.223.3.241 per l'IP del tuo server.

*.* @@18.223.3.241:514

Esci e salva le modifiche premendo CTRL +X.

Una volta modificato riavviare il servizio rsyslog eseguendo:

# sudo service rsyslog riavvio

Lato server:

Ora puoi controllare i log all'interno di /var/log, quando li apri noterai fonti miste per il tuo log, l'esempio seguente mostra i log dall'interfaccia interna di Amazon e dal client Rsyslog (Montsegur):

Uno zoom lo mostra chiaramente:

Avere file misti non è comodo, di seguito modificheremo la configurazione di rsyslog per separare i log in base alla fonte.

Per discriminare i log all'interno di una directory con il nome dell'host del client aggiungere le seguenti righe al server /etc/rsyslog.conf per istruire rsyslog su come salvare i log remoti, per farlo all'interno di rsyslog.conf aggiungi le righe:

$template RemoteLogs,"/var/log/%HOSTNAME%/.registro"
*.* ?RemoteLogs
& ~

Uscire dal salvataggio delle modifiche premendo CTRL + X e riavviare nuovamente rsyslog sul server:

# sudo service rsyslog riavvio

Ora puoi vedere nuove directory, una chiamata ip-172.31.47.212 che è l'interfaccia interna di AWS e altre chiamate "montsegur" come il client rsyslog.

All'interno delle directory puoi trovare i log:

Conclusione:

Il logging remoto offre un'ottima soluzione a un problema che può far crollare i servizi se lo storage del server si riempie di log, come detto all'inizio, è anche un must in alcuni casi in cui il sistema può subire gravi danni senza consentire l'accesso ai log , in questi casi un server di log remoto garantisce l'accesso sysadmin alla cronologia del server.

L'implementazione di questa soluzione è tecnicamente piuttosto semplice e persino gratuita considerando che non sono necessarie risorse elevate e server gratuiti come i livelli gratuiti di AWS sono utili per questa attività, se si aumenta la velocità di trasferimento dei registri è possibile consentire solo il protocollo UDP (nonostante la perdita di affidabilità). Esistono alcune alternative a Rsyslog come: Flume o Sentry, ma rsyslog rimane lo strumento più popolare tra gli utenti Linux e gli amministratori di sistema.

Spero che tu abbia trovato utile questo articolo su Come inviare i log di Linux a un server remoto.

I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...
I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...
Battaglia per Wesnoth 1.13.6 Sviluppo rilasciato
Battaglia per Wesnoth 1.13.6 rilasciato il mese scorso, è la sesta versione di sviluppo nella 1.13.x e offre una serie di miglioramenti, in particolar...