despre compartiment
Aici puteti gasi articole in romana despre instalarea, configurarea si administrarea unor servicii precum si a intregului sistem.
login
articole
14.09.03 01:20Sysklogd - jurnalizarea mesajelor sistemului.
Ultima modificare: 16.12.03 14:47
Unul din cele mai importante lucruri in securitatea unui sistem Linux este posibilitatea jurnalizarii
unor evenimente.

Fisierele jurnalului (logurile) pot fi folosite pentru a descoperi incercarile de atac sau utilizare
neautorizata/malicioasa ale resurselor sistemului.

Jurnalizarea se face prin intermediul daemonului sysklogd (Linux system logging utilities).
Daemonul de jurnalizare sysklogd e alcatuit din 2 programe: syslogd si klogd.

Syslogd (System Log Daemon) jurnalizeaza toate programele si aplicatiile din sistem (inafara de
mesajelele kernelului), pe cand klogd (Kernel Log Daemon) intercepteaza si prelucreaza mesajele
kernelului.

Majoritatea jurnalelor sistemului se afla direct in /var/log, unele aplicatii isi au directorul
propriu in /var/log, de exemplu apache poate avea ca spatiu de stocare a logurilor directorul
/var/log/httpd sau /var/log/apache.

De dorit ca /var/log sa aiba alocata o partitie proprie , (mountata cu parametrii noexec,
nosuid,nodev) din cauza ca in cazul unor atacuri aceste fisiere pot capata dimensiuni foarte mari si
astfel pot compromite sistemul prin lipsa spatiului necesar functionarii corecte.

Userii sistemuilui nu trebuie sa aiba acces nici macar de citire a fisierelor jurnal
(cu exceptia cazurilor cand o aplicatie ruleaza sub alt user dacat root, e nevoie ca acest user sa aiba
access de scriere in fisierul /var/log/nume-program , care trebuie sa aiba atributul append-only
- userul poate numai adauga ceva in fisierul respectiv, nu si sterge.

Comanda:
chattr +a /var/log/fisier
va seta acest atribut fisierului respectriv.
Aplicatiile de tipul logrotate nu vor putea sterge temporar fisierul dat. Pentru rezolvarea acestei
probleme adaugati in scriptul logrotate linia
chattr -a /var/log/fisier
precum si linia chattr +a /var/log/fisier la sfarsitul scriptului.

In fisierul de configurare /etc/syslog.conf puteti observa linii asemanatoare aceseia:
mail.err /dev/console
unde mail este tipul programului ce a generat mesajul, err - prioritatea mesajului
(nivelul) si /dev/console - directia unde va fi trimis mesajul.

Mai detaliat:

Categoria programului care a generat mesajul. Avem:
auth. - securitate/autorizare (se foloseste authpriv in loc de auth).
authpriv. - securitate/autorizare .
cron. - mesaje ale daemonurilor ce executa comenzi in mod programat - cron,at.
daemon. - alte programe ce nu au intrat in celelate categorii.
ftp. - mesaje ale serverului ftp.
kern. - mesaje ale kernelului.
lpr. - mesaje ale subsistemului de printare .
mail. - mesaje ale programelor mail (sendmail, postfix, courier).
news. - mesaje ale serviciilor USENET.
syslog. - mesaje generate de syslog.
uucp. - mesaje ale subsistemului UUCP.

Nivelul de importanta al mesajului:
.emerg - sistemul nu poate fi utilizat -> down
.alert - sistemul inca e up, dar e nevoie de o actiune imediata pentru remedierea cauzei ce a provocat aceasta alerta.
.crit - conditii critice de rulare a sistemului.
.err - erori ale programelor .
.warning - mesaje de preantimpinare.
.notice - mesaje normale, dar nesemnificative.
.info - mesaje de informare.
.debug - mesaje de depanare.

Sintaxa fisierului syslog.conf permite folosirea urmatoarelor simboluri:
* cuprinde toate nivelele, respectiv tipurile de mesaje.
= utilizat pentru restrictionarea trimiterii unui tip de mesaje intr-o locatie anume.
(exemplu: *=warning /var/log/warning va trimite toate mesajele de preintimpinare de la toate programele catre fisierul /var/log/warning).
! este utilizat pentru excludere.

Cu ajutorul acestor simboluri puteti crea reguli foarte flexibile ale programului syslogd.

Fisierele jurnal pot fi salvate pe hard disk (sub forma compresata sau ca fisiere plain text),
trimise pe oricare consola, pe un alt sistem Unix, pe o adresa de e-mail indicata, sau chiar tiparite
la imprimanta.

Exemple:
# trimite mesajele de preintimpinare ale programului sendmail in /var/log/maillog
mail.warning /var/log/maillog

# trimite mesajele de eroare ale kernelului catre prima consola:
kern.err /dev/tty1

# trimite mesajele info ale serverului ftp, catre imprimanta locala:
ftp.info /dev/lp0

# trimite toate mesajele legate de autentificare pe masina gw.example.org
authpriv.* @gw.example.org
Nota: pentru ca un calculator sa accepte mesaje log dinafara, daemonul syslogd trebuie pornit cu
parametrul -r. Nu uitati sa limitati cu ajutorul unui firewall accesul la portul 514 UDP, pentru a
permite doar sistemelor cunoscute sa-si salveze informatia din jurnal pe serverul respectiv.

Fiecare mesaj din jurnal contine timpul, hostul masinii precum si denumirea programului care a
generat mesajul.

Fisierele - jurnal standard sunt:
/var/log/messages
/var/log/syslog
/var/log/debug
/var/log/secure
/var/log/cron
/var/log/maillog
/var/log/spooler
/var/log/sulog
/var/log/btmp
/var/log/faillog

Autor: GRisha
Comentarii: 2

08.01.06 10:23gr
TODO: remote logging, syslog-ng

25.07.07 11:52Sergiu Tot
Ziceai ca se pot trimite pe mail logurile. Cum se face asta ? Poti detalia putin ?

Adauga Comentariu:
Nume:
E-mail:
Cometariu:
 
counter
Informatia de pe site este prezentata "AS IS" si nimeni NU garanteaza veridicitatea sa
Hosting si intretinerea site-ului - REMSYS © 2003-2007