GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare rsyslog per la gestione centralizzata dei registri

Questo tutorial spiegherà come configurare rsyslog come server di gestione dei registri centralizzato. Gestione centralizzata dei registri significa raccogliere tutti i tipi di registri da diversi server fisici o virtualizzati su un server di registro per monitorare l'integrità e la sicurezza dei servizi del server. Usiamo rsyslog in questo tutorial perché offre prestazioni elevate, grande sicurezza e un design modulare. È anche in grado di archiviare i registri in numerose soluzioni di database come MySQL, Oracle, Hadoop e altri per un migliore consolidamento.

1. Nota preliminare

Per questo tutorial, sto usando Oracle Linux 6.4 nella versione a 32 bit. Tieni presente che anche se la configurazione viene eseguita in Oracle Linux, gli stessi passaggi funzioneranno su CentOS e Red Hat OS Linux. In questo tutorial utilizzeremo 2 server. Il primo fungerà da server rsyslog e l'altro fungerà da workstation /server client per il client rsyslog. Alla fine di questo tutorial, vedremo che una volta che un utente accede al server client, il server rsyslog registrerà automaticamente l'attività da lui svolta.


2. Installazione di Rsyslog

Per la fase di installazione, è necessario solo che i pacchetti rsyslog e le relative dipendenze siano installati. Per prima cosa, confermiamo la nostra versione del sistema operativo.

[[email protected] ~]# cat /etc/issue
Oracle Linux Server release 6.4
Kernel \r on an \m
[[email protected] ~]# arch
i686
[[email protected] ~]# uname -a
Linux RSYS01 2.6.32-358.el6.i686 #1 SMP Fri Feb 22 13:37:29 PST 2013 i686 i686 i386 GNU/Linux


Successivamente, configurerò un nuovo repository per installare i pacchetti rsyslog tramite l'utilità yum.


[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# vi rsyslog.repo
[rsyslog-v7-devel]
name=Adiscon Rsyslog v7-devel for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch
enabled=0
gpgcheck=0
protect=1
[rsyslog-v7-stable]
name=Adiscon Rsyslog v7-stable for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
protect=1

[[email protected] yum.repos.d]# yum list rsyslog
Loaded plugins: refresh-packagekit, security
rsyslog-v7-stable | 2.5 kB 00:00
rsyslog-v7-stable/primary_db | 188 kB 00:01
Available Packages
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable


Fatto, ora iniziamo a installare la nuova versione di rsyslog. I passaggi sono mostrati di seguito:


[[email protected] yum.repos.d]# yum install rsyslog -y
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Running transaction check
---> Package json-c.i686 0:0.11-3.el6 will be installed
---> Package libestr.i686 0:0.1.9-1.el6 will be installed
---> Package libgt.i686 0:0.3.11-1.el6 will be installed
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k
Installing for dependencies:
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k
Transaction Summary
===============================================================================================================
Install 5 Package(s)
Total download size: 1.0 M
Installed size: 3.2 M
Downloading Packages:
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03
---------------------------------------------------------------------------------------------------------------
Total 114 kB/s | 1.0 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgt-0.3.11-1.el6.i686 1/5
Installing : liblogging-1.0.4-1.el6.i686 2/5
Installing : libestr-0.1.9-1.el6.i686 3/5
Installing : json-c-0.11-3.el6.i686 4/5
Installing : rsyslog-7.6.7-1.el6.i686 5/5
Verifying : json-c-0.11-3.el6.i686 1/5
Verifying : libestr-0.1.9-1.el6.i686 2/5
Verifying : liblogging-1.0.4-1.el6.i686 3/5
Verifying : libgt-0.3.11-1.el6.i686 4/5
Verifying : rsyslog-7.6.7-1.el6.i686 5/5

Installed:
rsyslog.i686 0:7.6.7-1.el6

Dependency Installed:
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6

Complete!

[[email protected] yum.repos.d]# rsyslogd -v
rsyslogd 7.6.7, compiled with:
FEATURE_REGEXP: Yes
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
uuid support: Yes
Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

[[email protected] ~]# rpm -qa|grep rsyslog
rsyslog-7.6.7-1.el6.i686


Successivamente, procediamo con la fase di installazione. Per questo tutorial, salteremo il livello di sicurezza per semplificare le cose. Disabiliteremo SELINUX per garantire che non ci siano problemi di sicurezza legati al problema durante il percorso. Tieni presente che non dovresti disabilitare SELinux e il Firewall su una configurazione live. Di seguito sono riportati i passaggi:

Innanzitutto, controlla qual è lo stato attuale della nostra politica SELINUX.

[[email protected] ~]# getenforce
Enforcing

Per disabilitarlo in modo permanente, procedi nel seguente modo:

[[email protected] ~]# cd /etc/sysconfig/
[[email protected] ~]# vi selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted


A questo punto assicuriamoci di aver disabilitato il firewall per evitare qualsiasi blocco tra server e connessione client.

[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[[email protected] ~]# /etc/init.d/iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[[email protected] ~]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination

Chain FORWARD (policy ACCEPT)
num target prot opt source destination

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination


Fatto, ora che la fase di installazione è riuscita. Passiamo alla fase di configurazione.


3. Configurazione Rsyslog

Tutte le dipendenze del pacchetto sono già state installate, concentriamoci sulla configurazione di rsyslog. Entriamo nel file di configurazione e apportiamo le modifiche come di seguito:

[[email protected] ~]# vi /etc/rsyslog.conf 

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

$template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"
$template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"
authpriv.* ?Auditlog

Di seguito è riportata la spiegazione delle modifiche alla configurazione apportate:

  • modulo(load="imudp") # deve essere fatto solo una volta ==> Forniremo la possibilità di ricevere il messaggio rsyslog tra server e client tramite il protocollo UDP
  • input(type="imudp" port="514") ==> Useremo la porta 514 per i servizi rsyslog
  • $template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log" ==> Per ogni client connesso al server rsyslog, il sistema creerà automaticamente la cartella del nome host del client e il nome del file dei servizi correlati
  • $template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log" ==> Per ogni client connesso al server rsyslog, il sistema creerà automaticamente la cartella del nome host del client e il nome del file dei servizi correlati


Una volta completata la configurazione, avviamo il servizio rsyslog.

[[email protected] yum.repos.d]# /etc/init.d/rsyslog restart
Shutting down system logger: [FAILED]
Starting system logger: [ OK ]

Utilizza netstat per assicurarti che i servizi rsyslog siano attivi e in esecuzione:

[[email protected] yum.repos.d]# netstat -uanp|grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:* 2430/rsyslogd
udp 0 0 :::514 :::* 2430/rsyslogd

Sopra puoi vedere che il nostro servizio rsyslog è in esecuzione con le assegnazioni delle porte che abbiamo effettuato. Per impostazione predefinita, rsyslog controlla anche il proprio accesso al server poiché considera il server rsyslog come un client. Per assicurarci che funzioni, possiamo dare un'occhiata alla cartella /var/log. Verifichiamo se esiste o meno una cartella con il nome RSYS01 (che è il nome host del server).

[[email protected] log]# cd /var/log/
[[email protected] log]# ls -l|grep rsyslog
drwx------ 3 root root 4096 Oct 24 18:21 rsyslog_client
[[email protected] log]# cd rsyslog_client
[[email protected] rsyslog_client]# ls
RSYS01
[[email protected] rsyslog_client]# cd RSYS01/
[[email protected] RSYS01]# ls
rsyslogd.log

Bello, sembra che tutto funzioni come un incantesimo! Ora procediamo con la fase di test per concludere che tutte le configurazioni sono state eseguite come previsto.

4. Fase di test

Poiché il server che esegue il servizio rsyslog funziona anche come client, possiamo vedere sul server stesso se il monitoraggio degli accessi locali è monitorato. Per assicurarci che sia vero, accediamo al server rsyslog con un'altra sessione utilizzando il servizio SSH. Per questo passaggio, assumeremo che il server stesso abbia già configurato la configurazione senza password. Di seguito sono riportati i passaggi:

[[email protected] RSYS01]# ssh [email protected]
Last login: Sat Oct 22 15:45:48 2016 from 172.20.181.70
[[email protected] ~]# who
root pts/0 2016-10-22 00:21 (172.20.181.11)
root pts/1 2016-10-24 18:22 (127.0.0.1)
[[email protected] ~]# exit
logout
Connection to RSYS01 closed.

Fatto, così semplice. Entriamo semplicemente nel server rsyslog stesso, quindi una volta creata la nuova sessione, accediamo semplicemente di nuovo solo per assicurarci che il servizio rsyslog abbia eseguito l'audit della sessione. Ora, controlliamo se la sessione è stata verificata o meno. Di seguito sono riportati i passaggi:

[[email protected] ~]# cd var/log/rsyslog_client/RSYS01
[[email protected] RSYS01]# ls
rsyslogd.log sshd.log
[[email protected] RSYS01]# tail -f sshd.log
Oct 24 18:22:46 RSYS01 sshd[2536]: Accepted password for root from 192.168.43.101 port 52862 ssh2
Oct 24 18:22:46 RSYS01 sshd[2536]: pam_unix(sshd:session): session opened for user root by (uid=0)
Oct 24 18:22:50 RSYS01 sshd[2536]: Received disconnect from 192.168.43.101: 11: disconnected by user
Oct 24 18:22:50 RSYS01 sshd[2536]: pam_unix(sshd:session): session closed for user root
^C


Eccellente, il servizio rsyslog ha creato automaticamente un file sshd.log all'avvio della sessione sul server. All'interno del file di registro, possiamo vedere che c'è un elenco di dettagli che indica l'ora, la porta e l'utente creati nella sessione.

Ora come tutto funziona come previsto. Impostiamo una workstation per il client rsyslog da controllare dal nostro server rsyslog. Per il client rsyslog, devi solo installare i pacchetti rsyslog e apportare una semplice modifica al file di configurazione per collegarlo al server rsyslog. Di seguito sono riportati i passaggi:

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# yum list rsyslog
Loaded plugins: refresh-packagekit, security
rsyslog-v7-stable | 2.5 kB 00:00
rsyslog-v7-stable/primary_db | 188 kB 00:01
Available Packages
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

[[email protected] yum.repos.d]# yum install rsyslog -y
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Running transaction check
---> Package json-c.i686 0:0.11-3.el6 will be installed
---> Package libestr.i686 0:0.1.9-1.el6 will be installed
---> Package libgt.i686 0:0.3.11-1.el6 will be installed
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k
Installing for dependencies:
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k

Transaction Summary
===============================================================================================================
Install 5 Package(s)

Total download size: 1.0 M
Installed size: 3.2 M
Downloading Packages:
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03
---------------------------------------------------------------------------------------------------------------
Total 114 kB/s | 1.0 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgt-0.3.11-1.el6.i686 1/5
Installing : liblogging-1.0.4-1.el6.i686 2/5
Installing : libestr-0.1.9-1.el6.i686 3/5
Installing : json-c-0.11-3.el6.i686 4/5
Installing : rsyslog-7.6.7-1.el6.i686 5/5
Verifying : json-c-0.11-3.el6.i686 1/5
Verifying : libestr-0.1.9-1.el6.i686 2/5
Verifying : liblogging-1.0.4-1.el6.i686 3/5
Verifying : libgt-0.3.11-1.el6.i686 4/5
Verifying : rsyslog-7.6.7-1.el6.i686 5/5

Installed:
rsyslog.i686 0:7.6.7-1.el6

Dependency Installed:
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6

Complete!


Fatto, ora abbiamo installato il pacchetto rsyslog sulla nostra workstation client. Ora apportiamo una modifica all'interno del file di configurazione rsyslog. Per una configurazione client, devi solo modificare la configurazione come di seguito:

[[email protected] ~]# vi /etc/rsyslog.conf

*.* @192.168.43.101:514

Questo è tutto, abbiamo notato che abbiamo incluso l'IP 192.168.43.101 con la porta 514 nel file di configurazione. Quell'IP è l'IP per il server rsyslog. Ora, quando tutto è fatto, riavviamo il servizio rsyslog sulla workstation client per caricare le modifiche. Di seguito sono riportati i passaggi:

[[email protected] ~]# /etc/init.d/rsyslog restart
Shutting down system logger: [FAILED]
Starting system logger: [ OK ]


Ora torniamo al nostro server rsyslog e vediamo se è stata creata una cartella per il nome host del client rsyslog nella directory del registro rsyslog. Di seguito sono riportati i passaggi:

[[email protected] ~]# cd var/log/rsyslog_client/
[[email protected] rsyslog_client]# ls
RSYS01 CLIENT01


Eccellente, nota che è stata creata automaticamente una cartella con il nome host del client rsyslog. Ciò conferma che la nostra configurazione è corretta e che il client rsyslog è in grado di stabilire una connessione UDP al server rsyslog.

Per la procedura di test successiva, accediamo al client rsyslog come un altro utente e vediamo se il server rsyslog riesce a catturare l'attività o meno. Di seguito sono riportati i passaggi:

::CLIENT01::
login as: shahril
[email protected]'s password:
Last login: Sun Oct 23 00:21:40 2016 from 172.20.181.11
[[email protected] ~]$ who
shahril pts/0 2016-10-24 17:01 (192.168.43.80)
[[email protected] ~]$ exit


Ora, controlliamo la directory di log all'interno del server rsyslog per vedere se siamo riusciti a registrare l'attività creata dal client rsyslog o meno.

[[email protected] ~]# cd var/log/rsyslog_client/
[[email protected] rsyslog_client]# cd CLIENT01/
[[email protected] CLIENT01]# ls
rsyslogd.log sshd.log
[[email protected] CLIENT01]# tail -10 sshd.log
Oct 24 17:01:47 CLIENT01 sshd[2102]: Accepted password for shahril from 192.168.43.80 port 17002 ssh2
Oct 24 17:01:47 CLIENT01 sshd[2102]: pam_unix(sshd:session): session opened for user shahril by (uid=0)


Ottimo, il risultato mostra che il processo funziona come previsto. Ora, per il test finale, accediamo nuovamente al client rsyslog e installiamo un pacchetto per verificare se il servizio rsyslog riesce a registrare attività diverse dalla creazione della sessione. Di seguito sono riportati i passaggi:

::CLIENT01::
login as: root
[email protected]'s password:
Last login: Sat Oct 22 10:21:40 2016 from 172.20.181.11
[[email protected] ~]# yum install firefox -y
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.12-1.0.1.el6_3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
firefox i686 10.0.12-1.0.1.el6_3 OEL64 20 M

Transaction Summary
================================================================================
Install 1 Package(s)

Total download size: 20 M
Installed size: 23 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : firefox-10.0.12-1.0.1.el6_3.i686 1/1
Verifying : firefox-10.0.12-1.0.1.el6_3.i686 1/1

Installed:
firefox.i686 0:10.0.12-1.0.1.el6_3

Complete!

Quanto sopra mostra che abbiamo installato correttamente un programma di installazione del browser Firefox all'interno della nostra workstation client rsyslog. Ora torniamo al nostro server rsyslog e controlliamo se rsyslog è stato in grado di registrare il processo di installazione di un pacchetto di terze parti nella workstation. Di seguito sono riportati i passaggi:

[[email protected] ~]# cd var/log/rsyslog_client/
[[email protected] CLIENT01]# ls
rsyslogd.log sshd.log yum.log
[[email protected] CLIENT01]# tail -20 yum.log
Oct 25 17:13:17 CLIENT01 yum[2319]: Installed: firefox-10.0.12-1.0.1.el6_3.i686

Ottimo servizio rsyslog gestito per controllare le informazioni dell'attività di installazione nella workstation client.


Linux
  1. Come configurare il server Rsyslog su Debian 11

  2. Configura il server Rsyslog centralizzato su CentOS 7

  3. Come impostare i privilegi di Sudo per l'utente in Linux

  4. Come configurare i server di log remoti con rsyslog?

  5. Come modificare la directory di registro predefinita (/var/log) in Rsyslog per CentOS/RHEL 6,7

Come configurare Apache come proxy frontend per Node.js

Gestione centralizzata dei log installando rsyslog su Debian 11!

Zorin OS rilascerà Zorin Grid per la gestione centralizzata dei desktop Linux

Come configurare HAProxy come Load Balancer per Nginx in CentOS 7

Come configurare un server NGINX RTMP per lo streaming

Come creare una configurazione Rsyslog di registrazione centralizzata