Come amministratori, personale di supporto IT o responsabili dell'area reti e sistemi, abbiamo qualcosa di fondamentale per aiutarci a tenere traccia di ogni evento che si verifica all'interno del sistema, sia a livello di utenti, applicazioni o sistema stesso, e questi sono i eventi.
Ogni evento registra una serie di elementi che ci aiutano a determinare nel dettaglio ogni attività con valori come data, ora, ID, utente ed evento verificatosi, permettendoci così una gestione e amministrazione molto più centralizzata.
Possiamo vedere che ogni record appartiene a una categoria diversa come sistema, sicurezza, ecc.
In ambienti Linux abbiamo a nostra disposizione l'utility Rsyslog con la quale sarà possibile gestire questi eventi in modo semplice e completo.
Cos'è RsyslogRsyslog (racket-fast system for log - sistema rapido per l'elaborazione dei log) è un'utility progettata per offrire alte prestazioni, eccellenti caratteristiche di sicurezza e un design modulare che gli consente di essere scalabile per adattarsi a ogni esigenza aziendale.
Rsyslog è in grado di accettare input da un'ampia varietà di fonti, trasformarli e generare risultati per varie destinazioni, ottimizzando la gestione IT.
RSYSLOG è in grado di fornire più di un milione di messaggi al secondo a destinazioni locali quando viene applicata un'elaborazione limitata, comprese le destinazioni remote.
Funzionalità di RsyslogQuando si utilizza Rsyslog avremo funzionalità come:
- $ LocalHostName [nome] direttiva: Questa direttiva ci permette di sovrascrivere il nome host del sistema con quello specificato nella direttiva. Se la direttiva viene data più volte, tutte tranne l'ultima verranno ignorate.
- Aggiunto il supporto per Hadoop HDFS.
- Ha un modulo impstat per eseguire statistiche periodiche sui contatori Rsyslog.
- Ha il plugin imptcp.
- Include un nuovo tipo di modulo "generatore di stringhe", utilizzato per accelerare l'elaborazione dell'output.
- Supporta OSX e Solaris.
- Possibilità di creare parser di messaggi personalizzati.
- Supporto multi-regola per imudp.
- Nuova interfaccia del modulo di uscita transazionale che fornisce prestazioni superiori.
- Multi-threading
- Supporta i protocolli TCP, SSL, TLS, RELP
- Supporta MySQL, PostgreSQL, Oracle e altro
- Filtra qualsiasi parte del messaggio syslog
- Formato di output completamente configurabile
- Adatto per reti di trasmissione di classe business
Filtraggio RsyslogRsyslog può filtrare i messaggi syslog in base alle proprietà e alle azioni selezionate, questi filtri sono:
- Filer di struttura o prioritari
- Filtri basati sulla proprietà
- Filtri basati su espressioni
Il filtro della struttura è rappresentato dal sottosistema Linux interno che è responsabile della produzione dei record, abbiamo le seguenti opzioni:
- auth / authpriv = Sono i messaggi prodotti dai processi di autenticazione
- cron = Sono record associati alle attività cron
- daemon = Questi sono messaggi relativi ai servizi di sistema in esecuzione
- kernel = Indica i messaggi del kernel Linux
- mail = Include i messaggi dal server di posta
- syslog = Sono messaggi relativi a syslog o altri demoni
- lpr = Copre le stampanti o i messaggi del server di stampa
- local0 - local7 = Conta i messaggi personalizzati sotto il controllo dell'amministratore
- emerg = Emergenza - 0
- avviso = Avvisi - 1
- err = Errori - 3
- warning = Avvertenze - 4
- avviso = Avviso - 5
- info = Informazioni - 6
- debbug = Debug - 7
1. Come configurare e controllare lo stato di Rsyslog in Linux
Passo 1
Il demone Rsyslog viene installato automaticamente sulla maggior parte delle distribuzioni Linux, ma in caso contrario, dobbiamo eseguire i seguenti comandi:
Sui sistemi Debian
sudo apt-get install Rsyslog
Sui sistemi RedHat o CentOS
sudo yum install Rsyslog
Passo 2
Possiamo controllare lo stato corrente di Rsyslog eseguendo la seguente riga:
Sulle distribuzioni Linux che utilizzano Systemd
stato systemctl rsyslog.service
Nelle versioni precedenti di Linux
servizio rsyslog status /etc/init.d/rsyslog status
INGRANDIRE
Passaggio 3
Nel caso in cui lo stato del servizio Rsyslog sia inattivo, possiamo avviarlo eseguendo quanto segue:
Nelle nuove versioni di Linux
systemctl avvia rsyslog.service
Nelle versioni precedenti di Linux
servizio rsyslog start /etc/init.d/rsyslog start
INGRANDIRE
2. Configurazione di Rsyslog su Linux
Per configurare un programma rsyslog per l'esecuzione in modalità server, dobbiamo modificare il file di configurazione nella directory /etc/rsyslog.conf.
Passo 1
Possiamo accedere utilizzando l'editor desiderato:
sudo nano /etc/rsyslog.conf
INGRANDIRE
Passo 2
Lì apporteremo le seguenti modifiche. Individua e decommenta, rimuovendo il segno (#), dalle seguenti righe per consentire la ricezione dei messaggi di registro UDP sulla porta 514. Per impostazione predefinita, la porta UDP viene utilizzata da syslog per inviare e ricevere messaggi:
$ ModLoad imudp $ UDPServerRun 514Passaggio 3
Il protocollo UDP non è affidabile per lo scambio di dati su una rete, quindi possiamo configurare Rsyslog per inviare messaggi di registro a un server remoto tramite il protocollo TCP. Per abilitare il protocollo di ricezione TCP, rimuoveremo le seguenti righe:
$ ModLoad imtcp $ InputTCPServerRun 514Passaggio 4
Ciò consentirà al demone rsyslog di collegarsi e ascoltare su un socket TCP sulla porta 514.
Entrambi i protocolli possono essere abilitati in rsyslog per essere eseguiti contemporaneamente su Linux.
Se è necessario specificare a quali mittenti è consentito l'accesso al demone rsyslog, dobbiamo aggiungere le seguenti righe:
$ AllowedSender TCP, 127.0.0.1, 192.168.0.5/24, * .domain.com
INGRANDIRE
Passaggio 5
A questo punto sarà necessario creare un nuovo template che verrà analizzato dal demone rsyslog prima di ricevere i log in arrivo. Questo modello dovrebbe indicare al server Rsyslog locale dove archiviare i messaggi di registro in arrivo. Questo modello andrà dopo la riga $ AllowedSender:
$ template Log in entrata, "/ var / log /% HOSTNAME% /% NOME PROGRAMMA% .log" *. *? Log in entrata & ~
INGRANDIRE
Passaggio 6
Per registrare solo i messaggi generati da kern aggiungeremo quanto segue. Con quanto sopra, i record ricevuti vengono analizzati dal template e verranno archiviati nel file system locale nella directory /var/log/, nel percorso:% HOSTNAME% e% PROGRAMNAME%.
kern. *?Passaggio 7
Possiamo salvare le modifiche utilizzando la seguente combinazione di tasti:
Ctrl + O
Lasciamo l'editor utilizzando:
Ctrl + X
3. Riavvia il servizio e controlla le porte Rsyslog su Linux
Passo 1
Quando apportiamo qualsiasi tipo di modifica, dobbiamo riavviare il servizio eseguendo una delle seguenti opzioni:
sudo service rsyslog restart sudo systemctl restart RsyslogPasso 2
Per verificare le porte utilizzate da Rsyslog eseguiremo quanto segue:
sudo netstat -tulpn | grep rsyslogPassaggio 3
Come abbiamo indicato, la porta utilizzata sarà la 514, dobbiamo abilitarla nel firewall per l'utilizzo con le seguenti righe.
Su RedHat e CentOS
firewall-cmd --permanent --add-port = 514 / tcp firewall-cmd -reload
In Debian
ufw allow 514 / tcp ufw allow 514 / udpSe usiamo IPTables:
iptables -A INPUT -p tcp -m tcp --dport 514 -j ACCEPT iptables -A INPUT -p udp --dport 514 -j ACCEPT
INGRANDIRE
In questo modo abbiamo installato Rsyslog in Linux per gestire i vari tipi di log che vengono costantemente generati al suo interno.