Syslogd Linux i Unix naredba

Sysklogd obezbeđuje dva sistemska komunalija koja pružaju podršku za sistemsku logovanje i zarobljavanje poruka u kernelu. Podrška internetskih i unix domenskih soketa omogućava ovaj utility paket da podržava lokalno i udaljeno evidentiranje.

Sistemska evidencija obezbeđuje verzija syslogd (8) izvedena iz izvornih BSD izvora. Podršku za evidenciju kernela obezbeđuje klogd (8) uslužni program koji omogućava da se logiranje kernela odvija samostalno ili kao klijent syslogd-a.

Syslogd pruža neku vrstu beleženja koju mnogi savremeni programi koriste. Svaka prijavljena poruka sadrži bar jedno vrijeme i polje za ime domaćina, obično polje sa nazivom programa, ali to zavisi od toga koliko je veran program za evidenciju.

Iako su syslogd izvori u velikoj mjeri modifikovani, nekoliko napomena je u redu. Pre svega, sistematski pokušaj da se obezbedi da syslogd prati svoje standardno, standardno BSD ponašanje. Drugi važan koncept koji treba primetiti jeste da ova verzija syslogd interaguje transparentno sa verzijom syslog-a koja se nalazi u standardnim bibliotekama. Ako binarni linkovi sa standardnim dijeljenim bibliotekama ne funkcionišu ispravno, voleli bimo primjer anomalnog ponašanja.

Glavna konfiguraciona datoteka /etc/syslog.conf ili alternativna datoteka, data sa opcijom -f , se čita prilikom pokretanja. Svake linije koje počinju sa heš markom (`` # '') i prazne linije se ignorišu. Ako dođe do greške tokom razgraničenja, čitava linija se zanemaruje.

Sinopsis

[ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -f config datoteka ] [ -h ] [ -m host list ] [ -m interval ] [ -n ] [ -s socket ] [ -d ] v ] [ -x ]

Opcije

-socket

Pomoću ovog argumenta možete odrediti dodatne soketove iz tog syslogd-a . Ovo je potrebno ako pustite da neki demon pokrene u okruženju chroot (). Možete koristiti do 19 dodatnih utičnica. Ako je vašem okruženju potrebno još više, morate povećati simbol MAXFUNIX u izvornoj datoteci syslogd.c. Primer za demon chroot () opisuju ljudi iz OpenBSD-a na adresi http://www.psionic.com/papers/dns.html.

-d

Uključuje debug mod. Korišćenjem ovog demona neće se nastaviti viljuška (2) da se postavi u pozadini, ali suprotno tome ostaje u prvom planu i napiše mnogo debug informacija o trenutnom tty-u. Pogledajte odeljak DEBUGGING za više informacija.

-f config datoteka

Navedite alternativnu konfiguracionu datoteku umesto /etc/syslog.conf , koja je podrazumevana.

-h

Podrazumevano syslogd neće prenijeti poruke koje primi od udaljenih hostova. Određivanje ovog prekidača u komandnoj liniji će dovesti do daemon-a da prosledi sve daljinske poruke koje primi za prosleđivanje hostova koji su definisani.

- lista domaćina

Navedite ime hosta koje treba upisati samo sa svojim jednostavnim hostnameom, a ne sa fqdn. Višestruki hostovi mogu biti specificirani pomoću separatora (``: '') separatora.

-m interval

Syslogd redovno registruje oznaku vremenske oznake. Podrazumevani interval između dve - MARK - linije je 20 minuta. Ovo se može promeniti pomoću ove opcije. Podešavanje intervala na nulu potpuno isključuje.

-n

Izbegavajte automatsko pozadiniranje. Ovo je potrebno posebno ako se syslogd pokrene i kontroliše init (8).

-p utičnica

Možete odrediti alternativni sok za unix domene umjesto / dev / log .

-r

Ova opcija će omogućiti objektu da primi poruku iz mreže pomoću priključka internet domena sslog servisom (vidi (5)). Podrazumevano je da ne primate nikakve poruke iz mreže.

Ova opcija je uvedena u verziji 1.3 paketa sysklogd. Imajte na umu da je podrazumevano ponašanje suprotno ponašanju starijih verzija, pa ćete možda morati da ga uključite.

-s domainlist

Navedite ime domena koji treba ukloniti prije prijave. Višedeljeni domeni se mogu odrediti pomoću separatora (``: '') separatora. Molimo vas da budete upozoreni da se ne mogu navesti pod-domene, već samo čitav domen. Na primjer, ako je specificirano -s north.de i logiranje hosta rješava na satu.infodrom.north.de, nijedan domen ne bi bio prekinut, morat ćete navesti dva domena: -s north.de:infodrom.north.de .

-v

Verzija za štampu i izlaz.

-x

Onemogućite lookup imena kada primate daljinske poruke. Na taj način se izbegavaju blokade kada imenik za radove radi na istoj mašini koja pokreće syslogov demon.

Signali

Syslogd reaguje na skup signala. Možete lako poslati signal u syslogd koristeći sljedeće:

ubiti -SIGNAL `cat / var / run / syslogd.pid`

Sighup

Ovo omogućava syslogd da izvrši ponovno inicijalizaciju. Sve otvorene datoteke su zatvorene, datoteka konfiguracije (podrazumevano je /etc/syslog.conf ) će se ponovo prebrati i syslog (3) se ponovo pokreće.

SIGTERM

Syslogd će umreti.

SIGINT , SIGVIT

Ako je debugging omogućeno, one se ignorišu, inače će syslogd umrijeti.

SIGUSR1

Uključite / isključite debugovanje. Ova opcija se može koristiti samo ako je syslogd pokrenut sa opcijom -d debug.

SIGCHLD

Sačekajte dijete ako su neki rođeni, zbog zidnih poruka.

Razlike u sintaksi konfiguracije datoteke

Syslogd koristi nešto sintaksu za svoju konfiguracionu datoteku od izvornih BSD izvora. Prvobitno sve poruke određenog prioriteta i iznad su prosleđene u datoteku dnevnika.

Na primjer, slijedeća linija je prouzrokovala SVI izlaz od demona koristeći objekte daemon (debug je najniži prioritet, tako da će svaka viša takodje biti usklađena) ići u / usr / adm / daemons :

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

Prema novoj šemi, ovo ponašanje ostaje isto. Razlika je dodavanje četiri nova specifikatora, džepne oznake zvezdice ( * ), znaka jednačine ( = ), uzvičnog znaka ( ! ) I minusa ( - ).

* Određuje da se sve poruke za navedeni objekat usmeravaju ka odredištu. Imajte na umu da je ovo ponašanje degenerirano s određivanjem prioritetnog nivoa debagovanja. Korisnici su pokazali da je oznaka zvezdice intuitivnija.

The = wildcard se koristi da ograniči evidenciju u određenu klasu prioriteta. Ovo omogućava, na primer, usmeravanje samo debug poruka na određeni izvor prijavljivanja.

Na primjer, sljedeća linija u syslog.conf-u bi usmjerila poruke za debaganje iz svih izvora u datoteku / usr / adm / debug .

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

The ! se koristi da isključi evidenciju određenih prioriteta. Ovo utiče na sve (!) Mogućnosti određivanja prioriteta.

Na primjer, sljedeće linije će prijaviti sve poruke pošte postrojenja, osim onih sa prioritetnim informacijama u / usr / adm / mail datoteki. I sve poruke iz news.info (uključujući) na news.crit (isključujući) bi bile upisane u datoteku / usr / adm / news .

# Sample syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; news.! Crit / usr / adm / news

Možete ga koristiti intuitivno kao izuzetak. Navedeno tumačenje je jednostavno obrnuto. Uradite to što možete koristiti

mail.none

ili

mail.! *

ili

mail.! debug

da preskočite svaku poruku koja dolazi sa poštom. Ima puno prostora za igru. :-)

- Možda se koristi samo za prefiks imena datoteke ako želite da izgubite sinhronizaciju datoteke nakon svakog pisanja na njega.

Ovo može uzeti određenu aklimatizaciju za one osobe koje se koriste za čisto BSD ponašanje, ali su testeri pokazali da je ova sintaksa nešto fleksibilnija od ponašanja BSD-a. Imajte na umu da ove promjene ne bi trebale utjecati na standardne syslog.conf (5) datoteke. Morate specifično izmeniti konfiguracione datoteke kako biste dobili poboljšano ponašanje.

Podrška za daljinsko evidentiranje

Ove izmene pružaju mrežnu podršku za syslogd objekat. Podrška za mrežu znači da se poruke mogu prosleđivati ​​iz jednog čvora koji pokreće syslogd na drugi čvor koji pokreće syslogd gdje će se zapravo prijaviti u datoteku diska.

Da biste to omogućili, morate navesti opciju -r u komandnoj liniji. Podrazumevano ponašanje je da syslogd neće slušati mrežu.

Strategija je da syslogd sluša na soksu unix domena za lokalno generisane dnevnike. Ovo ponašanje će omogućiti syslogd interakciji s sislogom koji se nalazi u standardnoj C biblioteci. Istovremeno, syslogd sluša na standardnom portu syslog za poruke koje se prosleđuju od drugih hostova. Da bi ovaj rad ispravno uradio, datoteke (5) usluga (tipično pronađene u / etc ) moraju imati sledeći unos:

syslog 514 / udp

Ako nedostaje ovaj unos, syslogd ne može primati udaljenu poruku niti je poslati, jer se UDP port ne može otvoriti. Umesto toga, syslogd će umreti odmah, ispuštajući poruku o grešci.

Da biste izazvali poruke koje će biti prosleđene drugom hostu, zamijenite običnu liniju datoteka u syslog.conf datoteci sa nazivom hosta kojem će se poruke slati sa @.

Na primjer, za prosleđivanje SVIH poruka udaljenom hostu koristeći sljedeću syslog.conf stavku:

# Uzorak konfiguracione datoteke syslogd do # poruke udaljenom hostu prosledi sve. *. * @hostname

Da bi sve poruke kernela prosleđivale udaljenom domaćinu, konfiguraciona datoteka bi bila sljedeća:

# Sample konfiguracionu datoteku da prosledi sve poruke kernela # na udaljeni host. kern. * @hostname

Ako se udaljeno ime hosta ne može riješiti prilikom pokretanja, jer ime-server možda nije dostupan (može se pokrenuti nakon syslogd-a), ne morate brinuti. Syslogd će pokušati ponovo da reši ime deset puta, a zatim se požali. Druga mogućnost da se to izbjegne jeste postavljanje hostname-a u / etc / hostove .

Sa normalnim syslogd s dobijate syslog-petlje ako šaljete poruke koje su primljene od udaljenog domaćina na isti host (ili komplikovanije trećem hostu koji ga šalje nazad prvom, i tako dalje). U mom domenu (Infomonta Oldenburg) slučajno smo dobili jedan i naši diski su ispunjeni istom jedinstvenom porukom. :-(

Da bi ovo izbegli u daljim vremenima, poruke koje su primljene od udaljenog hosta više nisu poslate na drugi (ili isti) udaljeni host. Ako postoje scenariji u kojima to nema smisla, molim vas ostavite me (Joey) liniju.

Ako se udaljeni host nalazi u istom domenu kao i host, syslogd se pokreće, samo će se jednostavno ime hosta prijaviti umjesto čitavog fqdn-a.

U lokalnoj mreži možete obezbediti centralni server za prijavljivanje kako bi se sve važne informacije držale na jednoj mašini. Ako se mreža sastoji od različitih domena, ne morate se žaliti na evidentiranje potpuno kvalifikovanih imena umjesto jednostavnih imena domaćina. Možda želite da koristite funkcije strip-domain-a ovog servera. Syslogd možete reći da uklonite nekoliko domena, osim onog na kojem se nalazi server, a samo logirajte jednostavne imena hostova.

Pomoću opcije -l postoji mogućnost definiranja pojedinačnih hostova kao lokalnih mašina. Ovo takođe rezultira logiranjem samo njihovih jednostavnih imena hostova, a ne fqdns.

UDP utičnica koja se koristi za prosleđivanje poruka udaljenim domaćinima ili za prijem poruka od njih se otvara samo kada je to potrebno. U izdanjima pre 1.3-23 je otvoren svaki put, ali nije otvoren za čitanje ili prosleđivanje respektivno.

Izlaz na naznačene cijevi (FIFO)

Ova verzija syslogd-a ima podršku za izlaz logovanja na nazvane cevi (fifos). Fifo ili imenovana cijev može se koristiti kao odredište za poruke dnevnika tako što se prepiše simbol pipije (`` | '') u ime datoteke. Ovo je zgodno za debagovanje. Imajte na umu da se fio mora kreirati pomoću mkfifo naredbe pre započinjanja syslogd-a.

Sledeća konfiguraciona datoteka usmerava debug poruke iz kernela na fifo:

# Primjer konfiguracije za rukovanje kernelom debugging # poruke SAMO za / usr / adm / debug koji je # imenovan cijev. kern. = debug | / usr / adm / debug

Konzervacije ugradnje

Verovatno je jedno važno pitanje prilikom instalacije ove verzije syslogd-a. Ova verzija syslogd zavisi od pravilnog oblikovanja poruka syslog funkcijom. Funkcionisanje syslog funkcije u deljenim bibliotekama promijenilo se negde u regionu libc.so.4 [2-4] .n. Specifična promena je bila da null-terminate poruku pre nego što je prenesete u / dev / log utičnicu. Pravilno funkcionisanje ove verzije syslogda zavisi od nultog završetka poruke.

Ovaj problem se obično manifestuje ako se koriste stari statički povezani binarni fajlovi. Binarni fajlovi koji koriste stare verzije syslog funkcije će dovesti do upisivanja praznih linija praćene porukom sa prvim znakom u uklonjeni poruci. Rešavanje ovih binarnih datoteka na nove verzije zajedničkih biblioteka će ispraviti ovaj problem.

I syslogd (8) i klogd (8) mogu se pokrenuti od init (8) ili započeti kao dio rc. * Sekvence. Ako je pokrenuto od init opcije -n mora se podesiti, u suprotnom, dobićete tone syslog demona koje su započete. Ovo je zato što init (8) zavisi od ID procesa.

Sigurnosne pretnje

Postoji mogućnost da se syslogd daemon koristi kao provodnik napada odbijanja usluge. Hvala i idite na John Morrison (jmorriso@rflab.ee.ubc.ca) zbog upozorenja na ovaj potencijal. Lažni program (mer) mogao je vrlo lako poplaviti syslogd demon s sislog porukama, što dovodi do toga da datoteke dnevnika troše sve preostale prostorije u datotečnom sistemu . Aktiviranje evidencije preko inet domenskih socketa će naravno izložiti sistem rizicima izvan programa ili pojedinaca na lokalnoj mašini.

Postoji niz metoda zaštite mašine:

  1. Implementirajte zaštitni zid kernela kako biste ograničili koji hostovi ili mreže imaju pristup utikaču 514 / UDP.
  2. Logiranje može biti usmjereno na izolovani ili nekorenski datotečni sistem koji, ako je popunjen, neće ometati uređaj.
  3. Može se koristiti ext2 datotečni sistem koji se može konfigurisati da ograniči određeni procenat datotečnog sistema samo za koriąćenje. NAPOMENA: to će zahtevati da se syslogd pokrene kao nekorenski proces. ALI NAPOMENA: ovo će spriječiti korištenje daljinskog evidentiranja jer syslogd neće moći da se poveže sa 514 / UDP soketom.
  4. Onemogućavanje soketa inet domena ograničiće rizik na lokalnu mašinu.
  5. Koristite korak 4 i ako se problem i dalje održi i nije sekundaran za lažni program / demon dobijate dužinu od 3,5 metra (oko 1 metar) duge šipke * i razgovarajte sa dotičnim korisnikom. Sucker rod def. --- 3/4, 7/8 ili 1in. ojačan čelični štap, muški navoj na svakom kraju. Primarna upotreba u naftnoj industriji u zapadnoj Sjevernoj Dakoti i na drugim lokacijama za pumpanje 'sisa' ulja iz naftnih izvora. Sekundarne namjene su za izgradnju stočne hrane za stoku i za bavljenje povremenim nepokretnim ili ratnim licima.

Debugging

Kada se debugging uključi koristeći opciju -d, syslogd će biti vrlo glomazan pisanjem velikog broja onoga što radi na stdout-u. Kad god se konfiguraciona datoteka ponovo prikaže i ponovo razrađuje, videćete tabelarni prikaz koji odgovara unutrašnjoj strukturi podataka. Ova tabela se sastoji od četiri polja:

broj

Ovo polje sadrži serijski broj koji počinje sa nula. Ovaj broj predstavlja položaj u internoj strukturi podataka (tj. Nizu). Ako je jedan broj izostavljen onda može doći do greške u odgovarajućoj liniji u /etc/syslog.conf .

obrazac

Ovo polje je nezgodno i tačno predstavlja unutrašnju strukturu. Svaka kolona označava objekat (pogledajte syslog (3)). Kao što vidite, još uvijek postoje neki objekti koji su slobodni za bivšu upotrebu, koriste se samo ostali levi. Svako polje u koloni predstavlja prioritete (pogledajte syslog (3)).

akcija

Ovo polje opisuje konkretnu akciju koja se dešava kad god se primi poruka koja odgovara obrazcu. Pogledajte na syslog.conf (5) manpage za sve moguće radnje.

arguments

Ovo polje prikazuje dodatne argumente za akcije u poslednjem polju. Za logovanje datoteka ovo je ime datoteke za logfile; za prijavljivanje korisnika ovo je lista korisnika; za udaljeno evidentiranje ovo je ime hosta mašine za prijavljivanje; za konzolnu logovanje ovo je korištena konzola; za tty-logging ovo je specificirano tty; zid nema dodatnih argumenata.

Vidi Takođe

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

Saradnici

Syslogd je uzet iz BSD izvora, Greg Wettstein (greg@wind.enjellic.com) izvršio je port za Linux , Martin Schulze (joey@linux.de) ispravio je neke greške i dodao nekoliko novih funkcija. Klogd je originalno napisao Steve Lord (lord@cray.com), Greg Wettstein je napravio značajna poboljšanja.

Dr. Greg Wettstein
Enjellic Systems Development

Kompjuterski objekt za istraživanje onkologije
Roger Maris Cancer Center
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Odsek za računarstvo
Univerzitet u Edinburgu, Škotska
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infomaterijal Oldenburg
joey@linux.de

Važno: Koristite komandu čovjeka ( % čovjek ) da biste videli kako se na vašem računaru koristi komanda.

povezani članci