Hændelseslogning med Syslogd og Klogd på Linux

Administrationsopgaverne i Linux er komplekse i mange situationer på grund af mængden af ​​processer, tjenester og roller, der udføres hvert sekund, og til dette skal vi tilføje logins, installation af applikationer og ikke glemme alle de hændelser, som hver applikation registrerer i distributionen, der administreres . Heldigvis for administratorer og kontrol- eller revisionspersonale har vi forskellige kommandoer udviklet for at lette administration og kontrol af systemhændelser, og derfor vil Solvetic fokusere på to af de vigtigste kommandoer til dette formål. Syslog og Klogd.

Loggen er som en log, hvor hændelser, fejl, ændringer og processer, der genereres af applikationer eller operativsystemet, registreres for senere at kunne læse denne post og bestemme, hvilke hændelser der er sket, især i tilfælde af fejl eller sårbarheder. Logfilerne på et linux -system findes i / var / log -biblioteket. Linux -logsystemet styres af to dæmoner:

SYSLOGDGenererer systemlogfiler. Syslogd kører automatisk, når du starter et Linux -system, og det er ansvarligt for at gemme rapporter om computerens drift. Den modtager beskeder fra de forskellige dele af systemet, kernen og applikationer, gemmer dem forskellige steder, både lokale og fjernt, efter et kriterium defineret i /etc/syslog.conf konfigurationsfilen.

KLOGDGenerer kernelogfilerne. klogd dirigerer kernelog -meddelelser til systemloggen. Brugeren kan styre håndteringen af ​​kernemeddelelser ved at redigere syslogd -konfigurationsfilen. Disse klogd -applikationer er især nyttige for kerneudviklere.

1. Hvad er og hvordan man bruger Syslogd i Linux -logfiler


Lad os se, hvad det er, og hvordan du bruger Syslogd

Hvad er SyslogdSyslogd (Linux system logging utilities), er en kommando, der giver os en type log, der bruges af mange moderne programmer, takket være Syslogd indeholder hver logget besked mindst én gang og et felt af værtsnavn, hvilket gør overvågningsopgaver meget enklere og lettere at analysere.

Syslogd -kommandoen har en standard BSD -adfærd, og de nye versioner af Syslogd interagerer gennemsigtigt med den version af syslog, der er tilgængelig på standardbibliotekerne, så hvis en binær linket til standarddelte biblioteker ikke fungerer korrekt, viser Syslogd denne adfærd binært.

Trin 1
Hovedkonfigurationsfilen er /etc/syslog.conf, og loggen er normalt angivet med regelposter. Vælgeren (facilitet.prioritet) og handlingen er angivet i hver linje. Noget at huske på er, at moderne Linux-distributioner, Syslogd-kommandoen er blevet erstattet af nye Syslog-implementeringer som rsyslog eller syslog-ng, så hvis vi vil bruge Syslogd, kan vi installere det med følgende kommando:

 apt installere inetutils-syslogd 

FORSTØRRE

Trin 2
Der skal vi indtaste bogstavet S for at bekræfte download og installation af Syslogd. Når den er installeret, kan vi gå til dens konfigurationsfil, som er placeret i følgende sti /etc/syslog.conf:

 nano /etc/syslog.conf 

FORSTØRRE

Trin 3
Der finder vi alle de ruter, Syslogd vil bruge til at fange oplysningerne. Den generelle syntaks for Syslogd er som følger:

 syslogd [-a socket] [-d] [-f konfigurationsfil] [-h] [-l hostliste] [-m interval] [-n] [-p socket] [-r] [-s list domæne] [-S] [-v] [-x] 
Trin 4
Blandt de tilgængelige muligheder har vi:

Angiv ekstra stikkontakterDette argument giver os mulighed for at angive de ekstra sockets, som Syslogd skal lytte til, det bruges i tilfælde af, at en dæmon udføres i et chroot () -miljø. Det vil være muligt at gøre brug af op til 19 ekstra stikkontakter.

 -en stikkontakt 

Aktiver fejlfindingstilstanddette argument aktiverer fejlretningstilstand, som vil holde Syslog i forgrunden og dermed skrive en masse fejlfindingsoplysninger til den aktuelle tty.

 -d

KonfigurationsfilDette argument angiver en alternativ konfigurationsfil i stedet for standardfilen /etc/syslog.conf.

 -f konfigurationsfil 

Bloker fjernbesked videresendelseDenne parameter forhindrer Syslogd i at videresende meddelelser, den modtager fra eksterne værter.

 -h

Definer netværksnavnTakket være denne parameter kan der angives et værtsnavn, som kun skal registreres med sit enkle værtsnavn og ikke med FQDN.

 -l hostliste (liste over værter) 

Definer tidsintervalVed at gøre brug af denne parameter kan vi angive det tidsinterval, der skal bruges, som standard er værdien 20 minutter.

 -m interval 

Undgå at køre SyslodgDenne parameter forhindrer Syslogd i at køre i baggrunden.

 -n

Indstil domænestikDet giver os mulighed for at angive en alternativ Unix -domænestik i stedet for / dev / log

 -p stikkontakt

Tillad netværksbeskederDenne indstilling giver installationen mulighed for at modtage beskeder fra netværket ved hjælp af en internetdomæne -socket med Syslog -tjenesten.

 -r

Definer domænenavnDenne parameter angiver et domænenavn, der skal fjernes, før du logger på.

 -s domæneliste 

Aktiver registreringAktiver omfattende logning,

 -S

Aktiver den aktuelle versionSe den aktuelle version af Syslogd.

 -v 

FORSTØRRE

Trin 5
Når vi udfører en af ​​de tilgængelige muligheder, kan vi se alle de opgaver, der udføres internt:

FORSTØRRE

2. Signaler i Syslogd Linux -logfiler

Trin 1
Syslogd er i stand til at reagere på et sæt signaler, en mulighed for at sende et signal til Syslogd er ved at udføre:

 dræb -SIGNAL 'cat /var/run/syslogd.pid' 
Trin 2
Når dette signal udføres, forskellige komponenter som f.eks. Således er Syslogd en praktisk løsning til at analysere Linux -begivenheder.

OPSKRIFTDenne mulighed gør det muligt for Syslogd at udføre en genstartsproces, hvor alle åbne filer lukkes, konfigurationsfilen læses igen, og Syslog -installationen starter igen.

SIGTERMTjenesten udløber.

SIGINT, SIGQUITHvis fejlfinding er aktiveret, ignoreres disse, ellers udløber Syslogd.

SIGUSR1Aktiver eller deaktiver fejlfinding.

SIGCHLDVent på de nye beskeder.

3. Konfigurer Linux syslogd -filen


Syslogd bruger en noget anden syntaks i sin konfigurationsfil end den traditionelle originale BSD -kildefil. Syslogd -konfigurationen udføres via filen /etc/syslogd.conf. Gennem denne fil er det angivet, hvor de forskellige meddelelser skal dirigeres. Du kan efterlade linjer tomme eller kommentere hele linjer med tegnet "#"

For at syslog kan acceptere fjernforbindelser, skal vi tilføje parameteren -r

 SYSLOGD_OPTIONS = " - r -m 0" 
Normalt indtager syslogd port 514, vi skal kontrollere, at firewallen ikke blokerer den for at teste i hvilken port den kører, fra terminalen skriver vi følgende kode
 grep syslog / etc / services 
I servicelogfiler på denne linje kan vi se, at "mail, cron, info" logfiler går til meddelelsesmappen
 * .info; mail.none; authpriv.none; cron.none / var / log / meddelelser 
Vi vil prøve at sende en besked til alle logfiler med følgende kommando
 grep "Testmeddelelse" / var / log / * 
I dette tilfælde kan vi se, at flere logfiler er med tilladelser nægtet, derfor kan de ikke skrives.

Det ville være nødvendigt at afgøre, om det er nødvendigt at ændre tilladelserne eller ikke i henhold til vores behov. Logfilerne har flere prioritetsniveauer for meddelelserne (fra laveste til højeste prioritet:

Fejl-, fejl- og advarselslogfiler

 fejlfinding, info, varsel, advarsel, advare, fejl, fejl, krit, advarsel, fremkald og panik 

Beskedtype loggerForskellige meddelelser skriver logfiler

 auth, authpriv, cron, daemon, kern, lpr, mail, mark, nyheder, sikkerhed, syslog, bruger, uucp 
De vigtigste er
  • var / log / meddelelser: her finder vi de logfiler, der kommer med prioritetsinformation (information), meddelelse (meddelelse) eller advarsel (advarsel).
  • /var/log/kern.log: kernelogfilerne, genereret af klogd, gemmes her.
  • /var/log/auth.log: denne log registrerer logins i systemet, de gange vi laver osv. Mislykkede forsøg registreres i linjer med oplysninger om den ugyldige nøgletype eller ugyldigt login.
  • / var / log / dmesg: de oplysninger, der genereres af kernen under systemstart, gemmes i denne fil.

Disse logfiler samler oplysninger hele tiden, så på et tidspunkt kan de tage meget plads, for at løse dette problem kan vi komprimere det eller sikkerhedskopiere, hvis det virkelig er nødvendigt. Nogle ændringer at huske på er:

Brug af jokertegnDet bruges som et jokertegn til alle de ovennævnte prioriteringer og tjenester afhængigt af dets anvendelse (uanset om det er før eller efter skilletegnet `. ').

 "*" (Stjerne) = 

Marker ikke prioritetAngiver, at der ikke er nogen defineret prioritet for tjenesten for den valgte linje.

 "": (Blank, mellemrum, null) 

Vælg forskellige tjenesterGiver dig mulighed for at angive flere tjenester med det samme prioritetsniveau på den samme linje.

 "," (spise) 

Styr forskellige meddelelserGiver dig mulighed for at dirigere beskeder fra forskellige tjenester og prioriteter til den samme modtager.

 ";" (semikolon) 

Vælg meddelelsesprioritetDet giver os mulighed for kun at gemme beskeder med den nøjagtigt angivne prioritet.

 "=" (Lig) 

4. Hvad er og hvordan man bruger Klogd i Linux -logfiler

Hvad er KlogdKlogd (Kernel Log Daemon), er en systemdæmon, der er udviklet til at opfange og logge beskeder fra Linux -kernen. Funktionen af ​​Klogd -kommandoen er fokuseret på at fange flere kerneinstanser, f.eks. Kilde, prioritering og opløsning af kerneadresser.

I Linux -miljøer har vi to hovedkilder til kerneregisteroplysninger, såsom:

  • Filsystemet / proc
  • Syscall -grænsefladen (sys_syslog)
Klogd -kommandoen er designet til at vælge den mest bekvemme informationskilde til visning af informationen, for at opnå dette, først og fremmest verificerer det tilstedeværelsen af ​​et / proc -filsystem, der er monteret, hvis det findes, / proc file / kmsg bruges som kilde til kernelogoplysninger, hvis proc -filsystemet ikke er monteret, vil Klogd gøre brug af et systemopkald for at få kernemeddelelser. Hvis kernemeddelelserne omdirigeres gennem syslogd -dæmonen, er Klogd -dæmonen, siden version 1.1, i stand til at prioritere kernemeddelelser, denne prioritet ligger i et område, hvor meddelelsens prioritet fra kernen er kodet som et enkelt numerisk ciffer inden for.

Når der modtages en besked fra kernen, læser Klogd -dæmonen det tildelte prioritetsniveau og giver det prioritetsniveauet baseret på syslog -meddelelsen. Ved brug af Klogd vil det også være muligt at ændre visningen af ​​kernemeddelelser i systemkonsollen, i en fælles kerne er standardkonsolens logniveau sat til 7, således at alle meddelelser med et lavere prioritetsniveau til 7 (højeste prioritet ) vises på konsollen. Meddelelser fra prioritetsniveau 7 betragtes som "debugging" -meddelelser og vises derfor ikke på konsollen for ikke at overvælde de andre kernehændelser med information.

Klogd har en funktion kaldet Kernel Address Resolution, hvorved en generel beskyttelsesfejlprotokol automatisk aktiveres, hvis kernen registrerer en intern fejltilstand. Dette er en del af GPF -håndteringsproceduren, hvor kernen udskriver en statusrapport, der angiver status for processoren, når fejlen genereres, inden for dette resultat vil vi se detaljer som f.eks. Indholdet af mikroprocessorregistre, indholdet af kernestakken og en overvågning af de funktioner, der kørte før fejlen.

Processen med at løse de numeriske adresser fra beskyttelsesfejlresultaterne kan udføres manuelt eller gennem ksymoops -programmet, der er inkluderet i kernekilderne. Kommandoen Klogd understøtter problemet med at diagnosticere beskyttelsesfejl i nuværende moduler, der kan indlæses i kerner.

Trin 1
Ligesom Syslogd er Klog blevet erstattet i nuværende distributioner af mere dynamiske kommandoer, så for installationen vil vi udføre følgende. Der indtaster vi bogstavet S for at bekræfte download og installation.

 apt installer busybox-syslogd 

FORSTØRRE

Trin 2
Klogd -syntaksen er som følger:

 klogd [-cn] [-d] [-f fname] [-iI] [-n] [-o] [-p] [-s] [-k fname] [-v] [-x] [-2 ] 
Trin 3
Disse muligheder er:

Definer logniveauDenne parameter definerer standard -logningsniveauet for konsolmeddelelser til n.

 -c n 

Fejlretningstilstanddenne indstilling muliggør fejlfindingstilstand.

 -d 

Log beskederfil logger meddelelser til det angivne filnavn i stedet for syslog -installation.

 -F 

Identificer dæmoner, der køreridentificerer den aktuelt kørende klogd -dæmon. Begge kontakter styrer indlæsning / genindlæsning af symbolinformation.

 -i -I 

Stop klogd i baggrundenForhindre Klogd i at køre i baggrunden.

 -n 

Fuld læsning på meddelelsesbuffereDenne mulighed gør det muligt for Klogd at læse og registrere alle meddelelser, der findes i kernel -meddelelsesbufferne.

 -eller 

Tving systemopkaldTvinger Klogd -kommandoen til at bruge systemopkaldsgrænsefladen til at kerne beskedbuffere.

 -s 

Se Klogd versionUdskriv Klogd -versionen.

 -v 

FORSTØRRE

Trin 4
Hvis vi vil læse alle begivenhederne efter login, vil vi udføre følgende:

 klogd -o -f ./krnl.msg 
Trin 5
Herefter vil det være muligt at få adgang til indholdet af filen:

FORSTØRRE

5. Klogd signalerer på Linux


Kommandoen Klogd kan reagere på otte (8) signaler, som er: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 og SIGCONT. SIGINT-, SIGKILL-, SIGTERM- og SIGHUP -signalerne gør det muligt for dæmonen at lukke kerne -logkilderne og afslutte processen korrekt, mens SIGTSTP- og SIGCONT -signalerne bruges til at starte og stoppe kerneloggen.

Trin 1
For eksempel, hvis vi vil afmontere / proc -filsystemet, skal vi udføre følgende kommandoer:

 # kill -TSTP pid # umount / proc # kill -CONT pid
Trin 2
Nogle filer til brug med Klogd er:

  • / proc / kmsg: er kildefilen til klogd -kernemeddelelser
  • /var/run/klogd.pid: er den fil, der indeholder proces -id for klogd
  • /boot/System.map, /System.map, /usr/src/linux/System.map - Disse er standardplaceringerne for kernelsystemkort.

Som vi kan se, har vi disse to nyttige og væsentlige kommandoer til en korrekt og fuldstændig styring af kernehændelser i Linux.

wave wave wave wave wave