Hendelseslogging med Syslogd og Klogd på Linux

Administrasjonsoppgavene i Linux er komplekse i mange situasjoner på grunn av mengden prosesser, tjenester og roller som utføres hvert sekund, og til dette må vi legge til pålogginger, installasjon av applikasjoner og ikke glemme alle hendelsene som hver applikasjon registrerer i distribusjonen som administreres . Heldigvis for administratorer og kontroll- eller revisjonspersonell har vi forskjellige kommandoer utviklet for å lette håndtering og kontroll av systemhendelser, og derfor vil Solvetic fokusere på to av de viktigste kommandoene for dette formålet. Syslog og Klogd.

Loggen er som en logg, der hendelser, feil, endringer og prosesser generert av applikasjoner eller operativsystemet blir registrert for senere å kunne lese denne posten og bestemme hvilke hendelser som skjedde, spesielt i tilfelle feil eller sårbarheter. Loggfilene på et linux -system ligger i / var / log -katalogen. Linux -loggsystemet administreres av to demoner:

SYSLOGDGenererer systemloggene. Syslogd kjøres automatisk når du starter et Linux -system, og det er ansvarlig for å lagre rapporter om datamaskinens drift. Den mottar meldinger fra de forskjellige delene av systemet, kjernen og applikasjonene, lagrer dem på forskjellige steder, både lokale og eksterne, etter et kriterium definert i /etc/syslog.conf konfigurasjonsfilen.

KLOGDGenerer kjerneloggene. klogd leder kjerneloggmeldinger til systemloggen. Brukeren kan kontrollere håndteringen av kjernemeldinger ved å redigere syslogd -konfigurasjonsfilen. Disse klogd -programmene er spesielt nyttige for kjerneutviklere.

1. Hva er og hvordan du bruker Syslogd i Linux -logger


La oss se hva det er og hvordan du bruker Syslogd

Hva er SyslogdSyslogd (Linux system logging utilities), er en kommando som gir oss en loggtype som brukes av mange moderne programmer, takket være Syslogd inneholder hver loggede melding minst én gang og ett felt med vertsnavn, noe som gjør overvåkingsoppgaver mye enklere og lettere å analysere.

Syslogd -kommandoen har en standard BSD -oppførsel, og de nye versjonene av Syslogd samhandler transparent med versjonen av syslog som er tilgjengelig i standardbibliotekene, og hvis en binær som er koblet til standard delte biblioteker ikke fungerer som den skal, viser Syslogd oppførselen til dette binær.

Trinn 1
Hovedkonfigurasjonsfilen er /etc/syslog.conf, og loggen er vanligvis spesifisert med regeloppføringer. Velgeren (facility.priority) og handlingen er spesifisert på hver linje. Noe å huske på er at moderne Linux-distribusjoner, Syslogd-kommandoen er erstattet av nye Syslog-implementeringer som rsyslog eller syslog-ng, så hvis vi vil bruke Syslogd kan vi installere den med følgende kommando:

 apt installere inetutils-syslogd 

FORSTØRRE

Steg 2
Der må vi skrive inn bokstaven S for å bekrefte nedlasting og installasjon av Syslogd. Når den er installert, kan vi gå til konfigurasjonsfilen som ligger i følgende bane /etc/syslog.conf:

 nano /etc/syslog.conf 

FORSTØRRE

Trinn 3
Der finner vi alle rutene Syslogd vil bruke for å fange informasjonen. Den generelle syntaksen for Syslogd er som følger:

 syslogd [-a socket] [-d] [-f konfigurasjonsfil] [-h] [-l vertsliste] [-m intervall] [-n] [-p socket] [-r] [-s list domene] [-S] [-v] [-x] 
Trinn 4
Blant de tilgjengelige alternativene har vi:

Spesifiser ekstra stikkontakterDette argumentet lar oss spesifisere de ekstra stikkontaktene som Syslogd skal lytte til, det brukes i tilfelle noen demon blir utført i et chroot () -miljø. Det vil være mulig å benytte opptil 19 ekstra stikkontakter.

 -en stikkontakt 

Aktiver feilsøkingsmodusdette argumentet aktiverer feilsøkingsmodus som vil beholde Syslog i forgrunnen og dermed skrive mye feilsøkingsinformasjon til gjeldende tty.

 -d

KonfigurasjonsfilDette argumentet angir en alternativ konfigurasjonsfil i stedet for standard /etc/syslog.conf -filen.

 -f konfigurasjonsfil 

Blokker ekstern videresending av meldingerDenne parameteren forhindrer Syslogd i å videresende meldinger den mottar fra eksterne verter.

 -h

Definer nettverksnavnTakket være denne parameteren kan et vertsnavn angis som bare må registreres med sitt enkle vertsnavn og ikke med FQDN.

 -l vertsliste (liste over verter) 

Definer tidsintervallVed å bruke denne parameteren kan vi spesifisere tidsintervallet som skal brukes, som standard er verdien 20 minutter.

 -m intervall 

Unngå å kjøre SyslodgDenne parameteren forhindrer Syslogd i å kjøre i bakgrunnen.

 -n

Sett domenekontaktDen lar oss spesifisere en alternativ Unix -domenekontakt i stedet for / dev / log

 -p stikkontakt

Tillat nettverksmeldingerDette alternativet lar installasjonen motta meldinger fra nettverket ved hjelp av en Internett -domenekontakt med Syslog -tjenesten.

 -r

Definer domenenavnDenne parameteren angir et domenenavn som må fjernes før du logger på.

 -s domeneliste 

Aktiver registreringAktiver omfattende logging,

 -S

Aktiver gjeldende versjonSe den nåværende versjonen av Syslogd.

 -v 

FORSTØRRE

Trinn 5
Når vi utfører noen av de tilgjengelige alternativene, kan vi se alle oppgavene som utføres internt:

FORSTØRRE

2. Signaler i Syslogd Linux -logger

Trinn 1
Syslogd er i stand til å reagere på et sett med signaler, et alternativ for å sende et signal til Syslogd er ved å utføre:

 drepe -SIGNAL 'cat /var/run/syslogd.pid' 
Steg 2
Når dette signalet blir utført, vil forskjellige komponenter som. Dermed er Syslogd en praktisk løsning for å analysere Linux -hendelser.

SIGHUPDette alternativet lar Syslogd utføre en omstartsprosess der alle åpne filer lukkes, konfigurasjonsfilen vil bli lest igjen og Syslog -installasjonen starter på nytt.

SIGTERMTjenesten utløper.

SIGINT, SIGQUITHvis feilsøking er aktivert, ignoreres disse, ellers utløper Syslogd.

SIGUSR1Aktiver eller deaktiver feilsøking.

SIGCHLDVent på de nye meldingene.

3. Konfigurer Linux syslogd -filen


Syslogd bruker en noe annen syntaks i konfigurasjonsfilen enn den tradisjonelle originale BSD -kildefilen. Syslogd -konfigurasjonen gjøres gjennom filen /etc/syslogd.conf. Gjennom denne filen er det spesifisert hvor de forskjellige meldingene skal dirigeres. Du kan la linjer stå tomme eller kommentere hele linjer med tegnet "#"

For at syslog skal godta eksterne tilkoblinger, må vi legge til parameteren -r

 SYSLOGD_OPTIONS = " - r -m 0" 
Normalt opptar syslogd port 514, vi må kontrollere at brannmuren ikke blokkerer den for å teste i hvilken port den kjører, fra terminalen skriver vi følgende kode
 grep syslog / etc / services 
I serviceloggene på denne linjen kan vi se at "mail, cron, info" -loggene går til meldingsmappen
 * .info; mail.none; authpriv.none; cron.none / var / log / messages 
Vi skal prøve å sende en melding til alle loggene med følgende kommando
 grep "Testmelding" / var / log / * 
I dette tilfellet kan vi se at flere logger er med tillatelser nektet, derfor kan de ikke skrives.

Det ville være nødvendig å avgjøre om det er nødvendig å endre tillatelsene eller ikke i henhold til våre behov. Loggene har flere prioritetsnivåer for meldingene (fra laveste til høyeste prioritet:

Feil, feil og advarselslogger

 feilsøking, info, varsel, advarsel, advarsel, feil, feil, kritikk, varsel, meld deg fram og få panikk 

MeldingsloggerUlike meldinger skriver logger

 auth, authpriv, cron, daemon, kern, lpr, mail, mark, nyheter, sikkerhet, syslog, bruker, uucp 
De viktigste er
  • var / log / messages: her finner vi loggene som kommer med prioritetsinformasjon (informasjon), varsel (varsel) eller advarsel (advarsel).
  • /var/log/kern.log: kjerneloggene, generert av klogd, lagres her.
  • /var/log/auth.log: denne loggen registrerer påloggingene i systemet, gangene vi gjør su, etc. Mislykkede forsøk registreres på linjer med informasjon om ugyldig nøkkeltype eller ugyldig pålogging.
  • / var / log / dmesg: informasjonen generert av kjernen under systemoppstart lagres i denne filen.

Disse loggfilene samler informasjon hele tiden, så på et tidspunkt kan de ta mye plass, for å løse dette problemet kan vi komprimere det eller sikkerhetskopiere hvis det virkelig er nødvendig. Noen endringer du må huske på er:

Bruk av jokertegnDet brukes som et jokertegn for alle prioriteringer og tjenester ovenfor, avhengig av bruken (enten før eller etter skilletegnet `. ').

 "*" (Stjerne) = 

Ikke merk prioritetAngir at det ikke er definert prioritet for tjenesten til den valgte linjen.

 "": (Blank, mellomrom, null) 

Velg forskjellige tjenesterLar deg angi flere tjenester med samme prioritetsnivå på samme linje.

 "," (spise) 

Kontroller forskjellige meldingerLar deg dirigere meldinger fra forskjellige tjenester og prioriteringer til den samme mottakeren.

 ";" (semikolon) 

Velg meldingsprioritetDet gir oss muligheten til å bare lagre meldinger med nøyaktig spesifisert prioritet.

 "=" (Lik) 

4. Hva er og hvordan du bruker Klogd i Linux -logger

Hva er KlogdKlogd (Kernel Log Daemon), er en systemdemon som er utviklet for å fange opp og logge meldinger fra Linux -kjernen. Funksjonen til Klogd -kommandoen er fokusert på å fange flere kjerneinstanser, for eksempel kilde, prioritering og oppløsning av kjerneadresser.

I Linux -miljøer har vi to hovedkilder for kjerneregisterinformasjon, for eksempel:

  • Filsystemet / proc
  • Syscall -grensesnittet (sys_syslog)
Klogd -kommandoen er designet for å velge den mest praktiske informasjonskilden for visning av informasjonen, for å oppnå dette, først og fremst bekrefter det tilstedeværelsen av et / proc -filsystem som er montert, hvis det eksisterer, / proc file / kmsg brukes som kilde til kjernelogginformasjon, i tilfelle proc -filsystemet ikke er montert, vil Klogd benytte seg av et systemanrop for å få kjernemeldinger. I tilfelle kjernemeldingene blir omdirigert gjennom syslogd -demonen, kan Klogd -demonen, siden versjon 1.1, prioritere kjernemeldinger, og denne prioriteten ligger i et område der prioriteten til meldingen fra kjernen er kodet som et enkelt numerisk siffer innenfor.

Når en melding mottas fra kjernen, vil Klogd -demonen lese det tildelte prioritetsnivået og gi det prioritetsnivået basert på syslog -meldingen. Når du bruker Klogd, vil det også være mulig å endre visningen av kjernemeldinger i systemkonsollen, i en felles kjerne, er standardkonsollloggnivået satt til 7, og dermed blir alle meldinger med et lavere prioritetsnivå til 7 (høyeste prioritet ) vises på konsollen. Prioritetsnivå 7 -meldinger regnes som "feilsøking" -meldinger og vil derfor ikke vises på konsollen for ikke å overvelde de andre kjernehendelsene med informasjon.

Klogd har en funksjon som heter Kernel Address Resolution, hvorved en generell beskyttelsesfeilprotokoll automatisk aktiveres hvis kjernen oppdager en intern feiltilstand. Dette er en del av GPF -håndteringsprosedyren, der kjernen skriver ut en statusrapport som angir statusen til prosessoren når feilen genereres. I dette resultatet vil vi se detaljer som innholdet i mikroprosessorregistrene, innholdet i kjernestakken og en overvåking av funksjonene som kjørte før feilen.

Prosessen med å løse de numeriske adressene fra beskyttelsesfeilresultatene kan gjøres manuelt eller gjennom ksymoops -programmet som er inkludert i kjernekildene. Kommandoen Klogd støtter problemet med å diagnostisere beskyttelsesfeil i gjeldende moduler som kan lastes inn av kjernen.

Trinn 1
Som Syslogd, har Klog blitt erstattet i nåværende distribusjoner med mer dynamiske kommandoer, så for installasjonen vil vi utføre følgende. Der skriver vi inn bokstaven S for å bekrefte nedlasting og installasjon.

 apt installer busybox-syslogd 

FORSTØRRE

Steg 2
Klogd -syntaksen er som følger:

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

Definer loggnivåDenne parameteren definerer standardloggingsnivået for konsollmeldinger til n.

 -c n 

Feilsøkingsmodusdette alternativet muliggjør feilsøkingsmodus.

 -d 

Logg meldingerfilen logger meldinger til det angitte filnavnet i stedet for syslog -installasjonen.

 -F 

Identifiser demoner som kjøreridentifiserer den nåværende klogd -demonen. Begge bryterne styrer lasting / omlasting av symbolinformasjon.

 -jeg 

Stopp klogd i bakgrunnenForhindre at Klogd kjører i bakgrunnen.

 -n 

Fullstendig lest på meldingsbuffereDette alternativet lar Klogd lese og registrere alle meldingene som finnes i kjernemeldingsbufferne.

 -eller 

Tving systemanropTvinger Klogd -kommandoen til å bruke systemanropsgrensesnittet til å kjerne meldingsbuffere.

 -s 

Se Klogd -versjonenSkriv ut Klogd -versjonen.

 -v 

FORSTØRRE

Trinn 4
Hvis vi vil lese alle hendelsene etter påloggingen, skal vi utføre følgende:

 klogd -o -f ./krnl.msg 
Trinn 5
Etter dette vil det være mulig å få tilgang til innholdet i filen:

FORSTØRRE

5. Klogd -signaler på Linux


Kommandoen Klogd kan svare på åtte (8) signaler som er: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 og SIGCONT. Signalene SIGINT, SIGKILL, SIGTERM og SIGHUP lar demonen stenge kjerneloggkildene og avslutte prosessen riktig mens SIGTSTP- og SIGCONT -signalene brukes til å starte og stoppe kjerneloggen.

Trinn 1
For eksempel, hvis vi vil avmontere / proc filsystemet, må vi utføre følgende kommandoer:

 # kill -TSTP pid # umount / proc # kill -CONT pid
Steg 2
Noen filer som skal brukes med Klogd er:

  • / proc / kmsg: er kildefilen for klogd -kjernemeldinger
  • /var/run/klogd.pid: er filen som inneholder prosess -id for klogd
  • /boot/System.map, /System.map, /usr/src/linux/System.map - Dette er standardplasseringene for kjernesystemkart.

Som vi kan se, har vi disse to nyttige og viktige kommandoene for en korrekt og fullstendig håndtering av kjernehendelser i Linux.

wave wave wave wave wave