02. [10p] Remote logging

O soluție simplă pentru monitorizarea centralizată o reprezintă jurnalizarea la distanță (remote). Toate echipamentele din rețea vor trimite mesajele de jurnalizare (logging) către un server central.

În Linux, daemon-ul ce asigură jurnalizarea este rsyslogd. Acesta este deja instalat pe majoritatea sistemelor Linux. În mod implicit, rsyslogd nu acceptă conexiuni din exterior. Pentru a activa această opțiune, trebuie editat fișierul de configurare /etc/rsyslog.conf și decomentate liniile ce activează recepționarea de mesaje UDP sau TCP.

Vom realiza acest lucru pe statia monitor:

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
 
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

După ce am decomentat liniile trebuie să resetăm serviciul rsyslog:

root@monitor:~# /etc/init.d/rsyslog restart
[ ok ] Stopping enhanced syslogd: rsyslogd.
[ ok ] Starting enhanced syslogd: rsyslogd.

Pentru ca un router Cisco sa trimită mesaje de jurnalizare (logging) către un server extern, adresa acestui server trebuie configurată în modul global. În cazul nostru, vom configura adresa IP a stației monitor pe ruterul R1:

R1(config)# logging 192.168.1.4

De asemenea, se poate specifica și nivelul de logging. Vor fi trimise doar mesajele cu un nivel cel puțin la fel de grav ca nivelul specificat:

R1(config)# logging trap debugging

Pentru a verifica funcționalitatea, activați debugging-ul protocolului ICMP pe ruterul R1 și executați comanda ping:

R1#debug ip  icmp
ICMP packet debugging is on
R1#ping google.ro

Translating "google.ro"...domain server (8.8.8.8) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 173.194.70.94, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 40/40/40 ms

După cum se observă nu a apărut în consola ruterului nici un mesaj de debug. Vom verifica fișierul /var/log/syslog de pe stația monitor:

root@monitor:~# cat /var/log/syslog
Mar  9 15:56:57 192.168.1.1 19: Mar  9 13:56:56.524: ICMP: echo reply rcvd, src 173.194.70.94, dst 192.168.1.1
Mar  9 15:56:57 192.168.1.1 20: Mar  9 13:56:56.564: ICMP: echo reply rcvd, src 173.194.70.94, dst 192.168.1.1
Mar  9 15:56:57 192.168.1.1 21: Mar  9 13:56:56.608: ICMP: echo reply rcvd, src 173.194.70.94, dst 192.168.1.1

Opriți debugging-ul protocolului ICMP:

R1#no debug ip icmp
ICMP packet debugging is off

Configurați pe ruterul R2 jurnalizarea remote și testați funcționalitatea:

Soluția prezentată până acum are dezavantajul că toate mesajele sunt stocate în același fișier. Dacă dorim ca mesajele de la un anumit ruter să fie stocate într-un fișier separat, vom folosi opțiunea facility ce ne permite clasificarea mesajelor de logging. Pe ruter R1 se configurează logging facility diferit:

R1(config)# logging facility local1

Pe statia monitor, în /etc/rsyslog.conf vom specifica un fișier destinație pentru tipul de logging local1, după care vom reseta serviciul:

root@monitor:~# cat /etc/rsyslog.conf |grep -B 2 R1
#### RULES ####
###############
local1.*                        /var/log/R1.log
root@monitor:~# /etc/init.d/rsyslog restart

Tipurile de logging (local1) sunt predefinite și NU pot fi înlocuite cu orice șir de caracter. Caracterul . plasat după tipul de logging (local1) este urmat nivelul de logging pentru care se va face scrierea în fișier. În acest caz caracterul * semnifică orice nivel de logging al mesajelor.

Pentru testare:

R1#debug ip icmp
ICMP packet debugging is on
R1#ping acs.pub.ro
 
Translating "acs.pub.ro"...domain server (8.8.8.8) [OK]
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 141.85.227.151, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/20/32 ms
 
root@monitor:~# cat /var/log/R1.log
Mar  9 16:11:16 192.168.1.1 45: Mar  9 14:11:15.651: ICMP: echo reply rcvd, src 141.85.227.151, dst 192.168.1.1
Mar  9 16:11:16 192.168.1.1 46: Mar  9 14:11:15.655: ICMP: echo reply rcvd, src 141.85.227.151, dst 192.168.1.1
Mar  9 16:11:16 192.168.1.1 47: Mar  9 14:11:15.687: ICMP: echo reply rcvd, src 141.85.227.151, dst 192.168.1.1

Configurați un fișier separat de logging și pentru ruterul R2.