Syslogd Linux en Unix Command

Sysklogd bied twee stelsel nutsprogramme wat ondersteuning bied vir die stelsel logging en kern boodskap vasvang. Ondersteuning van beide internet- en unix- domeinsokkies stel hierdie program in staat om beide plaaslike en afgeleë aanmelding te ondersteun.

Stelsel logging word verskaf deur 'n weergawe van syslogd (8) afgelei van die voorraad BSD bronne. Ondersteuning vir die kern logging word verskaf deur die klogd (8) nut waarmee kern logging kan uitgevoer word op 'n selfstandige manier of as 'n kliënt van syslogd.

Syslogd bied 'n soort logging wat baie moderne programme gebruik. Elke aangetekende boodskap bevat ten minste 'n tyd en 'n gasheernaam-veld, gewoonlik 'n programnaamveld, maar dit hang af van hoe betroubaar die aanmeldprogram is.

Terwyl die syslogd bronne swaar verander is, is 'n paar notas in orde. Eerstens is daar 'n sistematiese poging om te verseker dat syslogd sy standaard standaard BSD-gedrag volg. Die tweede belangrike konsep om te let op is dat hierdie weergawe van syslogd interaktief met die weergawe van syslog wissel in die standaard biblioteke. As 'n binêre gekoppel aan die standaard gedeelde biblioteke nie korrek funksioneer nie, sou ons graag 'n voorbeeld van die afwykende gedrag wil hê.

Die hoofkonfigurasie lêer /etc/syslog.conf of 'n alternatiewe lêer, gegee met die -f opsie, word gelees by opstarten. Enige lyne wat begin met die hash-punt (`` # '') en leë lyne word geïgnoreer. As daar 'n fout tydens parsering voorkom, word die hele reël geïgnoreer.

opsomming

syslogd [ -a socket ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domein lys ] [ - v ] [ -x ]

opsies

-'n sok

Deur hierdie argument te gebruik, kan u bykomende voetstukke spesifiseer van wat syslogd moet luister. Dit is nodig as jy sommige daemon laat loop binne 'n chroot () omgewing. U kan tot 19 bykomende voetstukke gebruik. As jou omgewing nog meer benodig, moet jy die simbool MAXFUNIX in die syslogd.c bron lêer verhoog. 'N Voorbeeld vir 'n chroot () demoon word beskryf deur die mense van OpenBSD by http://www.psionic.com/papers/dns.html.

d

Skakel debug-modus aan. Hierdeur sal die daemon nie 'n vurk (2) voortgaan om homself in die agtergrond te stel nie, maar teenoorgestelde bly op die voorgrond en skryf baie ontbrekingsinligting op die huidige tty. Sien die DEBUGGING-afdeling vir meer inligting.

-f config lêer

Spesifiseer 'n alternatiewe konfigurasie lêer in plaas van /etc/syslog.conf , wat die standaard is.

h

By verstek stuur syslogd nie boodskappe wat hy ontvang van afgeleë gashere. As u hierdie skakel op die opdrag reël spesifiseer, sal die log daemon enige afgeleë boodskappe wat dit ontvang, aan forwarding hosts gestuur word.

-l gasheerlys

Spesifiseer 'n gasheernaam wat slegs met sy eenvoudige gasheernaam aangemeld moet word en nie die fqdn nie. Meervoudige leërskare kan gespesifiseer word met die kolon (``: '') separator.

-m interval

Die syslogd teken gereeld 'n tydstempel aan. Die verstekinterval tussen twee - MARK - lyne is 20 minute. Dit kan met hierdie opsie verander word. As die interval na nul gestel word, word dit heeltemal af.

-n

Vermy outo-agtergrond. Dit is nodig veral as die syslogd begin en beheer word deur init (8).

-p- aansluiting

U kan 'n alternatiewe Unix-domein socket spesifiseer in plaas van / dev / log .

r

Hierdie opsie sal die fasiliteit in staat stel om 'n boodskap van die netwerk te ontvang deur 'n internetdomein socket met die syslog diens te gebruik (sien (5)). Die verstek is om geen boodskappe van die netwerk te ontvang nie.

Hierdie opsie word in weergawe 1.3 van die sysklogd-pakket bekendgestel. Let asseblief daarop dat die verstekgedrag die teenoorgestelde is van hoe ouer weergawes gedra word, sodat jy dit dalk moet aanskakel.

-s domein lys

Gee 'n domeinnaam aan wat verwyder moet word voordat u aanmeld. Meervoudige domeine kan gespesifiseer word deur die kolon (``: '') separator. Let asseblief daarop dat geen subdomeine gespesifiseer mag word nie, maar slegs hele domeine. Byvoorbeeld, as -s north.de is gespesifiseer en die gasheerlogging besluit tot satu.infodrom.north.de, geen domein sal gesny word nie. Jy sal twee domeine soos: -s north.de:infodrom.north.de moet spesifiseer .

v

Druk weergawe en uitgang.

-x

Deaktiveer naamopnames wanneer u afgeleë boodskappe ontvang. Dit vermy deadlocks wanneer die nameserver op dieselfde masjien hardloop wat die syslog daemon bestuur.

seine

Syslogd reageer op 'n stel seine. U kan maklik 'n sein na syslogd stuur deur die volgende te gebruik:

kill-Signal `cat / var / run / syslogd.pid`

Sighup

Hierdeur kan syslogd ' n herinitialisering doen. Alle oop lêers is gesluit, die konfigurasie lêer (standaard is /etc/syslog.conf ) sal herlees word en die syslog (3) fasiliteit word weer begin.

SIGTERM

Die syslogd sal sterf.

SIGINT , SIGQUIT

As ontfouting aangeskakel is, word dit geïgnoreer, anders sal syslogd sterf.

SIGUSR1

Skakel debugging aan / af. Hierdie opsie kan slegs gebruik word as syslogd begin met die -d- debug-opsie.

SIGCHLD

Wag vir kinders as daar gebore word as gevolg van 'n muurboodskap.

Konfigurasie Lêer Syntax Verskille

Syslogd gebruik 'n effens ander sintaksis vir sy konfigurasielêer as die oorspronklike BSD bronne. Oorspronklik is alle boodskappe van 'n spesifieke prioriteit en hoër na die logbestand gestuur.

Byvoorbeeld, die volgende reël het ALLE uitset van daemonne veroorsaak deur die daemonfasiliteite te gebruik (debug is die laagste prioriteit, dus elke hoër sal ook ooreenstem) om in / usr / adm / daemons te gaan :

# Voorbeeld syslog.conf daemon.debug / usr / adm / daemons

Onder die nuwe skema bly hierdie gedrag dieselfde. Die verskil is die byvoeging van vier nuwe spesifiseerders, die asterisk ( * ) wildkaart, die vergelykingsteken ( = ), die uitroepteken ( ! ) En die minusteken ( - ).

Die * spesifiseer dat alle boodskappe vir die gespesifiseerde fasiliteit aan die bestemming gerig moet word. Let daarop dat hierdie gedrag degenerate is met die spesifisering van 'n prioriteitsvlak van ontfouting. Gebruikers het aangedui dat die asterisk notasie meer intuïtief is.

Die = wildcard word gebruik om logging aan die gespesifiseerde prioriteitsklas te beperk. So kan jy byvoorbeeld slegs debug-boodskappe na 'n bepaalde logbestand bron stuur.

Byvoorbeeld, die volgende reël in syslog.conf sal debugboodskappe vanaf alle bronne na die / usr / adm / debug- lêer lei.

# Voorbeeld syslog.conf *. = Debug / usr / adm / debug

Die ! word gebruik om nie die gespesifiseerde prioriteite aan te meld nie. Dit raak alle (!) Moontlikhede om prioriteite te spesifiseer.

Byvoorbeeld, die volgende lyne sal alle boodskappe van die fasiliteit pos, behalwe dié met die prioriteitsinligting aan die / usr / adm / pos lêer, teken. En alle boodskappe van news.info (insluitend) na news.crit (uitgesluit) sal by die / usr / adm / nuus lêer aangeteken word.

# Voorbeeld syslog.conf pos. *; Pos.! = Info / usr / adm / pos news.info; nuus.! Crit / usr / adm / nuus

U mag dit intuïtief gebruik as 'n uitsonderingspesifikasie. Bogenoemde interpretasie is eenvoudig omgekeer. Doen wat jy mag gebruik

mail.none

of

pos. *

of

pos.! debug

Om elke boodskap wat by 'n posfasiliteit kom, oor te slaan. Daar is baie ruimte om daarmee te speel. :-)

Die - mag slegs gebruik word om 'n lêernaam te prefixeer as u die lêer wil sinkroniseer na elke skryf daarvan.

Dit kan 'n mate van akklimatisering vir diegene wat gebruik word om die suiwer BSD-gedrag te gebruik, maar toetsers het aangedui dat hierdie sintax ietwat meer buigsaam is as die BSD-gedrag. Let daarop dat hierdie veranderinge nie die standaard syslog.conf (5) lêers sal affekteer nie. U moet die konfigurasie lêers spesifiek verander om die verbeterde gedrag te verkry.

Ondersteuning vir eksterne logging

Hierdie veranderinge bied netwerkondersteuning aan die syslogd-fasiliteit. Netwerkondersteuning beteken dat boodskappe gestuur kan word vanaf een nodus wat syslogd na 'n ander nodus met syslogd bedryf, waar hulle eintlik by 'n skyflêer aangeteken sal word.

Om dit te aktiveer, moet jy die opsie -r spesifiseer op die opdraglyn. Die standaard gedrag is dat syslogd nie na die netwerk sal luister nie.

Die strategie is om syslogd te luister op 'n unix domein socket vir plaaslik gegenereerde log boodskappe. Hierdie gedrag sal toelaat dat syslogd interoperieer met die syslog wat in die standaard C-biblioteek gevind word. Terselfdertyd luister syslogd op die standaard syslog-poort vir boodskappe wat van ander gasheerle aangestuur word. Om hierdie werk korrek te hê, moet die dienste (5) lêers (wat gewoonlik in / ens voorkom ) die volgende inskrywing hê:

syslog 514 / udp

As hierdie inskrywing ontbreek, kan syslogd ook nie afgeleë boodskappe ontvang of stuur nie, omdat die UDP-poort nie oopgemaak kan word nie. In plaas daarvan sal syslogd onmiddellik doodgaan en 'n foutboodskap uitblaas.

Om boodskappe na 'n ander gasheer te stuur, moet u die normale lêerlyn in die syslog.conf- lêer vervang met die naam van die gasheer waarheen die boodskappe gestuur moet word met 'n @.

Byvoorbeeld, om ALLE boodskappe deur te stuur na 'n afgeleë gasheer deur die volgende syslog.conf- inskrywing te gebruik:

# Sample syslogd konfigurasie lêer na # boodskappe na 'n afgeleë gasheer vorentoe almal. *. * @ hostname

Om alle kernboodskappe na 'n afgeleë gasheer te stuur, sal die konfigurasielêer soos volg wees:

# Voorbeeld konfigurasielêer om alle kern # boodskappe na 'n afgeleë gasheer te stuur. kern. * @ hostname

As die afgeleë gasheernaam nie opgelos kan word by opstart nie, omdat die naambediener dalk nie toeganklik is nie (dit kan na syslogd begin word), hoef jy nie bekommerd te wees nie. Syslogd sal probeer om die naam tien keer op te los en dan te kla. Nog 'n moontlikheid om dit te vermy, is om die gasheernaam in / etc / hosts te plaas .

Met gewone stelsel s, sal jy syslog-lusjies kry as jy boodskappe stuur wat van 'n afgeleë gasheer na dieselfde gasheer gestuur is (of meer ingewikkeld vir 'n derde gasheer wat dit na die eerste een stuur, ensovoorts). In my domein (Infodrom Oldenburg) het ons per ongeluk een gekry en ons skywe het dieselfde boodskap gevul. :-(

Om dit te voorkom, word geen boodskappe wat van 'n afgeleë gasheer ontvang is nie, na 'n ander (of dieselfde) afgeleë gasheer gestuur. As daar scenario's is waar dit nie sin maak nie, laat my asseblief (Joey) 'n reël.

As die afgeleë gasheer in dieselfde domein as die gasheer geleë is, loop syslogd aan, net die eenvoudige hostnaam sal in plaas van die hele fqdn aangeteken word.

In 'n plaaslike netwerk kan u 'n sentrale log-bediener voorsien om al die belangrike inligting op een masjien te hou. As die netwerk uit verskillende domeine bestaan, hoef jy nie te kla oor die aanteken van ten volle gekwalifiseerde name in plaas van eenvoudige gasheername nie. U kan die strook-domein-eienskappe van hierdie bediener gebruik. U kan aan die syslogd vertel om verskeie domeine te verwyder, behalwe die een waar die bediener in geleë is en slegs eenvoudige hostname te teken.

Met die -l opsie is daar ook 'n moontlikheid om enkele gashere as plaaslike masjiene te definieer. Dit lei ook tot die logging van slegs hul eenvoudige host name en nie die fqdns nie.

Die UDP-sok wat gebruik word om boodskappe na afgeleë gashere te stuur of om boodskappe van hulle te ontvang, word slegs geopen wanneer dit nodig is. In vrystellings voor 1.3-23 is dit elke keer geopen, maar nie oopgemaak vir lees of deurstuur nie.

Uitvoer na benoemde Pype (EIEU's)

Hierdie weergawe van syslogd het ondersteuning vir die aanteken van uitvoer na die genoemde pype (vyos). 'N Vyf-of-genoemde pyp kan gebruik word as 'n bestemming vir log boodskappe deur 'n pipiesimbool (`` |' ') aan die naam van die lêer voor te lê. Dit is handig vir ontfouting. Let daarop dat die fifo met die mkfifo-opdrag geskep moet word voordat syslogd begin is.

Die volgende konfigurasie lêer roete debug boodskappe vanaf die kern na 'n fifo:

# Voorbeeldkonfigurasie om kernfoute uit te voer # boodskappe SLEGS na / usr / adm / debug wat 'n # genoem pyp is. kern. = debug | / usr / adm / debug

Installasie Kommer

Daar is waarskynlik een belangrike oorweging by die installering van hierdie weergawe van syslogd. Hierdie weergawe van syslogd is afhanklik van behoorlike opmaak van boodskappe deur die syslog-funksie. Die funksionering van die syslog-funksie in die gedeelde biblioteke het iewers verander in die gebied van libc.so.4. [2-4] .n. Die spesifieke verandering was om die boodskap te beëindig voordat dit na die / dev / log socket gestuur word. Behoorlike funksionering van hierdie weergawe van syslogd is afhanklik van die beëindiging van die boodskap.

Hierdie probleem sal tipies manifesteer as ou staties gekoppelde binêre programme op die stelsel gebruik word. Binaries wat ou weergawes van die syslog-funksie gebruik, sal lei dat leë lyne aangeteken word, gevolg deur die boodskap met die eerste karakter in die boodskap verwyder. As u hierdie binaries weer aanpas by nuwe weergawes van die gedeelde biblioteke, sal hierdie probleem reggestel word.

Beide die syslogd (8) en die klogd (8) kan óf uitgevoer word vanaf init (8) of begin as deel van die rc * * -reeks. As dit van init begin is die opsie -n moet ingestel word, anders kry jy tonne syslog-daemonne wat begin is. Dit is omdat init (8) afhang van die proses-ID.

Sekuriteitsbedreigings

Daar is die potensiaal dat die syslogd-daemon gebruik word as 'n kanaal vir 'n ontkenning van diensaanval. Dankie, gaan na John Morrison (jmorriso@rflab.ee.ubc.ca) om my op die hoogte te stel. 'N Skurkprogram (mer) kan die syslogd-daemon baie maklik met syslog-boodskappe oorstroom, wat veroorsaak dat die loglêers al die oorblywende spasies op die lêerstelsel gebruik . Deur die aanmelding van die inet-domein-sokkels te aktiveer, sal dit natuurlik 'n stelsel blootstel aan risiko's buite programme of individue op die plaaslike masjien.

Daar is 'n aantal metodes om 'n masjien te beskerm:

  1. Implementeer kern firewalling om te beperk watter leërskare of netwerke toegang tot die 514 / UDP-aansluiting het.
  2. Logging kan gerig word aan 'n geïsoleerde of nie-wortel lêerstelsel wat, indien gevul, nie die masjien sal benadeel nie.
  3. Die ext2-lêersisteem kan gebruik word wat gekonfigureer kan word om 'n sekere persentasie van 'n lêersisteem te beperk tot gebruik slegs deur wortel. LET WEL : dit sal vereis dat syslogd uitgevoer word as 'n nie-wortelproses. LET WEL daarop dat dit die gebruik van afgeleë logging sal voorkom aangesien syslogd nie kan koppel aan die 514 / UDP-sok nie.
  4. As u die inet-domein sokke uitskakel, sal die risiko vir die plaaslike masjien beperk word.
  5. Gebruik stap 4 en as die probleem voortduur en nie sekondêr is aan 'n skurkprogram / daemon kry jy 'n lengte van ongeveer 3,5 meter (sowat 1 meter) suckerstaaf * en gesels met die betrokke gebruiker. Sucker staaf def. --- 3/4, 7/8 of 1in. verharde staafstaaf, mannetjie aan elke kant. Primêre gebruik in die oliebedryf in Wes-Noord-Dakota en ander plekke om olie uit olieputte te suig. Sekondêre gebruike is vir die konstruksie van veevoer baie en vir die hantering van die af en toe onweerstaanbare of kriekerige individu.

ontfouting

Wanneer ontfouting aangeskakel is met die -d opsie, sal syslogd baie verbasend wees deur baie van wat dit op stdout doen, te skryf. Wanneer die konfigurasie lêer herlees en heruitgegee word, sal jy 'n tabel sien wat ooreenstem met die interne datastruktuur. Hierdie tabel bevat vier velde:

aantal

Hierdie veld bevat 'n reeksnommer wat met nul begin. Hierdie getal verteenwoordig die posisie in die interne datastruktuur (dws die skikking). As een nommer uitgelaat is, is daar dalk 'n fout in die ooreenstemmende lyn in /etc/syslog.conf .

patroon

Hierdie veld is lastig en verteenwoordig die interne struktuur presies. Elke kolom staan ​​vir 'n fasiliteit (verwys na syslog (3)). Soos u kan sien, is daar nog enkele geriewe wat vrygelaat is vir vorige gebruik, slegs die linker meeste word gebruik. Elke veld in 'n kolom verteenwoordig die prioriteite (verwys na syslog (3)).

aksie

Hierdie veld beskryf die spesifieke aksie wat plaasvind wanneer 'n boodskap ontvang word wat ooreenstem met die patroon. Verwys na die syslog.conf (5) manblad vir alle moontlike aksies.

argumente

Hierdie veld toon addisionele argumente vir die aksies in die laaste veld. Vir lêer logging is dit die lêernaam vir die logfile; vir gebruikerslogging is dit 'n lys gebruikers; Vir afgeleë logging is dit die gasheernaam van die masjien om aan te meld; Vir konsole-aanteken is dit die gebruikste konsole; Vir tty-logging is dit die gespesifiseerde tty; muur het geen addisionele argumente nie.

Sien ook

logger (1), syslog (2), (5)

medewerkers

Syslogd is geneem uit BSD bronne, Greg Wettstein (greg@wind.enjellic.com) het die hawe na Linux uitgevoer , Martin Schulze (joey@linux.de) het sekere foute opgelos en verskeie nuwe funksies bygevoeg. Klogd was oorspronklik geskryf deur Steve Lord (lord@cray.com), Greg Wettstein het groot verbeteringe aangebring.

Dr Greg Wettstein
Enjellic Systems Development

Onkologie Navorsingsafdeling Rekenaarfasiliteit
Roger Maris Kanker Sentrum
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Departement Rekenaarwetenskap
Edinburgh Universiteit, Skotland
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Belangrik: Gebruik die man opdrag ( % man ) om te sien hoe 'n opdrag op u rekenaar gebruik word.

verwante artikels