Syslog - síťový syslog. Soubory protokolu Linux v pořadí Které ID syslog má nejvyšší prioritu

Démon dovnitř Unix zavolejte program, který funguje "na Pozadí" aniž byste vyžadovali terminálové ovládání a dali vám možnost dělat vaši další práci „v popředí“. Démon může být spuštěn buď jiným procesem, například jedním ze spouštěcích skriptů systému, aniž by vůbec přistupoval k řídicímu terminálu, nebo uživatelem z nějakého terminálu, ale v tomto případě démon "nepřebírá" terminálu po dobu jeho práce. Přirozeně vyvstává otázka, které démony váš systém potřebuje a které lze deaktivovat.

Původ termínu
V reálném (tj. nepočítačovém) světě termín (nebo slovo) "démon" označuje ducha (nejčastěji - zlého) nebo "vnitřní hlas". Stojí za zmínku, že obě tyto hodnoty platí i pro programy unixových démonů. Stejně jako mytologičtí démoni se unixoví démoni skrývají v zákulisí a snaží se zůstat neviditelní. A stejně jako vnitřní hlas nebo naše podvědomí jsou stále „ve střehu“, vždy k dispozici, vždy se mohou „projevit“. Samotné slovo „démon“ představuje jednu z těchto počítačových zkratek, jehož původ je stejně těžké zjistit, jako rozhodnout, zda na začátku bylo slepice nebo vejce. Pravděpodobně tento výraz ("DAEMON") pochází ze slov "Disk And Execution MONItor" program.

Když jsem se pustil do studia této problematiky, zašel jsem ke knězi, který používá počítač s operačním systémem Ubuntu. Pro jistotu jsem si vzal disk s Windows. Člověk nikdy neví... Jsem přímočarý člověk, nemlátil jsem se, okamžitě jsem rozdal všechny informace. Dlouho a podrobně vysvětleno. K mému velkému štěstí to všechno bral v klidu, místy, když jsem mluvila, dokonce se usmíval, zvlášť když vyprávěl o důvodech odmítnutí ubuntu manželem mé sestry. Otec, normální muž, je mu už 50 let, mluvili jsme trochu víc, nebo spíš já, abychom pochopili, že to, co jsem řekl, správně asimiloval. Potom mi řekl, že si to nepamatuji doslova, ale nenapadlo mě to nahrávat na diktafon, takže to popíšu vlastními slovy. Obecně není nic špatného na tom, že se tento termín používá v Linuxu, hlavní je víra v Boha.

Úvod do služeb

Démoni, na které odkazuje /etc/init.d, jsou navrženi tak, aby běželi na Linuxu jako služba nebo služba. Služby jsou programy, které se spouštějí a zastavují pomocí init skriptů umístěných v adresáři /etc/init.d. Mnoho z těchto služeb se spouští během spouštěcí fáze systému. Obslužný program / sbin / service poskytuje uživatelské rozhraní (interakci) s inicializačními skripty. A tyto skripty samy o sobě poskytují rozhraní pro správu služeb a poskytují uživateli možnosti spuštění, zastavení, restartování, dotazování se na stav služby a provádění dalších akcí se službou. Například iniciační skript služby httpd má následující možnosti:

/ sbin / service httpd Použití: httpd (start | stop | restart | condrestart | reload | status | fullstatus | graceful | help | configtest)

Aktuální stav všech systémových služeb můžete zobrazit pomocí následující možnosti obslužného programu:

/ sbin / service --status-all acpid (pid 2481) běží ... anacron (pid 2647) běží ... atd (pid 2657) běží ... auditd (pid 2189) běží ...

Informace o úrovni běhu těchto služeb, tedy nastavení, na kterých úrovních běhu systému se konkrétní služba spouští při spouštění, lze získat nebo změnit pomocí obslužného programu chkconfig. Podívejme se například na aktuální nastavení služby protokolování systému syslog:

/ sbin / chkconfig --list syslog syslog 0: vypnuto 1: vypnuto 2: zapnuto 3: zapnuto 4: zapnuto 5: zapnuto 6: vypnuto

Vidíme, že služba syslog se automaticky spustí, když přejdeme na úrovně 2, 3, 4 a 5. Chcete-li zakázat její spuštění na úrovních 3 a 4 (mimochodem to není dobrý nápad), můžete použít následující možnost příkaz chkconfig:

/ sbin / chkconfig --levels 34 syslog off

Obslužný program / usr / bin / system-config-services poskytuje grafické rozhraní pro systémové služby, které vám umožňuje prohlížet a upravovat jejich aktuální stav a také je nastavit tak, aby se spouštěly na různých úrovních běhu.

Podívejme se, jak se tyto služby a démoni objeví ve výstupu příkazu ps. Zde je rychlý úryvek:

UID PID PPID C STIME TTY TIME CMD kořen 1 0 0 23:36? 00:00:00 init root 2161 1 0 23:37? 00:00:00 auditovaný root 2177 1 0 23:37? 00:00:00 syslogd -m 0 root 2180 1 0 23:37? 00:00:00 klogd -x root 2207 1 0 23:37? 00:00:00 kořen mcstransd 2254 1 0 23:37? 00:00:00 rpc.statd root 2287 1 0 23:37? 00:00:00 rpc.idmapd root 2577 1 0 23:37? 00:00:00 crond root 2631 1 0 23:37? 00:00:00 / usr / sbin / atd root 2654 1 0 23:37? 00:00:00 rhnsd --interval 240

Co je zajímavého zde poznamenat (kromě toho, že jsem dnes seděl příliš pozdě u počítače)? Pro každý z démonů je identifikátor nadřazeného procesu (PPID) 1. To znamená, že démoni byli spuštěni init při zavádění.

Tento výsledek lze jasněji vidět na výstupu tak užitečného příkazu, jako je „pstree“, který zobrazuje „strom“ procesů s označením „rodiče“. Zde je malý úryvek z výstupu pstree:

Init- + | -NetworkManager --- 2 * [(NetworkManager)] | -NetworkManagerD | -acpid | -atd | -auditd - + - python | `- (auditd) | -avahi-daemon --- avahi-daemon | -bonobo-activati ​​​​--- (bonobo-activati) | -crond | -cupsd --- cups-polld | -2 * | -dbus -spustit | -dhcdbd --- dhclient

Více o démonech ve vašem systému

S úvodními informacemi končíme. Nyní si promluvme o systémových démonech izolovaně a uvidíme, se kterými můžete bezpečně experimentovat. Tento příspěvek je opět o systému, na kterém běží Red Hat Enterprise Linux Beta 2 v konfiguraci pracovní stanice. V závislosti na specifikách vašeho systému můžete vidět více či méně démonů, včetně těch, které zde nejsou uvedeny.

Popisy každého démona obsahují odkazy na stránky, kde můžete získat více informací, ale i tak je nejlepší začít se o démonovi učit na příslušných manuálových stránkách. O "Reilly má vynikající abecední seznam linuxových příkazů a wikipedia.org má také sekce o většině z těchto démonů. Nezapomeňte se také podívat do souborů README.

Je to služba ACPI (Advanced Configuration and Power Interface). ACPI je otevřený průmyslový standard, který definuje akce správy systému, především definici zařízení typu plug-and-play a správu napájení, včetně akcí, když se systém spustí, zastaví a když přejde do režimu nízké spotřeby.

Pravděpodobně byste tuto službu neměli deaktivovat, pokud to neděláte pro účely ladění nebo pro řešení problémů s hardwarem.

Více informací: http://www.acpi.info

Pokud používáte notebook, jako mnozí dnes, pak je jedním z problémů, že když požádáte cron démona, aby něco udělal, nemáte vždy jistotu, že váš počítač bude zapnutý v době, kdy je naplánováno spuštění. úkoly. Anacron (tento název pochází z „anachronistického cronu“, což znamená něco jako „zastaralý cron“) tento problém řeší kontrolou, zda byly úlohy provedeny v určitém časovém období. Anacron například spustí úlohu, pokud nebyla spuštěna po zadaný počet dní.

Kdy můžete přestat používat anacron? Pokud váš systém běží neustále.
Můžete prostě odmítnout spustit cron, pokud máte spuštěný anacron? Ne; u anacronu lze dobu restartu úlohy zadat pouze ve dnech, nikoli v minutách a sekundách.

Dodatečné informace:

Jde o démona Advanced Power Management (APM) prostřednictvím ovladače v BIOSu. Standard APM a démon apmd byly nyní nahrazeny ACPI a acpid. Pokud váš hardware podporuje ACPI, nemusíte spouštět apmd.

Toto je démon pro spouštění úloh v určený čas. Pokud ji nepoužíváte, je docela možné ji deaktivovat.

Tento démon automaticky připojí disky a systémy souborů, které jsou definovány v konfiguračním souboru. Použití tohoto démona usnadňuje práci s vyměnitelnými disky.

Více informací: http://freshmeat.net/projects/autofs

Auditní systém Linuxu se skládá z protokolů systémových volání na úrovni jádra a nástrojů pro shromažďování a prohlížení protokolů v uživatelském prostoru. Démon auditd zapisuje protokolované zprávy na disk. Auditd je konfigurovatelný a umožňuje vám řídit a spravovat, jaké informace jsou uloženy na disku.

Měl by audit běžet? Informace z protokolů mohou být velmi užitečné při konfiguraci všeho, co souvisí se zabezpečením systému. Auditd se například používá v protokolování událostí SELinux. Existují také nástroje, jako je aureport, které vám umožňují prohlížet protokoly auditu. Zde je příklad sestavy generované obslužným programem aureport:

Souhrnná zpráva
======================

Časový rozsah v protokolech: 28. 11. 2006 06: 07: 04 800 - 2. 6. 2007 21: 10: 09 957 Vybraný čas pro hlášení: 31. 12. 1969 19:00:00 - 72. 6. 2007 10: 09.957 Počet změn v konfiguraci: 285 Počet změn účtů, skupin nebo rolí: 32 Počet přihlášení: 145 Počet neúspěšných přihlášení: 11 Počet uživatelů: 2 Počet terminálů: 22 Počet jmen hostitelů: 11 Počet spustitelných souborů: 27 Počet souborů: 91 Počet zamítnutí AVC: 688 Počet událostí MAC: 12 Počet neúspěšných systémových volání: 404 Počet událostí anomálie: 0 Počet odpovědí na události anomálie: 0 Počet událostí kryptoměny: 0 Počet procesů ID: 14022 Počet událostí: 70694 Avahi-daemon a avahi-dnsconfd

Web Avahi to definuje takto: "Avahi je systém, který poskytuje možnost objevovat služby v místní síti. To znamená, že jakmile je váš počítač připojen k místní síti, můžete okamžitě objevit dostupné tiskárny, zjistit, jaké sdílené položky jsou k dispozici." v síti zjistěte, s kým z ostatních uživatelů sítě můžete mluvit prostřednictvím chatu a tak dále." Avahi je implementace protokolu Zeroconf. A Zeroconf je přístup, který umožňuje uživatelům vytvářet sítě IP bez speciálních konfiguračních služeb, jako jsou servery DNS.
Nejčastěji se avahi-daemon používá ve spojení s Rhythmboxem, takže můžete vidět hudební soubory, které jsou sdíleny s ostatními. Pokud nesdílíte hudbu nebo soubory ze svého počítače, můžete tohoto démona zakázat.

Více informací: http://avahi.org, http://zeroconf.org

Bluetooth a démoni hidd a pand

Už samotná jména vše vysvětlují. Spusťte tyto služby, pokud chcete používat zařízení bluetooth. Název aktuálně běžícího démona je hcid (Démon rozhraní hostitelského ovladače).

Jméno skrytého démona pochází z „Démon zařízení Bluetooth Human Interface“. Poskytuje podporu Bluetooth klávesnice, myši a trackballu. A démon pand udržuje váš počítač připojený k ethernetové síti pomocí Bluetooth.

Více informací: http://www.bluetooth.com,

Tento démon podporuje Common ISDN Application Programming Interface. Měl by být spuštěn, pokud se připojujete k hardwarovým komponentám ISDN. Tato služba spouští capiinit.

Více informací: http://www.capi.org/pages

Ne, nemá to nic společného s nočním vysíláním o investicích do nemovitostí. Služba conman (a démon příkazu) podporují správu konzoly. Poskytuje podporu pro více konzolových zařízení a současnou uživatelskou práci, podporu pro místní sériová zařízení a vzdálené terminálové servery (prostřednictvím protokolu telnet). Pokud spravujete více serverů, možná budete potřebovat conman.

Více informací: http://home.gna.org/conman/
cpuspeed

Tento démon mění rychlost práce centrální procesorová jednotka za účelem snížení spotřeby energie. Pokud je CPU nečinný, můžete snížit rychlost, čímž se sníží spotřeba energie, a pro zvýšení výkonu musíte zvýšit spotřebu energie. Pokud pracujete pro notebook, dává smysl spouštět cpuspeed.

Více informací: http://carlthompson.net/Software/CPUSpeed
crond

Tento démon se používá k automatickému spouštění úloh. To je vyžadováno na všech systémech Linux a Unix. Nezastavujte ani nezakazujte tuto službu.

Více informací: http://www.unixgeeks.org/security/newbie/unix/cron-1.html, http://www.linuxhelp.net/guides/cron/

CUPS a cups-config-daemon

Je to démon "Common UNIX Printing Solution". Jak název napovídá, jedná se o tiskový systém, který si poradí s různými formáty souborů a odlišné typy tiskárny. Pokud chcete tisknout, nechte na svém systému spustit tohoto démona.

Více informací: http://www.cups.org, http://www.easysw.com/cups/index.php

Název tohoto démona je zkratkou pro „DHcp Client D-Bus Daemon“. Wiki Free DeskTop to definuje takto:

D-Bus je systém sběrnice zpráv, jednoduchý způsob vzájemné komunikace (nebo interakce) aplikací. Kromě meziprocesní komunikace pomáhá D-Bus koordinovat životní cyklus procesu; poskytuje jednoduchou a spolehlivou implementaci v kódu schopnosti spouštět "samostatnou instanci" aplikace nebo démona, což vám umožňuje spouštět aplikace a démony na vyžádání, když vyvstane potřeba příslušných služeb.

Potřebujete spustit tohoto démona? Pokud váš systém funguje v síti (jak by to mohlo být jinak?), Zejména pokud se pohybujete mezi sítěmi (například přecházíte z kabelové sítě na bezdrátovou), měli byste spustit NetworkManager (na NetworkManager se podíváme níže) .

Démon dhcdbd poskytuje rozhraní D-Bus pro dhclient, DHCP klienta od ISC. To umožňuje NetworkManageru přistupovat a ovládat dhclient.

Více informací: http://www.freedesktop.org/wiki/Software/dbus

Tento démon vám dává možnost používat myš v textových aplikacích, jako je např správce souborů Půlnoční velitel. To může být užitečné, pokud často používáte konzoli; jinak to znamená, že pokud neustále používáte X Window System, možná nebudete nikdy potřebovat gpmd.

Ne, tohle není ten zlý počítač z filmu Vesmírná odysea z roku 2001. V tomto kontextu HAL znamená Hardware Abstraction Layer. Démon HAL shromažďuje (pomocí jádra a samotných zařízení) informace o hardwarových zařízeních a předkládá je aplikacím konzistentním způsobem.

Nezakazujte tuto službu. Mnoho aplikací to používá.

Další informace: "Konfigurace stolního počítače a hardwaru," od Davida Zeuthena

Tento démon poskytuje podporu pro systém HP Linux Imaging and Printing (HPLIP) používaný pro tisk, skenování a faxování na inkoustových a laserová zařízení od společnosti HP. HPLIP spolupracuje s CUPS a poskytuje CUPS přístup k zařízením od HP.

Dodatečné informace:

Je to démon pro relační databáze v Javě. Své jméno zdědila po projektu Hypersonic SQL, který již není podporován. hsqldb je široce používán v projektech s otevřeným zdrojovým kódem, jako je OpenOffice.org, a také v ukázkách, protože může běžet výhradně v paměti RAM. Díky tomu, co funguje rychle. Potřebujete tuto službu spustit? Pouze pokud spouštíte nějaké programy, které jej používají. Ale ve skutečnosti je to velmi užitečný nástroj a pokud ho neznáte, stojí za to se na něj podívat.

Více informací: http://hsqldb.org, http://dba.openoffice.org

Webový server Apache. Používá téměř 60 % všech webových stránek. Pokud chcete udržovat web, spusťte Apache. Musím ještě něco říkat?

Více informací: http://httpd.apache.org

ip6tables a iptables

Jedná se o firewally nebo firewally. Podle Wikipedie „Firewall nebo firewall (žargon. Firewall nebo firewall z angličtiny. Firewall) je soubor hardwarových a/nebo softwarových nástrojů, které řídí a filtrují síťové pakety procházející přes něj na různých úrovních modelu OSI v souladu s specifikovaná pravidla firewall je ochrana počítačové sítě nebo jednotlivé uzly před neoprávněným přístupem."

Iptables funguje tak, že nastavuje pravidla pro filtrování paketů IPv4 ve formě tabulky jádra. Příchozí a odchozí pakety jsou kontrolovány podle těchto pravidel a ty, které pravidlům neodpovídají, jsou blokovány. Ip6tables dělá totéž pro pakety IPv6.

Kterou z těchto dvou služeb chcete provozovat? Oba. Je vždy. Síť je nebezpečná!

Více informací: http://www.netfilter.org, http://www.ipv6.org

IrDA (Infrared Data Association) je průmyslový standard pro infračervenou bezdrátovou komunikaci mezi zařízeními. Většina notebooků je vybavena infračerveným vysílačem kompatibilním s IrDA. Tuto službu musíte spustit pouze v případě, že se chystáte organizovat komunikaci s jinými zařízeními přes infračervený port.

Dodatečné informace:

irqbalance

Tento démon je zodpovědný za distribuci hardwarových přerušení mezi CPU ve víceprocesorových architekturách symetrických procesorů (SMP), aby se zlepšil výkon.

Není potřeba spouštět tohoto démona na jednoprocesorových systémech, ovlivňuje pouze víceprocesorové systémy.

Více informací: http://www.irqbalance.org

Je to velmi užitečný démon. Spouští se při spouštění a kontroluje, která hardwarová zařízení byla přidána do systému nebo z něj odebrána. Má smysl spouštět kudzu při spouštění, i když neplánujete často přidávat nebo odebírat zařízení. Protože dříve nebo později se stejně dostanete do situace, kdy přidáte zařízení a očekáváte, že jej systém detekuje. Navíc, protože kudzu běží při bootování, nemá negativní dopad na výkon systému.

Více informací: http://fedora.redhat.com/projects/additional-projects/kudzu

Tento démon získává své jméno podle informačního serveru sítě LAN. Lisa poskytuje funkcionalitu podobnou té, kterou poskytuje služba Network Neighborhood v systému MS-Windows, to znamená, že poskytuje přístup k serverům ve vaší místní síti, včetně serverů CIFS (Common Internet File Systems). lisa běží přes TCP / IP, odesílá požadavky ICMP na IP adresy v rozsahu, který jste zadali v konfiguračním souboru, a čeká na odpověď počítačů.

Více informací: http://docs.kde.org/stable/en/kdenetwork/lisa, http://docs.kde.org/userguide/networking-with-windows.html,

lm_sensors

Tento démon monitoruje teploty a napětí na základní desce. Pro fungování monitorovacího systému je nutné mít v zařízení příslušná čidla. Spouštění tohoto démona má smysl pouze v případě, že je poskytována podpora hardwaru. Pravděpodobně byste jej neměli spouštět na běžných pracovních stanicích. Spíše je potřeba na hi-end serverech, které provádějí kritické funkce.

Více informací: http://www.lm-sensors.org, http://freshmeat.net/projects/lm_sensors

mcstrans

Systémový démon pro překlad kontextu SELinux. Tento démon převádí informace o kontextu zabezpečení do podoby čitelné pro člověka. Můžete zastavit tohoto démona, ale pokud ano, uvidíte, jak se změní informace SELinux zobrazené příkazem ls -Z. Například se spuštěným démonem uvidíte:

Ls -Z -rw-r - r-- jsmith jsmith user_u: object_r: user_home_t bookmarks.html drwxr-xr-x jsmith jsmith user_u: object_r: user_home_t Desktop -r-xr-xr-x jsmith_home_t hello_user - r - r-- jnovak jnovak user_u: object_r: user_home_t hello.c

A pokud je démon zastaven, uvidíte následující:

Ls -Z -rw-r - r-- jsmith jsmith user_u: object_r: user_home_t: s0 bookmarks.html drwxr-xr-x jsmith jsmith user_u: object_r: user_home_t: s0 Desktop -r-xr-xr-x jsmi object_r: user_home_t: s0 ahoj -r - r - r-- jsmith jsmith user_u: object_r: user_home_t: s0 hello.c

Všimněte si, že pokud je démon zastaven, zobrazí se hodnota kontextu zabezpečení "s0". Mctrans v tomto případě vynuloval kontext. Ostatní hodnoty kontextu zabezpečení jsou převedeny z alfanumerických hodnot na jejich názvy.

Více informací: http://fedoraproject.org/wiki/SELinux/Understanding, http://danwalsh.livejournal.com

mdmonitor a mdmpd

Tyto dva démony se používají v redundantním poli levných/nezávislých disků (RAID) úložných systémů. Mdmonitor spouští, zastavuje a restartuje mdadm (monitorování a správa vícecestných zařízení), softwarovou službu monitorování a správy RAID. Tuto službu musíte spustit pouze v případě, že váš systém obsahuje zařízení RAID.

Více informací: http://www.linuxdevcenter.com/pub/a/linux/...12/05/RAID.html

messagebus

Je to démon systémové sběrnice zpráv D-BUS. Vysílá systémové události a události, jako jsou změny tiskové fronty nebo přidání nebo odebrání zařízení (všimněte si, že to není totéž jako kudzu, protože k takovým událostem může dojít kdykoli během provozu systému, nejen ve fázi bootování ).

Více informací: http://www.freedesktop.org/software/dbus

netplugd a ifplugd

Tito démoni konfigurují ethernetová zařízení, když je připojen síťový kabel, a deaktivují tato zařízení, když je kabel odpojen. Kdy to potřebujete? Například na notebooky, takže váš síťová připojení obnoví pouze po připojení síťového kabelu.

Všimněte si, že podpora pro netplugd byla ukončena a je nyní nahrazena ifplugd.

Více informací: http://0pointer.de/lennart/projects/ifplugd

NetworkManager a NetworkManagerDispatcher

Démon NetworkManager automatizuje přepínání mezi síťovými připojeními. Tento démon je užitečný pro uživatele notebooků, kteří přepínají mezi bezdrátovým připojením WiFi a připojením Ethernet. Démon NetworkManagerDispatcher automaticky spouští skripty pro provádění nezbytných operací (například skripty pro nastavení konkrétních směrů směrování pro pakety), když NetworkManager změní stav sítě.

Více informací: http://www.gnome.org/projects/NetworkManager

Je to démon, který funguje jako server doménových jmen. Měli byste jej spustit pouze v případě, že váš počítač je serverem DNS pro vaši síť.

Více informací: http://www.dns.net/dnsrd

Démon nfsd poskytuje podporu pro síťový komunikační protokol nfs, který se používá k poskytování přístupu k síťové zdroje v sítích TCP/IP. Musíte jej spustit, pokud dáváte ostatním uživatelům přístup k systémům souborů pomocí protokolu nfs.

Dodatečné informace:

Toto je cachovací démon pro službu jmen. Udržuje tabulku skupin a hesel pro spouštění programů a poté vytváří zapamatovaný výsledek při příštím požadavku na služby, které jsou jinak příliš pomalé, jako je NIS nebo LDAP. Pokud máte tyto služby spuštěné, měli byste spustit také nscd.

Je to démon, který podporuje Network Time Protocol. Nastavuje systémový čas a synchronizuje jej s časem nastaveným internetovými servery, které udržují referenční čas. Pokud je váš systém připojen k internetu (ne?), pak tento démon bude sledovat správné nastavení systémového času na vašem počítači.

Více informací: http://www.ntp.org

Démon oddjobd spouští službu com.redhat.oddjob na systémové sběrnici. Každá příležitost poskytovaná oddjobd je poskytována jako samostatná metoda D-Bus. Oddjobd poskytuje podporu pro provádění privilegovaných operací pro neprivilegované aplikace.

Tento démon byste měli spouštět pouze v případě, že používáte aplikace, které to vyžadují, jako je Conga.

Více informací: http://people.redhat.com/nalin/oddjob/oddjob.html,

Tento démon podporuje virtuální privátní sítě (VPN). Spouštěcí skript tohoto démona říká následující:

OpenVPN je robustní a vysoce flexibilní tunelovací aplikace, která využívá schopnosti šifrování, ověřování a certifikace knihovny OpenSSL k bezpečnému tunelování IP sítě přes jediný UDP port.

Pokud je váš systém hostitelem VPN, pravděpodobně byste měli spustit OpenVPN.

Více informací: http://openvpn.net

pcscd (PC / SC Smart Card Daemon) je démon pro vývojové prostředí pcsc-lite (software pro přístup k chytrým kartám) a (založený na platformě Java) MuscleCard. Zajišťuje komunikaci se čtečkami čipových karet a samotnými čipovými kartami.

(Čipová karta je malá obvodová deska, která obsahuje buď paměťový modul, nebo mikroprocesor s paměťovým modulem. Muscle je zkratka pro Movement for the Use of Smart Cards in the Linux Environment.

Více informací: http://www.smartcardalliance.org, http://pcsclite.alioth.debian.org, http://www.linuxnet.com/musclecard/index.html

Démon portmapper spravuje připojení RPC (vzdálené volání procedur). Převádí čísla programů RPC na čísla portů TCP / IP (nebo UDP / IP). Portmapper je nejčastěji používán NFS a NIS.

Pokud tedy váš systém závisí na NIS nebo NFS, nevypínejte démona portmap.

Více informací: http://www.linux-nis.org/nis-howto/HOWTO/portmapper.html

Je to agent pro přenos pošty (přepravy). Pokud váš systém není přenosový do e-mailového systému, nemusíte tuto službu spouštět.

Více informací: http://www.postfix.org

Tento démon (démon zjišťování směrovače) vyhledává trasy v místní podsíti. Spouští se při spouštění, aby se do směrovacích tabulek přidaly výchozí trasy.

Více informací: http://www.informit.com/articles/article.asp?p=23951&rl=1

obnovitcond

Toto je démon ze SELinuxu. Restorecond monitoruje vytváření souborů (pro soubory uvedené v /etc/selinux/restorecond.conf) a zajišťuje, že soubory mají správný kontext souboru pro zadanou zásadu, a také definuje výchozí kontext souboru SELinux.

Nezakazujte tuto službu. Je vyžadován pro SELinux.

Více informací: http://fedoraproject.org/wiki/SELinux/Understanding, http://danwalsh.livejournal.com/

Tento démon pravidelně kontroluje, jaké operace by se měly provádět síťové rozhraní Red Hat (webové rozhraní sítě Red Hat) a spouští je. Tyto operace zahrnují instalaci, odebrání nebo aktualizaci softwaru, restartování systému, instalaci konfiguračních souborů a tak dále.

Více informací: https://www.redhat.com/rhn/

rpcgssd, rpcidmapd a rpcsvcgssd

Démony rpcgssd a rpcsvcgssd slouží k zabezpečení přes RPC. Rpcidmapd převádí uživatelská jména na čísla UID a GID.

Pokud používáte NFS nebo NIS, měli byste mít tyto démony spuštěné.

Dodatečné informace:

readahead_early a readahead_later

Démon readahead zajišťuje, že spouštěcí programy jsou načteny do paměti před jejich použitím, což zkracuje dobu spouštění.

saslauthd

Toto je démon ověřovacího serveru SASL. SASL (Simple Authentication and Security Layer) přidává možnosti ověřování protokolů založených na vzdálených připojeních.

Více informací: http://asg.web.cmu.edu/sasl

poslat mail

Jedná se o server SMTP (Simple Mail Transfer Protocol). Sendmail přeposílá poštu z jednoho systému do druhého, to znamená, že je to Mail Transport Agent. Pokud používáte poštovní programy jako Thunderbird nebo Evolution, nemusíte spouštět sendmail.

Více informací: http://www.sendmail.org

odstraňování problémů

Toto je démon SELinux pro řešení problémů. Setroubleshooter je jednou z největších nedávných inovací v SELinuxu. Setroubleshooter poskytuje uživatelům zpětnou vazbu v reálném čase o selháních SELInux AVC (Access Vector Cache). Tato zpětná vazba je navíc poskytována ve vhodném formátu.

Více informací: https://hosted.fedoraproject.org/projects/setroubleshoot

Tento démon monitoruje hodnoty senzorů SMART (Self-Monitoring, Analysis and Reporting Technology) nainstalovaných v mnoha typech jednotek, například v pevných discích SCSI-3. Démon sleduje normální provoz takových zařízení a provádí autotest. Pokud váš hardware podporuje technologii SMART, musíte tuto službu spustit.

Dodatečné informace:

spamassassin

Tento démon používá program Apache SpamAssassin ke kontrole nevyžádané pošty. Obvykle běží ve spojení se serverem agenta pro doručování pošty (MDA). Pokud pro přístup k poště používáte klientské programy jako Thunderbird nebo Evolution, nemusíte spouštět spamassassin.

Více informací: http://spamassassin.apache.org

Toto je démon pro otevřený protokol ssh. Ssh nahrazuje nezabezpečené programy rsh a rlogin a poskytuje šifrovaná spojení mezi hostiteli v nezabezpečených sítích. Pokud používáte připojení k jiným systémům přes otevřený internet, musíte použít ssh a spustit tohoto démona.

Více informací: http://www.ssh.com, http://www.openssh.com

syslog je standardní systém protokolování Linuxu. Nevypínejte jej.

Více informací: http://www.syslog.org

Tento démon je součástí balíčku Samba. Umožňuje uživatelům domény Windows připojit se jako uživatelé Unix k serverům Unix. Tento démon by měl být spuštěn, když máte co do činění se smíšenou sítí počítačů Windows a Linux / Unix.

Více informací: http://www.samba.org/samba/docs/man/Samba-...on/winbind.html, http://www.samba.org

Toto je server písem. Tento démon načítá písma do paměti, takže grafické aplikace běží rychleji, než kdybyste museli načítat písma z pevného disku. Tato služba by měla být spuštěna, aby se zlepšil výkon aplikací ve vašem systému.

Více informací: http://linuxreviews.org/howtos/xfree/xfs

Tato služba váže klienta NIS k doméně NIS. Písmena "yp" v jeho názvu pocházejí ze "žlutých stránek", protože adresáře NIS jsou jako telefonní seznamy zlatých stránek. Tuto službu musíte spustit pouze v případě, že váš systém používá NIS (Network Information Service) k poskytování přístupu k uživatelským rozpočtům a názvům systémů.

Více informací: http://www.linux-nis.org

yum-updatesd

yum-updatesd monitoruje dostupnost aktualizací softwaru a odesílá upozornění na tyto aktualizace e-mailem, d-bus nebo systémovými zprávami a může také vytvářet automatická aktualizace NA. Zprávy D-bus přijímá utilita "puplet" (aktualizátor balíčků), která informuje uživatele o dostupnosti aktualizace a také uživateli umožňuje aktualizaci nainstalovat.

Více informací: http://linux.duke.edu/projects/yum, http://www.redhat.com/magazine/024oct06/features/fc62

Díky ZOOL pro informace uvedené na webové stránce http://www.centrlan.ru/node/17929

Zdroj neuveden

Každý z začínajících uživatelů Linuxu dříve či později narazí na nějaké problémy při nastavování a organizaci fungování svého systému. A každý z nováčků téměř jistě slyšel od zkušenějších uživatelů radu: "Podívejte se na protokoly." Tato rada je dobrá, ale začátečník stále potřebuje vědět: co jsou protokoly a kde je najít! Pokusím se vám tedy v tomto článku říci, co a kde hledat.

V programátorském slangu jsou „protokoly“ protokoly práce, které jsou udržovány jak samotným operačním systémem, tak nezávisle mnoha programy. Slovo „log“ se v tomto smyslu často používá jako synonymum pro slovo „protokol“. Existují dvě hlavní situace, ve kterých je nutné protokol analyzovat: když něco v systému nefunguje, jak jsme očekávali (řešení problému), a když existuje podezření, že systém byl hacknut nějakým narušitelem a je nutné zjistit, co se přesně stalo, jak se to stalo, a co je třeba udělat, abychom se vypořádali s následky invaze.

Jedním z nejznámějších případů použití log souborů k detekci vniknutí útočníka je příběh o zachycení známého hackera Kevina Mitnicka specialistou na počítačovou bezpečnost Tsuomo Shimomura. Zde je jeden odstavec z článku popisující, jak k tomu došlo.

"Na Štědrý den, když byl Shimomura na dovolené lyžovat v Nevadě, se někdo (už víme kdo) vloupal do jeho superzabezpečeného domácího počítače v Solana Beach v Kalifornii a začal kopírovat jeho soubory - stovky utajovaných souborů. ze San Diega. Superpočítačové centrum, kde Shimomura pracoval, si všimlo změn v systémových souborech „log“ (log) a rychle si uvědomilo, co se děje. do záložního počítače v San Diegu. Student zavolal Shimomura a ten spěchal domů, aby provedl inventuru kradeného zboží ."

Nebudu zde vyprávět celý příběh, pro nás je důležité pouze poznamenat, že analýza protokolů provozu systému posloužila jako základ pro úspěšnost vyšetřování protiprávního jednání. Podrobnější popis, jak taková šetření probíhají, najdete v článku. Abyste ale mohli výsledky protokolování používat, musíte rozumět tomu, jak se protokoly vytvářejí, kde jsou uloženy a co z nich lze extrahovat. Tento článek je věnován zvážení všech těchto otázek.

Jak jsou generovány zprávy pro protokol

Musíme začít s tím, že při vytváření programů v jazyce C mají programátoři možnost v případě potřeby vložit volání speciálních funkcí openlog, setlogmask, syslog a closelog jsou součástí standardní knihovny C. Tyto funkce se používají k odesílání zpráv o určitých událostech během provádění programu speciálnímu systémovému démonovi syslogd vedení systémového protokolu. Funkce openlog naváže spojení s démonem syslogd, funkce syslog generuje specifickou zprávu, která se má zapsat do protokolu, a funkci closelog zavře otevřený odkaz.

Zprávy generované funkcí syslog, sestávají z více polí oddělených mezerami. Každá zpráva začíná polem PRI, která zakódovala informace o kategorii zařízení a úrovni závažnosti nebo prioritě zprávy.

Kategorie (zařízení) je informace o tom, do jaké třídy daná zpráva patří. Kategorie je zakódována číslem od 0 do 23. Existují následující kategorie (jsou definovány v souboru /usr/include/sys/syslog.h):

Stůl 1.

Číselná hodnotaSymbolDešifrování
0 kern Zprávy jádra
1 uživatel Určeno pro různé zprávy z uživatelských programů. (Zprávy z uživatelských programů)
2 pošta Zprávy z poštovního systému.
3 démon Zprávy od těch systémových démonů, které na rozdíl od FTP nebo LPR nemají specifické kategorie.
4 auth Vše, co souvisí s autorizací uživatele, jako je přihlášení a su (zabezpečení / přístupová práva)
5 syslog Logovací systém může protokolovat zprávy sám ze sebe.
6 lpr Zprávy z tiskového systému.
7 zprávy Zprávy ze zpravodajského serveru. (Netnews, USENET)
8 uucp Zprávy z UNIX-to-UNIX Copy Protocol. Toto je součást historie UNIXu a s největší pravděpodobností to nikdy nebudete potřebovat (ačkoli část pošty je stále doručována přes UUCP).
9 cron Zprávy ze systémového plánovače.
10 authpriv Totéž jako auth, ale zprávy v této kategorii se zapisují do souboru, který může číst jen několik uživatelů (možná je tato kategorie zvýrazněna, protože zprávy do ní patřící mohou obsahovat otevřená uživatelská hesla, která by neměla vidět neoprávněné osoby, a proto soubory protokolu musí mít příslušná oprávnění).
11 ftp Prostřednictvím této kategorie můžete nakonfigurovat svůj FTP server tak, aby zaznamenával své akce.
od 12 do 15 - Vyhrazeno pro systémové použití.
od 16 do 23místní0 - místní7 Kategorie vyhrazené pro použití správcem systému. Kategorie local7 se obvykle používá pro zprávy generované během fáze spouštění systému.

Kategorie auth má zastaralé synonymum bezpečnostní který se nedoporučuje používat. Navíc existuje speciální kategorie označit(nemá digitální ekvivalent), který je přiřazen k jednotlivým zprávám generovaným samotným démonem syslogd... Tato kategorie se používá k umístění speciálních značek do protokolu ve stanoveném časovém intervalu (ve výchozím nastavení každých 20 minut), což umožňuje například s 20minutovou přesností vědět, kdy je váš počítač zamrzlý.

Všimněte si, že kategorie obecně nemá nic společného s názvem programu, který posílá zprávy démonovi. syslogd... Jak se říká, každá náhoda je čistá náhoda. Některé programy navíc mohou generovat zprávy různých kategorií. Například démon telnetd v případě neúspěšných pokusů o přihlášení generuje zprávy kategorie authpriv a v ostatních případech své příspěvky kategorizuje démon.

Druhý parametr, na jehož základě se tvoří hodnota pole PRI, je úroveň nebo priorita zprávy (priorita), tedy informace o míře důležitosti zprávy. Standardně je nastaveno 8 úrovní závažnosti (jsou také definovány v souboru /usr/include/sys/syslog.h), které jsou zakódovány čísly od 0 do 7:

Tabulka 2

Číselná hodnotaSymbol Dešifrování
0 vynořit se(starý název PANIK) Nouzový. Systém je nefunkční.
1 upozornění Úzkost! Nutný okamžitý zásah.
2 krit Závažná chyba (kritický stav).
3 chybovat(starý název ERROR) Chybové hlášení.
4 Varování(starý název WARN)Varování.
5 oznámení Informace o nějaké normální, ale důležité události.
6 info Oznámení.
7 ladit Zprávy generované během ladění.

Pole PRI zpráva se tvoří takto: číselná hodnota kategorie se vynásobí 8 a přičte se k číselné hodnotě priority, výsledné číslo se uzavře do lomených závorek a zapíše se do pole.

Po poli PRI Ve zprávě jsou zahrnuta následující pole:

  • ČASOVÉ RAZÍTKO- čas vytvoření zprávy,
  • HOSTNAME- název hostitele nebo IP adresa v desítkové soustavě,
  • MSG- libovolný text zprávy - nějaký textový (informační) řetězec v kódu US-ASCII (0x20 - 0x7e).

Čas (místní!) Zapisuje se ve formátu: 13. února 21:12:06. Pokud je číslo dne jednomístné, umístí se před něj další mezera (nikoli 0!). Pozor na absenci ročníku a zóny v termínu, na což je třeba při organizaci myslet dlouhodobé skladování Záznam souborů. Aby byl čas ve zprávě správný, musí být synchronizován (například pomocí protokolu NTP).

Název hostitele je součástí zprávy, aby nedošlo k záměně zpráv od různých hostitelů, protože, jak bude ukázáno níže, protokolování lze provést na jednom z vyhrazených počítačů v síti. Název hostitele je jednoduchý síťový název počítače bez uvedení domény. Pokud má počítač několik rozhraní s různými adresami IP, lze jako název hostitele nebo adresu použít kterékoli z nich.

Text zprávy ( MSG) obvykle obsahuje štítek ( ŠTÍTEK), ukazující na program nebo proces, který tuto zprávu vydal, a tělo zprávy ( OBSAH). Štítek může obsahovat latinská písmena a číslice. Obvykle se jako štítek používá jednoduchý název programu, někdy následovaný identifikátorem procesu uzavřeným v hranatých závorkách. Tělo zprávy je odděleno od štítku speciálními znaky – v Linuxu jsou to obvykle dvojtečka a mezera.

Zpracování zpráv Syslogd

Všechny zprávy byly vygenerovány jednotlivé programy pomocí funkce syslog odesláno přes zásuvku / dev / log systémový démon syslogd kdo je odpovědný za zpracování těchto zpráv. Musím říci, že ve skutečnosti jsou v systému spuštěni dva logovací démoni - syslogd a klogd... Oba démoni jsou součástí balení sysklogd, jehož nejnovější verzi najdete na webu.

Démon klogd zodpovědný za protokolování událostí vyskytujících se v jádře systému. Potřeba samostatného démona klogd se vysvětluje tím, že jádro nemůže používat standardní funkci syslog... Faktem je, že standardní knihovny (včetně knihovny, ve které je funkce umístěna syslog) jsou určeny pouze pro běžné aplikace. Protože jádro také potřebuje podobné funkce, obsahuje vlastní knihovny, které nejsou aplikacím dostupné. Proto jádro používá svůj vlastní mechanismus generování zpráv. Démon klogd je navržen tak, aby organizoval zpracování těchto zpráv. V zásadě může takové zpracování provádět zcela nezávisle a nezávisle na syslogd, například zápisem těchto zpráv do souboru, ale ve většině případů se použije výchozí nastavení klogd kde jsou všechny zprávy z jádra předávány stejnému démonovi syslogd.

Aby se ujistil démoni syslogd a klogd běžící na vašem systému, spusťte příkaz ps -ax | grep log... Tento příkaz mi dal následující výsledek:

$ ps -ax | grep log 569? S 0:00 syslogd -m 0 574? S 0:00 klogd -x 1013? S 0:00 přihlášení - kos 1191? S 0:00 kalarmd --login První dva řádky označují, že v systému běží logovací démoni.

Démon zpracovává zprávy syslogd spočívá v tom, že neustále sleduje vzhled zpráv a každý přijatý záznam porovnává s pravidly, která jsou v souboru /etc/syslog.conf... Každé pravidlo je zapsáno jako řádek souboru /etc/syslog.conf skládající se ze dvou polí. Levé pole ("selektor") určuje jednu nebo několik šablon, podle kterých jsou zprávy vybírány. Šablony jsou odděleny středníky (viz níže ukázkový soubor /etc/syslog.conf). Pravý okraj ("akce") určuje pořadí, ve kterém jsou vybrané zprávy zpracovány. Pole jsou oddělena jednou nebo více mezerami nebo tabulátory.

Každá šablona v poli "selektor" má tvar "category.level" (tj. "facility.priority"). Hodnoty pole "kategorie" mohou být:

  • jeden z konvenčních názvů kategorií uvedených v tabulce 1,
  • několik takových jmen (v tomto případě jsou odděleny čárkami)
  • nebo znak * (což znamená "všechny kategorie").

Hodnoty pole "úroveň" mohou být:

  • jeden z podmíněných názvů úrovně uvedených v tabulce 2,
  • znak * (zaznamenejte všechny zprávy této kategorie bez ohledu na úroveň),
  • nebo slovo žádný(nenahrávat zprávy v této kategorii).

Zadání konkrétní hodnoty v poli "úroveň" se interpretuje jako "všechny hodnoty této úrovně a výše". Pokud potřebujete zaznamenat zprávy pouze jedné úrovně, musíte před zadanou hodnotu umístit rovnítko ("="). Pokud chcete zaznamenat zprávy všech úrovní, kromě uvedené úrovně, pak se před název úrovně umístí vykřičník ("!"). Současné umístění těchto dvou značek je interpretováno jako „nezaznamenávejte zprávy uvedené úrovně nebo vyšší“.

Velká a malá písmena v poli "selektor" se neliší. Můžete také použít čísla (viz /usr/include/syslog.h). Kromě kategorií uvedených v tabulce 1 označit(běžná časová razítka) a bezpečnostní(zastaralé synonymum pro auth). Kromě hodnot priority uvedených v tabulce 2 můžete použít varovat(synonymum pro Varování), chyba(synonymum pro chybovat), panika(synonymum pro vynořit se).

Když kategorie a úroveň přijaté zprávy odpovídá jedné ze šablon v poli "selektor" nějakého řetězce, syslogd zpracuje záznam v souladu s akcí uvedenou v poli „akce“ tohoto řádku.

Pole "akce" může obsahovat

  • musí být zadán název běžného souboru (souboru protokolu) a úplná cesta k souboru počínaje kořenem "/" a pokud zadaný soubor neexistuje, syslogd vytváří to,
  • název pojmenované roury - FIFO; v tomto případě je před název umístěn svislý pruh ("|") a samotný kanál musí být vytvořen před spuštěním syslogd tým mkfifo,
  • ukazující na terminál nebo konzolu (jako zařízení: / dev / tty1),
  • odkaz na vzdáleného hostitele (před kterým je symbol @),
  • nebo seznam uživatelů (oddělených čárkami), na jejichž terminály bude zpráva podle tohoto pravidla zaslána. Místo seznamu uživatelů můžete vložit hvězdičku (*), která bude znamenat, že zprávy budou zasílány všem uživatelům pracujícím v tento moment v systému.

Nejčastěji pole "akce" stále obsahuje název souboru protokolu. Kromě toho můžete před název souboru umístit znaménko mínus ("-"), což bude znamenat, že systém může soubor uložit do vyrovnávací paměti a nevyprázdnit jej po každém zápisu zprávy na disk. To samozřejmě urychluje práci, zvláště pokud se do logu zapisuje mnoho velkých zpráv, ale může to vést ke ztrátě některých zpráv v případě neočekávaného pádu systému, tedy přesně tehdy, když jsou takové zprávy obzvláště potřeba . Můžete také zadat tiskárnu - / dev / lp0 jako zařízení v poli "akce". Tuto možnost „akce“ je vhodné použít v případech, kdy jde o zvláště důležité systémy. Protokoly, které jsou vytištěny, nemohou hackeři vymazat ani změnit, takže je to dobré využití pro starou jehličkovou tiskárnu.

Kromě řádků s pravidly v souboru /etc/syslog.conf může obsahovat prázdné řádky a komentáře začínající znakem #. Více o struktuře souborů /etc/syslog.conf můžete si přečíst manuálovou stránku syslog.conf, kde najdete několik příkladů položek pravidel v tomto souboru. Všimněte si, že při zadávání párů "category.level" v souboru syslog.conf nelze použít číselné hodnoty uvedené v tabulkách 1 a 2, jsou povoleny pouze jejich konvenční názvy.

Pokud zpráva odpovídá vzorům dvou nebo více řádků, bude zpracována podle každého z těchto pravidel (to znamená, že zpracování zprávy se nezastaví při prvním úspěchu). To znamená, že pro jednu zprávu lze provést libovolný počet akcí. Proto můžete zapsat zprávu do souboru protokolu a odeslat ji uživateli (uživatelům) nebo vzdálenému hostiteli.

Kromě toho, pokud je v poli "selektor" uvedeno několik párů "category.level" (oddělených středníkem), mohou následující páry zrušit činnost těch předchozích. Příklad takového zrušení můžete vidět v seznamu souborů níže /etc/syslog.conf: Všechny zprávy s úrovní rovnou nebo vyšší než info se zapisují do souboru / var / log / messages, ale zprávy kategorií mail, authpriv a cron se přeskakují (nezapisují).

Výpis 1. Soubor /etc/syslog.conf ze systému postaveného na základě distribuční sady Red Hat Linux 7.1 (právě jsem přeložil do ruštiny komentáře obsažené v tomto souboru a vybral tučněřádky pravidel).
# Vytiskněte všechny zprávy z jádra do konzole. # kern. * / dev / konzole# Protokolovat všechny zprávy informační úrovně nebo vyšší # kromě zpráv obsahujících důvěrné # ověřovací zprávy a zprávy cron. * .info; mail.none; authpriv.none; cron.none / var / log / messages# Zapisujte zprávy obsahující důvěrné # ověřovací informace do samostatného souboru, bez ohledu na jejich úroveň. authpriv. * / var / log / secure# Všechny zprávy poštovního systému by měly být také zaznamenávány samostatně. mail. * / var / log / maillog# Zaznamenejte akce démona cron. cron. * / var / log / cron# Nouzové zprávy by měli okamžitě # přijímat všichni uživatelé systému * .emerg *# Zprávy od zpravodajských služeb na úrovni kritu a vyšší by měly být zapsány do samostatného souboru. uucp, news.crit / var / log / spooler# Zprávy zobrazené během spouštěcí fáze by měly být zkopírovány do souboru boot.log local7. * /var/log/boot.log
Jak vidíte, většina zpráv se jednoduše zapisuje do různých souborů protokolu umístěných v adresáři / var / log nebo jeho podadresáře a hlavním souborem systémového protokolu v Red Hat Linuxu je tento soubor / var / log / zprávy... Nejsou v něm zahrnuty pouze zprávy kategorií mail, authpriv a cron (pro které jsou přiděleny samostatné soubory). Pojďme se na tento soubor podívat a na jeho příkladu zvážit, co je zapsáno v souborech protokolu.

Soubor protokolu / var / protokol / zprávy

Samozřejmě zde není možné říci o obsahu každého řádku tohoto souboru. Aby si čtenář udělal představu, jaké informace lze v protokolu nalézt, uvádíme samostatné řádky zpráv s velmi krátkými komentáři.

Každý řádek v souboru protokolu obsahuje jeden záznam zprávy, který se skládá z následujících polí zpráv oddělených mezerami:

  • datum ve standardním textovém formátu (pole ČASOVÉ RAZÍTKO z příspěvku syslog),
  • název hostitele (pole HOSTNAME z příspěvku syslog)
  • text zprávy (pole ŠTÍTEK a OBSAH z příspěvku syslog)

Za prvé, stojí za zmínku, že pokud váš počítač nefunguje nepřetržitě, ale v noci se vypíná, pak v tomto souboru najdete záznamy několika „pracovních cyklů“, počínaje spuštěním počítače a konče jeho vypnutím. Takový cyklus začíná zprávou o spuštění logovacích démonů (to je pochopitelné, před jejich spuštěním se zprávy nezaznamenávaly):

17. září 08:32:56 kos3 syslogd 1.4-0: restart. 17. září 08:32:56 kos3 syslog: syslogd uspěl 17. září 08:32:56 jádro kos3: klogd 1.4-0, zdroj protokolu = / proc / kmsg spuštěn. 17. září 08:32:56 jádro kos3: Kontrola /boot/System.map-2.4.2-2 17. září 08:32:56 kos3 syslog: spuštění klogd bylo úspěšné

  • - Která verze jádra se používá: 17. září 08:32:56 jádro kos3: verze Linux 2.4.2-2 ( [e-mail chráněný]) (gcc verze 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) # 1. neděle 8. dubna 20:41:30 EDT 2001
  • - S jakými parametry bylo jádro spuštěno: 17. září 08:32:56 jádro kos3: Příkazový řádek jádra: auto BOOT_IMAGE = linux ro root = 303 BOOT_FILE = / boot / vmlinuz-2.4.2-2
  • - Informace o typu procesoru a množství paměti RAM: 17. září 08:32:56 jádro kos3: Zjištěn procesor 1594,849 MHz. 17. září 08:32:56 jádro kos3: Paměť: 125652k / 130560k k dispozici (1365k kód jádra, 4200k rezervováno, 92k data, 236k init, 0k highmem) 17. září 08:32:56 CPU I kernel 2K:56 CPU: kos:3 , L1 D mezipaměť: 8 kB 17. září 08:32:56 jádro kos3: CPU: mezipaměť L2: 256 k 17. září 08:32:56 jádro kos3: CPU: Intel (R) Pentium (R) 4 CPU 1,60 GHz krokování 02
  • - Informace o paměti disku (včetně informací o geometrii disku, struktuře diskových oddílů a použitých přerušeních): 17. září 08:32:56 jádro kos3: hda: MAXTOR 6L020J1, jednotka ATA DISK 17. září 08:32:56 jádro kos3: hdc: SAMSUNG CD-ROM SC-148C, ATAPI CD / DVD-ROM mechanika 17. září 08:32:56 jádro kos3: ide0 na 0x1f0-0x1f7,0x3f6 na irq 14. září 17 08:32:56 jádro kos3: ide1 na 0x177- 0x376 na irq 15. září 17 08:32:56 jádro kos3: hda: 40132503 sektorů (20548 MB) s mezipamětí 1819 kiB, CHS = 2498/255/63, UDMA (100: 08. 2. září, část 17: kos36: 3. září kontrola: 17. září 08:32:56 kos3 jádro: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17. září 08:32:56 jádro kos3: Disketová jednotka (jednotky): fd0 je 1,44 M
  • - Informace o periferii: 17. září 08:32:56 jádro kos3: usb-uhci.c: USB UHCI na I/O 0x1820, IRQ 11. září 17 08:32:56 jádro kos3: usb-uhci.c: Zjištěno 2 porty září 17 08:32:56 jádro kos3: ttyS00 na 0x03f8 (irq = 4) je jádro 16550A 17. září 08:32:56 jádro kos3: ttyS01 na 0x02f8 (irq = 3) je 16350A Se63500 : eth0: Ethernetový adaptér založený na Intel (R) 8255x 17. září 08:32:56 jádro kos3: Adaptér Intel (R) PRO / 100 Fast Ethernet – načítatelný ovladač, ver 1.5.6 17. září 08:32:56 jádro kos3: PCI: Nalezeno IRQ 11 pro zařízení 02: 08.0
  • - Informace o spouštění jednotlivých služeb a služeb: 17. září 08:32:56 jádro kos3: NET4: Linux TCP / IP 1.0 pro NET4.0 17. září 08:32:56 jádro kos3: IP Protokoly: ICMP, UDP, TCP, IGMP 17. září 08:32:56 jádro kos3: NET4: Unix doménové sockety 1.0 / SMP pro Linux NET4.0. 17. září 08:32:56 jádro kos3: parport0: styl PC na 0x378 (0x778) 17. září 08:32:56 jádro kos3: parport0: irq 7 zjištěno 17. září 08:32:42 kos3 rc.sysinit: Zapnutí uživatele a skupinové kvóty pro místní souborové systémy: úspěšné 17. září 08:32:43 kos3 rc.sysinit: Povolení odkládacího prostoru: úspěšné 17. září 08:32:44 kos3 init: Vstup do úrovně běhu: 3. září 17 08:32:45 kos3 kudzu: Aktualizace / etc / fstab uspěl 17. září 08:32:55 kos3 kudzu: uspěl 17. září 08:32:55 síť kos3: Nastavení parametrů sítě: bylo úspěšné 17. září 08:32:55 síť kos3: Zvyšování rozhraní lo: úspěšné 17. září 08 : 32:56 síť kos3: Rozhraní eth0 je aktivováno: úspěšné 17. září 08:32:56 tabulka kláves kos3: Načte rozložení klávesnice: 17. září 08:32:56 tabulka kláves kos3: Načte systémové písmo: 17. září 08:32:56 kos3 náhodné : Inicializuje generátor náhodných čísel: úspěšné 17. září 08:32:41 kos3 rc.sysinit: Konfigurace parametrů jádra: úspěšné 17. září 08:32:41 kos3 rc.sysinit: Nastavení výchozího písma (cyr-sun16): úspěšné září 17 08:32:41 kos3 rc.sysinit: Aktivace odkládacích oddílů: úspěšná 17. září 08:32:41 kos3 rc.sysinit: Nastavení názvu hostitele kos3: úspěšné 17. září 08:33:03 kos3 xinetd: spuštění xinetd úspěšné 08. září: 17. 33:05 kos3 gpm: spuštění gpm úspěšné 17. září 08:33:05 kos3 crond: úspěšné spuštění crond 17. září 08:33:06 kos3 xfs: poslech na portu 7100 17. září 08:33:06 kos3 xfs: spuštění xfs úspěšné
  • - Informace o připojování souborových systémů: 17. září 08:32:56 jádro kos3: VFS: Připojený root (souborový systém ext2) pouze pro čtení. 17. září 08:32:56 jádro kos3: Přidání swapu: 265032k swap-space (priorita -1) 17. září 08:32:56 jádro kos3: MSDOS FS: Použití kódové stránky 866 17. září 08:32:56 MSDOS kernel kos3 : IO znaková sada koi8-r 17. září 08:32:41 kos3 rc.sysinit: Připojení souborového systému USB: úspěšné 17. září 08:32:41 kos3 rc.sysinit: Úspěšná kontrola kořenového souborového systému 17. září 08:32:41 kos3 rc.sysinit : Opětovné připojení kořenového souborového systému v režimu čtení-zápis: úspěšné 17. září 08:32:41 kos3 rc.sysinit: Připojení souborového systému proc: úspěšné 17. září 08:32:41 kos3 fsck: /: čisté, 30407/160000 souborů, 95410/3199 bloky 17. září 08:32:42 kos3 fsck: / HOME: čistý, 6573/432864 souborů, 689090/863722 bloků 17. září 08:32:42 kos3 fsck: / usr: čistý, 55105/3299968 souborů, 55105/3299968 souborů, 689090/863722 bloků 17 08:32:42 kos3 rc.sysinit: Kontrola souborových systémů byla úspěšná
  • - Některé chybové zprávy byly hlášeny: 17. září 08:32:42 připojení kos3: připojení SMB se nezdařilo 17. září 08:32:42 připojení kos3: Odeslání paketu se nezdařilo na 10.104.129.245 (137) ERRNO = Síť je nedostupná 17. září 08:32: 42 kos3 mount: mount: / dev / sda4: neznámé zařízení 17. září 08:32:59 kos3 mount: chyba při připojování k 192.168.36.20:139 (Žádná trasa k hostiteli) 17. září 08:32:59 kos3 mount: mount: / dev / sda4: neznámé zařízení
  • - Zprávy o protokolování uživatelů: 17. září 08:33:14 přihlášení kos3 (pam_unix): relace otevřena pro uživatele kos LOGIN (uid = 0) 17. září 08:33:14 kos3 - kos: PŘIHLÁSIT SE NA tty1 BY kos 17. září 08 :41:39 kos3 su (pam_unix): chyba autentizace; přihlašovací jméno = kos uid = 500 euid = 0 tty = ruser = rhost = uživatel = root
  • - A nakonec zprávy zaznamenané při vypnutí počítače, například: 17. září 10:30:07 kos3 rc: Zastavení tabulky klíčů: úspěšné 17. září 10:30:07 server kos3 Font Server: ukončení 17. září 10:30:08 kos3 xfs: zastavení xfs úspěšné 17. září 10:30:08 kos3 gpm: zastavení gpm úspěšné 17. září 10:30:08 kos3 xinetd: Konec ... 17. září 10:30:10 kos3 rpc.statd: Zachycený signál 15, un - registrace a odchod. 17. září 10:30:11 jádro kos3: Protokolování jádra (proc) zastaveno. 17. září 10:30:11 jádro kos3: Ukončení démona protokolu jádra. 17. září 10:30:12 kos3 syslog: zastavení klogd bylo úspěšné 17. září 10:30:12 kos3 odchází na signál 15

    Záznamy v jiných souborech protokolu uvedených v souboru mají přibližně stejnou strukturu. /etc/syslog.conf.

    Logger a tailf příkazy

    Z předchozího popisu můžeme usoudit, že vydávání všech zpráv pro systémové logy by měl nastavit programátor ve fázi tvorby programu. Není to tak úplně pravda. Uživatel má také možnost poslat zprávu démonovi syslogd... K tomu má Linux příkaz záznamník, který zajišťuje odeslání zprávy z příkazové řádky (sh, bash atd.). Je součástí balíčku util-linux. Tento příkaz je přirozeně primárně určen k tomu, aby poskytoval možnosti protokolování, když uživatel vytváří různé druhy skriptů shellu. Lze jej ale také spustit přímo z příkazového řádku, například pro seznámení se s možnostmi logovacího systému. Formát spuštění příkazu: logger [-isd] [-f soubor] [-p PRI] [-t TAG] [-u socket] Parametry příkazového řádku mají následující význam:

    • -i- zahrnout do zprávy číslo procesu
    • -s- duplicitní zpráva do stderr
    • -d- při odesílání zpráv používat režim datagramu (místo obvyklého streamování)
    • -f název souboru- uložit zprávu do zadaného souboru (ve výchozím nastavení se používá / var / log / zprávy)
    • -p zařízení.úroveň- nastavte kategorii a prioritu zprávy (ve výchozím nastavení: user.notice)
    • -t ŠTÍTEK - nastavte pole TAG
    • -u zásuvka- odeslat zprávu do zadaného soketu místo volání syslogd
    • MSG- Text zprávy

    Odešlete více zpráv pomocí programu záznamník a obdivovat výsledek v souboru / var / log / zprávy(pokud jste samozřejmě nezměnili výchozí nastavení).

    Mimochodem, existuje velmi zajímavý způsob zobrazení zpráv zapsaných do souboru / var / log / zprávy tým záznamník... Tato metoda je založena na použití speciální program ocas... Otevřete okno terminálu, získejte práva superuživatele (pomocí příkazu su) a spusťte příkaz v tomto okně
    tailf / var / log / zprávy
    Poté se přepněte na jiný terminál a spusťte příkaz tam logger libovolný_text... Vaše zpráva se okamžitě objeví v okně, kde je program spuštěn ocas... To znamená, že pomocí tohoto programu může správce systému sledovat záznam nových zpráv do protokolu v reálném čase. Je nepravděpodobné, že by správce systému měl čas sledovat chování systému tímto způsobem (pokud nejde o nouzové situace). Proto byly vyvinuty speciální programy pro analýzu protokolů. Ale o nich trochu níže, ale nyní přejděme k otázce, jak organizovat dohled nad vzdáleným počítačem (pamatujete, jak jste chytili útočníka Shimomura?).

    Síťové protokolování

    Jak bylo zmíněno, zprávy protokolu mohou být odesílány démonem syslogd ke vzdálenému hostiteli. Ale někdo to tam musí přijmout. Ukáže se, že to dělá stejný démon syslogd běžící na tomto vzdáleném hostiteli. Přesněji, syslogd na libovolném počítači může naslouchat nejen na soketu / dev / log (tím přijímá zprávy z místních zdrojů), ale také na portu 514 / UDP, který zajišťuje příjem zpráv z jiných počítačů v místní síti (a následné zapisování do místního souboru). To poskytuje možnost vytvořit "log server", což může být velmi výhodné pro správce systému (všechny události v síti jsou monitorovány na jednom místě), a také zvyšuje bezpečnost sítě, protože zprávy o průniku hacker na jednoho ze síťových hostitelů nemůže být tímto hackerem okamžitě odstraněn z protokolu.

    K nastavení tohoto „síťového protokolování“ je však potřeba vynaložit určité úsilí.

    Za prvé, protože port 514 / UDP se používá k odesílání a přijímání zpráv přes síť, musí být dostupný na obou počítačích (klient i server). Chcete-li to provést, v souboru / etc / služby linka musí být přítomna na obou počítačích
    syslog 514 / udp
    Pokud takový řádek v / etc / služby nepřítomný, syslogd nemůže přijímat zprávy ani je odesílat do sítě, protože nemůže otevřít port UDP. Pokud tato situace nastane, syslogd okamžitě přestane psát jakékoli zprávy, a to i do místního protokolu. Navíc, jak ukazuje příkaz ps, zůstává v paměti a dokonce ukládá zprávy do některých vyrovnávacích pamětí, protože pokud řetězec " syslog 514 / udp " obnovit v souboru / etc / služby na klientovi, pak se alespoň některé z "chybějících" zpráv stále objevují v protokolu (po restartu syslogd).

    Za druhé, při spouštění démona syslogd server musí mít možnost -r který poskytuje možnost vzdáleného protokolování (ve výchozím nastavení démon syslogdčeká pouze na zprávy z místního soketu). Jak a kde nastavit tuto volbu, bude popsáno níže, v části o spuštění démona. syslogd.

    No a do třetice je třeba odpovídajícím způsobem upravit nastavení v souborech. /etc/syslog.conf na obou počítačích. Pokud například chcete přesměrovat všechny zprávy na protokolovací server, musíte zapsat soubor na klientském počítači /etc/syslog.confřádek jako tento:
    *. * @hostname
    Pokud během startu démona syslogd server bude nedostupný (například je v tuto chvíli odpojen od sítě) nebo jej nebude možné najít podle názvu (služba DNS nefungovala správně) syslogd provede dalších 10 pokusů o nalezení serveru a pouze v případě, že poté server nelze nalézt, pokusy zastaví a odešle odpovídající zprávu.

    Pokud má vaše síť několik domén, které obsluhuje jeden protokolovací server, pak se nedivte, že protokol na serveru bude obsahovat celá jména klientů (včetně domény). Pravda, při startu syslogd můžete použít možnosti -s seznam_domén nebo -l seznam hostitelů, které zajišťují, že protokol nahradí plně kvalifikované názvy hostitelů jejich krátkými názvy (bez uvedení domény).

    Po úpravě možností spouštění a souboru nezapomeňte /etc/syslog.conf restartujte démona, protože na rozdíl od cron, sysklogd nepřečte konfigurační soubory automaticky.

    Možnosti spuštění démona Syslogd

    Protože jsme se v předchozí podsekci dotkli otázky nastavení parametrů pro spuštění démona syslogd, pojďme se na tuto problematiku podívat blíže. Jak již bylo zmíněno, oba logovací démoni se spouštějí ve fázi inicializace systému a konkrétněji prostřednictvím skriptu /etc/rc.d/init.d/syslog(pro které, stejně jako pro skripty pro spouštění jiných služeb, jsou vytvořeny symbolické odkazy v adresářích /etc/rc.d/rc?.d/). Pro nastavení spouštěcích parametrů však není potřeba tento skript upravovat, protože počínaje verzí 7.2 v distribuci Red Hat se možnosti spouštění pro oba démony načítají ze samostatného konfiguračního souboru / etc / sysconfig / syslog... Zde je krátký seznam možných parametrů pro démona syslogd.

    Spouštěcí parametry syslogd:

    • - zásuvka- Určuje další soket, na kterém bude démon naslouchat syslogd... Můžete zadat až 19 soketů (lze zadat více, ale musíte balíček překompilovat). Tato volba se používá, když nějaký jiný démon (například ftp nebo http) běží v omezeném prostředí (provádí chroot).
    • -d- Debugovací mód. V tomto případě démon nepřechází na pozadí a odesílá všechny zprávy aktuálnímu terminálu.
    • -f název_konfiguračního_souboru Určuje název alternativního konfiguračního souboru, který bude použit namísto výchozího /etc/syslog.conf.
    • -h Standardně v sysklogd přenos zpráv přijatých přes síť do jiného počítače je zakázán. To se provádí, aby se zabránilo nekonečným přenosům zpráv po kruhu. Volba -h vám umožňuje změnit obvyklé chování a zajistit, aby zprávy přijaté od vzdálených hostitelů byly předávány po síti (a postarejte se o případné zacyklení sami).
    • -l seznam hostitelů- Určuje seznam hostitelů, jejichž jména by neměla být zaznamenána s uvedením celého názvu domény (FQDN - Full Qwalified Domain Name); jména v seznamu jsou oddělena dvojtečkami.
    • -m minut Začalo bez této možnosti sysklogd pravidelně (každých 20 minut) zaznamenává zprávy kategorie označit, tedy jen časová razítka. S možností -m můžete buď změnit interval mezi značkami, nebo zcela zrušit vydávání takových zpráv, pro které je třeba nastavit nulový interval: -m 0.
    • -n Nechoďte do pozadí; tato volba je potřebná, když je syslogd spuštěn a řízen procesem init.
    • -p zásuvka Určuje alternativní soket UNIX (místo výchozího naslouchání / dev / log). Poznámka: možnost -A určuje další zásuvky a -p- alternativa!
    • -r Povolit příjem zpráv od vzdálených hostitelů. Mluvili jsme o tom v předchozí části, takže podrobnosti vynechávám.
    • -s seznam-domén Určuje seznam domén, jejichž názvy není nutné protokolovat spolu s názvem hostitele (to znamená, že u těchto domén budou místo plně kvalifikovaného názvu domény (FQDN) protokolovány pouze názvy hostitelů). Názvy v seznamu jsou odděleny dvojtečkami Název domény, kde je umístěn server syslogd) , není nutné jej v tomto seznamu uvádět (její název je ve výchozím nastavení odstraněn).
    • -proti Zobrazit verzi a ukončit.
    • -X Zakázat určování názvu hostitele podle jeho adresy, zabraňuje uváznutí při práci na stejném hostiteli se serverem DNS.

    Po spuštění démona syslogd je vytvořen stavový soubor / var / lock / subsys / syslog nulovou délku a soubor s ID procesu /var/run/syslogd.pid.

    Pomocí příkazu
    kill -SIGNAL `cat / var / run / syslogd.pid`
    můžete poslat démonovi syslogd jeden z následujících signálů:

    • SIGHUP - restart démona (reinicializace); všechny otevřené soubory se zavřou, démon začne znovu a znovu načte svůj konfigurační soubor.
    • SIGTERM - vypnutí.
    • SIGINT, SIGQUIT - pokud je povolen režim ladění (volba -d), signály jsou ignorovány, jinak - ukončení.
    • SIGUSR1 - povolí / zakáže režim ladění (funguje pouze v případě, že byl démon spuštěn přepínačem -d).

    Démon klogd nemá méně možností spuštění než syslogd, ale nebudeme je zde vypisovat s odkazem čtenáře na odpovídající manuálovou stránku (uživatel by se neměl podílet na nastavení klogd, je lepší jej ponechat ve stejném stavu, v jakém jej vyrobili vývojáři distribučního kitu).

    Soubor Dmesg a příkaz dmesg

    Jak bylo uvedeno, soubory protokolu odkazované v souboru /etc/syslog.conf obvykle umístěn v adresáři / var / log a jeho podadresáře. Ale když se podíváme do tohoto adresáře, najdeme tam několik souborů, které v /etc/syslog.conf nebyly zmíněny. Pojďme se podívat na jejich účel. A začneme souborem dmesg.

    Nejprve je třeba zmínit, že Linux má příkaz se stejným názvem. Pokud porovnáte výstup tohoto příkazu (když je spuštěn bez parametrů) s obsahem souboru / var / log / dmesg, zjistíte, že jsou velmi podobné, i když ne identické (převeďte výstup příkazu do souboru dmesg2 a porovnat soubory dmesg a dmesg2). Přesněji spis / var / log / dmesg jedna ku jedné se shoduje se začátkem výstupu, který obdržíme příkazem dmesg... Jak vyplývá z jádra, existuje kruhový buffer, do kterého se zapisují zprávy od kernel logovacího démona. Zprávy, které se zapisují do této vyrovnávací paměti během procesu načítání a tvoří obsah souboru / var / log / dmesg... Tento soubor se zjevně generuje na konci spouštění systému.

    Pokud se znovu podíváte na výše uvedený výpis souborů /etc/syslog.conf pak uvidíte, že všechny příspěvky v kategorii kern jsou také vydány do konzole. Tam ale rychle přeběhnou po obrazovce a vy je sotva máte čas číst a chápat. Ale jsou uloženy v souboru / var / log / dmesg a proto jsou k dispozici pro klidné pochopení (pokud byl proces stahování úspěšně dokončen). Po ukončení bootovacího procesu pokračuje zápis zpráv z jádra do kruhové vyrovnávací paměti. Když je příkaz vykonán dmesg, zobrazí se aktuální stav vyrovnávací paměti. Výstup tohoto příkazu proto obsahuje více zpráv než soubor / var / log / dmesg: ve výstupu tohoto příkazu také vidíte zprávy, které jádro vydává po skončení procesu zavádění.

    Všechny zprávy od / var / log / dmesg najdete v souboru / var / log / zprávy, jen tam se střídají se zprávami z jiných programů. Existuje pouze jeden podstatný rozdíl: v souboru dmesgčas a zdroj zprávy (název hostitele a kategorie zprávy) nejsou specifikovány. Host je zde vždy „místní“ a začátek odpočítávání je určen posledním restartem počítače.

    Lastlog, wtmp a utmp soubory

    Kromě souboru dmesg v katalogu / var / log / existují další dva soubory, které nejsou zmíněny /etc/syslog.conf, ale přímo souvisí s logováním - jedná se o soubory lastlog a wtmp... Ale pohled na ně je stejný, jako jsme se dívali do souboru / var / log / zprávy nedává smysl - nebudete ničemu rozumět. Faktem je, že informace v těchto souborech jsou zaznamenány ve speciálním formátu a je třeba je prohlížet pomocí speciálních softwarových nástrojů. Nejprve je však třeba říci pár slov o účelu těchto souborů.

    Soubor lastlog ukládá informace o posledním uživateli přihlášeném do systému. Nevím, jestli jste si všimli, že když zadáte uživatelské jméno a heslo, objeví se na obrazovce následující zpráva:

    Přihlášení k místnímu hostiteli: kos Heslo: Poslední přihlášení: Středa 9. října 19:25:53 na tty1 Tyto tři řádky generuje obslužný program přihlásit se, která po zjištění, že uživatel má právo se přihlásit, přistupuje k souboru / var / log / lastlog, odtud načte informace o předchozím úspěšném přihlášení uživatele, vytiskne je na obrazovku a poté aktualizuje záznam v souboru lastlog... Tuto zprávu můžete potlačit vytvořením prázdného souboru .hushlogin ve vašem domovském adresáři. Nedoporučuje se to však dělat, spíše naopak byste měli věnovat zvláštní pozornost obsahu této zprávy, aby vám neunikly případy, kdy se do systému pod vaším jménem dostal někdo jiný.

    Na rozdíl od souboru / var / log / lastlog který obsahuje záznamy doby poslední přihlašovací údaje každého uživatele v souboru / var / log / wtmp jsou zapamatovány Všechno přihlášení a odhlášení uživatelů od vytvoření tohoto souboru. Jako ve spisu lastlog, záznamy v / var / log / wtmp jsou vyrobeny ve speciálním formátu, takže je lze prohlížet pouze pomocí speciálních příkazů. Než však budeme mluvit o těchto příkazech, řekněme, že existuje další soubor obsahující záznamy o protokolování uživatelů – toto je soubor / var / run / utmp... Tento soubor obsahuje informace o tom, který uživatel je aktuálně přihlášen do systému.

    Nyní můžete mluvit o tom, jak zobrazit informace o uživatelích, kteří aktuálně nebo dříve pracovali v systému. Hlavním příkazem k tomu je příkaz poslední... Vypíše všechny záznamy ze souboru / var / log / wtmp dále je uvedeno uživatelské jméno, označení terminálu, ze kterého uživatel pracoval, čas, kdy uživatel vstoupil do systému a čas, kdy se odhlásil, a také délka sezení uživatele v systému. Pokud byla práce uživatele přerušena pouze z důvodu vypnutí systému, použije se místo času ukončení uživatele slovo „down“ (na těchto řádcích lze snadno určit čas vypnutí systému). Čas restartu je zobrazen na samostatných řádcích začínajících slovem „reboot“.

    Příkaz lastb jako tým poslední ale zobrazí informace o neúspěšných pokusech o přihlášení uživatele. Je však třeba poznamenat, že tento příkaz bude fungovat pouze v případě, že soubor existuje. / var / log / btmp... Žádný ze zde diskutovaných programů však nevytváří soubory protokolu, takže pokud je některý z nich smazán, nahrávání končí.

    Příkaz lastlog formáty a výstupy obsahu souboru / var / log / lastlog... Pole budou uživatelské jméno, název terminálu, ze kterého se uživatel přihlásil, a čas posledního přihlášení do systému. Ve výchozím nastavení (když je příkaz zadán bez parametrů) prvky souboru / var / log / lastlog se zobrazí v pořadí podle identifikačních čísel uživatelů. Pokud zadáte parametr -u přihlašovací-jméno, zobrazí se pouze informace o čase posledního přihlášení zadaného uživatele. Zadáním parametru -t days získáte záznamy pouze z posledních dnů. Pokud se uživatel do systému vůbec nepřihlásil, bude místo názvu terminálu a času posledního přihlášení uveden řetězec „** Nikdy se nepřihlásil **“.

    Při provádění příkazu lastlog na pomalém počítači se v některých případech může zdát, že se příkaz zasekl. To se děje díky tomu, že i když jsou v systému registrováni pouze dva uživatelé (root a uživatel), v souboru / var / log / lastlog stále je prostor pro co nejvíce uživatelů, kteří mohou na systému pracovat. Proto v souboru / var / log / lastlog mezi čísly ID uživatelů přihlášených do systému mohou být velké mezery. Protože při prohlížení takových intervalů program nezobrazuje informace na obrazovce a objevuje se dojem „zamrznutí“.

    Chcete-li zobrazit informace o tom, kdo aktuálně pracuje v systému, použijte příkazy w, SZO a uživatelů... Příkaz uživatelů používá se, když chcete pouze vědět, kdo z uživatelů právě pracuje v systému, ale nezajímá vás, ze kterého terminálu se připojil a co dělá. Pokud chcete vědět, kdo se z kterého terminálu přihlásil, použijte příkaz SZO... Tento příkaz vypíše informace ze souboru / var / run / utmp... Můžete vytvořit výstup dat ze souboru / var / log / wtmp(nebo jakýkoli jiný soubor, pro který to dává smysl), pokud zadáte název tohoto souboru na příkazovém řádku. Ve výstupu ale stále uvidíte pouze uživatelské jméno, označení terminálu, ze kterého se uživatel přihlásil, čas přihlášení a v případě přihlášení ze vzdáleného počítače název tohoto počítače.

    Výrazně více informací zobrazí příkaz w... V jeho výstupu uvidíte aktuální čas, jak dlouho systém běží, kolik uživatelů v systému aktuálně pracuje a průměrné vytížení systému za poslední minutu, 5 a 15 minut. Poté pro každého uživatele vytiskne:

  • uživatelské jméno,
  • název terminálu,
  • název vzdáleného hostitele
  • čas, který uplynul od přihlášení,
  • doba, po kterou se tento terminál nepoužívá (doba nečinnosti),
  • celkový čas strávený všemi procesy spuštěnými z tohoto terminálu (graf JCPU),
  • doba, po kterou běží poslední z procesů spuštěných uživatelem (graf PCPU),
  • informace o tom, který program právě uživatel spouští (ve formě příkazového řádku pro spuštění příkazu se všemi parametry).

    Jak již bylo zmíněno, příkaz w výstup informací uložených v souboru utmp... Mimochodem, průvodce muž uvádí, že běžným uživatelům by měl být odepřen přístup k zápisu do souboru utmp protože mnoho systémové programy(z nějakého nevysvětlitelného důvodu) závisí na jeho celistvosti. Pokud povolíte libovolnému uživateli zapisovat do souboru utmp, vystavujete se riziku matoucích souborů statistiky systému a provádění změn v systémových souborech.

    Soubory protokolu jiných programů

    Kromě souborů, které jsme již popsali, existují další soubory protokolu, které jsou vytvářeny samostatnými programy. Nejtypičtějším příkladem jsou protokoly démonů. samba, ftpd nebo httpd které jsou uloženy v samostatných souborech. Některé z těchto programů vytvářejí své protokoly v podadresářích adresáře / var / log / jiní uchovávají protokoly jinde. A struktura těchto souborů se může výrazně lišit od struktury souborů vytvořených systémem. syslog... Pro příklad uvedu pár řádků z logu serveru Apache běžící na mém počítači: 192.168.36.21 - - "GET / ve / papers / new / log / HTTP / 1.1" 200 1774 "-" "Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0 . 0) Gecko / 20020530 "192.168.36.21 - -" GET /icons/back.gif HTTP / 1.1 "304 -" - "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0 ) Gecko / 20020530 "192.168.36.21 - -" GET /icons/folder.gif HTTP / 1.1 "304 -" - "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /icons/text.gif HTTP / 1.1 "304 -" - "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 192.168.36.21 - -" GET /ve/papers/new/log/protok_lovim.htm HTTP / 1.1 "200 46597" http: // linux / ve / papers / new / log / "" Mozilla / 5.0 (X11; U ; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /bugtraq.css HTTP / 1.1 "404 279" http: // linux / ve / papers / new / log / protok_lovim .htm "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /img/bug1.gif HTTP / 1.1 "404 280" http : // linux / ve / papers / new / lo g / protok_lovim.htm "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /img/title.gif HTTP / 1.1 "404 281" http: //linux/ve/papers/new/log/protok_lovim.htm "" Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 „Jak můžete vidět, struktura tohoto souboru protokolu se výrazně liší od toho, co jsme viděli v protokolech systému.

    V podadresáři vytváří server Samba kromě hlavního provozního protokolu serveru / var / log / samba množství souborů protokolu pro různé případy, zejména samostatné soubory pro každého z uživatelů, kteří mohou používat prostředky poskytované tímto serverem. Z jednoho takového souboru jsou převzaty následující dva záznamy:

    Smbd / service.c: make_connection (550) linux (192.168.36.10) připojit se k veřejné službě jako uživatel kos (uid = 500, gid = 500) (pid 1366) smbd / service.c: close_cnum (550) linux (192.1 36.10) uzavřené připojení k veřejné službě Tyto příklady ukazují, že pokud umíte trochu číst v angličtině a rozumíte struktuře záznamů, můžete ze souborů protokolu získat mnoho užitečných informací. Pouze se musí vytěžit z celých ložisek "odpadu" - obrovských sekvenčních log souborů, což je netriviální úkol. Proto byly vyvinuty speciální softwarové nástroje pro analýzu protokolů.

    Nástroje pro zpracování protokolů

    Bylo vyvinuto mnoho různých programů a skriptů pro analýzu protokolů. omezím se stručný popis dva takové prostředky: logwatch a vzorník.

    logwatch je skript v Perlu, který je součástí standardní distribuce Red Hat Linux. Právě během přípravy tohoto článku byla na webu vývojáře uvolněna verze 4.1 tohoto programu (a je jím Kirk Bauer).

    Hlavní myšlenkou tohoto programu je, že soubor protokolu prochází filtrem, který z protokolu extrahuje všechny řádky (tj. zprávy), které splňují dané kritérium. Výsledky jsou odeslány e-mailem zadanému uživateli (výchozí je root). Filtry mohou být napsány v jakémkoli programovacím jazyce, ale autor balíčku preferuje Perl. Filtry by měly být napsány tak, aby načítaly data ze stdin a vydávaly výsledek do stdout.

    Hlavní způsob použití logwatch spočívá v zahrnutí odkazu na hlavní skript ( /etc/log.d/scripts/logwatch.pl) do adresáře /etc/cron.daily, který způsobí každodenní spouštění logwatch s výchozími parametry. Odkazu je přidělen název, který začíná „00“ (např. 00-logwatch), takže skript se spustí před logrotate.

    Skript ale můžete spustit i z příkazového řádku. Samozřejmě, pokud jste nezměnili parametr výstupu informací, pak by měl být výsledek jeho práce vyhledán v poštovní schránce superuživatele. Pokud chcete tyto výsledky vidět na obrazovce, musíte nastavit parametr příkazového řádku --tisk- vydat zprávu stdout.

    Obecný formát spouštění skriptu:

    /etc/log.d/scripts/logwatch.pl [--detailúroveň ] [--log soubor skupinové protokoly ] [--služba Název služby ] [--print] [--mailto adresa ] [--Uložit Název souboru ] [--archivy] [--rozsah datum-interval ]

    Výchozí parametry jsou uloženy v souboru /etc/log.d/logwatch.conf, komentáře, které vám umožní pochopit význam parametrů příkazového řádku:

    • LogDir - adresář, ke kterému jsou brány v úvahu názvy souborů;
    • MailTo - komu poslat zprávu;
    • Tisk - místo zasílání zprávy poštou ji vystavte na stdout;
    • Uložit - místo odesílání zprávy poštou jej uložte do zadaného souboru;
    • Archivy - zpracovávají nejen aktuální verze logů, ale i staré kopie vytvořené logrotate;
    • Rozsah - zpracuje zadaný časový interval: Vše, Dnes, Včera (včerejší kalendářní den);
    • Detail - úroveň podrobnosti zprávy: od 0 do 10 nebo Nízká, Střední, Vysoká;
    • Služba – vše nebo název filtru z /etc/log.d/scripts/services/ (lze zadat více filtrů);
    • LogFile – vše nebo název skupiny logů (lze zadat více skupin).

    Více informací o skriptu logwatch najdete v.

    Tento článek popisuje další skript pro zpracování souborů protokolu, který je součástí distribuce Mandrake Linux. Tento skript se nazývá vzorník("Simple WATCHer") a je také napsán v Perlu.

    Řízení práce vzorník ve výchozím nastavení se provádí pomocí jediného konfiguračního souboru $ HOME / .swatchrc... Tento soubor obsahuje ukázkový text (ve formě regulárního výrazu), který vzorník prohledá soubory protokolu. Po každém takovém vzoru následuje akce, která vzorník by měl trvat, pokud najde text, který odpovídá vzoru.

    Můžete například chtít obdržet varování pokaždé, když se pokusíte o útok přetečením vyrovnávací paměti na váš webový server pro velmi dlouhý název souboru. A víte, že v takových případech v souboru protokolu /var/apache/error.log zobrazí se zpráva se slovy „Název souboru je příliš dlouhý“. V tomto případě do vašeho souboru .swatchrc musí být vložena tato poznámka:

    Watchfor / Název souboru je příliš dlouhý / mail [e-mail chráněný], předmět = BufferOverflow_attempt

    Podrobnější popis programu zde nebudu uvádět. vzorník... Věnuje se jí nadšený článek a samotný program najdete na webu. Chtěl bych pouze poznamenat a vzorník, a logwatch implementovat poměrně primitivní algoritmus pro zpracování protokolových souborů, který se scvrkává na hledání daného znakového řetězce (podpisu) v protokolu. Mezitím, za prvé, přítomnost takové linky často ještě nenaznačuje narušení vetřelce, a za druhé, kompetentní útočník se může postarat o to, aby vymazal stopy své činnosti. Další zjevnou nevýhodou recenzovaných produktů je, že fungují ve „zpožděném režimu“, protože jsou uváděny pouze podle plánu. A boj proti vetřelcům musí být prováděn „v reálném čase“ a musí okamžitě reagovat na pokusy proniknout do systému. Komerční produkty proto nabízejí monitorovací systémy, které pracují neustále a implementují „inteligentní“ algoritmy pro analýzu protokolů. Tyto algoritmy jsou založeny na statistické analýze toku zpráv a identifikaci statisticky významných odchylek systému od jeho normálního chování.

    Na závěr této části bych rád poznamenal, že webová stránka SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) obsahuje seznam odkazů na stránky různých softwarových nástrojů pro zpracování protokolů se stručným popisem těchto nástrojů. Můžete experimentovat s různými programy a vybrat si ten, který vám vyhovuje.

    Rotující soubory protokolu

    Samozřejmě pochopíte, že pokud je systém intenzivně využíván, pak soubory protokolu rychle rostou. Což znamená plýtvání místem na disku. A nastává problém „zkrocení“ protokolů. Red Hat Linux řeší tento problém pomocí skriptů. logrotate který se nachází v adresáři /etc/cron.daily, a proto je spuštěn démonem cron denně. Tento skript vám umožňuje zpracovávat více než jen systémové protokoly syslog, ale i jakékoli další programy.

    Skript logrotate sleduje nárůst log souborů a zajišťuje tzv. rotaci těchto souborů, pokud přesáhly zadanou velikost (nebo po uplynutí zadaného časového intervalu). Rotace není nic jiného než sekvenční kopírování předchozích verzí archivních souborů, něco takového:

  • zprávy.2 -> zprávy.3
  • zprávy.1 -> zprávy.2
  • zprávy.0 -> zprávy.1
  • zprávy -> zprávy.0
    a vytvoření nového souboru zpráv pro záznam následujících zpráv.

    Seznam souborů, které má skript zpracovat logrotate a parametry tohoto zpracování jsou určeny konfiguračními soubory, kterých může být několik. Názvy konfiguračních souborů se nastavují v příkazovém řádku spouštění skriptu (parametry spouštění viz níže). V systému Red Hat Linux jsou výchozí konfigurační soubory pro logrotate použitý soubor /etc/logrotate.conf, který může vypadat nějak takto:

    Týdenní rotace 4 vytvoření komprimace zahrnuje /etc/logrotate.d / var / log / wtmp / var / log / lastlog (měsíční vytvoření 0664 root utmp rotace 1)

    Tento soubor je jako jakýkoli konfigurační soubor pro skript. logrotate se skládá z několika oddílů. První část definuje globální parametry (jeden na řádek), které nastavují výchozí parametry pro všechny protokoly. Následující části definují místní parametry pro řadu souborů protokolu. Názvy těchto souborů jsou uvedeny na prvním řádku sekce a poté jsou ve složených závorkách nastaveny místní parametry, které jsou účinné pouze při zpracování zadaných souborů (také jeden parametr na řádek). Názvy souborů protokolu mohou být uvozovány pravidly prostředí, pokud obsahují mezery nebo jiné speciální znaky. Můžete zadat více názvů souborů nebo vzorů názvů souborů oddělených mezerami (vzory se také řídí pravidly prostředí). Zpracování každé sekce je považováno za jednu akci. Řádky začínající znakem "#" jsou komentáře. Lokální parametry mají přednost před globálními parametry.

    V uvedeném příkladu konfiguračního souboru jsou nejprve popsány globální parametry a poté v samostatné části parametry pro zpracování souborů / var / log / wtmp a / var / log / lastlog. Kromě toho je mezi globálními parametry uveden odkaz na adresář /etc/logrotate.d, do kterého každý balíček zapisuje lokální parametry pro své protokoly.

    V sekci globální parametry je nejprve specifikován jeden z následujících parametrů, které určují kritérium pro rotaci souboru:

  • denně- ke změně verzí v sérii dochází denně,
  • týdně- změna verze probíhá každý týden,
  • měsíční- ke změně verze dochází měsíčně,
  • velikost byte - ke změně verze dojde, pokud velikost protokolu překročí zadaný počet bajtů; můžete použít přípony "k" - kilobajty - a "M" - megabajty)

  • a parametr zahrnout následovaný názvem dalšího (dalšího) konfiguračního souboru nebo dokonce názvem adresáře. V druhém případě jsou všechny soubory v zadaném adresáři kromě podadresářů, speciálních souborů a souborů s příponami ze seznamu výjimek považovány za konfigurační soubory skriptu. logrotate(směrnice zahrnout nelze použít uvnitř sekce, která specifikuje parametry zpracování pro skupinu souborů).

    Parametr točit se číslo lze nalézt jak mezi globálními, tak mezi lokálními parametry a určuje, kolik starých verzí má být zachováno; pokud je číslo 0, pak se nevytvářejí archivované verze protokolu.

    Pokud je parametr nastaven komprimovat pak jsou staré verze komprimovány pomocí gzip, a pokud je uvedeno nocompress- nesmršťují se. Parametr komprimovatcmd umožňuje určit, který komprimační program bude použit (standardně gzip) a dekomprimovatcmd nastaví dekompresní program (ve výchozím nastavení ungzip). možnosti komprese nastavuje parametry kompresního programu; výchozí je "-9", tj. maximální komprese pro gzip. Pomocí parametru kompresní text můžete změnit příponu komprimovaných souborů a parametr rozšíření přípona určuje příponu, která se má přidat k názvům souborů během rotace (před příponou komprese).

    Mezi klíčová slova nalezená v konfiguračních souborech patří slova postrotovat a předtočit které slouží jako otevřené závorky pro zahrnutí skriptů shellu do konfiguračních souborů. Všechny řádky konfiguračního souboru od řádku postrotovat do čáry koncový skript jsou prováděny jako příkazy shellu po procesu změny verze souboru protokolu. Podle toho všechny řádky z řádku předtočit do čáry koncový skript jsou prováděny před rotací souborů protokolu. Pomocí těchto skriptů můžete organizovat různé postupy pro zpracování souborů protokolu během rotace.

    Pomocí dalších parametrů konfiguračního souboru můžete přepsat přístupová práva k souborům protokolu (pokud tento parametr není uveden, použijí se atributy starého souboru protokolu); uvést, komu zasílat zprávy o chybách v provozu logovacího systému; odeslat archivní kopii protokolu určenému uživateli; nastavte adresář, do kterého budou protokoly přesunuty při změně verze (adresář musí být umístěn ve stejném fyzické zařízení jako / var / log) nebo zadejte seznam přípon vyloučení pro adresář zahrnout... Podrobný popis těchto vlastností a parametrů (a také těch, které nebyly zmíněny) naleznete pod příkazem muž logrotate.

    Jak již bylo zmíněno, další konfigurační soubory logrotate lze zadat na příkazovém řádku při spuštění skriptu. Pro konfigurační soubory nebo adresáře můžete zadat libovolný počet názvů. Názvy souborů a adresářů v tomto seznamu jsou jednoduše odděleny mezerami. Pořadí názvů v seznamu je důležité, protože parametry zadané v následujícím konfiguračním souboru přepíší hodnoty parametrů zadané v předchozí soubor... Pořadí souborů v konfiguračním adresáři není definováno.

    Kromě toho lze na spouštěcím příkazovém řádku zadat následující parametry:

    • -d- režim ladění, neprovádějí se žádné skutečné změny,
    • -F- provést změny, i když logrotate nevidí potřebu - používá se při změnách v seznamu zpracovaných protokolů,
    • muž logwatch
    • Mick Bauer, "Paranoidní tučňák: vzorník: Automatické sledování protokolů pro bdělé, ale líné"
    • RFC 3164. C. Lonvick, The BSD Syslog Protocol, srpen 2001.
    • RFC 3195. D. New, M. Rose, Spolehlivá dodávka pro syslog, listopad 2001.
    • Za. S. Lapshansky, "Démon sleduje systém"
    • Denis Kolisničenko,

    Protokol syslog a podpůrný software zajišťují, že informace o událostech jsou zapsány do systémového protokolu (protokoly, systémová konzola) a také přenášeny na protokolovací server po síti, tříděny a zpracovávány v závislosti na zdroji a závažnosti zpráv. Tento článek popisuje protokol syslog, jeho implementaci v systémech Solaris a Linux (syslogd), Cisco IOS a pomocné nástroje: logrotate, logwatch.

    Komponenty systému jsou generátor zpráv (zařízení nebo proces), výměnný protokol, sběrač zpráv (kolektor, syslog server), relé (relé, přijímá zprávy od jednoho nebo více generátorů a přenáší je do jednoho nebo více kolektorů nebo dalších relé). Generátor (resp. relé při přenosu) neví, zda je přijímačem relé nebo kolektor, může jednu zprávu předat více příjemcům, dokáže zprávu zpracovat sám (např. zápisem do souboru).

    Protokol syslog neposkytuje žádnou ochranu proti falšování zpráv. Ještě horší, použití protokolu UDP umožňuje útočníkům posílat zprávy jménem libovolného hostitele. Lokální síť musí být chráněna clonou (IOS ACL, ipchains) před přijímáním paketů s falešnými lokálními adresami (i když to nebrání odesílání falešných zpráv zevnitř lokální sítě) a před přijímáním paketů zvenčí na portu 514 / udp. Jsou známy případy přetečení disku falešnými zprávami.

    Protokol syslog a UDP neposkytují zaručené doručení (zprávy mohou být ztraceny při přetížení sítě nebo zachyceny, poškozené zprávy jsou bez varování smazány), správná sekvence doručení (zpráva o konci procesu může přijít před zprávou o jeho zahájení) , přednostní doručení.

    Zprávy nejsou považovány za důvěrné, protože jsou přenášeny v čistém textu.

    Pokud při konfiguraci generátoru zpráv zadáte špatnou adresu kolektoru nebo relé, nebudou se zobrazovat žádné chybové zprávy - zprávy budou smazány (nebo zapsány do cizího protokolu;).

    Nejsou k dispozici prostředky ochrany proti zacyklení přenosu zpráv nesprávně nakonfigurovanými relé.

    RFC 3195 navrhuje nový protokol přes TCP (syslog-conn, 601), aby bylo zajištěno doručení ve správném pořadí. Implementace mi není známa. Obrovská směs XML, příkazů a návratových kódů ve stylu SMTP a MIME hlaviček (BEEP) zabalených do standardních zpráv syslog. Používají se dva režimy - RAW (analog aktuálního protokolu UDP) a VAŘENÝ (zprávy jsou strukturovány podle polí). BEEP umožňuje autentizaci, integritu a důvěrnost (SASL, TLS).

    Návrh RFC syslog-sign navrhuje zajistit ověřování, řazení, integritu zpráv a detekci chybějících zpráv generováním speciálních zpráv obsahujících digitální podpis bloku předchozích zpráv, zachováním standardního protokolu a formátu syslog a použitím UDP. Používá SHA1, OpenPGP DSA.

    Port 514 / UDP se používá pro příjem zpráv. Pro zasílání zpráv se také doporučuje použít zdrojový port 514. Zpráva je textový řetězec a nemůže být delší než 1024 bajtů, jinak může být zkrácena nebo dokonce zahozena. I chybně naformátovaná zpráva odeslaná na port 514 by měla být považována za zprávu syslog. Pokud však relé předá zprávu dále, pak k ní musí přidat standardní hlavičky (současně ji případně zkrátit na 1024 bajtů) - USER, NOTICE, její místní čas a prostý název zdroje zprávy.

    Zpráva začíná polem PRI, které zakódovalo zařízení a úroveň závažnosti zprávy. Za ním následuje čas (TIMESTAMP), mezera, název hostitele nebo IP adresa v desítkovém zápisu (HOSTNAME), mezera, libovolný text zprávy (MSG) v US-ASCII (0x20 - 0x7e).

    Název hostitele (jednoduchý, ne FQDN!) je zapsán tak, jak jej zná generátor zpráv. Pokud má zařízení několik rozhraní s různými IP adresami, lze jako název hostitele nebo adresu použít kterékoli z nich.

    Text zprávy (MSG) obvykle obsahuje značku (TAG), která identifikuje program nebo proces, který zprávu vydal, a tělo zprávy (CONTENT). Štítek může obsahovat latinská písmena a číslice. Začátek těla zprávy je označen prvním speciálním znakem, obvykle dvojtečkou nebo hranatou závorkou. Například Cisco IOS používá jako štítek pořadové číslo zprávy následované dvojtečkou a Unix používá jednoduchý název programu (tělo zprávy začíná číslem procesu v hranatých závorkách a dvojtečkou).

    syslogd přijímá zprávy z portu 514 / UDP az místních zdrojů (socket / dev / log), směruje je v závislosti na zdroji zpráv a úrovni závažnosti. Umožňuje výstup zpráv do protokolu, výstup do konzoly, do terminálu, odeslání na jiný server. Zavádí se další zdroj typu MARK (běžné značky, informace)

    Každý řádek protokolu obsahuje jeden záznam zprávy, který se skládá z polí oddělených mezerami:

    • datum ve standardním textovém formátu (pole TIMESTAMP ze zprávy syslog)
    • název hostitele (fqdn nebo zkratka, pole HOSTNAME ze zprávy syslog)
    • text zprávy (pole TAG a CONTENT ze zprávy syslog)

    Spouštěcí parametry:

    • -A přídavná-naslouchací-zásuvka (užitečné pro démony provádějící chroot; může jich být několik)
    • -d(debugovací mód)
    • -F název-konfiguračního-souboru (výchozí, /etc/syslog.conf)
    • -h(změňte obvyklé chování, kdy zprávy přijaté od vzdálených hostitelů nejsou předávány, aby byly zapsány na vzdáleného hostitele, aby se zabránilo zacyklení)
    • -l seznam hostitelů (seznam hostitelů, jejichž jména by neměla být zapsána jako FQDN; oddělené dvojtečkami)
    • -m minut (interval pro běžné dočasné nahrávky; ve výchozím nastavení - 20; pokud je 0, neprovádějte vůbec)
    • -n
    • -p poslechová zásuvka (výchozí: / dev / log)
    • -r(povolit příjem zpráv ze vzdálených hostitelů; firewall by měl být mírně otevřený; syslog pro 514 / udp by mělo být definováno v / etc / services)
    • -s seznam domén (odstraňte názvy zadaných domén z názvů hostitelů; oddělte je dvojtečkami; ve výchozím nastavení je doména, která odpovídá doméně serveru syslog, zkrácena)
    • -proti
    • -X(zakázat určování názvu hostitele podle jeho adresy, zabraňuje uváznutí při práci na stejném hostiteli se serverem DNS)

    Použité soubory:

    • /etc/syslog.conf- konfigurační soubor (změněn při spuštění podle parametru -F)
    • / dev / log- socket, ze kterého se čtou místní zprávy (změněno při spuštění parametrem -p)
    • /var/run/syslogd.pid- id procesu

    Reakce na signály:

    • SIGHUP - reinicializace (zavře všechny soubory, znovu načte konfigurační soubor)
    • SIGTERM - vypnutí
    • SIGINT, SIGQUIT - ukončení, pokud je ladění zakázáno
    • SIGUSR1 - povolit / zakázat ladění (pouze při použití přepínače -d)

    Běží jako root. Nemění oprávnění k souboru. Pokud je nucen vytvořit soubor, dělá to s oprávněními 644. Pokud je nutné omezit přístup k protokolu, je třeba příslušný soubor vytvořit ručně (nebo změnit oprávnění). Vytváří zvláštní problémy logrotate.

    Je to soubor pravidel směrování zpráv. Každé pravidlo se skládá z selektoru a akce, oddělených tabulátory (Solaris 5 na starších systémech) nebo mezerami (Linux). Po přijetí zprávy, která má být zapsána do protokolu (z klogd, z místního nebo vzdáleného programu), syslogd zkontroluje každé pravidlo, zda zpráva odpovídá vzoru určenému selektorem. V případě potřeby se provede akce specifikovaná v pravidle. Za jednu zprávu m. byl proveden libovolný počet akcí (tj. zpracování zprávy se nezastaví při prvním úspěchu).

    Selektor má dvě části oddělené tečkou: zdroj zprávy a závažnost. Velká a malá písmena jsou stejná. Můžete také použít čísla (viz /usr/include/syslog.h). Kromě zdrojů definovaných v syslog.3 můžete zadat označit(běžná časová razítka) bezpečnostní(zastaralé synonymum pro auth). Kromě úrovní závažnosti definovaných v syslog.h můžete použít varovat(synonymum pro Varování), chyba(synonymum pro chybovat), panika(synonymum pro vynořit se). Zprávy s úrovní rovnou nebo vyšší, než je zadaná ve selektoru, a se zdrojem rovným tomu zadanému v selektoru jsou považovány za platné. Hvězdička před bodem odpovídá jakémukoli zdroji, za bodem - jakékoli úrovni. Slovo žádný za tečkou - žádná úroveň pro daný zdroj. V jednom selektoru můžete zadat více zdrojů (oddělených čárkami). Na jednom řádku lze zadat více selektorů. Sémantika není jasná: pokud používáte kladné selektory, pak logické NEBO pokud je negativní ( žádný a vykřičník), pak logické A.

    V novém syslogd (linux) může úrovni předcházet rovnítko - selektoru budou odpovídat pouze zprávy se zadanou úrovní (nikoli však s nejvyšší); vykřičník - zprávy s úrovní stejnou nebo vyšší nebudou odpovídat; vykřičník a rovná se nebudou odpovídat zprávám s úrovní rovnou zadané.

    Jako akci můžete zadat:

    • běžný název souboru (úplná cesta od kořenového adresáře), mínus před jménem zakáže synchronizaci záznamů
    • pojmenované kanály - fifo (před názvem je umístěna svislá čára), samotný kanál by měl být vytvořený před spuštěním syslogd pomocí příkazu mkfifo
    • terminálu nebo konzole
    • @hostname (předat zprávy pro vzdálené protokolování)
    • seznam uživatelů (oddělených čárkami), na jejichž terminály bude zpráva odeslána
    • hvězdička pro odeslání zprávy na všechny terminály (zeď)

    Při analýze konfiguračního souboru syslogd porovnává adresu loghost(definováno v / etc / hosts, ne přes DNS) s adresou vašeho počítače, a pokud se shoduje, definuje proměnnou LOGHOST... Soubor syslog.conf pak prochází makroprocesorem m4 (1). V zásadě se to používá k tomu, aby bylo možné použít stejný konfigurační soubor na hostitelích klienta a serveru (z hlediska syslogu).

    Postup spuštění a zastavení: /etc/init.d/syslog(odkazy na něj z adresářů /etc/rc?.d). Číslo procesu je uloženo v /etc/syslog.pid.

    klogd čte zprávy jádra (buď prostřednictvím / proc / kmsg nebo systémových volání), určuje úroveň, překládá adresy příkazů na názvy programů a posílá zprávu syslogd.

    Spouštěcí parametry:

    • -c úroveň(zprávy této úrovně a méně závažné budou odesílány do syslogu a závažnější zprávy budou odeslány do konzole; ve výchozím nastavení - 7; nelze zadat 0)
    • -d(debugovací mód)
    • -F Název souboru (přihlaste se do zadaného souboru místo syslog)
    • -i(znovu načtěte symboly modulů v již spuštěném klogd, musí být použity při každém načtení nebo uvolnění modulu; doufejme, že aktuální verze insmod, rmmod a modprobe to udělají samy)
    • -Já(znovu načtěte symboly jádra a modulů v již spuštěném klogd)
    • -k Název souboru (použijte zadaný soubor jako tabulku symbolů jádra místo /boot/System.map)
    • -n(nepřecházet na pozadí; vyžaduje spuštění z init)
    • (jednorázový režim – zaprotokolovat všechny zprávy nashromážděné ve vyrovnávací paměti jádra a opustit)
    • -p(pro jistotu znovu načtěte tabulku symbolů modulu v době překladu adresy - jádro to nemusí umět)
    • -s(použijte pouze systémová volání a nechoďte na / proc / kmsg, abyste získali původní zprávy)
    • -proti(zobrazit verzi a dokončit)
    • -X(nepřevádějte adresy na jména)
    • -2 (Zprávy o selhání jádra - Jejda! - jsou vydávány dvakrát: před převodem adres na jména - pro ksymoops - a poté)

    Úrovně zpráv jádra (určené číslem v lomených závorkách a převedené na závažnost syslog, nezměněné na výstupu souboru):

    • KERN_EMERG - 0 (systém je nepoužitelný)
    • KERN_ALERT – 1 (okamžitě je třeba provést akci)
    • KERN_CRIT - 2 (kritické podmínky)
    • KERN_ERR – 3 (chybové stavy)
    • KERN_WARNING - 4 (varovné podmínky)
    • KERN_NOTICE - 5 (normální, ale významný stav)
    • KERN_INFO - 6 (informativní)
    • KERN_DEBUG – 7 (zprávy na úrovni ladění)

    Reakce na signály:

    • SIGINT, SIGKILL, SIGTERM a SIGHUP - vypnutí
    • SIGTSTP - zastavení protokolování
    • SIGCONT - životopis, případně výběr jiného
    • zdroj zpráv (/ proc / kmsg nebo systémová volání)
    • SIGUSR1 - Znovu načtěte symboly modulů
    • SIGUSR2 - Znovu načtěte symboly jádra a modulů

    Číslo procesu je uloženo v /var/run/klogd.pid.

    Inicializace protokolování: openlog- je uveden standardní prefix přidaný ke všem následujícím zprávám (obvykle název programu, číslo procesu v hranatých závorkách a dvojtečka); zdroj a možnosti. closelog- ukončení protokolování. syslog- protokolování (určuje zdroj, závažnost a formát řetězce jako v printf).

    logrotate(verze 3.2-1 / 3.3.2-1 / 3.5.9) - Boj proti narůstajícím protokolům: rotace (verzování), komprese, mazání a rozesílání. Běží denně cronem ( /etc/cron.daily/logrotate) a umožňuje zpracovávat protokoly, pokud překročí stanovenou velikost nebo v určeném časovém intervalu. Umožňuje zpracovávat nejen protokoly syslog, ale také jakékoli další programy. Možnosti:

    • [-d](režim ladění, neprovádějí se žádné skutečné změny)
    • [-F](proveďte změny, i když logrotate nevidí potřebu - používá se při změnách v seznamu zpracovaných protokolů)
    • [-s statefilename ] (aktuální stav protokolů je ve výchozím nastavení mezi běhy uložen v tomto souboru - /var/lib/logrotate.status)
    • configfilenames (jména oddělená mezerami; na pořadí záleží; pokud je zadán název adresáře, pak je každý soubor v něm považován za konfigurační soubor; RH používá soubor /etc/logrotate.conf a adresář /etc/logrotate.d)

    Konfigurační soubor definuje globální parametry (jeden na řádek), které nastavují výchozí parametry pro všechny protokoly. Pro každou dávku zpracovaných protokolů jsou specifikovány lokální parametry: je zadán základní název souboru, za nímž následují lokální parametry ve složených závorkách, jeden na řádek. Pokud název souboru obsahuje mezery nebo jiné speciální znaky, může být podle pravidel shellu uvozován. Můžete zadat více názvů souborů nebo vzorů názvů souborů oddělených mezerami (vzory se také řídí pravidly prostředí). Zpracování každé sekce je považováno za jednu akci. Řádky začínající znakem "#" jsou komentáře. Parametry zadané v následujícím konfiguračním souboru přepíší hodnoty parametrů zadané v předchozím souboru. Lokální parametry mají přednost před globálními parametry. Pořadí souborů v konfiguračním adresáři není definováno.

    Možnosti:

    • komprimovat | nocompress(starší verze jsou komprimované nebo nekomprimované pomocí gzip)
    • komprimovatcmd(nastaví komprimační program, ve výchozím nastavení gzip)
    • dekomprimovatcmd(standardně nastaví dekompresní program - ungzip)
    • kompresní text(nastavuje příponu pro komprimované soubory)
    • možnosti komprese(nastavuje parametry komprimačního programu; výchozí je "-9", tj. maximální komprese pro gzip)
    • copytruncate | nocopytruncate(obvykle se přejmenuje stará verze a vytvoří se nová verze protokolu; při nastavení tohoto parametru logrotate zkopíruje protokol do nového souboru a poté zkrátí starý; používá se, pokud jej program vytvářející protokol nemůže zavřít; vytvořeny záznamy mezi kopírováním a zkrácením se ztratí; Pomůže však, když program, který vytváří protokol, místo režimu připojení jednoduše zapíše do souboru pomocí interního ukazatele?)
    • vytvořit [ přístupová práva majitel skupina] | nocreate(ihned po přejmenování staré verze deníku a před zavoláním postrotovat je vytvořen nový protokol se zadanými atributy - oprávnění jsou nastavena v osmičkové soustavě, jako v chmod.2; pokud atributy nejsou specifikovány, jsou převzaty ze starého protokolu)
    • denně(změna verze v sérii se vyskytuje denně)
    • delaycompress | nodelaycompress(některé programy neuzavřou protokol okamžitě, v takovém případě by měla být komprese odložena do dalšího cyklu)
    • chyby e-mailem (komu zasílat hlášení o chybách)
    • rozšíření přípona (nastaví příponu přidanou k názvům souborů při otáčení před příponou komprese)
    • prázdný | bez upozornění(změňte verze, i když je soubor prázdný; toto je výchozí nastavení)
    • zahrnout Název souboru | název-adresáře (textově nahradit soubor nebo všechny soubory ze zadaného adresáře; podadresáře, speciální soubory a soubory s příponami ze seznamu výjimek nejsou zahrnuty; nelze je použít uvnitř sekce)
    • pošta adresa | nomail(když je kvůli změně verze nutné odstranit starý protokol a odeslat jej na zadanou adresu)
    • mailfirst(neposílejte smazanou verzi deníku, ale první)
    • maillast(odeslat smazanou verzi protokolu; toto je výchozí)
    • chybíok | nomissingok(neodesílejte chybové zprávy, pokud protokol chybí)
    • měsíční(změna verze probíhá měsíčně)
    • olddir adresář | noolddir(během změny verze se protokol přesune do určeného adresáře; měl by být na stejném fyzickém zařízení)
    • postrotovat koncový skript jsou po procesu upgradu prováděny jako příkazy shellu)
    • předtočit(všechny další řádky až po řádek koncový skript jsou provedeny před procesem upgradu)
    • točit se číslo (kolik starých verzí ponechat; pokud 0, pak žádnou)
    • velikost byte (změna verze nastane, pokud velikost protokolu překročí zadané číslo; můžete použít přípony "k" - kilobajty - a "M" - megabajty)
    • sdílené skripty | nosharedscripts(provádět příkazy předtočit a postrotovat pouze jednou pro všechny soubory popsané v části)
    • tabooext [+ ] seznam přípon (s uvedením seznamu výjimek přípon pro zahrnout; pokud je uvedeno znaménko plus, pak sčítání, jinak nahrazení; výchozí: .rpmorig, .rpmsave, .rpmnew, ", v", .swp a "~")
    • týdně(změna verze probíhá každý týden)

    V dodávce RH /etc/logrotate.conf popisuje globální parametry a parametry pro / var / log / wtmp a / var / log / lastlog a odkazuje na adresář /etc/logrotate.d, do kterého každý balíček zapisuje lokální parametry pro své protokoly.

    logwatch je rámec pro psaní programů (nazývaných filtry) k extrahování užitečných informací z četných, velkých a různorodých protokolů (nejen syslog). "Balík" obsahuje několik filtrů určených pro Red Hat Linux (jakási starodávná verze, protože místo xinetd je zmíněno inetd), ale budete si je muset přizpůsobit konkrétní situaci sami. Poslední změnu provedl autor v září 2000, takže není třeba čekat na další vývoj.

    Filtry mohou být napsány v jakémkoli programovacím jazyce, ale autor balíčku preferuje perl. Filtry by měly být napsány tak, aby načítaly data ze stdin a vydávaly výsledek do stdout. Před voláním filtru se nastaví proměnné prostředí: LOGWATCH_DATE_RANGE, LOGWATCH_DETAIL_LEVEL, LOGWATCH_TEMP_DIR, LOGWATCH_DEBUG. Hlavní program je také napsán v perlu: /etc/log.d/scripts/logwatch.pl(/etc/log.d/logwatch, / usr / sbin / logwatch a /etc/cron.daily/00-logwatch jsou symbolické odkazy na něj).

    Adresář /etc/log.d/conf/logfiles/ obsahuje konfigurační soubory log skupin, ve kterých jsou uloženy záznamy udržovaných služeb. Každá skupina je popsána v samostatném souboru skupinové jméno.conf, ve kterém jsou nastaveny:

    • LogFile = název souboru obsahujícího log nebo vzor jména; lze zadat více jmen nebo vzorů; jména m. vzhledem k LogDir
    • Archiv = název souboru vytvořeného logrotatem archivované verze protokolu nebo vzor pojmenování; lze zadat více jmen nebo vzorů; jména m. vzhledem k LogDir
    • názvy filtrů ( pouze jednou, i když je zobrazen i druhý!) z /etc/log.d/scripts/shared/ tak jako
      *název-filtru = možnosti , například pro filtrování protokolu podle data, pokud je zapsán ve standardním formátu syslog, použijte řádek:
      * ApplyStdDate =

    Adresář /etc/log.d/conf/services/ obsahuje konfigurační soubory pro služby, jejichž záznamy protokolu logwatch zpracuje. Každá služba je popsána v samostatném souboru Název služby.conf, ve kterém jsou nastaveny:

    • LogFile = název skupiny protokolu
    • názvy filtrů z /etc/log.d/scripts/shared/ tak jako
      *název-filtru = možnosti před servisním filtrem
    • $název-proměnné-prostředí = význam

    Adresář /etc/log.d/scripts/logfiles/ obsahuje filtry pro zpracování skupin protokolů: při zpracování skupiny protokolů všechny soubory v adresáři /etc/log.d/scripts/logfiles/ skupinové jméno používané jako filtry.

    Adresář /etc/log.d/scripts/services/ obsahuje filtry pro zpracování záznamů konkrétních služeb.

    Adresář /etc/log.d/scripts/shared/ obsahuje obecné filtry používané v konfiguračních souborech skupiny protokolů:

    • applystddate - filtruje protokol podle požadovaného data, pokud je zapsán ve formátu syslog (zde a v soukromých filtrech podle data vložte LANG = před datum volání, jinak se Mar nijak neshoduje s Mar;)
    • expandrepeat - změní řádky "poslední opakovaná zpráva" na odpovídající počet řádků zprávy z předchozího řádku
    • onlycontains - ponechá pouze ty řádky protokolu, které obsahují zadaný řetězec (uvozovky jsem dal kolem "$ *")
    • onlyservice - extrahuje z protokolu ve formátu syslog řádky související se zadanou službou (jako parametr je předán název služby)
    • remove - ponechá pouze ty řádky protokolu ve formátu syslog, které neobsahují zadaný řádek ( Vložil jsem uvozovky kolem "$ *" a odstranil jsem1, odstranit2 atd. protože jsem nepochopil, jak zadat několik podvzorů pro egrep na jednom řádku; mimochodem, parametry jsou nahrazeny do shellu, takže nelze použít ani speciální znaky)
    • removeheaders - odstranění standardních polí (datum, čas, název hostitele, štítek služby a číslo procesu)
    • removeservice - extrahuje z protokolu řádky ve formátu syslog, které nesouvisejí se zadanou službou (jako parametr je předán název služby)

    Výchozí parametry jsou uloženy v souboru /etc/log.d/conf/logwatch.conf (/etc/log.d/logwatch.conf na něj má symbolický odkaz), komentáře, ve kterých vám umožní pochopit význam parametry:

    • LogDir - adresář, ke kterému jsou brány v úvahu názvy souborů
    • MailTo - komu poslat zprávu
    • Tisk - místo zasílání zprávy poštou ji vystavte na stdout
    • Uložit - místo odeslání hlášení poštou jej uloží do zadaného souboru
    • Archivy - použijte verze logů generovaných logrotate
    • Rozsah – uvažovaný časový interval: Vše, Dnes, Včera (včerejší kalendářní den)
    • Detail – úroveň podrobnosti zprávy: od 0 do 10 nebo Nízká, Střední, Vysoká
    • Služba – vše nebo název filtru z /etc/log.d/scripts/services/ (lze zadat více filtrů)
    • LogFile – vše nebo název skupiny protokolu (lze zadat více skupin)

    Spouštěcí parametry:

    • --detail úroveň (úroveň podrobnosti zprávy: vysoká, střední nebo nízká)
    • --log soubor skupinové protokoly (zpracovávat pouze protokoly této skupiny; skupina je uvedena symbolickým názvem v konfiguračním souboru; lze zadat více skupin)
    • --servis Název služby (zpracovat pouze ty záznamy v protokolech, které se týkají této služby; služba je uvedena symbolickým názvem v konfiguračním souboru; lze zadat více služeb; název Všechno zpracování záznamů hovorů pro všechny služby)
    • --tisk(nahlásit stdout)
    • --mailto adresa (zašlete zprávu na zadanou adresu)
    • --Uložit Název souboru (zapište zprávu do zadaného souboru)
    • --archiv(zpracovávat nejen aktuální verze logů, ale i staré kopie vytvořené logrotate)
    • --rozsah datum-interval (zpracujte pouze ty záznamy v protokolech, které se vztahují k danému časovému intervalu: Včera, Dnes, Všechno)

    Hlavní použití je zahrnout soubor 00-logwatch (začínající na "00" pro spuštění před logrotate) do adresáře /etc/cron.daily, což způsobí, že logwatch bude spouštět denně s výchozími možnostmi.

    Bohužel všechny filtry jsou navrženy tak, aby se protokoly zapisovaly na stejném hostiteli, na kterém služba běží.

    Všechny protokoly jsou uchovávány na jednom počítači (pokud máte paranoidní sklony, můžete protokoly zaznamenávat na dvou serverech najednou).

    Shoda mezi formálním názvem zdroje a skutečným zařízením nebo programem:

    • local0 - Cisco
    • local3 - ftp (existuje speciální název zdroje, ale Solaris 2.5 ho nezná)
    • local4 - vyhrazeno pro účetnictví
    • local5 - POP3 / IMAP
    • local6 - tac_plus>

    Na serveru by měla být otevřena obrazovka pro port 514 / udp (můžete omezit zdrojové adresy paketů, ale to pomůže pouze v případě nehod). Spuštění syslogd (parametry v /etc/rc.d/init.d/syslog nebo /etc / sysconfig / syslog) musí být spuštěno pomocí kláves "-r -m 0" (a také "-x", pokud je stejný počítač běžící DNS server). Spusťte klogd pomocí přepínačů "-2 -c 1". Nastavení Syslog.conf:

    • * .crit - zprávy úrovně závažnosti CRIT a vyšší by měly být odesílány na terminály a zapisovány do samostatného souboru (chmod 600), vaše zprávy by měly být odesílány na záložní server; sendmail považuje zprávy o problémech s příjmem pošty za kritické
    • kern - vytvoření souboru kern pro všechny úrovně zpráv (chmod 600)
    • mail - vytvořte poštovní soubor pro zprávy všech úrovní (bez synchronizace)
    • auth, authpriv - vytvoření zabezpečeného souboru pro zprávy všech úrovní (chmod 600)
    • novinky - v adresáři news vytvořte samostatný soubor pro každou úroveň závažnosti (ladění bez synchronizace)
    • cron - vytvořte soubor cron pro zprávy všech úrovní (cron v RH 6.2 a Solaris 2.5 nemůže používat syslog)
    • local0 - vytvořit samostatný soubor pro každou úroveň závažnosti v adresáři cisco (err a níže bez synchronizace)
    • local3 - v adresáři ftp vytvořte samostatný soubor pro každou úroveň závažnosti (informace a ladění bez synchronizace)
    • local5 - vytvoření souboru imap.log pro zprávy všech úrovní
    • local6 - vytvořte soubor tac_plus.log pro zprávy všech úrovní
    • local7 - soubor boot.log (zprávy při spuštění systému a spuštění nebo zastavení syslogd a klogd)
    • všechny zprávy úrovně INFO a vyšší, které se nedostaly do jednoho z výše definovaných souborů, zapište do souboru zpráv (chmod 600)

    Na klientských počítačích nakonfigurujte syslog tak, aby byly všechny zprávy odesílány na server syslog, chybové zprávy byly duplikovány v / var / log / syslog, zprávy o kritickém stavu byly duplikovány do konzole, uživatelských terminálů. Na počítačích s linuxem také výpis zaváděcích zpráv do místního souboru (local7, boot.log). Záložní server syslog by měl přijímat kritické zprávy ze sítě a zapisovat je do souboru (díra v obrazovce, spouštěcí přepínač "-r").

    logrotate: uchovávat navždy, měnit verze co nejméně (měsíčně, kromě squid), ukládat do samostatných adresářů (kromě squid) a komprimovat (ve zpožděném režimu, kromě ftpd, linuxconf, sendfax), posílat mi chyby a smazané soubory. Shoda parametrů pro syslog.

    Umístění svislého symbolu (|) před název souboru vám umožní používat fifo (první dovnitř - první ven, první přišel - první vyšel) popř pojmenované potrubí jako příjemce zpráv. Před spuštěním (nebo restartováním) syslogd musíte vytvořit fifo pomocí příkazu mkfifo. Někdy se pro účely ladění používají fifos.

    Terminál a konzole

    Terminál, jako je / dev / konzola.

    Vzdálený stroj

    Chcete-li předávat zprávy jinému hostiteli, před název hostitele uveďte symbol @. Upozorňujeme, že zprávy nejsou předávány z přijímajícího hostitele. (aby toto přiřazení fungovalo na klientovi a serveru v souboru / etc / službyřádek musí být napsán syslog 514 / udp a UTP port 514 je otevřený)

    seznam uživatelů

    Čárkami oddělený seznam uživatelů přijímajících zprávy (pokud je uživatel přihlášen). To často zahrnuje uživatele root.

    Všichni registrovaní uživatelé

    Chcete-li upozornit všechny registrované uživatele příkazem zeď, použijte symbol hvězdičky (*).

    Příklad nekomplikovaného syslog.conf:

    # Odesílejte všechny zprávy jádra na konzolu. # kern.* / dev / console # Všechny protokoly na informační úrovni nebo vyšší, kromě e-mailových zpráv, a # nezaznamenávají ověřovací zprávy a zprávy démona cron! * .info; mail.none; authpriv.none; cron.none / var / log / messages # Zapisovat zprávy obsahující důvěrné # ověřovací informace do samostatného souboru, bez ohledu na jejich úroveň. authpriv. * / var / log / secure # Všechny zprávy z poštovního systému by měly být také zapsány do samostatného souboru. mail. * - / var / log / maillog # Logovat zprávy plánovače do / var / log / cron cron * / var / log / cron # Nouzové zprávy by měly být přijaty okamžitě # všichni uživatelé systému * .emerg * # Uložit zprávy novinky o krit a vyšší do samostatného souboru. uucp, news.crit / var / log / spooler # Uložit zaváděcí zprávy do boot.log local7. * /var/log/boot.log

    Stejně jako u mnoha konfiguračních souborů je syntaxe následující:

    • řádky začínající # a prázdné řádky jsou ignorovány.
    • Symbol * lze použít k označení všech kategorií nebo všech priorit.
    • Speciální klíčové slovo none označuje, že pro tuto akci by nemělo být prováděno žádné protokolování pro tuto kategorii.
    • Pomlčka před názvem souboru (jako / var / log / maillog v tomto příkladu) znamená, že protokol by neměl být synchronizován po každém záznamu. V případě zhroucení systému můžete ztratit informace, ale deaktivace synchronizace zlepší výkon.

    V syntaxi konfiguračního souboru můžete dát přednost před podepsat! uvést, že akce by neměla být uplatněna, z této úrovně a výše... Podobně lze dát přednost znamení = uvést, že pravidlo platí pouze pro tuto úroveň, popř != pro označení, že pravidlo platí pro všechny úrovně kromě této. Některé příklady jsou uvedeny níže (mnoho dalších příkladů lze nalézt v man syslog.conf):

    # Odesílejte všechny zprávy jádra na / var / log / kernel. # Odesílejte všechny kritické a vyšší zprávy na vzdálený počítač sysloger a do konzole # Odešlete všechny informace, upozornění a varovné zprávy na / var / log / kernel-info # kern * / Var / log / kernel kern.crit @sysloger kern .crit / dev / console kern.info; kern.! err / var / log / kernel-info # Odesílat všechny zprávy poštovního systému kromě informační úrovně do / var / log / mail. mail. *; mail.! = info / var / log / mail

    Snažil jsem se co nejjasněji ukázat práci syslogd v diagramu:

    Spuštění démona syslogd

    Logovací démon se spouští ve fázi inicializace systému pomocí skriptu /etc/rc.d/init.d/syslog pro nastavení parametrů spouštění však není potřeba tento skript upravovat - od verze 7.2 se možnosti spouštění načítají ze samostatného konfiguračního souboru / etc / sysconfig / syslog (/ etc / default / syslogv debianu).

    Zde jsou některé možné Možnosti spuštění démona syslogd:

    • -a / složka / zásuvka- určení dalšího naslouchacího soketu (nezapomeňte nejprve vytvořit soket)
    • -d- debugovací mód. V tomto případě démon nepřechází na pozadí a posílá všechny zprávy na aktuální terminál;
    • -F název-konfiguračního-souboru... Určuje název alternativního konfiguračního souboru, který se má použít namísto výchozího /etc/syslog.conf;
    • -l seznam hostitelů- nastavení seznamu hostitelů, jejichž jména nemají být zaznamenávána s uvedením celého názvu domény (FQDN - Full Qwalified Domain Name);
    • -m minut- sysklogd spuštěný bez této možnosti zaznamenává zprávy kategorie značek (časová razítka) každých 20 minut. Pomocí volby -m můžete buď změnit interval mezi značkami, nebo zcela zrušit vydávání takových zpráv;
    • -p zásuvka- nastavení alternativního UNIX socketu (místo poslouchání ve výchozím nastavení / dev / log);
    • -r- oprávnění přijímat zprávy od vzdálených hostitelů;
    • -X- zákaz určování názvu hostitele podle jeho adresy, aby se zabránilo zamrznutí při práci na stejném hostiteli se serverem DNS.
    • -proti- ukázat verzi a dokončit práci

    Po spuštění démona syslogd se vygeneruje stavový soubor / var / lock / subsys / syslog nulovou délku a soubor s ID procesu /var/run/syslogd.pid.

    Pomocí příkazu
    kill -SIGNAL `cat / var / run / syslogd.pid`

    lze odeslat na démona syslogd jeden z následujících signálů: VZDYCHNOUT- restartování démona; SIGTERM- dokončení práce; SIGUSR1- povolit / zakázat režim ladění.

    V systému ve skutečnosti běží dva logovací démoni - syslogd a klogd... Oba démoni jsou součástí balení sysklogd.

    Démon klogd odpovědný za přihlášení událostí, ke kterým došlo jádro systému... Potřeba samostatného démona klogd je způsobena tím, že jádro nemůže používat standardní funkci syslog. Jde o to, že standardní knihovny C (včetně knihovny, která obsahuje funkci syslog) jsou určeny pouze k použití konvenční aplikace... Protože jádro potřebuje také funkci protokolování, obsahuje vlastní knihovny, které nejsou aplikacím dostupné. Proto jádro používá svůj vlastní mechanismus generování zpráv.

    Démon klogd je navržen tak, aby organizoval zpracování těchto zpráv. V zásadě může toto zpracování provádět zcela nezávisle a nezávisle na syslogd, například zápisem těchto zpráv do souboru, ale ve většině případů se používá výchozí nastavení klogd, kdy jsou všechny zprávy z jádra přeposílány na stejný syslogd démon.

    Automatická rotace (aktualizace celých souborů) a archivace protokolů

    Postupem času má soubor protokolu tendenci narůstat, zejména při intenzivní práci jakékoli služby. V souladu s tím musíte mít možnost ovládat velikost protokolů. Toto je hotovo s příkazy logrotate což se obvykle dělá cron démon... O práci cronu budu mluvit v následujících článcích. hlavním cílem příkazy logrotate je pravidelně zálohovat protokoly a vytvářet nové čisté protokoly. Uchovává se více generací protokolů, a když protokol poslední generace dosáhne data vypršení platnosti, lze jej archivovat (komprimovat). Výsledek lze zaslat poštou například osobě, která má na starosti údržbu archivů.

    Pro určení pořadí rotace a archivace logů použijte konfigurační soubor /etc/logrotate.conf ... Pro různé časopisy můžete nastavit různou frekvenci, například denní, týdenní nebo měsíční, navíc můžete upravit počet nashromážděných generací a také určit, zda budou kopie archiválií zasílány osobě odpovědné za archivaci a pokud ano, kdy. Je uvedeno níže příklad souboru /etc/logrotate.conf:

    # nejprve jsou nastaveny "výchozí" parametry (globální možnosti) # aktualizovat soubory protokolů týdně týdně # uchovávat archiv protokolů za poslední 4 týdny rotovat 4 # vytvořit nový (prázdný) soubor po rotaci (aktualizovat) vytvořit # odkomentovat pokud chcete, aby byly uložené soubory komprimovány #compress # povolit nastavení rotace ze zadaného adresáře včetně /etc/logrotate.d # neukládat wtmp, nebo btmp - nastavení rotace dat protokolu jsou následující: / var / log / wtmp (chybějící měsíčně vytvořit 0664 root utmp otočit 1) / var / log / btmp (chybí měsíčně vytvořit 0664 root utmp otočit 1) # specifické systémové protokoly lze nakonfigurovat níže

    Globální možnosti jsou umístěny na začátku soubor logrotate.conf... Používají se standardně, pokud jinde není uvedeno nic konkrétnějšího. V tomto příkladu dochází k rotaci žurnálů týdně a zálohy se uchovávají pro čtyři týdnů. Jakmile se deník otočí, automaticky se vytvoří nový místo starého deníku. Soubor Logrotate.conf může obsahovat specifikace z jiných souborů. Zahrnuje tedy všechny soubory z adresáře /etc/logrotate.d.

    Tento příklad také obsahuje speciální pravidla pro / var / log / wtmp a / var / log / btmp(ukládání informací o úspěšných a neúspěšných pokusech o přihlášení do systému), které se měsíčně střídají. Pokud soubory chybí, nezobrazí se žádná chybová zpráva. Vytvoří se nový soubor a uloží se pouze jedna záloha.

    V tomto příkladu, když záloha dosáhne nejnovější generace, je odstraněna, protože není definováno, co s ní dělat.

    Protokolovat zálohy lze také generovat, když protokoly dosáhnou určité velikosti, a skripty lze generovat ze sad příkazů, které se mají provést před nebo po operaci zálohování. Příklad:

    / var / log / zprávy (otočit 5 e-mailů [e-mail chráněný] velikost 100k postrotate / usr / bin / killall -HUP syslogd endscript)

    V tomto příkladu rotace / var / log / zprávy vytvořeno, když dosáhne 100 kB. Nashromáždí se pět záloh, a když vyprší platnost nejstarší zálohy, je odeslána na adresu [e-mail chráněný] Příkazové slovo postrotate umožňuje skriptu restartovat démona syslogd po dokončení rotace odesláním signálu HUP. Příkazové slovo endscript je vyžadováno k ukončení skriptu a také v případě, že je k dispozici skript předběžného otočení. Další informace najdete na manuálových stránkách logrotate.

    Možnosti uvedené v konfiguračním souboru logrotate.conf:

    • komprimovat| nocompress(starší verze jsou komprimované nebo nekomprimované pomocí gzip)
    • komprimovatcmd(nastaví komprimační program, ve výchozím nastavení gzip)
    • dekomprimovatcmd(standardně nastaví dekompresní program - ungzip)
    • kompresní text(nastavuje příponu pro komprimované soubory)
    • možnosti komprese(nastavuje parametry komprimačního programu; výchozí je "-9", tj. maximální komprese pro gzip)
    • copytruncate| nocopytruncate(obvykle se přejmenuje stará verze a vytvoří se nová verze protokolu; při nastavení tohoto parametru logrotate zkopíruje protokol do nového souboru a poté zkrátí starý; používá se, pokud jej program vytvářející protokol nemůže zavřít; vytvořeny záznamy mezi kopírováním a zkrácením se ztratí; ale pomůže to, když program, který vytváří protokol, místo režimu připojení jednoduše zapisuje do souboru pomocí interního ukazatele?)
    • vytvořit[skupina vlastníků oprávnění] | nocreate(ihned po přejmenování staré verze logu a před voláním postrotate se vytvoří nový log se zadanými atributy - oprávnění se nastavují v osmičkové soustavě, jako v chmod.2; pokud nejsou zadány žádné atributy, převezmou se ze starého logu )
    • denně(změna verze v sérii se vyskytuje denně)
    • delaycompress| nodelaycompress(některé programy neuzavřou protokol okamžitě, v takovém případě by měla být komprese odložena do dalšího cyklu)
    • chybye-mailem(komu zasílat hlášení o chybách)
    • rozšířenípřípona(nastaví příponu přidanou k názvům souborů při otáčení před příponou komprese)
    • prázdný| bez upozornění(změňte verze, i když je soubor prázdný; toto je výchozí nastavení)
    • zahrnoutNázev souboru| název-adresáře (textově nahradit soubor nebo všechny soubory ze zadaného adresáře; podadresáře, speciální soubory a soubory s příponami ze seznamu výjimek nejsou zahrnuty; nelze je použít uvnitř sekce)
    • poštaadresa| nomail(když je kvůli změně verze nutné odstranit starý protokol a odeslat jej na zadanou adresu)
    • mailfirst(neposílejte smazanou verzi deníku, ale první)
    • maillast(odeslat smazanou verzi protokolu; toto je výchozí)
    • chybíok| nomissingok(neodesílejte chybové zprávy, pokud protokol chybí)
    • měsíční(změna verze probíhá měsíčně)
    • olddiradresář| noolddir(během změny verze se protokol přesune do určeného adresáře; měl by být na stejném fyzickém zařízení)
    • postrotovat(všechny další řádky až po řádek endscriptu se po procesu změny verze provedou jako příkazy shellu)
    • předtočit(všechny další řádky až po řádek endscriptu jsou provedeny před procesem změny verze)
    • točit sečíslo(kolik starých verzí ponechat; pokud 0, pak žádnou)
    • velikostbyte(změna verze nastane, pokud velikost protokolu překročí zadané číslo; můžete použít přípony "k" - kilobajty - a "M" - megabajty)
    • sdílené skripty| nosharedscripts(příkazy prerotate a postrotate spusťte pouze jednou pro všechny soubory popsané v této části)
    • tabooext[+] seznam přípon(zadání seznamu vyloučení přípon pro include; pokud je zadáno znaménko plus, pak přidání, jinak nahrazení; ve výchozím nastavení: .rpmorig, .rpmsave, .rpmnew, ", v", .swp a "~")
    • týdně(změna verze probíhá každý týden)

    Zkoumání a sledování protokolů

    Záznamy protokolu obvykle obsahují časové razítko, název hostitele, na kterém popsaný proces běží, a název procesu. Zobrazit protokoly můžete použít stránkovací program, např. méně, můžete pomocí příkazu vyhledat konkrétní položky (například zprávy jádra od určitého démona). grep:

    # less / var / log / messages # grep "ppp" / var / log / messages | tail 17. prosince 16:34:25 proxy pppd: Připojení ukončeno. 17. prosince 16:34:25 proxy pppd: Konec. 17. prosince 16:35:57 proxy pppd: LCP ukončen peerem (^ P] kV ^ @

    Počítač nemusí neustále fungovat a vypínat se, řekněme v noci. Proto jsou záznamy ve /var / log / zprávách ukládány cyklicky od spuštění počítače až po jeho vypnutí, což je patrné ze zpráv:

    17. prosince 08:32:56 syslog-server syslogd 1.4-0: restart. 17. prosince 08:32:56 syslog-server syslog: syslogd uspěl 17. prosince 08:32:56 syslog-server kernel: klogd 1.4-0, log source = / proc / kmsg spuštěno. 17. prosince 08:32:56 syslog-server syslog: spuštění klogd bylo úspěšné

    17. prosince 08:32:56 syslog-server kernel: Příkazový řádek jádra: auto BOOT_IMAGE = linux ro root = 303 BOOT_FILE = / boot / vmlinuz-2.4.2-2 Dec 17 08:32:56 syslog-server kernel: Memory: 125652k / 130560k k dispozici (1365k kód jádra, 4200k rezervováno, 92k data, 236k init, 0k highmem) 17. prosince 08:32:56 syslog-server jádro: CPU: Intel (R) Pentium (R.60z CPU) CPU stepping (R.60z)

    Dále v tomto souboru naleznete informace o diskové paměti (včetně informací o geometrii disku, struktuře oddílů a použitých přerušení), informace o periferních zařízeních, o spouštění jednotlivých služeb a služeb, informace o připojení souborových systémů a zprávy o přihlášení uživatele. stejně jako chybové zprávy.

    Někdy to může být nutné protokoly monitorovacího systému pro vyhledávání aktuálních událostí. Můžete se například pokusit zachytit vzácnou událost v okamžiku, kdy se stala. V tomto případě můžete použít příkaz ocas s opcí -F sledovat obsah syslog. Příklad:

    # tail -f / var / log / zprávy | grep syslog-server 17. prosince 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 17. prosince 16:46:09 syslog-server pppd: Script / etc-up ukončeno (pid 12552), stav = 0x0 17. prosince 16:46:49 syslog-server pptpd: CTRL: Klient 85.175.197.65 kontrolní spojení zahájeno 17. prosince 16:46:49 syslog-server pptpd: CTRLunching: Starting ppt otevření GRE) 17. prosince 16:46:49 syslog-server pppd: Plugin /usr/lib/pptpd/pptpd-logwtmp.so načten.

    Kromě souborů protokolu uvedených v /etc/syslog.conf existují také další soubory, například soubor, který ukládá informace o procesu spouštění systému před spuštěním syslogd, a také soubory, které mají binární formát a ukládají informace o posledním přihlášení uživatele, všechna úspěšná přihlášení uživatele a všechna neúspěšná přihlášení uživatele. Adresář / var / log / může také obsahovat soubory protokolu démonů, jako je webový server nebo proxy server. Formát těchto souborů je podobný protokolům syslogd.

    Nakonec bych rád zdůraznil, že tento protokol není příliš bezpečný, tk. syslog neobsahuje žádné prostředky ochrany proti falšování zpráv. Horší je, že použití UDP umožňuje útočníkům posílat zprávy jménem libovolného hostitele. Vaše místní síť by měla být chráněna před přijímáním paketů s falešnými místními adresami (ačkoli vám to nebrání v odesílání falešných zpráv zevnitř místní sítě) a před přijímáním paketů mimo port 514 / udp. Jsou známy případy přetečení disku falešnými zprávami.

    Protokol syslog a UDP neposkytují zaručené doručení (zprávy mohou být ztraceny při přetížení sítě nebo zachyceny, poškozené zprávy jsou bez varování smazány), správná sekvence doručení (zpráva o konci procesu může přijít před zprávou o jeho zahájení) , přednostní doručení.

    Zprávy nejsou považovány za důvěrné, protože jsou přenášeny v čistém textu.

    Pokud při konfiguraci generátoru zpráv zadáte špatnou adresu kolektoru nebo relé, nebudou se zobrazovat žádné chybové zprávy - zprávy budou vymazány (nebo zapsány do cizího protokolu).

    Bylo navrženo několik projektů na zlepšení protokolu syslog. Například RFC 3195 navrhuje protokolovací systém založený na TCP (syslog-conn), aby bylo zajištěno, že zprávy budou doručeny ve správném pořadí. Projekt syslog-sign navrhuje zajistit ověřování, řazení, integritu zpráv a detekci chybějících zpráv generováním speciálních zpráv obsahujících digitální podpis bloku předchozích zpráv při zachování standardního protokolu a formátu syslog a pomocí UDP.

    Pojďme si to shrnout:

    Linux má jediného démona odpovědného za protokolování událostí v místním systému a vzdálených systémech. Všechny události se shromažďují ze soketu / dev / log, portu UDP 514 a také z "pomocníka" - démona klogd, který posílá zprávy z jádra. Všechny shromážděné zprávy jsou filtrovány démonem syslogd prostřednictvím pravidel v souboru /etc/syslog.conf a podle pravidel jsou distribuovány do příslušných cílů. Soubory protokolu jsou pravidelně "ořezávány". Frekvenci určuje soubor logrotate.conf a příkaz logrotate, který spouští systémový plánovač - cron.

    To je pro dnešek vše. Doufám, že jsem vše popsal co nejsrozumitelněji. Časem článek doplním!

    S pozdravem, Mc.Sim!

    SERGEJ SUPRUNOV

    Tipy pro FreeBSD: pomocí syslog

    - Promiňte, soudruzi, mám všechny tahy zapsané!

    "Kancelář píše," řekl Ostap.

    I. Ilf, E. Petrov "12 židlí".

    Logování práce jakéhokoli systému a především serveru je jednou z nejdůležitějších součástí administrace. Pokud se v systému vyskytnou nějaké problémy, nejprve se podíváme do souborů protokolu. Odtud odvozujeme jistotu, že ten či onen program funguje podle očekávání. Při vývoji webových aplikací se soubor protokolu stává nejdůležitějším zdrojem informací pro ladění. Budou probrány funkce démona syslog, který je zodpovědný za protokolování systémových informací.

    Co je syslog

    Syslog je centralizovaná služba, která shromažďuje a zaznamenává informace protokolů z různých součástí operačního systému a uživatelských procesů. Programy třetích stran jsou obvykle schopny pracovat se svými protokolovými soubory samy o sobě, i když mnohé z nich lze nakonfigurovat tak, aby pracovaly s démonem syslogd. Mezi výhody použití syslog patří možnost řídit proces shromažďování potřebných informací pomocí jediného konfiguračního souboru, což zajišťuje konzistenci přijatých log-souborů a ve výsledku zjednodušuje jejich správu.

    Službu syslog poskytuje démon syslogd, který se automaticky spouští při startu systému. Je neustále v paměti, čeká na zprávy od jiných procesů a zpracovává je v souladu se svým nastavením.

    Každá zpráva je charakterizována úrovní a zařízením. Úroveň určuje míru důležitosti zprávy z hlediska fungování systému. Soubor syslog.h definuje následující úrovně (priority):

    Tabulka 1. Úrovně zpráv

    Úroveň

    Popis

    vzniknout, panika

    Panický stav

    upozornění

    Stav vyžadující okamžitou pozornost

    krit

    Kritická situace

    chyba, chyba

    Jiné pracovní chyby

    varovat, varovat

    Varování

    oznámení

    Zprávy, které nejsou chybami, ale měly by být poznamenány

    info

    Informační zprávy (normální provoz)

    ladit

    Informace o ladění

    Tabulka 1 uvádí úrovně zpráv v sestupném pořadí. Toto pořadí bude potřeba později v diskusi o syntaxi konfiguračního souboru.

    Označení úrovně zprávy napsané na stejném řádku (např. emerg a panic) jsou synonyma a lze použít kterýkoli z nich. Panika, chyba a varování (uvedené jako druhé v tabulce) jsou však zastaralé a je třeba se jim při úpravách konfiguračního souboru vyhnout. Místo toho použijte emerg, err a warning.

    Možné zdroje zprávy jsou uvedeny v tabulce 2:

    Tabulka 2. Zdroje zpráv

    Zdroj

    Popis

    kern

    Zprávy jádra

    auth, authpriv

    bezpečnostní

    Bezpečnostní zprávy (např. z firewallu)

    řídicí panel

    Zprávy do konzole (/ dev / konzole)

    syslog

    Syslog nativní zprávy

    cron

    Zprávy subsystému Cron

    Zprávy časové služby

    Příspěvky FTP servery

    Tisk zpráv podsystému

    pošta

    Zprávy z poštovních služeb

    zprávy

    Zprávy zpravodajské služby

    uucp

    Příspěvky UUCP

    démon

    Zprávy od jiných démonů běžících v systému

    uživatel

    Uživatel zpracovává zprávy

    místní0 - místní7

    Může být použit pro různé uživatelské potřeby (někdy také používán systémem)

    Při konfiguraci aplikace pro práci se službou syslog zkontrolujte, jaké zařízení používá. Některé programy umožňují určit zdroj sami. Například démon clamd (hlavní proces antiviru clamav) standardně používá local6, ale umožňuje zadat jiný zdroj (parametr LogFacility v konfiguračním souboru). V některých případech může být užitečné zkombinovat jeho zprávy se zprávami z poštovních služeb, přičemž jako zdroj uveďte LOG_MAIL.

    Možnosti spuštění démona

    Úplný seznam možností spouštění lze nalézt na manuálové stránce syslogd. Zde se budeme zabývat pouze několika z nich.

    Syslog je schopen zapisovat příchozí zprávy do souborů protokolu (které jsou obvykle umístěny v adresáři / var / log), odesílat je do konzole nebo připojeného uživatelského terminálu, odesílat je na vzdálený hostitel nebo je přesouvat do externího nástroje pro zpracovává se.

    Pro práci v síti používá syslog porty 514 (UDP a TCP). Syslogd, spuštěný bez dalších parametrů, bude na těchto portech naslouchat příchozím zprávám. Přepínač -s zakáže příchozí zprávy, ale zásuvky na portech 514 jsou stále vytvářeny pro odchozí připojení, takže syslogd může odesílat zprávy vzdáleným hostitelům. Zdvojnásobení klíče (-ss) také zakáže odchozí spojení.

    Ve výchozím nastavení se syslogd spouští přepínačem -s (viz /etc/defaults/rc.conf, parametr syslogd_flags), takže příchozí připojení jsou odepřena. Pokud chcete použít službu syslog vašeho serveru k obsluze více počítačů, přidejte do /etc/rc.conf následující řádek:

    syslogd_flags = ””

    Tím přepíšete hodnotu nastavenou v /etc/defaults/rc.conf, aby syslogd mohl zpracovávat příchozí připojení. Samozřejmě je v tomto případě nutné zajistit požadovanou úroveň zabezpečení s vyloučením možnosti cizích hostitelů zapisovat cokoli do vašich logů. Přepínač -a umožňuje nastavit omezení příchozích spojení (viz man syslogd). Důležitou roli hraje také správně nastavený firewall.

    Další užitečný přepínač, -l, vám umožňuje zadat další soketové soubory, kterým syslogd naslouchá kromě výchozího / var / run / log. Tento přepínač je například vyžadován, aby syslog mohl zpracovávat programy běžící v prostředí chroot. Konkrétně takto funguje název od BIND 9. Na FreeBSD 5.3 se syslogd spouští s následujícími klíči:

    # ps -vosk | grep syslog

    321?? Ss 0: 01,67 / usr / sbin / syslogd -l / var / run / log -l / var / Named / var / run / log -s

    Syntaxe konfiguračního souboru

    Protokolování se konfiguruje v souboru /etc/syslog.conf. Je samozřejmé, že jej může upravovat pouze uživatel root. Tento soubor obsahuje dva druhy řetězců – říkejme jim „filtry“ a „pravidla“.

    Řetězec filtru určuje program nebo hostitele, ze kterého se mají na zprávy použít následující pravidla. Filtr jako "! Prog" (nebo "#! Prog") znamená, že následující řádky odkazují na protokoly generované zadaným programem. Synonymum pro tento záznam je "! + Prog". Naopak řádek "! -Prog" znamená, že následující pravidla budou platit pro všechny zprávy kromě zpráv přicházejících z prog programu. Je povoleno uvést několik programů oddělených čárkami, přičemž znaménko "+" nebo "-" se vztahuje na celý seznam.

    Pokud je řetězec filtru zadán jako "+ název hostitele", bude zadaný hostitel použit jako zdroj zpráv, které budou zpracovány následnými pravidly. Stejně jako v případě programů symbol „-“ označuje, že pravidla se budou vztahovat na všechny zprávy kromě zpráv pocházejících z určeného hostitele. Můžete zadat seznam hostitelů oddělených čárkami.

    Znak "*" zadaný jako program nebo hostitel přepíše dříve nastavený filtr. To znamená, že pravidla uvedená za takovým řádkem budou platit pro všechny zprávy. Filtry s názvem hostitele nebo programem jsou na sobě nezávislé a mohou fungovat současně. Například:

    # Pravidla zde uvedená platí pro všechny zprávy

    Můj.hostitel

    # Pravidla platí pro všechny zprávy z my.host

    Logger

    # Pravidla platí pro zprávy z loggeru s my.host (filtr hostitele pokračuje)

    # Pravidla platí pro zprávy od su s my.host

    # Pravidla platí pro zprávy od su od všech hostitelů (filtr hostitelů je zrušen, filtr programu pokračuje)

    # Pravidla se použijí na všechny zprávy (zruší se také programový filtr)

    Řádky pravidel jsou následující:

    zařízení.CMPlevel cíl

    Zařízení je zdroj zprávy ("*" znamená libovolné zdroje), úroveň je úroveň zpráv, které budou zpracovány v souladu s tímto pravidlem. Servisní slovo "none", zadané místo úrovně, dává pokyn k úplnému vyloučení zpráv z tohoto zdroje.

    CMP - operace porovnání (symboly ">", "<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    Cíl určuje, kam má být tato zpráva uložena. Může to být soubor protokolu (je uvedena úplná cesta začínající „/“), adresa vzdáleného serveru (začínající symbolem „@“), uživatelské jméno (zprávy budou odesílány na terminál, na který tento uživatel je připojen). Zprávu lze také předat ke zpracování externímu programu, pro který se používá svislý symbol "|".

    Několik příkladů pravidel

    Všechny zprávy jádra budou odeslány do souboru kern.log.

    kern. * /var/log/kern.log

    Všechna chybová hlášení, stejně jako nouzová, výstražná a kritická hlášení budou umístěna do all-err.log. Všimněte si pomlčky před názvem souboru protokolu. Ve výchozím nastavení jsou zprávy ukládány do vyrovnávací paměti a zapisovány na disk, jakmile se vyrovnávací paměť zaplní. To snižuje zatížení systému souborů, ale může to způsobit ztrátu některých informací při zhroucení počítače. Pomlčka před názvem souboru způsobí, že démon syslogd okamžitě zapíše zprávy na disk.

    * .err - / var / log / all-err.log

    Zprávy o ladění z uživatelských procesů budou odesílány na terminál, ke kterému je uživatel vasya aktuálně připojen.

    user.debug vasya

    Všechny zprávy ze zpráv a e-mailových služeb budou předány na port 514 počítače syslog.host.ru.

    mail. *, novinky. * @ syslog.host.ru

    Všechny zprávy tiskové služby pod varováním budou umístěny do zadaného souboru. Jak bylo uvedeno dříve, výchozí hodnota je větší nebo rovna porovnání a! invertuje a nahradí jej slovem „méně“. Pokud potřebujete vyloučit konkrétní úroveň, měli byste použít konstrukci "! =".

    varování lpr. /var/log/printers.log

    Zprávy úrovně ladění (a pouze zprávy ladění) s úrovní zařízení 0 a úrovní 3 budou vysílány na všechny připojené terminály.

    úroveň 0, úroveň 3. = ladění *

    Zprávy Time Service, které jsou vyšší než kritické (tj. emerg a alert) a menší nebo stejné jako upozornění (upozornění, informace a ladění), budou odeslány na terminály ntpuser a root.

    ntp.> crit,<=notice ntpuser,root

    Všechny varovné zprávy kromě zpráv od poštovních služeb budou zapsány do souboru warning.log.

    *. = varování, mail.none /var/log/warn.log

    V tomto případě budou všechny zprávy s úrovní vyšší nebo rovnou crit zasílány e-mailem uživateli root.

    * .crit | mail -s kořen "kritické zprávy".

    Jak můžete vidět, formát konfiguračního souboru umožňuje, aby bylo na jednom řádku uvedeno více úrovní, zdrojů a cílů, což činí konfiguraci flexibilnější. Aby se změny projevily po úpravách, musíte do procesu syslogd poslat signál HUP:

    # kill –HUP `cat / var / run / syslog.pid`

    Je třeba poznamenat, že pokud tato nebo ta zpráva spadá pod akci několika řádků v konfiguračním souboru, bude zpracována v souladu s každým z nich. Příklad:

    mail. * / var / log / maillog

    *. = err /var/log/error.log

    V tomto případě budou zprávy mail.err chodit do maillog i error.log.

    Strategie konfiguračního souboru

    Na závěr své úvahy o konfiguračním souboru řeknu pár slov o strategiích pro jeho kompilaci. Kromě velmi oblíbeného „kdyby to šlo“ lze rozlišit dva hlavní, které budeme podmíněně nazývat „podle zdroje“ a „podle účelu“.

    • První strategií, kterou lze pozorovat u řady distribucí GNU / Linuxu, je napsat pro každý zdroj zpráv jiné pravidlo (nebo skupinu pravidel, pokud mají být zprávy různých úrovní zpracovány odlišně). Jeho výhodou je jednoduchost určení, kam se zapisují zprávy konkrétních služeb.
    • Strategií „podle cíle“ je vytvořit, pokud je to možné, pouze jeden řádek pro každého „příjemce“ zprávy, jako je soubor. Tento přístup zvolilo zejména FreeBSD. V důsledku toho můžete snadno určit, jaké informace jsou zaznamenány v konkrétním souboru protokolu, ale například cíle pro zprávy jádra musí být shromažďovány z celého konfiguračního souboru.

    Nástroj pro záznamník

    Systém obsahuje nástroj pro protokolování, který vám umožňuje odesílat zprávy službě syslog přímo z příkazového řádku. Je vhodné jej použít při testování konfiguračních pravidel a také při vývoji skriptů pro protokolování jejich práce. Příklady:

    user $ logger -p user.err "Chyba v uživatelském programu!"

    uživatel $ logger -h syslog.host.ru „Otestovat“

    První příklad odešle uživatelskou zprávu zařízení na úrovni chyb, která bude zpracována podle konfiguračního souboru. Druhý příkaz odešle zprávu vzdálenému hostiteli, zdrojová a výchozí úroveň bude nastavena na user.notice.

    Použití rotačních mechanismů

    Mechanismus protokolování diskutovaný výše neposkytuje žádný druh správy souborů protokolu. Zprávy se do nich jednoduše umístí podle pravidel popsaných v konfiguračním souboru. To znamená, že soubory protokolu budou neustále narůstat, a pokud se nic neudělá, dříve nebo později zaplní veškeré dostupné místo na odpovídajícím oddílu. Aby se tomu zabránilo, používá se rotační mechanismus.

    Například jakmile soubor debug.log překročí 100 MB, přejmenuje se na debug.log.0 a sbalí do debug.log.0.bz2. Místo toho je vytvořen nový debug.log. Poté, když velikost nového souboru dosáhne 100 MB, je debug.log.0.bz2 přejmenován na debug.log.1.bz2 a výše uvedený postup se opakuje. Systém ukládá pouze určitý počet archivních souborů, přičemž nejstarší soubory maže. Toto je rotace.

    Nástroj Newsyslog

    Na FreeBSD je rotace řešena obslužným programem newsyslog, který ve výchozím nastavení spouští na začátku každé hodiny démon cron. Dobu rotace můžete změnit úpravou souboru / etc / crontab.

    Parametry rotace uvedené ve výše uvedeném příkladu (velikost souboru, sbalení) a řada dalších se nastavují v konfiguračním souboru /etc/newsyslog.conf. Pro každý soubor, který potřebuje rotaci, obsahuje řádek obecně devíti polí: název souboru, vlastník a skupina, přístupová práva, největší číslo v názvu archivního souboru, maximální velikost souboru, doba rotace, další příznaky a cesta k PID. soubor aplikace pro odeslání signálu po otočení a číslo signálu, který má být odeslán. (Možná budete muset poslat signál procesu, například pokud proces nechává soubor protokolu otevřený po celou dobu; jinak se použitý deskriptor souboru nebude shodovat s nově vytvořeným souborem.) Některá pole lze vynechat. Zde jsou dva příklady, úplné a typické:

    / var / log / pflog kořen: kolo 600 3 100 * JB /var/run/pflog.pid 1

    Podle tohoto pravidla musí být soubor pflog přepsán, jakmile jeho velikost přesáhne 100 MB (5. pole), bez ohledu na čas ("*" v 6. poli). Archivní soubory budou mít názvy jako pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2 atd.) a X nemůže být více než tři (parametr 3 ve 4. poli). Příznak J označuje, že archivní soubor by měl být komprimován pomocí nástroje bzip2. Díky příznaku B se do archivovaných a nově vytvořených souborů nebudou přidávat servisní zprávy o rotaci, protože soubor je vnímán jako binární. Nově vytvořený soubor bude vlastnit uživatel root a skupina wheel (toto pole mohlo být vynecháno, protože se jedná o výchozího vlastníka). Oprávnění budou nastavena na rw ------- (číselná hodnota 600), což znamená, že tento soubor může číst a zapisovat pouze vlastník. Nakonec bude procesu, jehož PID je uložen v /var/run/pflog.pid, odeslán signál 1 (HUP), aby se znovu otevřel jeho soubor protokolu.

    / var / log / maillog 640 7 * @ T00 J

    Toto pravidlo určuje parametry rotace pro soubor maillog: bez ohledu na velikost (hvězdička v 5. poli) bude soubor přepsán každou noc v 00:00 (podrobný popis formátu času viz man newsyslog.conf). Archiv musí být zabalen, bude uloženo posledních 8 archivů (s čísly od 0 do 7 včetně), nově vytvořený soubor bude ve vlastnictví uživatele root (výchozí hodnota, takže pole vlastníka je vynecháno) a bude mít rw-r ----- oprávnění.

    K zobrazení zabalených souborů protokolu můžete použít nástroje zcat a bzcat (pro gzip a bzip2). Midnight Commander automaticky vyvolá příslušné nástroje.

    Po úpravě souboru newsyslog.conf není třeba nikam posílat žádné signály – konfigurace bude znovu načtena při příštím volání newsyslogu.

    Všimněte si, že obslužný program newsyslog není svázán s démonem syslogd. To znamená, že jej lze použít k otočení libovolných souborů, které to potřebují. Pokud je povoleno střídání pro protokoly, které si aplikace udržuje sama (například pro protokoly škeble nebo olihně), věnujte zvláštní pozornost specifikaci vlastníka a přístupových práv. Jejich nesprávné zadání může vést k tomu, že po otočení aplikace spuštěná jako neprivilegovaný uživatel nebude moci zapisovat do nově vytvořeného souboru.

    Shrnutí

    Systém syslog je velmi výkonný a efektivní nástroj pro zaznamenávání různých událostí vyskytujících se v systému. Výchozí nastavení jsou poměrně vyvážená a fungují dobře pro většinu systémů. Pochopení toho, jak syslog funguje, vám však umožní výrazně zlepšit kvalitu protokolování přizpůsobením protokolování tak, aby vyhovovalo vašim konkrétním potřebám.