Syslogd Linux a Unix Command

Sysklogd poskytuje dva systémové nástroje, ktoré poskytujú podporu pri zaznamenávaní systému a zachytávaní správ jadra. Podpora internetových a unixových doménových zásuviek umožňuje tento balík nástrojov podporovať lokálne aj vzdialené zaznamenávanie.

Zaznamenávanie systému je zabezpečené verziou syslogd (8) odvodenou od BSD zdrojov. Podporu pre protokolovanie jadra poskytuje nástroj klogd (8), ktorý umožňuje protokolovanie jadra buď samostatne, alebo ako klient syslogd.

Syslogd poskytuje druh logovania, ktorý používajú mnohé moderné programy. Každá zaznamenaná správa obsahuje pole s časom a názvom hostiteľa, zvyčajne aj pole s názvom programu, ale závisí to od toho, ako je program na prihlasovanie dôveryhodný.

Zatiaľ čo zdroje syslogd boli značne upravené, pár poznámok je v poriadku. Najskôr sa systematicky pokúsil zabezpečiť, aby syslogd dodržiaval štandardné BSD správanie. Druhým dôležitým konceptom je, že táto verzia syslogd interaguje transparentne s verziou syslog nájdenou v štandardných knižniciach. Ak binárne prepojené na štandardné zdieľané knižnice nefunguje správne, chceme príklad anomálneho správania.

Hlavný konfiguračný súbor /etc/syslog.conf alebo alternatívny súbor, ktorý je daný voľbou -f , sa číta pri spustení. Všetky riadky začínajúce značkou hash (`` # '') a prázdne riadky sa ignorujú. Ak sa pri analýze vyskytne chyba, celý riadok sa ignoruje.

synopse

syslogd [ -a socket ] [ -d ] [ -f konfiguračný súbor ] [ -h ] [ -l zoznam hostiteľov ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s doménový zoznam ] v ] [ -x ]

možnosti

-a zásuvka

Pomocou tohto argumentu môžete špecifikovať ďalšie sokety, z ktorých musí syslogd počúvať. Je to potrebné, ak necháte nejaký démon bežať v prostredí chroot (). Môžete použiť až 19 ďalších zásuviek. Ak vaše prostredie potrebuje ešte viac, musíte v rámci zdrojového súboru syslogd.c zvýšiť symbol MAXFUNIX . Príklad pre démona chroot () je popísaný ľuďmi z OpenBSD na adrese http://www.psionic.com/papers/dns.html.

-d

Zapne režim ladenia. Pomocou tohto démona nebude pokračovať vidlica (2), aby sa nastavila na pozadí, ale naproti tomu zostala v popredí a písala veľa informácií o ladení na aktuálnom tty. Ďalšie informácie nájdete v časti DEBUGGING.

-f konfiguračný súbor

Zadajte alternatívny konfiguračný súbor namiesto /etc/syslog.conf , ktorý je predvolený.

-h

Predvolene syslogd nebude presmerovať správy, ktoré dostáva od vzdialených hostiteľov. Určenie tohto prepínača na príkazovom riadku spôsobí, že démon logy odošle všetky vzdialené správy, ktoré prijme na presmerovanie hostiteľov, ktoré boli definované.

-l zoznam hostí

Zadajte názov hostiteľa, ktorý by mal byť zaznamenaný iba s jeho jednoduchým názvom hostiteľa a nie s fqdn. Viacerí hostitelia môžu byť zadané pomocou dvojbodka (``: '').

-m intervalu

Syslogd pravidelne zaznamenáva časovú značku značky. Predvolený interval medzi dvoma - MARK - riadkami je 20 minút. Túto možnosť môžete zmeniť. Nastavenie intervalu na nulu úplne vypne.

-n

Vyhnite sa automatickému pozadovaniu. To je potrebné najmä vtedy, keď sa syslogd spúšťa a kontroluje init (8).

-p zásuvka

Môžete určiť alternatívnu sadu domény Unix namiesto / dev / log .

-r

Táto možnosť umožní zariadeniu prijímať správu zo siete pomocou zásuvky internetovej domény so službou syslog (pozrite (5)). Predvolenou možnosťou nie je prijímať žiadne správy zo siete.

Táto možnosť je uvedená vo verzii 1.3 balíka sysklogd. Upozorňujeme, že predvolené správanie je opakom toho, ako sa správajú staršie verzie, takže budete musieť túto možnosť zapnúť.

-s doménového zoznamu

Zadajte názov domény, ktorý by ste mali pred odhlásením odstrániť. Viaceré domény môžu byť zadané pomocou dvojbodka (``: '') oddeľovač. Upozorňujeme, že nemožno špecifikovať žiadne subdomény, ale iba celé domény. Napríklad, ak je zadané -s north.de a logovanie hostiteľa sa rozdelí na satu.infodrom.north.de, žiadna doména nebude rezaná, budete musieť zadať dve domény, ako napríklad: -s north.de:infodrom.north.de .

-v

Vytlačte verziu a skončte.

-X

Zakazuje vyhľadávanie mien pri prijímaní vzdialených správ. Tým sa zabráni zablokovaniu, keď je server názvov spustený na tom istom počítači, ktorý spúšťa démona syslog.

signály

Syslogd reaguje na súbor signálov. Môžete ľahko poslať signál na syslogd pomocou nasledujúceho:

zabiť -SIGNAL `cat / var / run / syslogd.pid`

SIGHUP

To umožňuje syslogd vykonať opätovnú inicializáciu. Všetky otvorené súbory sú zatvorené, konfiguračný súbor (predvolené je /etc/syslog.conf ) bude znova prečítaný a zariadenie syslog (3) sa opäť spustí.

SIGTERM

Syslogd zomrie.

SIGINT , SIGQUIT

Ak je zapnuté ladenie, tieto sú ignorované, inak syslogd zomrie.

SIGUSR1

Zapnutie / vypnutie ladenia. Táto možnosť sa môže použiť iba vtedy, ak sa syslogd spustí s voľbou -d debug.

SIGCHLD

Počkajte na deti, ak sa niekto narodil, kvôli správam na stenu.

Rozdiely v syntaxe súborov konfigurácie

Syslogd používa trochu inú syntax pre svoj konfiguračný súbor ako pôvodné zdroje BSD. Pôvodne boli všetky správy špecifickej priority a vyššie uvedené odoslané do súboru denníka.

Napríklad nasledujúci riadok spôsobil VŠETKY výstupy z démonov pomocou démonových zariadení (ladenie je najnižšou prioritou, takže každá vyššia bude tiež zodpovedať) prejsť do / usr / adm / daemons :

# Ukážka syslog.conf daemon.debug / usr / adm / daemons

Podľa nového systému toto správanie zostáva rovnaké. Rozdiel je pridaním štyroch nových špecifikátorov, zástupných znakov ( * ), znakov rovníc ( = ), výkričníkov ( ! ) A znaku mínus ( - ).

* Označuje, že všetky správy pre určené zariadenie sa majú smerovať do cieľa. Upozorňujeme, že toto správanie je degenerované pri určovaní úrovne ladenia s prioritou. Používatelia uviedli, že označenie hviezdičkou je intuitívnejšie.

Znak = zástupný znak sa používa na obmedzenie prihlásenia na zadanú triedu priorít. To umožňuje napríklad smerovanie iba ladiacich správ na konkrétny zdroj záznamu.

Napríklad nasledujúci riadok v súbore syslog.conf by priamym ladením správ zo všetkých zdrojov do súboru / usr / adm / debug .

# Ukážka syslog.conf *. = Debug / usr / adm / debug

The ! sa používa na vylúčenie zaznamenávania určených priorít. To ovplyvňuje všetky (!) Možnosti určenia priorít.

Napríklad nasledujúce riadky by zaznamenávali všetky správy poštovej schránky zariadenia okrem tých s prioritou info do súboru / usr / adm / mail . A všetky správy od news.info (vrátane) do news.crit (okrem) budú zaznamenané do súboru / usr / adm / news .

# Ukážka syslog.conf pošty. *; Mail.! = Info / usr / adm / mail news.info; novinky!! Crit / usr / adm / news

Môžete ho použiť intuitívne ako špecifikátor výnimky. Vyššie uvedená interpretácia je jednoducho obrátená. Robiť to môžete použiť

mail.none

alebo

pošty.! *

alebo

pošty.! debug

preskočiť každú správu, ktorá je dodávaná s poštou. Je tu veľa priestoru na hranie. :-)

Funkcia - môže byť použitá iba na predponu názvu súboru, ak chcete vynechať synchronizáciu súboru po každom zapísaní do súboru.

To môže vyžadovať aklimatizáciu pre tých jedincov, ktorí sa používajú na čisté správanie BSD, ale testeri naznačili, že táto syntax je o niečo pružnejšia ako správanie BSD. Upozorňujeme, že tieto zmeny by nemali mať vplyv na štandardné súbory syslog.conf (5). Musíte špeciálne upraviť konfiguračné súbory na získanie zlepšeného správania.

Podpora pre vzdialené zaznamenávanie

Tieto modifikácie poskytujú sieťovú podporu pre zariadenie syslogd. Sieťová podpora znamená, že správy môžu byť presmerované z jedného uzla spúšťajúceho syslogd na iný uzol so syslogd, kde sa skutočne prihlásia do súboru disku.

Ak to chcete povoliť, musíte na príkazovom riadku zadať voľbu -r . Predvolené správanie je, že syslogd nebude počúvať sieť.

Stratégiou je, aby syslogd počúval na socket domény unix pre lokálne generované protokolové správy. Toto správanie umožní syslogd spolupracovať so syslogom nájdeným v štandardnej knižnici C. Súčasne syslogd počúva na štandardnom portu syslog správy odosielané od iných hostiteľov. Ak chcete túto prácu vykonať správne, súbory služieb (5) (ktoré sa zvyčajne nachádzajú v / etc ) musia mať nasledujúci záznam:

syslog 514 / udp

Ak táto položka chýba, syslogd nemôže prijímať vzdialené správy, ani ich posielať, pretože sa môže otvoriť port UDP. Namiesto toho syslogd okamžite zomrie a vyfúkne chybové hlásenie.

Ak chcete, aby boli správy odoslané inému hostiteľovi, nahraďte normálny riadok súboru v súbore syslog.conf názvom hostiteľa, ktorému majú byť správy odoslané predbežne s @.

Ak napríklad chcete posielať VŠETKY správy vzdialenému hostiteľovi pomocou nasledujúcej položky syslog.conf :

# Ukážka konfiguračného súboru syslogd do # správ na vzdialenom hostiteľovi. *.* @meno hosťa

Ak chcete odovzdať všetky správy jadra vzdialenému hostiteľovi, konfiguračný súbor bude nasledovný:

# Vzorový konfiguračný súbor na posielanie všetkých správ # jadra do vzdialeného hostiteľa. kern. * @hostname

Ak názov vzdialeného hostiteľa nemožno vyriešiť pri štarte, pretože meno-server nemusí byť prístupný (môže byť spustený po syslogd), nemusíte sa obávať. Syslogd sa pokúsi znovu vyriešiť ten názov desaťkrát a potom si sťažovať. Ďalšou možnosťou, ako sa tomu vyhnúť, je umiestnenie hostiteľa v / etc / hosts .

S normálnymi syslogdmi by ste dostali syslog-slučky, ak budete posielať správy, ktoré boli prijaté zo vzdialeného hostiteľa do rovnakého hostiteľa (alebo zložitejšie pre tretieho hostiteľa, ktorý ho odošle späť na prvý a tak ďalej). V mojej doméne (Infodrom Oldenburg) sme náhodou dostali jeden a naše disky boli naplnené rovnakou jednotnou správou. :-(

Aby sa tomu v budúcnosti zabránilo, žiadne správy prijaté od vzdialeného hostiteľa už nebudú odosielané na iný (alebo rovnaký) vzdialený hostiteľ. Ak existujú scenáre, keď to nedáva zmysel, prosím, pusť ma (Joey) riadok.

Ak je vzdialený hostiteľ umiestnený v rovnakej doméne ako hostiteľ, syslogd je spustený, namiesto celej fqdn bude prihlásený iba jednoduchý názov hostiteľa.

V lokálnej sieti môžete poskytnúť centrálny protokolový server, ktorý bude mať všetky dôležité informácie uložené na jednom počítači. Ak sieť pozostáva z rôznych domén, nemusíte sa sťažovať na prihlásenie plne kvalifikovaných mien namiesto jednoduchých názvov hostiteľov. Možno budete chcieť používať funkciu "strip-domain" tohto servera. Môžete syslogdovi povedať, aby odstránil niekoľko iných domén, než je ten, v ktorom je server umiestnený, a zaznamenávať iba jednoduché názvy hostiteľov.

Pomocou možnosti -l je tiež možnosť definovať jednotlivých hostiteľov ako lokálne počítače. Toto tiež vedie k zaznamenávaniu iba ich jednoduchých názvov hostiteľov a nie logov.

Zásuvka UDP, ktorá sa používa na preposielanie správ na vzdialené hostiteľské počítače alebo na prijímanie správ od nich, sa otvára len vtedy, keď je to potrebné. V správach pred 1.3-23 bol otvorený vždy, ale neotvoril sa na čítanie alebo presmerovanie.

Výstup do menovaných potrubí (FIFO)

Táto verzia syslogd má podporu pre protokolovanie výstupu do menovaných potrubí (fifos). Fifo alebo pomenovaná rúra môže byť použitá ako cieľ pre správy v protokole predpísaním symbolu pipy (`` | '') na názov súboru. To je vhodné na ladenie. Všimnite si, že FIFO musí byť vytvorený príkazom mkfifo pred spustením syslogd.

Nasledujúci konfiguračný súbor smeruje ladiace správy z jadra do FIFO:

# Ukážková konfigurácia na odbalenie jadra # správy IBA na / usr / adm / debug, čo je # pomenovaná rúra. kern. = ladenie | / usr / adm / debug

Inštalačné obavy

Pri inštalácii tejto verzie syslogd je pravdepodobne dôležité. Táto verzia syslogd závisí od správneho formátovania správ pomocou funkcie syslog. Fungovanie funkcie syslog v zdieľaných knižniciach sa niekde zmenilo v oblasti libc.so.4 [2-4] .n. Konkrétnou zmenou bolo ukončenie správy pred jeho odoslaním do / dev / log socketu. Správne fungovanie tejto verzie syslogd závisí od null-termination správy.

Tento problém sa zvyčajne prejaví, ak sa v systéme používajú staré staticky prepojené binárne súbory. Binárne súbory, ktoré používajú staré verzie funkcie syslog, spôsobia zaznamenanie prázdnych riadkov a následne správu s prvým znakom v odstránenej správe. Prevzatie týchto binárnych súborov na novšie verzie zdieľaných knižníc tento problém odstráni.

Syslogd (8) a klogd (8) môžu byť buď spustené z init (8) alebo začaté ako časť sekvencie rc. *. Ak je spustený od init -n musí byť nastavený, inak, dostanete tony syslog démonov začal. Je to preto, lebo init (8) závisí od ID procesu.

Bezpečnostné hrozby

Existuje potenciál daemóna syslogd použiť ako kanál pre útok na odmietnutie služby. Ďakujem Johnovi Morrisonovi (jmorriso@rflab.ee.ubc.ca) za upozornenie na tento potenciál. Nečestný program (mer) mohol veľmi ľahko zaplaviť démona syslogd so správami syslog, čo viedlo k tomu, že súbory denníkov spotrebúvajú všetok zostávajúci priestor na súborovom systéme . Aktivácia protokolovania cez inetové doménové zásuvky samozrejme vystaví systém na riziká mimo programov alebo jednotlivcov na lokálnom počítači.

Existuje niekoľko spôsobov ochrany zariadenia:

  1. Implementujte firewalling jadra, aby ste obmedzili, ktoré hostitelia alebo siete majú prístup k zásuvke 514 / UDP.
  2. Zaznamenávanie údajov môže byť smerované do samostatného alebo iného než root systému, ktorý, ak je naplnený, nepoškodí zariadenie.
  3. Môže byť použitý súborový systém ext2, ktorý môže byť nakonfigurovaný tak, aby obmedzoval určité percento súborového systému na použitie iba rootom. Všimnite si, že to bude vyžadovať, aby sa syslogd spustil ako non-root proces. TIEŽ POZNAMUJTE, že to zabráni používaniu vzdialeného zaznamenávania, pretože syslogd nebude schopný viazať sa do zásuvky 514 / UDP.
  4. Zakázaním zásuviek domény inet obmedzíte riziko na lokálny počítač.
  5. Použite krok 4 a ak problém pretrváva a nie je sekundárny v prípade nečestného programu / démona, zistite si dĺžku sacieho pruhu o dĺžke 3,5 metra (asi 1 metr) a porozprávajte sa s daným používateľom. Sucker tyč def. --- 3/4, 7/8 alebo 1in. kruh z tvrdeného oceľového plechu, závitový na každom konci. Primárne použitie v ropnom priemysle v západnej časti Severnej Dakoty a na iných miestach na pumpovanie "nasávať" olej z ropných vrtov. Sekundárne použitia sú pre výstavbu dávok pre kŕmenie dobytka a pre zaobchádzanie s príležitostnými nepriateľskými alebo bojujúcimi jednotlivcami.

ladenie

Keď je ladenie zapnuté pomocou možnosti -d, potom syslogd bude veľmi podrobný tým, že napíše veľa z toho, čo robí na stdout. Kedykoľvek sa konfiguračný súbor prečíta a opätovne analyzuje, uvidíte tabuľku zodpovedajúcu internej štruktúre údajov. Táto tabuľka pozostáva zo štyroch polí:

číslo

Toto pole obsahuje sériové číslo začínajúce nulou. Toto číslo predstavuje pozíciu vo vnútornej dátovej štruktúre (tj pole). Ak zostane jedno číslo, môže sa vyskytnúť chyba v príslušnom riadku v súbore /etc/syslog.conf .

vzor

Toto pole je zložité a presne reprezentuje vnútornú štruktúru. Každý stĺpec predstavuje zariadenie (pozrite si syslog (3)). Ako môžete vidieť, stále existujú určité zariadenia, ktoré zostali voľné pre bývalé používanie, používa sa len ľavá väčšina. Každé pole v stĺpci predstavuje priority (pozri syslog (3)).

akčné

Toto pole opisuje konkrétnu akciu, ku ktorej dochádza pri každom prijatí správy, ktorá zodpovedá vzoru. Pozrite si stránku syslog.conf (5) pre všetky možné kroky.

argumenty

Toto pole obsahuje ďalšie argumenty pre akcie v poslednom poli. Pre protokolovanie súborov je to názov súboru pre logfile; pre užívateľské prihlásenie je to zoznam používateľov; pre vzdialené zaznamenávanie je to názov počítača, na ktorý sa chcete prihlásiť; pre protokolovanie konzoly sa jedná o použitú konzolu; pre tty-logging je to špecifikované tty; múr nemá ďalšie argumenty.

Pozri tiež

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

spolupracovníci

Syslogd je prevzatý z BSD zdrojov, Greg Wettstein (greg@wind.enjellic.com) vykonal port do Linuxu , Martin Schulze (joey@linux.de) opravil niektoré chyby a pridal niekoľko nových funkcií. Klogd pôvodne napísal Steve Lord (lord@cray.com), Greg Wettstein urobil veľké zlepšenia.

Greg Wettstein
Vývoj enjelických systémov

Výpočtová jednotka oddelenia výskumu onkológie
Roger Maris Cancer Center
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Katedra informatiky
Edinburghská univerzita, Škótsko
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Dôležité: Pomocou príkazu man ( % man ) môžete zistiť, ako sa príkaz používa vo vašom konkrétnom počítači.

Súvisiace články