Gebeurtenisregistratie met Syslogd en Klogd op Linux

De beheertaken in Linux zijn in veel situaties complex vanwege de hoeveelheid processen, services en rollen die elke seconde worden uitgevoerd en hieraan moeten we logins toevoegen, de installatie van applicaties en niet te vergeten alle gebeurtenissen die elke applicatie registreert in de beheerde distributie . Gelukkig voor beheerders en controle- of auditpersoneel hebben we verschillende commando's ontwikkeld om het beheer en de controle van systeemgebeurtenissen te vergemakkelijken en daarom zal Solvetic zich concentreren op twee van de belangrijkste commando's voor dit doel. Syslog en Klogd.

Het logboek is als een logboek, waarin gebeurtenissen, fouten, wijzigingen en processen die zijn gegenereerd door applicaties of het besturingssysteem worden vastgelegd om dit record later te kunnen lezen en te bepalen welke gebeurtenissen hebben plaatsgevonden, vooral in het geval van fouten of kwetsbaarheden. De logbestanden op een Linux-systeem bevinden zich in de / var / log-directory. Het Linux-logsysteem wordt beheerd door twee Daemons:

SYSLOGDGenereert de systeemlogboeken. Syslogd wordt automatisch uitgevoerd wanneer u een Linux-systeem start en is verantwoordelijk voor het opslaan van rapporten over de werking van de computer. Het ontvangt berichten van de verschillende delen van het systeem, de kernel en applicaties, slaat ze op verschillende locaties op, zowel lokaal als op afstand, volgens een criterium gedefinieerd in het /etc/syslog.conf configuratiebestand.

KLOGDGenereer de kernellogboeken. klogd stuurt kernel log berichten naar het systeem log. De gebruiker kan de verwerking van kernelberichten regelen door het syslogd-configuratiebestand te bewerken. Deze klogd-applicaties zijn vooral handig voor kernelontwikkelaars.

1. Wat is en hoe Syslogd te gebruiken in Linux-logboeken


Laten we eens kijken wat het is en hoe u Syslogd kunt gebruiken

Wat is SyslogdSyslogd (Linux-hulpprogramma's voor het loggen van systemen), is een commando dat ons een type log geeft dat door veel moderne programma's wordt gebruikt. makkelijker te analyseren.

Het Syslogd-commando heeft een standaard BSD-gedrag en de nieuwe versies van Syslogd werken transparant samen met de versie van syslog die beschikbaar is in de standaardbibliotheken, dus als een binair bestand dat is gekoppeld aan de standaard gedeelde bibliotheken niet correct werkt, zal Syslogd het gedrag hiervan weergeven binair.

Stap 1
Het hoofdconfiguratiebestand is /etc/syslog.conf, en het logboek wordt meestal gespecificeerd met regelitems. De selector (facility.priority) en de actie worden in elke regel gespecificeerd. Iets om in gedachten te houden is dat moderne Linux-distributies, het Syslogd-commando is vervangen door nieuwe Syslog-implementaties zoals rsyslog of syslog-ng, dus als we Syslogd willen gebruiken, kunnen we het met het volgende commando installeren:

 apt install inetutils-syslogd 

VERGROTEN

Stap 2
Daar moeten we de letter S invoeren om de download en installatie van Syslogd te bevestigen. Eenmaal geïnstalleerd, kunnen we naar het configuratiebestand gaan dat zich in het volgende pad /etc/syslog.conf bevindt:

 nano /etc/syslog.conf 

VERGROTEN

Stap 3
Daar vinden we alle routes die Syslogd zal gebruiken om de informatie vast te leggen. De algemene syntaxis voor Syslogd is als volgt:

 syslogd [-a socket] [-d] [-f configuratiebestand] [-h] [-l host lijst] [-m interval] [-n] [-p socket] [-r] [-s lijst domein] [-S] [-v] [-x] 
Stap 4
Onder de beschikbare opties hebben we:

Specificeer extra stopcontactenMet dit argument kunnen we de extra sockets specificeren waarnaar Syslogd moet luisteren, het wordt gebruikt in het geval dat een daemon wordt uitgevoerd binnen een chroot ()-omgeving. Er kunnen maximaal 19 extra stopcontacten worden gebruikt.

 -een stopcontact 

Foutopsporingsmodus inschakelendit argument activeert de foutopsporingsmodus die Syslog op de voorgrond houdt en dus veel foutopsporingsinformatie naar de huidige tty schrijft.

 -NS

ConfiguratiebestandDit argument specificeert een alternatief configuratiebestand in plaats van het standaard /etc/syslog.conf-bestand.

 -f configuratiebestand 

Doorsturen van berichten op afstand blokkerenDeze parameter voorkomt dat Syslogd berichten doorstuurt die het ontvangt van externe hosts.

 -H

Definieer netwerknaamDankzij deze parameter kan een hostnaam worden aangegeven die alleen met zijn eenvoudige hostnaam moet worden geregistreerd en niet met de FQDN.

 -l hostlist (Lijst met hosts) 

Tijdsinterval definiërenDoor gebruik te maken van deze parameter kunnen we het te gebruiken tijdsinterval specificeren, standaard is de waarde 20 minuten.

 -m interval 

Vermijd het uitvoeren van SyslodgDeze parameter voorkomt dat Syslogd op de achtergrond wordt uitgevoerd.

 -N

Domein-socket instellenHiermee kunnen we een alternatieve Unix-domeinsocket specificeren in plaats van / dev / log

 -p-aansluiting

Netwerkberichten toestaanMet deze optie kan de installatie berichten van het netwerk ontvangen via een internetdomein-socket met de Syslog-service.

 -R

Definieer domeinnaamDeze parameter specificeert een domeinnaam die moet worden verwijderd voordat u zich aanmeldt.

 -s domeinlijst 

Registratie inschakelenUitgebreide logboekregistratie inschakelen,

 -S

Huidige versie inschakelenBekijk de huidige versie van Syslogd.

 -v 

VERGROTEN

Stap 5
Bij het uitvoeren van een van de beschikbare opties kunnen we alle taken zien die intern worden uitgevoerd:

VERGROTEN

2. Signalen in Syslogd Linux-logboeken

Stap 1
Syslogd kan reageren op een reeks signalen, een optie om een ​​signaal naar Syslogd te sturen is door het volgende uit te voeren:

 kill -SIGNAL 'cat /var/run/syslogd.pid' 
Stap 2
Wanneer dit signaal wordt uitgevoerd, worden verschillende componenten zoals. Syslogd is dus een praktische oplossing om Linux-gebeurtenissen te analyseren.

SIGHUPMet deze optie kan Syslogd een herstartproces uitvoeren waarbij alle geopende bestanden worden gesloten, het configuratiebestand opnieuw wordt gelezen en de installatie van Syslog opnieuw begint.

SIGTERMDe dienst komt te vervallen.

SIGINT, SIGQUITAls foutopsporing is ingeschakeld, worden deze genegeerd, anders verloopt Syslogd.

SIGUSR1Schakel foutopsporing in of uit.

SIGCHLDWacht op de nieuwe berichten.

3. Configureer het Linux syslogd-bestand


Syslogd gebruikt een enigszins andere syntaxis in zijn configuratiebestand dan het traditionele originele BSD-bronbestand. De syslogd-configuratie wordt gedaan via het bestand /etc/syslogd.conf. Via dit bestand wordt aangegeven waar de verschillende berichten heen moeten. U kunt regels leeg laten of hele regels becommentariëren met het teken "#"

Om syslog externe verbindingen te laten accepteren, moeten we de parameter -r . toevoegen

 SYSLOGD_OPTIONS = "- r -m 0" 
Normaal gesproken bezet syslogd poort 514, we moeten controleren of de firewall het niet blokkeert om te testen op welke poort het draait, vanaf de terminal schrijven we de volgende code
 grep syslog / etc / services 
In de service logs op deze regel kunnen we zien dat de "mail, cron, info" logs naar de berichten directory gaan
 * .info; mail.none; authpriv.none; cron.none / var / log / messages 
We gaan proberen een bericht naar alle logs te sturen met het volgende commando:
 grep "Testbericht" / var / log / * 
In dit geval kunnen we zien dat verschillende logboeken zijn met geweigerde machtigingen en daarom kunnen ze niet worden geschreven.

Het zou nodig zijn om te bepalen of het nodig is om de vergunningen te wijzigen of niet volgens onze behoeften. De logboeken hebben verschillende prioriteitsniveaus van de berichten (van de laagste tot de hoogste prioriteit:

Storings-, fouten- en waarschuwingslogboeken

 debug, info, kennisgeving, waarschuwing, waarschuw, err, fout, crit, alert, emerg en panic 

Logboeken van berichttypeLogboeken van verschillende soorten berichten

 auth, authpriv, cron, daemon, kern, lpr, mail, mark, nieuws, beveiliging, syslog, gebruiker, uucp 
De belangrijkste zijn:
  • var / log / messages: hier vinden we de logs die binnenkomen met prioriteitsinfo (informatie), notice (notificatie) of warn (waarschuwing).
  • /var/log/kern.log: de kernel logs, gegenereerd door klogd, worden hier opgeslagen.
  • /var/log/auth.log: dit logboek registreert de aanmeldingen in het systeem, de tijden dat we su doen, enz. Mislukte pogingen worden geregistreerd in regels met informatie over het ongeldige sleuteltype of ongeldige login.
  • / var / log / dmesg: de informatie die door de kernel wordt gegenereerd tijdens het opstarten van het systeem wordt in dit bestand opgeslagen.

Deze logbestanden verzamelen voortdurend informatie, dus op een gegeven moment kunnen ze veel ruimte in beslag nemen. Om dit probleem op te lossen, kunnen we het comprimeren of een back-up maken als ze echt nodig zijn. Enkele wijzigingen om in gedachten te houden zijn:

Gebruik van jokertekensHet wordt gebruikt als jokerteken voor alle bovenstaande prioriteiten en services, afhankelijk van het gebruik (voor of na het scheidingsteken `. ').

 "*" (sterretje) = 

Geen prioriteit markerenGeeft aan dat er geen gedefinieerde prioriteit is voor de service van de geselecteerde lijn.

 "": (Leeg, spatie, null) 

Kies verschillende dienstenHiermee kunt u meerdere services met hetzelfde prioriteitsniveau op dezelfde regel specificeren.

 "," (eten) 

Beheer verschillende berichtenHiermee kunt u berichten van verschillende diensten en prioriteiten naar dezelfde ontvanger sturen.

 ";" (puntkomma) 

Kies berichtprioriteitHet geeft ons de mogelijkheid om alleen berichten op te slaan met de exact gespecificeerde prioriteit.

 "=" (Gelijk) 

4. Wat is en hoe Klogd te gebruiken in Linux-logboeken

Wat is KlogdKlogd (Kernel Log Daemon), is een systeemdaemon die is ontwikkeld om berichten van de Linux-kernel te onderscheppen en te loggen. De functie van het Klogd-commando is gericht op het vastleggen van meerdere kernelinstanties, zoals de bron, prioritering en resolutie van kerneladressen.

In Linux-omgevingen hebben we twee hoofdbronnen met informatie over het kernelregister, zoals:

  • Het / proc bestandssysteem
  • De syscall-interface (sys_syslog)
Het Klogd-commando is ontworpen om de meest geschikte informatiebron te kiezen voor het weergeven van de informatie, om dit te bereiken, verifieert het allereerst de aanwezigheid van een / proc-bestandssysteem dat is gemount, als het bestaat, de / proc file / kmsg wordt gebruikt als een bron van kernel-loginformatie, in het geval dat het proc-bestandssysteem niet is aangekoppeld, zal Klogd een systeemaanroep gebruiken om kernelberichten op te halen. In het geval dat de kernelberichten worden omgeleid via de syslogd-daemon, kan de Klogd-daemon, sinds zijn versie 1.1, kernelberichten prioriteren, deze prioriteit ligt in een bereik waarbij de prioriteit van het bericht van de kernel is gecodeerd als een enkel numeriek cijfer binnenin.

Wanneer een bericht van de kernel wordt ontvangen, zal de Klogd-daemon het toegewezen prioriteitsniveau lezen en het het prioriteitsniveau geven op basis van het syslog-bericht. Wanneer u Klogd gebruikt, is het ook mogelijk om de weergave van kernelberichten in de systeemconsole te wijzigen, in een gemeenschappelijke kernel is het standaard consolelogniveau ingesteld op 7, dus alle berichten met een lager prioriteitsniveau naar 7 (hoogste prioriteit ) verschijnt op de console. Prioriteitsniveau 7-berichten worden beschouwd als "foutopsporings"-berichten en zullen daarom niet op de console verschijnen om de andere kernelgebeurtenissen niet te overstelpen met informatie.

Klogd heeft een functie genaamd Kernel Address Resolution waarbij, als de kernel een interne foutconditie detecteert, automatisch een algemeen beveiligingsfoutprotocol wordt geactiveerd. Dit maakt deel uit van de GPF-afhandelingsprocedure, waarbij de kernel een statusrapport afdrukt dat de status van de processor aangeeft wanneer de fout wordt gegenereerd, binnen dit resultaat zullen we details zien zoals de inhoud van de microprocessorregisters, de inhoud van de de kernelstack en een controle van de functies die vóór de fout werden uitgevoerd.

Het proces van het oplossen van de numerieke adressen van de beveiligingsfoutresultaten kan handmatig worden gedaan of via het ksymoops-programma dat is opgenomen in de kernelbronnen. Het Klogd-commando ondersteunt het probleem van het diagnosticeren van beveiligingsfouten in de huidige modules die in de kernel kunnen worden geladen.

Stap 1
Net als Syslogd is Klog in de huidige distributies vervangen door meer dynamische commando's, dus voor de installatie zullen we het volgende uitvoeren. Daar voeren we de letter S in om de download en installatie te bevestigen.

 apt install busybox-syslogd 

VERGROTEN

Stap 2
De Klogd-syntaxis is als volgt:

 klogd [-cn] [-d] [-f fnaam] [-iI] [-n] [-o] [-p] [-s] [-k fnaam] [-v] [-x] [-2 ] 
Stap 3
Deze opties zijn:

Definieer logboekniveauDeze parameter definieert het standaardregistratieniveau voor consoleberichten op n.

 -c n 

Foutopsporingsmodusdeze optie schakelt de foutopsporingsmodus in.

 -NS 

Berichten loggenfile logt berichten naar de opgegeven bestandsnaam in plaats van syslog-installatie.

 -F 

Identificeer daemons die actief zijnidentificeert de momenteel lopende klogd-daemon. Beide schakelaars regelen het laden/herladen van symboolinformatie.

 -ik -ik 

Stop klogd op de achtergrondVoorkom dat Klogd op de achtergrond wordt uitgevoerd.

 -N 

Volledig gelezen op berichtbuffersMet deze optie kan Klogd alle berichten in de kernelberichtbuffers lezen en opnemen.

 -of 

Systeemoproep forcerenDwingt het Klogd-commando om de systeemaanroepinterface te gebruiken voor kernelberichtbuffers.

 -s 

Zie Klogd-versieDruk de Klogd-versie af.

 -v 

VERGROTEN

Stap 4
Als we alle gebeurtenissen na het inloggen willen lezen, gaan we het volgende uitvoeren:

 klogd -o -f ./krnl.msg 
Stap 5
Hierna is het mogelijk om toegang te krijgen tot de inhoud van dit bestand:

VERGROTEN

5. Klogd-signalen op Linux


Het Klogd-commando kan reageren op acht (8) signalen, namelijk: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 en SIGCONT. Met de signalen SIGINT, SIGKILL, SIGTERM en SIGHUP kan de daemon de kernellogbronnen afsluiten en het proces correct beëindigen, terwijl de signalen SIGTSTP en SIGCONT worden gebruikt om de kernellog te starten en te stoppen.

Stap 1
Als we bijvoorbeeld het bestandssysteem / proc willen ontkoppelen, moeten we de volgende opdrachten uitvoeren:

 # kill -TSTP pid # umount / proc # kill -CONT pid
Stap 2
Enkele bestanden om te gebruiken met Klogd zijn:

  • / proc / kmsg: is het bronbestand voor klogd-kernelberichten
  • /var/run/klogd.pid: is het bestand dat de proces-ID van klogd . bevat
  • /boot/System.map, /System.map, /usr/src/linux/System.map - Dit zijn de standaardlocaties voor kernelsysteemkaarten.

Zoals we kunnen zien, hebben we deze twee nuttige en essentiële commando's voor een correct en volledig beheer van kernelgebeurtenissen in Linux.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave