Systémové přihlášení v Linuxu. konfigurační soubor démona syslogd Protokolování sítě

Seznam běžných UNIX/LINUX démonů, v OS Windows se nazývají služby, které lze použít v různých UNIX/LINUX modifikacích. Jména démonů UNIX/LINUX často končí písmenem d jako zkratka pro angličtinu. démon Zda proces/démon běží, můžete zkontrolovat pomocí příkazu top nebo ps aux.

Níže je uveden seznam jmen nejběžnějších démonů a jejich Stručný popis. Níže uvedený seznam démonů UNIX/LINUX není úplný/vyčerpávající a váš systém UNIX/LINUX může mít jeden, všechny nebo několik z nich přítomných nebo nepřítomných v závislosti na verzi/typu/úpravě/konfiguraci vašeho systému UNIX/LINUX a nainstalované je na něm software.

Proces/Démon Popis procesu/démona
auditovánoauditd je komponenta auditu pro systémy Linux. Udržuje protokol auditu na disku, který lze zobrazit pomocí příkazů ausearch a aureport. Příkaz auditctl umožňuje konfigurovat pravidla auditu. Navíc se při spuštění načtou pravidla obsažená v souboru /etc/audit.rules. Některé parametry samotného démona lze konfigurovat v souboru auditd.conf.
acpidacpid (ACPI event daemon) - démon pro reakci na ACPI události, například reakci na stisknutí tlačítka napájení nebo zavření víka notebooku. Správa napájení a interakce mezi Linuxem a BIOSem prostřednictvím ACPI (Advanced Configuration and Power Interface) a APM. ACPI "spánkové" režimy: S1 - vše spí, CPU v režimu minimální aktivity; S3 - "Suspend to RAM" - vše přejde do režimu spánku, CPU se vypne; S4 - "Suspend to Disk" stavový výpis se uloží na disk, systém se vypne, po zapnutí se systém obnoví z předchozího místa; S5 - softwarové vypnutí. http://acpid.sourceforge.net/
atdspustí frontu úloh na (1)
autofsFormát tabulky automatického připojení. Mapy automatického připojení mohou být soubory nebo tabulky NIS, na které odkazuje hlavní tabulka automatického připojení (viz auto.master(5)). Tabulky popisují umístění souborové systémy, které jsou automaticky připojeny k základním přípojným bodům (nastaveným v souboru auto.master). Tento dokument popisuje formát sluneční tabulky, pro jiné formáty (např. hesiod) tento dokument neplatí.

Tabulky lze upravovat za chodu - tyto změny budou zohledněny při další operaci s touto tabulkou.To však neplatí pro hlavní tabulku auto.master!

biodPracuje ve spojení se vzdáleným nfsd při řešení požadavků klientů NFS.
obchodník s certifikátyDémon certmonger monitoruje a kontroluje vypršení platnosti certifikátů a může volitelně certifikáty obnovovat pomocí CA. Dokáže řídit celý registrační proces od vygenerování klíče až po registraci a obnovu.
cgconfigTento skript spouští obslužný program cgconfigparser, který analyzuje a konfiguruje souborový systém řídicí skupiny (cgroup). Pro analýzu se používá konfigurační soubor /etc/cgconfig.conf a parametry v něm definované.
cgredDémon spravující pravidla cgroup :)
cpufreqSkript načte moduly jádra pro řízení frekvence procesoru.
cpuspeedMění frekvenci CPU pro úsporu energie. Mnoho moderních notebooků a stolních počítačů tuto technologii podporuje. Mohou jej používat uživatelé s procesory Pentium-M, Centrino, AMD PowerNow, Transmetta, Intel SpeedStep, Athlon-64, Athlon-X2, Intel Core 2. Uživatelům notebooků se doporučuje ponechat tento démon povolený. Deaktivujte tohoto démona, pokud chcete, aby CPU používal pevnou hodnotu frekvence.
crond
cupsdTiskový server. Stejně jako přístup ke vzdáleným tiskárnám, přístup k místním, přístup zvenčí k místním.
dbusMeziprocesový komunikační systém ( Širší analog CORBA a DCOP)
dbus-daemonDémon pro práci s datovou sběrnicí
dhcpdDémon pro dynamické určování konfigurace TCP/IP pro klienty.
dnsmasqDémon, který ukládá názvy DNS do mezipaměti a poskytuje server DHCP.
earlysyslogSpuštění démona syslog poskytuje protokolování.
earlyxdmSpuštění X serveru
esoundZvukový démon s podporou vzdáleného přístupu ke zvukové kartě
esdZvukový server pro správce oken Enlightenment a prostředí GNOME. ESD míchá zvukové proudy několika současně běžících programů a výsledný proud posílá na zvukovou kartu. Patří do balíčku esound.
famFAM ( Monitor změn souborů) - monitor změny souboru. Démon FAM používají desktopová prostředí jako GNOME, Xfce a KDE ke sledování a zobrazování změn provedených v systému souborů. Součástí fam balíčku. Má popis na wiki.archlinux.org.
ovládání ventilátoruOvládání rychlosti otáčení chladiče CPU. Část lm_sensors.
fbsetSkript potřebný pro fungování framebufferu. Konfiguruje jeho provoz, včetně načítání modulů jádra.
festivalDémon, který umožňuje fungování programů pro čtení textu.
ohmatanýPoskytuje síťové rozhraní pro protokol finger, pro použití s ​​příkazem finger.
první spuštěníSlužba je specifická pouze pro Fedoru. Spustí se pouze jednou po instalaci a po instalaci instalace (nastavení hesla uživatele root, přidání uživatelů atd.). Po instalaci systému lze deaktivovat.
ftpdSlužba pro přenos souborů přes FTP protokol.
funkcíJeden z inicializačních skriptů systému Arch Linux. Popisuje funkce, které přepisují hodnoty použité při načítání do úrovně běhu 3. Skript se používá pouze v případě, že uživatel používá úroveň běhu 5. Je součástí initscriptů.
gpmMyš server pro konzoli a xterm. Obsaženo ve stejnojmenném balení.
gpsdRozhraní pro komunikaci s GPS zařízením. Většina uživatelů jej může vypnout.
Haldaemon, halHAL je zkratka pro Hardware Abstraction Layer. Důležitá služba pro shromažďování informací o zařízení různé zdroje. Doporučuje se nechat ji povolenou.
StůjVypnutí a restart skriptu.
zastavit.místníSkript, jehož příkazy musí být provedeny před vypnutím nebo restartem.
zdravýNastavuje rozsah provozních teplot základní desky/procesoru a rychlosti chladiče. Je to jedna z komponent lm_sensors.
heimdal-kdcCentrum distribuce klíčů. Součástí balení heimdal.
httpdDémon webového serveru Apache.
initUnixový program, který vytváří všechny ostatní procesy.

Ve výchozím nastavení má démon init 7 úrovní provádění, z nichž každá spouští předdefinovanou sadu systémových služeb.

Úrovně běhu:
0 - Vypnutí systému
1 - Provozní režim pro jednoho uživatele
2-5 - Víceuživatelské provozní režimy systému

Více podrobností o úrovních běhu: méně /etc/inittab

inetdMonitoruje síťové požadavky. Pokud je požadavek platný, spustí se proces na pozadí, který požadavek obslouží. Některé systémy používají rozšířenou verzi - xinetd
iptablesStandardní firewall v Linuxu. Zvláště doporučeno pro přímé spojení k internetu (přes kabel, DSL, T1). Nedoporučuje se, pokud navíc používáte hardwarový firewall (Netgear, Linksys, D-Link atd.).
ip6 tabulkySlužba iptables funguje pomocí protokolu IPv6. Pokud jste zakázali podporu IPv6, měla by být tato služba zakázána. V opačném případě se doporučuje ponechat ji povolenou.
irdaIrDA je potřeba pro podporu zařízení, která fungují přes infračervené ( notebooky, PDA, mobilní telefony, kalkulačky (pozn. překladatele: kalkulačky? o_O), atd. Většina uživatelů jej může vypnout.
irexecdDémon pro infračervené záření. Dodává se s lirc-utils.
irqbalance, irq_balancerVe víceprocesorových systémech se používá k distribuci přerušení mezi procesory. Uživatelé, kteří nemají víceprocesorové počítače/notebooky, mohou tohoto démona/službu zakázat. Povolení této služby na počítači s jedním procesorem nebude mít žádný účinek. Na nových počítačích s více než jedním procesorem (Intel Core 2 Duo, AMD X2) musí být tato služba povolena.
ivmanDémon je zodpovědný za automatické připojování zařízení v systému (CD, USB disky atd.)
jackd, jack-audio-connection kitAudio server
jexecPoskytuje podporu pro spouštění a spouštění aplikací v jazyce Java - JAR. Bude k dispozici, pokud si nainstalujete Javu od Sun. Toto je volitelné a lze jej zakázat.
joystickSkript, který načte moduly jádra, aby joystick fungoval.
kadmindDémon pro určení účtů, které mají přístup k databázi Kerberos, a jejich úrovně přístupu. Je to jedna ze součástí balíčku heimdal.
kdumpkdump - zobrazí data trasování jádra. Příkaz zobrazí soubory trasování jádra vytvořené pomocí ktrace(1) ve formátu čitelném pro člověka. Standardně je zobrazen soubor ktrace.out v aktuálním adresáři.
kbdNastavení klávesnice ve virtuálním terminálu.
kdmKDM ( Správce zobrazení KDE) je jedním z programů v balíčku kdebase ( součástí KDE), který poskytuje možnost přihlášení přes grafické rozhraní.
kpasswdDémon pro změnu hesel v Kerberos. Je to jedna ze součástí balíčku heimdal.
ksysguarddKDE démon pro monitorování systému.
libvirtdDémon pro správu hostujících strojů a sítí QEMU.
libvirt-hostéSkript, který při vypínání uvede hostující operační systémy do režimu spánku a při načítání je probudí.
lircdDémon LIRC dešifruje signály přicházející z infračerveného portu. Dodává se s lirc-utils.
lircmdDémon LIRC překládá signály myši. Dodává se s lirc-utils.
lvm2-monitorDémon pro monitorování LVM (Logical Volume Management). Doporučeno, pokud používáte LVM, jinak jej ponechte deaktivovaný.
lpd“Line Printer Daemon” – protokol se používá ke správě tiskové cívky.
mdadmDémon monitoruje MD zařízení (softwarový RAID v Linuxu).
mdmonitor a mdmpdTyto dva démony se používají v úložných systémech s poli RAID (redundantní pole levných/nezávislých disků). Mdmonitor spouští, zastavuje a restartuje mdadm (monitorování a správa vícecestných zařízení), softwarovou službu pro monitorování a správu RAID. Tuto službu musíte spustit pouze v případě, že váš systém obsahuje zařízení RAID.
messagebusSlužba meziprocesové komunikace pro Linux. Kritická součást protože je připojen k D-BUS. Důrazně se doporučuje nechat ji povolenou.
microcode_ctl, microcode.ctlSlužba, která umožňuje aktualizovat firmware procesoru Intel (Pentium Pro, PII, Celeron, PIII, Xeon, Pentium 4 atd.). Aktualizace se zaznamenávají při každém stažení. Mělo by být povoleno pouze v případě, že máte procesor Intel.
mcelog, mcelogdPro sledování hardwarových problémů v 64bitových sestaveních Linuxu je vhodné použít balíček mcelog, který analyzuje stav MCE (Machine Check Exception) v CPU AMD a Intel, což může indikovat problémy s pamětí a mezipamětí CPU, chyby výměny dat mezi CPU a čipová sada základní desky.
mpdHudební přehrávač Daemon - hudební přehrávač s architekturou klient-server, která přehrává hudbu ze zadaného adresáře.
multipathdPoužívá se k monitorování zařízení Multi-Path, tedy jednotek, ke kterým lze přistupovat více než jedním řadičem nebo metodou.
mysqld, mysqlDémon databáze MySQL
nfsdProces požadavku operátora NFS pro klientské systémy. Historicky každý démon nfsd podporuje vždy jeden požadavek, takže je spuštěno několik kopií.
síťová konzoleUmožňuje exportovat konzolu na jiný počítač přes síť. Ve výchozím nastavení může být zakázáno.
netfsBěhem bootování automaticky připojí souborové systémy dostupné přes síť ( NFS, Samba a další). Většina uživatelů stolních počítačů a/nebo notebooků jej může vypnout.
síťDémon zodpovědný za vytváření a konfiguraci rozhraní místní sítě (LAN)
síťových dálkových ovladačůStejné jako předchozí, ale navíc zvyšuje bezdrátová rozhraní
nfs, nfslockSlužby poskytují standardní síťový souborový systém pro operační systémy Unix/Linux a BSD. Pokud potřebujete otevřít přístup přes NFS, nechte jej povolený, jinak jej můžete vypnout.
nginxnginx je webový server a poštovní proxy server běžící na operačních systémech podobných Unixu.
nmbdSamba se používá. Viz Samba níže.
nscdServerový démon, který ukládá do mezipaměti jména a hesla používaná službami jako NIS, NIS+, LDAP, hesiod. Lze vypnout.
nslcdmístní démon jmenné služby LDAP.
ntpdNTP démon, který spravuje synchronizaci času přes síť. xntpd je vybaven verzí 3 standardu NTP.
ntpdate
oddjobdDémon oddjobd poskytuje službu com.redhat.oddjob na sběrnici zpráv celého systému. Každé zařízení, které oddjobd poskytuje, je poskytováno jako samostatná metoda D-Bus.
openntpdServer a klient pro synchronizaci času.
openvpnPoskytuje bezpečnou metodu pro vytvoření VPN. Pro dodatečné informace viz OpenVPN. Může být zakázáno, pokud jej nepoužívá NetworkManager.
pcmciaPoskytuje podporu pro standardní rozšiřující karty pcmcia. Obvykle se používá pouze v přenosných počítačích.
pcscdPoskytuje podporu pro čtečky karet a čipové karty. Pokud nemáte čtečku karet nebo čipové karty, můžete tuto službu vypnout. Často k dispozici na přenosných počítačích.
portreserveZabraňuje přístupu ke skutečným portům pro různé služby RPC a upřednostňuje vyhrazené aplikace. Podrobnější informace naleznete v manuálové stránce portreserve. Doporučuje se nechat ji povolenou.
výpadek napájeníTento skript se spustí, když jsou detekovány zprávy od UPS
postfixProgram pro správu pošty Postfix
pppdDémon protokolu Point-to-Point
pppSkript pro práci s démonem pppd.
psacctSpravuje procesy jádra Linuxu. Zabývá se monitorováním.
purge-kernelsSkript pro automatické mazání stará jádra ( nakonfigurovaný v /etc/zypp.conf)
kvóta_nldkvótový démon zpráv netlink
drsnýSkript načte nezpracované moduly zařízení.
rdiscDémon zjišťování síťové brány, rdisc, funguje jako klient protokolu ICMP Gateway Discovery Protocol. rdisc je volán při bootování, aby získal síťové směrovací tabulky s výchozími bránami.
rdateslužba je potřebná k synchronizaci počítače s časovým serverem při bootování operační systém. Lze deaktivovat.
obnovitcondPoužívá se k obnovení kontextu a sledování zásad SELinux souvisejících se soubory. Služba není vyžadována, ale doporučuje se při použití SELinuxu.
rngdrngd - Kontrola a přenos náhodných dat z hardwarového zařízení do jaderného náhodného zařízení. Doslova se to dá přeložit jako démon, který kontroluje a přijímá náhodná data z hardwarových zařízení pro jádro náhodných zařízení - jak je to chytré :), démon generátoru náhodných čísel, v ruštině démon generování náhodných čísel.
rpcbindDémon pro správu RPC, které používají jiné služby (jako NFS nebo NIS). Funguje podobně jako portmap. Lze jej zakázat, pokud na něm nejsou závislé žádné další služby.
rpcgssd, rpcidmapd, rpcsvcgssdPoužívá se NFS v4 (Network File System). Deaktivujte, pokud nepotřebujete NFS v4. http://ru.wikipedia.org/wiki/Network_File_System
rsyslogrsyslog slouží pro pohodlný sběr a zpracování systémových logů a umístí se jako rozšířený modul syslogd pro Unixové systémy a Linux, který se zaměřuje na bezpečnost a spolehlivost a má také pokročilé multi-threading. Rsyslog nabízí širokou škálu funkcí, které naleznete po kliknutí na odkaz - Funkce RSyslog. http://www.rsyslog.com/module-Static_Docs-view-f-features.html.phtml
rsyncrsync ( Vzdálená synchronizace) je program pro operační systémy typu UNIX, který synchronizuje adresáře a soubory na několika místech při minimalizaci provozu, v případě potřeby pomocí kódování dat. rsync byl vytvořen jako náhrada za rcp a scp. Přečtěte si více...
saslauthdDémon ověřovacího serveru SASL. SASL ( Jednoduchá autentizační a bezpečnostní vrstva) poskytuje možnost autentizace v protokolech založených na vzdálených připojeních.
samba, smbdDémon serveru Samba.
poslat mailPoskytuje podporu pro místní službu IMAP nebo POP3, ponechte ji povolenou. Služba může být užitečná pro upozorňování na aktivitu různých démonů/služeb, které lze poskytovat prostřednictvím cronu nebo odesílání pošty z PHP skriptů.
snímanýDémon z lm_sensors shromažďuje informace z různých senzorů.
senzorySkript, který v případě potřeby načte potřebné moduly jádra pro práci s lm_sensors.
břehová zeďSkript pro správu firewallu shorewall.
štíhlýSprávce přihlášení pro X's.
chytrýDémon SMART monitoruje disky. Používá se k předvídání poruch a sledování problémů s disky nebo pevnými disky. Uživatelé obvykle tohoto démona nepotřebují, ale přesto se doporučuje (zejména pro servery) nechat jej povolený.
kohoK otevření společného souboru je vyžadován démon SAMBA přístup k síti do souborů na Linuxu pro Uživatelé Windows. Musí být povoleno, pokud máte v síti počítače se systémem Windows, kterým je třeba udělit přístup k souborům.
strdliceDémon, který měsíčně odesílá informace ke shromažďování statistik, které pomáhají vývojářům. Statistiky jsou dostupné všem. Uživatelé, kteří chtějí pomáhat vývojářům, musí tuto službu povolit.
snmpd, snmptrapdPoskytněte podporu SNMP ( Simple Network Management Protocol), které lze použít ke správě a konfiguraci zařízení, jako jsou síťové rozbočovače, servery, tiskárny atd. a tak dále. Lze zakázat, ale může být vyžadováno ke spuštění tiskových služeb HP ( hplip).
oliheňSquid proxy démon.
sshdPoslouchá požadavky klientů na zabezpečené prostředí. SSH umožňuje ostatním uživatelům přihlásit se přes síť z jiného počítače a spouštět na vašem počítači aplikace, které se obvykle používají pro vzdálenou správu. To může být potenciální bezpečnostní riziko. Na pracovních stanicích, které nevyžadují vzdálený přístup, je vhodné jej vypnout.
sssdSSSD ( Démon služeb zabezpečení systému) umožňuje přístup k mechanismům vzdálené autentizace. Tím se stírá hranice mezi síťovou a lokální autentizací a umožňuje použití různých mechanismů. Informace o uživatelích jsou přenášeny databází nazývanou doména a mohou být zdrojem dat pro vzdálenou autentizaci. Je povoleno více mechanismů, které umožňují více serverům implementovat různé jmenné prostory. Přijaté informace jsou poskytovány externím aplikacím pomocí standardních rozhraní NSS a PAM.

SSSD běží jako sada služeb, které jsou nezávislé na aplikaci, která je volá, takže aplikace nemusí iniciovat vlastní připojení ke vzdáleným doménám, ani nemusí vědět, který démon/služba se používá. Místní mezipaměť skupinových informací a dat identity umožňuje bez ohledu na zdroj dat ( LDAP, NIS, IPA, DB, Samba atd.) pokračovat v práci offline, což celkově zvyšuje produktivitu. SSSD může povolit více poskytovatelů stejného typu ( například LDAP).

svnservesvn serverový démon.
sysstatBalíček Sysstat obsahuje nástroje pro sledování výkonu systému a použitých zdrojů.
swapperZkopíruje místní proces do odkládacího prostoru pro opravu stránky fyzické paměti pro jádro. Také se nazývá sched.
syslogdSystémový proces pro záznam různých systémových zpráv.
syncdPravidelně se synchronizuje s systémové paměti založeno systémové soubory.
syslog-ngDémon uchovává systémové protokoly.
udev-postSystémový správce zařízení používaný udev. Ve výchozím nastavení udev podporuje velké množství pravidel, chování a oprávnění pro zařízení. Pomocí této služby můžete bezpečně spravovat pravidla. Doporučuje se nechat ji povolenou.
vhandUvolňuje stránky paměti pro použití jinými procesy. Také známý jako „démon kradení stránek“.
vsftpdvsftpd ( Very Secure FTP Daemon - Velmi bezpečný FTP démon) - FTP server podporující IPv6 a SSL.

vsftpd se standardně používá na mnoha operačních systémech podobných UNIX, slouží také oficiálním repozitářům ftp.openbsd.org, ftp.freebsd.org, ftp.debian.org, ftp.redhat.com a používá se na oficiálním FTP jádra Linuxu server.

webminSlužba správy systému přes prohlížeč ( webové rozhraní).
winbindSlužba, která vám pomůže rozlišit v síti názvy počítačů pod Ovládání Windows. Lze použít k ovládání účty Windows s linuxovými účty. Většina uživatelů tohoto démona obvykle nepotřebuje a může jej ponechat vypnutý.
wpa_supplicantSe službou je potřeba pracovat bezdrátové karty, které se používají pro připojení k přístupovým bodům ( Servery VPN nebo Radius) vyžadují šifrování WPA. Většina uživatelů ji může nechat deaktivovanou.
xfsdPoskytuje fonty X11 pro vzdálené klienty.
jamslužba pro aktualizaci RPM balíčků nainstalovaných v systému. Používá se především ve Fedora Core.
ypbindSlužba se používá pro ověřování NIS v síti. Pokud se ověřování NIS nepoužívá, můžete jej zakázat.
zvbidSlužba, která poskytuje přístup ze zařízení V4L nebo V4L2 k několika aplikacím. Tuto službu může využívat například karta pro zachycení Hauppage, v ostatních případech ji lze vypnout.

Pokud je výše uvedený seznam UNIX/Linux démonů/služeb nefunguje ve vašem systému, pak získejte pomoc o takové službě použijte man name_daemon, a pokud tam nejsou žádné informace o běžící službě, pak pište do komentářů a společně shromáždíme informace o takové službě a přidáme je do zde uvedeného seznamu démonů/služeb UNIX/Linux.

Pokud v nápovědě man name_daemon není žádný popis služby, pak démon/služba může být virus, v tomto případě vyhledejte spustitelný soubor whereis name_daemon a odešlete jej k analýze do virové laboratoře - to lze provést bez instalace antiviru přes webové rozhraní, například http://vms.drweb.com/online/, http://www.esetnod32.ru/.support/scanner/ nebo https://www.virustotal.com/.

Automatické načítání UNIX/LINUX démonů/služeb

Níže jsou uvedeny podrobné pokyny pro správu spouštění démonů/služeb v nejběžnějších modifikacích/verzích UNIX-like OS jako např CentOS Linux, Debian Linux a OS typu BSD. V jiných modifikacích/verzích OS podobných UNIXu má správa automatického načítání démonů/služeb podobný postup, i když může mít drobné nebo dokonce radikální rozdíly!

Automatické načítání démonů/služeb na CentOS Linux

CentOS má definované úrovně zatížení podle principu System V a jsou lakované v souboru /etc/inittab, čtěte méně /etc/inittab .

Adresáře pro každou úroveň zatížení jsou pojmenovány a umístěny v adresáři /etc/rc.d.

V každém z adresářů, které odpovídají konkrétní úrovni zatížení, jsou skripty, nebo spíše odkazy na ně, s pokyny pro spuštění démona/programu/služby a samotné skripty s pokyny pro spuštění démona/programu/služby jsou umístěny v adresář /etc /rc.d/init.d

Příklad skriptů, které řídí spouštění démona/programu/služby, lze zobrazit spuštěním méně /etc/rc.d/init.d/mysqld nebo méně /etc/rc.d/init.d/sshd . Skripty, které řídí spouštění démona/programu/služby, se obvykle objevují v /etc/rc.d/init.d/ a jsou propojeny s adresáři na úrovni běhu po instalaci softwaru a jejich stav je vypnuto/zapnuto pro každou úroveň běhu ovládaný obslužným programem chkconfig.

Pomocí příkazu chkconfig --list můžete zjistit, kteří démoni poběží na různých úrovních běhu. Démonovi můžete povolit automatické spouštění v kterékoli z úrovní běhu pomocí příkazu chkconfig --level 345 mysqld on a vypnout chkconfig --level 345 mysqld, chkconfig –del název_služby pro odstranění služby, chkconfig název_služby zapnuto |off pro povolení nebo zakázání služby na všech úrovních.

Pokud jde o přidávání skriptů do spuštění, pak Pro automatické stahování skripty jsou obsluhovány /etc/rc.local, v /etc/rc.local stačí přidat úplnou cestu ke skriptu, například: /root/scripts/script.sh nebo /bin/sh /root/scripts/script.sh . Pokud po instalaci softwaru není v /etc/rc.d/init.d/ žádný řídicí skript pro spuštění požadovaný program, pak je jednodušší přidat jeho inicializační/spouštěcí řádek do /etc/rc.local.

Existuje nástroj nazvaný ntsysv pro správu úrovní běhu, man ntsysv.

Automatické načítání démonů/služeb na Debian Linuxu

Adresáře pro každou úroveň zavádění v Debian Linuxu jsou také pojmenovány rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d Ale, nachází se již ne v adresáři /etc/rc.d, ale v kořenovém adresáři /etc

Existovaly skripty s instrukcemi pro spuštění démona/programu/služby, respektive symbolické odkazy na ně jsou umístěny v adresářích /etc/rc?.d kde je znak? odpovídá úrovni zatížení a Samotné skripty s pokyny pro spuštění démona/programu/služby jsou umístěny v adresáři /etc/init.d. Příklad takového skiptu, na základě kterého si můžete napsat svůj vlastní, najdete v souboru less /etc/init.d/skeleton.

Níže uvedeme vysvětlení servisních informací použitých v šabloně skriptu /etc/init.d/skeleton:

  • Poskytuje: Popisuje objekty poskytované tímto skriptem (arg1, agr2, ...) takovým způsobem, že když je skript spuštěn s argumentem start, tyto objekty jsou považovány za existující, a proto další skripty v init, které vyžadují existenci těchto objekty budou moci začít v pozdější fázi. Obvykle můžete jako objekt použít název skriptu, ale můžete také použít název služby, kterou nahrazuje. Virtuální objekty zde nejsou uvedeny. Jsou definovány mimo skripty init.d
  • Povinné – Start: Určuje objekty, které musí existovat pro spuštění skriptu. V případě potřeby můžete použít virtuální objekty, jak je popsáno níže. Pokud nejsou zadány objekty, lze skript spustit ihned po spuštění, bez nutnosti připojení lokálních souborových systémů, spouštění systémového logu atd.
  • Povinné zastavení: Určuje objekty používané službou poskytované skriptem. Objekt poskytovaný tímto skriptem musí být dokončen před dokončením zde uvedených objektů, aby nedocházelo ke konfliktům. Obvykle jsou zde označeny stejné objekty jako v Required-Start
  • Mělo by začít: Určuje objekty, které, pokud existují, by měly být spuštěny před službou poskytovanou tímto skriptem. To umožňuje slabé závislosti, které nezpůsobí selhání služby, pokud nejsou dostupné objekty. Virtuální objekty můžete používat podle potřeby, jak je popsáno níže.
  • Mělo by se zastavit: Určuje objekty, které, pokud existují, by měly být poté zastaveny této služby. Obvykle jsou zde specifikovány stejné objekty jako v Should-Start
  • Výchozí spuštění: Nastavuje úrovně běhu, na kterých by měl být skript ve výchozím nastavení spuštěn (zastaven). Pokud má být například služba spuštěna pouze na úrovních 3, 4 a 5, zadejte "Výchozí spuštění: 3 4 5" a "Výchozí zastavení: 0 1 2 6".
  • Stručný popis: Určuje krátký popis akce skriptu. Omezeno na jeden řádek.
  • Popis: Specifikuje podrobnější popis akce skriptu. Může být na více řádcích, v takovém případě musí každý řádek popisu začínat znakem # následovaným znakem tabulátoru nebo alespoň 2 mezerami. Popis končí před řádkem, který neodpovídá této podmínce.
  • X-Start-Před, X-Stop-Po: Určuje inverzní závislosti, které mají stejný význam, jako kdyby byly specifikovány v should-start a should-stop ve zde uvedených balíčcích.

Klíčová slova poskytuje, vyžaduje a měla by být důležitá pro sledování závislostí. Zbytek se nepoužívá. Úrovně běhu používá program ve výchozím nastavení k uspořádání skriptů ( například insserv), abyste měli přehled o tom, který adresář rc?.d aktualizace při prvním přidání služby a měla by odrážet účel služby. Zde jsou některé "virtuální" objekty:

  • $local_fs- Všechny místní systémy souborů jsou připojeny. Všechny skripty, které zapisují do /var/, by na tom měly záviset, pokud již nejsou závislé na $remote_fs
  • $network- síť nízké úrovně, tzn. síťové karty, může znamenat spuštění PCMCIA
  • $named- Předpokládá se, že jsou spuštěni démoni, kteří mohou poskytovat překlad názvů domén. Například DNS, NIS+ nebo LDAP
  • $portmap- Démoni poskytující službu mapování portů SunRPC/ONCRPC, jak je uvedeno v 1833 (pokud existuje)
  • $remote_fs- Všechny systémy souborů jsou připojeny. Skripty, které musí být spuštěny během vypínání systému, než je všem procesům odeslán signál ukončení, musí záviset na $remote_fs.
  • $syslog- systémový protokol funguje
  • $čas- je nastaven správný systémový čas, například ntp nebo rdate nebo RTC
  • $vše- Spustí skript jako poslední

Automatické načítání démonů v Debian Linuxu je řízeno pomocí nástroje update-rc.d, který je podrobně popsán v man update-rc.d . Nástroj update-rc.d nevytváří ani neodstraňuje nic jiného než symbolické odkazy v /etc/rc?.d na tzv. init skripty, které řídí spouštění a zastavování démona/programu/služby, které se nacházejí v adresáři /etc/init.d.

Pokud je skript pro automatické spouštění démona/služby vytvořen ručně pomocí šablony /etc/init.d/skeleton, pak jej musíte nejprve umístit do adresáře /etc/init.d a poté vytvořit symbolický odkaz na tento skript v adresáři /etc/rc?.d, kde? - číslo runlevelu ( úroveň zatížení systému). Symbolický odkaz by měl vypadat takto: S№№script_name, kde č. je číslo objednávky spuštění, pokud chcete ponechat symbolický odkaz, ale dočasně nespouštět skript, pak by měl být symbolický odkaz upraven na tento stav KNo.

Než bude možné zpracovat jakoukoli úroveň provádění, všechny skripty, které začínají písmenem ", jsou provedeny jako první. K" (tyto skripty zastavují služby) a poté se provedou všechny skripty, které začínají písmenem " S" (tyto skripty spouštějí služby). Dvoumístné číslo za písmenem „S“ nebo „K“ označuje pořadí, ve kterém budou skripty provedeny. Skripty s nižším číslem se spouštějí jako první, například: S01script_name bude spuštěn jako první a S09script_name bude spuštěn jako devátý.

K vytvoření symbolického odkazu použijte program ln -s soubor1 soubor2 , Kde klíč -s mluví o vytvoření symbolického odkazu, soubor1 ukazuje na existující soubor a soubor2 název nového odkazu, ale místo ručního vytváření symbolických odkazů můžete použít nástroj update-rc.d, který je navržen speciálně pro vytváření symbolických odkazů v /etc/rc?.d na skripty z /etc/init. d.

Syntaxe update-rc.d je taková: přidání s výchozími parametry update-rc.d defaults , odstranění a zastavení démona/služby update-rc.d -f odebrat && update-rc.d zastavit 20 2 3 4 5 . Spouštění a zastavování démonů/služeb lze řídit pomocí skriptu start|stop|restart názvu služby.

Upřímně řečeno, update-rc.d je relativně neprůhledný nástroj, Obslužný program chkconfig je pohodlnější, který není ve výchozím nastavení na Debian Linux k dispozici. Abychom ji mohli nainstalovat, musíme přidat další úložiště, je vhodné používat pouze oficiální úložiště balíčků Debian Linux, na konec seznamu vi /etc/apt/sources.list, příklad sources.list v Debian GNU/Linux 6.0.5 _Squeeze_ - oficiální i386:

# # deb cdrom:/ squeeze main deb cdrom:/ squeeze main deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates , dříve známé jako "volatile" # Během instalace nebylo vybráno síťové zrcadlo. Následující položky # jsou uvedeny jako příklady, ale měli byste je podle potřeby upravit # pro tebe zrcadlo dle výběru. # # deb http://ftp.debian.org/debian/ squeeze-updates main # deb-src http://ftp.debian.org/debian/ squeeze-updates main deb http://backports.debian.org/ debian-backports squeeze-backports main deb http://ftp.debian.org/debian/ squeeze main #deb http://repo.yandex.ru/debian squeeze main contrib #deb http://mirror.yandex.ru/ debian squeeze main contrib #deb http://mirror.yandex.ru/debian-multimedia/ squeeze main contrib

Poté aktualizujte seznam balíčků pomocí apt-get update a nainstalujte chkconfig apt-get install chkconfig a jako alternativu můžete dodatečně nainstalovat sysv-rc-conf apt-get install sysv-rc-conf . Jak používat nástroj chkconfig bylo zmíněno výše, dále viz man sysv-rc-conf a man chkconfig.

Při přidávání repozitářů Debian Linux mějte na paměti softwarové zásady, které platí pro každou z oblastí, jako je hlavní, příspěvek a nesvobodné:

  • hlavní: - Balíčky v této oblasti jsou součástí kompletní distribuce Debian Linux a žádný z balíčků v hlavní oblasti nevyžaduje ke své plné funkci software mimo tuto oblast. Každý může volně používat, sdílet, upravovat a distribuovat balíčky z hlavní oblasti.
  • přispět: - Balíčky z této oblasti mohou být volně distribuovány, ale některé jejich závislosti nemusí být zdarma.
  • nesvobodný: - obsahuje balíčky, které nelze podle DSFG distribuovat zdarma a balíčky z této oblasti mohou obsahovat chyby, které nejsou brány v úvahu při vývoji a aktualizaci Debian Linuxu.

Pro automatické spouštění dalších skriptů a programů v Debian Linuxu můžete použít starý dobrý /etc/rc.local.

Správci systému a běžní uživatelé Linuxu se často potřebují podívat do souborů protokolu, aby mohli řešit problémy. Ve skutečnosti je to první věc, kterou by měl každý správce systému udělat, když se v systému objeví nějaká chyba.

Samotný operační systém Linux a spuštěné aplikace generují různé typy zpráv, které se zaznamenávají do různých souborů protokolu. Linux používá speciální software, soubory a adresáře k ukládání souborů protokolu. Vědět, které soubory obsahují protokoly kterých programů, vám pomůže ušetřit čas a vyřešit problém rychleji.

V tomto článku se podíváme na hlavní části linuxového logovacího systému, log soubory a také nástroje, pomocí kterých si můžete linuxové logy prohlížet.

Většina souborů Linuxové protokoly jsou umístěny ve složce /var/log/. Soubory protokolu pro váš systém můžete vypsat pomocí příkazu ls:

Rw-r--r-- 1 kořenový kořen 52198 10. května 11:03 alternatives.log
drwxr-x--- 2 root root 4096 Nov 14 15:07 apache2
drwxr-xr-x 2 kořenový kořen 4096 25. dubna 12:31 apparmor
drwx------ 2 root root 4096 5. května 10:15 audit
-rw-r--r-- 1 root root 33100 10. května 10:33 boot.log

Níže se podíváme na 20 různých souborů protokolu Linux umístěných v adresáři /var/log/. Některé z těchto protokolů lze nalézt pouze na určitých distribucích, například dpkg.log lze nalézt pouze na systémech založených na Debianu.

/var/log/messages- obsahuje globální systémové logy Linuxu, včetně těch, které se zaznamenávají při startu systému. V tomto protokolu je zaznamenáno několik typů zpráv: pošta, cron, různé služby, jádro, ověřování a další.

/var/log/dmesg- obsahuje zprávy přijaté z jádra. Zaznamenává mnoho zpráv během spouštěcí fáze, zobrazuje informace o hardwarových zařízeních, která jsou inicializována během procesu spouštění. Můžete říci, že toto je další protokol systému Linux. Počet zpráv v logu je omezený a když je soubor plný, s každou novou zprávou se ty staré přepíšou. Zprávy z tohoto protokolu můžete také zobrazit pomocí příkazu dmseg.

/var/log/auth.log- obsahuje informace o autorizaci uživatele v systému, včetně uživatelských přihlášení a autentizačních mechanismů, které byly použity.

/var/log/boot.log- Obsahuje informace, které jsou protokolovány při spouštění systému.

/var/log/daemon.log- Zahrnuje zprávy od různých démonů na pozadí

/var/log/kern.log- Obsahuje také zprávy z jádra, užitečné při odstraňování chyb ve vlastních modulech zabudovaných do jádra.

/var/log/lastlog- Zobrazuje informace o poslední relaci všech uživatelů. Toto je netextový soubor a k jeho zobrazení musíte použít příkaz lastlog.

/var/log/maillog /var/log/mail.log- protokoly e-mailového serveru spuštěného v systému.

/var/log/user.log- Informace ze všech protokolů na uživatelské úrovni.

/var/log/Xorg.x.log- Protokol zpráv X serveru.

/var/log/alternatives.log- Informace o provozu programu update-alternatives. Jedná se o symbolické odkazy na výchozí příkazy nebo knihovny.

/var/log/btmp- log Linux soubor obsahuje informace o neúspěšných pokusech o přihlášení. Pro zobrazení souboru je vhodné použít příkaz last -f /var/log/btmp

/var/log/cups- Všechny zprávy týkající se tisku a tiskáren.

/var/log/anaconda.log- do tohoto souboru se ukládají všechny zprávy zaznamenané během instalace

/var/log/yum.log- Zaznamenává všechny informace o instalacích balíčků pomocí Yum.

/var/log/cron- Kdykoli démon Cron začne spouštět program, zapíše do tohoto souboru zprávu a zprávy ze samotného programu.

/var/log/secure- obsahuje informace související s autentizací a autorizací. SSHd sem například loguje vše, včetně neúspěšných pokusů o přihlášení.

/var/log/wtmp nebo /var/log/utmp - Systémové protokoly Linux , obsahovat protokol uživatelských přihlášení. Pomocí příkazu wtmp můžete zjistit, kdo a kdy je přihlášen.

/var/log/faillog- log linuxové systémy, obsahuje neúspěšné pokusy o přihlášení. K zobrazení obsahu tohoto souboru použijte příkaz faillog.

/var/log/mysqld.log- Linuxové protokolové soubory z databázového serveru MySQL.

/var/log/httpd/ nebo /var/log/apache2- log soubory webového serveru linux11 Apache. Protokoly přístupu jsou v souboru access_log a protokoly chyb jsou v error_log

/var/log/lighttpd/ - linuxové protokoly webový server lighttpd

/var/log/conman/- soubory protokolu klienta ConMan,

/var/log/mail/- tento adresář obsahuje další protokoly poštovního serveru

/var/log/prelink/- Program Prelink spojuje knihovny a spustitelné soubory pro urychlení procesu stahování. /var/log/prelink/prelink.log obsahuje informace o souborech .so, které byly upraveny programem.

/var/log/audit/- Obsahuje informace generované démonem auditd.

/var/log/setroubleshoot/ - SE Linux používá k hlášení bezpečnostních problémů démona setroubleshootd (SE Trouble Shoot Daemon). Tento protokol obsahuje zprávy z tohoto programu.

/var/log/samba/- obsahuje informace a protokoly ze souborového serveru Samba, ke kterému se připojujete sdílené složky Okna.

/var/log/sa/- Obsahuje soubory .cap shromážděné balíčkem Sysstat.

/var/log/sssd/- Používá se démonem zabezpečení systému, který spravuje vzdálený přístup do adresářů a autentizačních mechanismů.

Zobrazení protokolů v Linuxu

Chcete-li zobrazit protokoly v systému Linux, je vhodné použít několik nástrojů příkazového řádku Linuxové řetězce. Může to být kdokoli textový editor nebo speciální utilita. S největší pravděpodobností budete k prohlížení protokolů v Linuxu potřebovat práva superuživatele. Zde jsou příkazy, které se pro tyto účely nejčastěji používají:

  • zgrep
  • zmore

Nebudu zabíhat do podrobností o každém z těchto příkazů, protože většina z nich již byla podrobně popsána na našem webu. Ale uvedu pár příkladů. Prohlížení protokolů Linuxu je velmi jednoduché:

Podíváme se na log /var/log/messages s možností rolování:

méně /var/log/messages

Zobrazení protokolů Linuxu v reálném čase:

tail -f /var/log/messages

Otevřete soubor protokolu dmesg:

cat /var/log/dmesg

První řádky dmesg:

head /var/log/dmesg

Chyby vypisujeme pouze z /var/log/messages:

grep -i chyba /var/log/messages

Kromě toho můžete prohlížet protokoly v Linuxu pomocí grafických nástrojů. Systémový program Log Viewer lze použít k pohodlné prohlížení a monitorovací systém logů na notebooku popř osobní počítač s Linuxem.

Program můžete nainstalovat na jakýkoli systém s nainstalovaným X serverem. K prohlížení protokolů lze také použít jakýkoli grafický editor testů.

závěry

V adresáři /var/log naleznete všechny potřebné informace o fungování Linuxu. Z dnešního článku jste se naučili dost na to, abyste věděli, kde hledat a co hledat. Nyní vám prohlížení protokolů v Linuxu nebude dělat problémy. Pokud máte nějaké dotazy, zeptejte se v komentářích!

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 radu od zkušenějších uživatelů: „Podívejte se na protokoly.“ Rada je to dobrá, ale začátečník přece musí vědět: co jsou polena a kde je hledat! V tomto článku se vám tedy pokusím říct, co a kde sledovat.

V programátorském slangu jsou „protokoly“ pracovní protokoly, které jsou udržovány jak samotným operačním systémem, tak nezávisle mnoha programy. Slovo „žurnál“ se v tomto smyslu často používá jako synonymum slova „protokol“. Potřeba analyzovat protokol nastává ve dvou hlavních situacích: když něco v systému nefunguje tak, jak jsme očekávali (řešení problému), a když existuje podezření, že systém byl hacknut nějakým útočníkem a my potřebujeme zjistit, co se přesně stalo, jak se to stalo a co je třeba udělat pro odstranění následků invaze.

Jedním z nejznámějších případů použití souborů protokolů k detekci vniknutí útočníka je příběh dopadení slavné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ž jel Shimomura o prázdninách lyžovat v Nevadě, se někdo (už víme kdo) vloupal do jeho superbezpečného domácí počítač v Solana Beach v Kalifornii a začal kopírovat jeho soubory – stovky utajovaných souborů. Jeden postgraduální student v Supercomputing Center v San Diegu, kde Shimomura pracoval, si všiml změn v souborech systémových „logů“ a rychle si uvědomil, co se děje. To vše bylo možné díky tomu, že Shimomura na svůj počítač nainstaloval program, který automaticky kopíruje záznamy „deníku“ do záložního počítače v San Diegu. Student zavolal Shimomurovi, který spěchal domů, aby provedl inventuru ukradených věcí."

Nebudu zde vyprávět celý příběh, pro nás je důležité pouze poznamenat, že analýza provozních protokolů systému posloužila jako základ pro úspěch vyšetřování pochybení. Podrobnější popis, jak taková šetření probíhají, najdete v článku. Ale abyste mohli využít výsledky protokolování, musíte pochopit, jak se protokoly vytvářejí, kde jsou uloženy a co z nich lze extrahovat. Tento článek je věnován úvahám o všech těchto otázkách.

Jak se generují 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 vkládat volání speciálních funkcí openlog, setlogmask, syslog A closelog, která je součástí standardní knihovny jazyka 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, provádějící systémový protokol. Funkce openlog naváže spojení s démonem syslogd, funkce syslog generuje specifickou zprávu, která má být zaznamenána v protokolu, a funkci closelog zavře otevřené spojení.

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

Kategorie (zařízení) je informace o tom, do které třídy tato zpráva patří. Kategorie je kó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á hodnotaSymbolDekódová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 od poštovní systém.
3 démon Zprávy od těch systémových démonů, které na rozdíl od FTP nebo LPR nemají kategorie vyhrazené speciálně pro ně.
4 auth Vše, co souvisí s autorizací uživatele, jako je přihlášení a su (bezpečnostní/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 kopírovacího protokolu UNIX-to-UNIX. Je součástí historie UNIXu a pravděpodobně ho nikdy nebudete potřebovat (ačkoli část pošty je stále doručována prostřednictvím protokolu UUCP).
9 cron Zprávy ze systémového plánovače.
10 authpriv Stejné jako auth, ale zprávy v této kategorii se zapisují do souboru, který mohou číst jen někteří uživatelé (možná je tato kategorie vybrána, protože zprávy do ní patřící mohou obsahovat jasná uživatelská hesla, která by neměla vidět cizí osoba, a proto musí mít soubory protokolu příslušná přístupová práva).
11 ftp Pomocí této kategorie můžete nakonfigurovat svůj FTP server tak, aby zaznamenával své aktivity.
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ý název synonyma bezpečnostní, což se nedoporučuje. Navíc existuje speciální kategorie označit(který nemá žádný digitální ekvivalent), který je přiřazen k jednotlivým zprávám generovaným samotným démonem syslogd. Tato kategorie slouží k umístění speciálních značek do protokolu ve stanoveném časovém intervalu (standardně každých 20 minut), což umožňuje například s 20minutovou přesností zjistit, kdy 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 čirá 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 kategorizuje jejich zprávy 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 určeno 8 úrovní důležitosti (jsou také definovány v souboru /usr/include/sys/syslog.h), které jsou kódovány čísly od 0 do 7:

Tabulka 2

Číselná hodnotaSymbol Dekódování
0 vynořit se(starý název PANIK) Nouzový. Systém je nefunkční.
1 upozornění Úzkost! Je nutný okamžitý zásah.
2 krit Kritická 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 Zpráva obsahuje následující pole:

  • ČASOVÉ RAZÍTKO- doba generování 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í!) se píše 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!). Vezměte prosím na vědomí, že v datu není uveden rok a zóna, které je třeba vzít v úvahu při organizaci dlouhodobého ukládání souborů protokolu. 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 se předešlo záměně mezi zprávami z různých hostitelů, protože, jak bude vidět níže, k protokolování může dojít 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), označující program nebo proces, který zprávu vydal, a tělo zprávy ( OBSAH). Štítek může obsahovat latinská písmena a číslice. Typicky je štítkem jednoduchý název programu, někdy doplněný identifikátorem procesu uzavřeným v hranatých závorkách. Tělo zprávy je od štítku odděleno speciálními znaky – v Linuxu jsou to obvykle dvojtečka a mezera.

Zpracování zpráv démonem syslogd

Všechny zprávy generované jednotlivými programy pomocí funkce syslog, odesláno přes zásuvku /dev/log systémový démon syslogd, která je zodpovědná za zpracování těchto zpráv. Je třeba ří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 je zodpovědný za protokolování událostí vyskytujících se v jádře systému. Potřeba samostatného démona klogd kvůli tomu, ž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 protokolováním těchto zpráv do souboru, ale ve většině případů se použije výchozí nastavení klogd, ve kterém 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 ukazují, že v systému běží logovací démoni.

Zpracování zpráv démonem syslogd spočívá v tom, že neustále sleduje vzhled zpráv a porovnává každý příchozí záznam s pravidly, která jsou v souboru /etc/syslog.conf. Každé pravidlo je zapsáno jako souborový řádek /etc/syslog.conf, skládající se ze dvou polí. Levé pole („selektor“) určuje jednu nebo více šablon, podle kterých jsou zprávy vybírány. Vzory jsou odděleny středníky (viz ukázkový soubor níže /etc/syslog.conf). Pravé pole („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ý vzor 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 symbol * (což znamená "všechny kategorie").

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

  • jeden z názvů úrovní uvedených v tabulce 2,
  • symbol * (zaznamenat 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ň" je interpretováno jako "všechny hodnoty tuto úroveň a vyšší". 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ě zadané, pak dát před název úrovně Vykřičník("!"). Umístění těchto dvou značek současně se interpretuje jako „nezaznamenávejte zprávy určené úrovně nebo vyšší“.

V poli "selektor" není žádný rozdíl mezi velkými a malými písmeny. Můžete také použít čísla (viz /usr/include/syslog.h). Kromě kategorií uvedených v tabulce 1 můžete uvést 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ž je nalezena shoda mezi kategorií a úrovní přijaté zprávy a jedním ze vzorů 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ého potrubí - 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 v zařízení: /dev/tty1),
  • označení 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. Namísto seznamu uživatelů můžete vložit hvězdičku (*), což znamená, že zprávy jsou odesílány všem uživatelům pracujícím v tento moment v systému.

Pole „akce“ nejčastěji stále obsahuje název souboru protokolu. Kromě toho můžete před název souboru vložit znaménko mínus ("-"), což bude znamenat, že systém může soubor uložit do vyrovnávací paměti, místo aby jej po zápisu každé zprávy na disk vyprázdnil. To samozřejmě urychluje práci, zejména pokud je do protokolu zapsáno 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 se jedná 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 řádky komentářů začínající symbolem #. Více o struktuře souborů /etc/syslog.conf Několik příkladů položek pravidel v tomto souboru si můžete přečíst na manuálové stránce syslog.conf. 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 řetězců, 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.

Pokud navíc pole „selektor“ uvádí (oddělených středníkem) několik párů „category.level“, mohou následující páry přepsat ty předchozí. Příklad takového zrušení můžete vidět v seznamu souborů níže /etc/syslog.conf: Všechny zprávy, jejichž úroveň je stejná nebo vyšší než info, jsou zapsány do souboru /var/log/messages, ale zprávy z kategorií mail, authpriv a cron jsou přeskočeny (nezapsány).

Výpis 1. Soubor /etc/syslog.conf ze systému postaveného na distribuci Red Hat Linux 7.1 (komentáře obsažené v tomto souboru jsem pouze přeložil do ruštiny a pravidla jsem zvýraznil tučně).
# Vytiskněte všechny zprávy z jádra do konzole. #kern.* /dev/console# Protokolujte všechny zprávy na informační úrovni nebo vyšší, # kromě zpráv poštovního systému obsahujících # citlivé informace z ověřovacích zpráv a zpráv démona cron. *.info;mail.none;authpriv.none;cron.none /var/log/messages# Zapisujte zprávy obsahující citlivé # 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é 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řijmout všichni uživatelé systému *.emerg*# Pište zprávy ze zpravodajských služeb na úrovni kritu a vyšší do samostatného souboru. uucp,news.crit /var/log/spooler# Zprávy vydané během spouštěcí fáze jsou 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, přičemž souborem je hlavní systémový protokolový soubor v Red Hat Linuxu /var/log/messages. Nezahrnuje pouze zprávy z kategorií mail, authpriv a cron (pro které jsou přiděleny samostatné soubory). Podívejme se na tento soubor a na jeho příkladu uvidíme, co je zaznamenáno v souborech protokolu.

Soubor protokolu /var/log/messages

Samozřejmě zde není možné hovořit 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 jednotlivé řádky zpráv s velmi stručným komentářem.

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 ze zprávy syslog),
  • název hostitele (pole HOSTNAME ze zprávy syslog)
  • text zprávy (pole ŠTÍTEK A OBSAH ze zprávy syslog)

Za prvé, stojí za zmínku, že pokud váš počítač neběží 24 hodin denně, 7 dní v týdnu, ale je v noci vypnutý, pak v tomto souboru můžete najít záznamy o několika „pracovních cyklech“, 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é, zprávy nebyly zaznamenány před jejich spuštěním):

17. září 08:32:56 kos3 syslogd 1.4-0: restart. 17. září 08:32:56 kos3 syslog: spuštění syslogd bylo úspěšné 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 Ne 8. dubna 20:41:30 EDT 2001
  • - S jakými parametry jádro běželo: 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 a kapacitě procesoru paměť s náhodným přístupem: 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: 2ker CPU:1 kosa mezipaměť 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 disková paměť(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, jednotka ATAPI CD/DVD-ROM 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 0x170-0x1 17. září 08:32:56 jádro kos3: hda: 40132503 sektorů (20548 MB) s mezipamětí 1819 kiB, CHS=2498/255/63, UDMA(100) 17. září 08:32:56 Kontrola oddílu 7 jádro: jádro 7. září 08:32:56 kos3 jádro: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17. září 08:32:56 jádro kos3: Disketové jednotky: fd0 je 1,44M
  • - Informace o příslušenství: 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: 17. září 08 32:56 jádro kos3: ttyS00 na 0x03f8 (irq = 4) je 16550A 17. září 08:32:56 jádro kos3: ttyS01 na 0x02f8 (irq = 3) je 16550A 05608:30 17. září 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 Sep 17 08:32:56 jádro kos3: PCI: Nalezeno IRQ 11 pro zařízení 02:08.0
  • - Informace o spuštění jednotlivých 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: Unixové 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ělo 17. září 08:32:55 kos3 kudzu: uspělo 17. září 08:32:55 síť kos3: Nastavení parametrů sítě: podařilo se 17. září 08:32:55 síť kos3: Zvyšování rozhraní lo: úspěšné 17. září 08: 32:56 síť kos3: Aktivace rozhraní eth0: úspěšná 17. září 08:32:56 tabulka kláves kos3: Načítání rozložení klávesnice: 17. září 08:32:56 tabulka kláves kos3: Načítání systémového písma: 17. září 08:32:56 kos3 náhodné: Inicializace 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é 17. září 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: úspěšné spuštění xinetd 17. září 08:33:05 kos3 : 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: úspěšné spuštění xfs
  • - 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: 265032 k 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/32999689 souborů, 689090/863722 bloků 17 08:32:42 kos3 rc.sysinit: Kontrola souborových systémů byla úspěšná
  • - Některé chybové zprávy: 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: 4 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 kos3 login(pam_unix): relace otevřena pro uživatele kos LOGIN(uid=0) 17. září 08:33:14 kos3 -- kos: PŘIHLÁSIT SE tty1 BY kos 17. září 08:41:39 kos3 su(pam_unix): selhání ověření; logname=kos uid=500 euid=0 tty= ruser= rhost= user=root
  • - A konečně 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: Ukončuji... 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 opouští signál 15

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

    příkazy logger a tailf

    Z předchozího popisu můžeme usoudit, že vydávání všech zpráv pro systémové logy by mělo být specifikováno programátorem ve fázi tvorby programu. Není to tak úplně pravda. Uživatel má také možnost poslat zprávu démonovi syslogd. V Linuxu na to existuje příkaz záznamník, který umožň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 abyste se seznámili s možnostmi systému protokolování. Formát spuštění příkazu: logger [-isd] [-f soubor] [-p PRI] [-t TAG] [-u socket] Možnosti příkazového řádku mají následující význam:

    • -i- zahrnout do zprávy číslo procesu
    • -s- duplicitní zpráva pro stderr
    • -d- při odesílání zpráv používat režim datagramu (místo běžného streamování)
    • -f název souboru- uložit zprávu do zadaný soubor(výchozí je /var/log/messages)
    • -p zařízení.úroveň- nastavte kategorii a prioritu zprávy (výchozí: 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 několik zpráv pomocí programu záznamník a obdivovat výsledek v souboru /var/log/messages(pokud jste samozřejmě nezměnili výchozí hodnotu).

    Mimochodem, existuje velmi zajímavý způsob zobrazení zpráv zapsaných do souboru /var/log/messages 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/messages
    Poté se přepněte na jiný terminál a spusťte příkaz tam logger free_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. Skutečný, správce systému je stěží čas sledovat chování systému tímto způsobem (snad kromě nouzové situace). Proto byly vyvinuty speciální programy pro analýzu protokolů. Ale více o nich níže, ale nyní přejděme k otázce, jak organizovat sledování vzdáleného počítače (pamatujete, jak jste chytili útočníka Shimomura?).

    Síťové protokolování

    Jak bylo uvedeno, protokolovací systémové zprávy může odesílat démon syslogd ke vzdálenému hostiteli. Někdo ho tam ale přijmout musí. 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 poslouchat nejen soket /dev/log (tedy přijímá zprávy z lokálních zdrojů), ale také port 514/UDP, který zajišťuje příjem zpráv z jiných počítačů v lokální síti (a jejich následný záznam v místní soubor). To umožňuje vytvořit „logovací server“, který může být velmi pohodlný 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 hackera do jednoho z síťoví hostitelé nemohou být tímto hackerem okamžitě hlášeni jako odstraněni z protokolu.

    K organizaci takového "protokolování sítě" je však třeba vynaložit další ú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/services linka musí být přítomna na obou počítačích
    syslog 514/udp
    Pokud takový řádek v /etc/services 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 taková situace nastane, syslogd okamžitě přestane psát jakékoli zprávy, a to i do místního protokolu. Přitom, jak ukazuje tým 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 řádek " syslog 514/udp" obnovit do souboru /etc/services na klienta, pak tím alespoň Některé z „chybějících“ zpráv se stále objevují v protokolu (po restartování syslogd).

    Za druhé, při spouštění démona syslogd volba musí být zadána na serveru -r, který poskytuje možnosti vzdáleného protokolování (výchozí démon syslogdčeká na zprávy pouze z místního soketu). Jak a kde nastavit tuto možnost, bude diskutová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 aktuálně odpojen od sítě) nebo jej nebude možné najít podle názvu (služba DNS nefungovala správně) syslogd provede ještě 10 pokusů o nalezení serveru a pouze pokud poté server nebude nalezen, přestane se snažit a odešle odpovídající zprávu.

    Pokud máte ve své síti více domén, které obsluhuje jeden protokolovací server, nedivte se, že protokol na serveru bude obsahovat celá jména klientů (včetně domény). Pravda, při startu syslogd lze použít možnosti -s seznam_domén nebo -l seznam_hostitelů, které umožňují nahrazení úplných jmen hostitelů v protokolu 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

    Vzhledem k tomu, že jsme se dotkli problematiky nastavení parametrů spouštění démonů v předchozí podsekci syslogd, podívejme se na tuto problematiku podrobněji. Jak již bylo zmíněno, oba logovací démoni se spouštějí ve fázi inicializace systému, konkrétněji prostřednictvím skriptu /etc/rc.d/init.d/syslog(pro které se stejně jako pro spouštěcí skripty pro jiné služby vytvářejí symbolické odkazy v adresářích /etc/rc.d/rc?.d/). Pro nastavení parametrů spouštění však není nutné tento skript upravovat, protože od verze 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ů (je možné i více, ale k tomu je nutné balíček znovu zkompilovat). Tato volba se používá v případech, kdy nějaký jiný démon (například ftp nebo http) běží v omezeném prostředí (chrooting).
    • -d- Debugovací mód. V tomto případě démon nejde dovnitř režim na pozadí a odešle 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ý bude použit místo výchozího souboru /etc/syslog.conf.
    • -h Výchozí v sysklogd Je zakázáno přenášet zprávy přijaté přes síť na jiný počítač. 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řenášeny dále 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 zapsána s úplným názvem domény (FQDN - Full Qualified Domain Name); jména v seznamu jsou oddělena dvojtečkou.
    • -m minut Spuštěno bez této možnosti sysklogd pravidelně (každých 20 minut) zaznamenává zprávy kategorií do protokolu označit, tedy prostě časová razítka. Pomocí možnosti -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 interval na nulu: -m 0.
    • -n Neztrácejte se do pozadí; tato volba je vyžadována v případech, kdy je syslogd spuštěn a řízen procesem init.
    • -p zásuvka Určuje alternativní soket UNIX (místo výchozího naslouchajícího /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á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 bude místo plně kvalifikovaného názvu domény (FQDN) protokolován pouze název hostitele). Názvy v seznamu jsou oddělené dvojtečkou Název domény, ve které se server syslogd nachází, nemusí být v tomto seznamu uveden (její název je ve výchozím nastavení odstraněn).
    • -proti Zobrazit verzi a dokončit práci.
    • -X Zakázat určování názvu hostitele podle jeho adresy, zabrání 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 identifikačním číslem 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 se znovu spustí 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, v opačném případě vypnutí.
    • SIGUSR1 - povolí/zakáže režim ladění (funguje pouze pokud byl démon spuštěn přepínačem -d).

    Démon klogd nemá méně možností spuštění než syslogd, nebudeme je zde však uvádět a odkážeme čtenáře na příslušnou manuálovou stránku (uživatel by se neměl obtěžovat nastavováním klogd, je lepší jej ponechat ve stavu, v jakém jej vyrobili vývojáři distribuce).

    soubor dmesg a příkaz dmesg

    Jak již bylo zmíněno, soubory protokolu uvedené 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é tam jsou /etc/syslog.conf nebyly zmíněny. Podívejme se na jejich účel. Začněme souborem dmesg.

    Nejprve musíme 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 si velmi podobné, i když ne totožné (směrujte 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ý dostaneme z příkazu dmesg. Jak vyplývá z , jádro má kruhový buffer, do kterého se zapisují zprávy od kernel logovacího démona. Tyto zprávy, které jsou zapsány do této vyrovnávací paměti během procesu stahování, tvoří obsah souboru /var/log/dmesg. Zdá se, že tento soubor je generován po spuštění systému.

    Pokud se znovu podíváte na uvedený seznam souborů /etc/syslog.conf, uvidíte, že všechny zprávy 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 jsou tak k dispozici pro klidnou reflexi (pokud je proces stahování úspěšně dokončen). Po dokončení procesu zavádění 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. Proto výstup tohoto příkazu 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 dokončení procesu zavádění.

    Všechny zprávy od /var/log/dmesg najdete v souboru /var/log/messages, 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. Hostitel je zde vždy „místní“ a začátek odpočítávání času je určen posledním restartem počítače.

    soubory lastlog, wtmp a utmp

    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 podívejte se na ně stejně, jako jsme se dívali na soubor /var/log/messages nedává smysl – nic nepochopíte. 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ího software. Nejprve si ale musíme říci pár slov o účelu těchto souborů.

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

    Přihlášení k místnímu hostiteli: kos Heslo: Poslední přihlášení: St 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á přihlašovací práva, přistupuje k souboru /var/log/lastlog, odtud načte informace o předchozím úspěšném přihlášení uživatele, zobrazí je na obrazovce 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 ale dělat, naopak byste měli věnovat zvláštní pozornost obsahu této zprávy, aby vám neunikly případy, kdy se pod vaším jménem přihlásil někdo jiný.

    Na rozdíl od souboru /var/log/lastlog, který obsahuje časové záznamy poslední přihlášení pro 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. Stejné jako v souboru 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ž se však budeme bavit o těchto příkazech, řekněme, že existuje další soubor obsahující záznamy protokolování uživatelů – toto je soubor /var/run/utmp. Tento soubor obsahuje informace o tom, kteří uživatelé aktuálně pracují v systému.

    Nyní můžete mluvit o tom, jak zobrazit informace o uživatelích, kteří pracují nebo dříve pracovali v systému. Hlavním příkazem k tomu je příkaz poslední. Zobrazí všechny záznamy ze souboru /var/log/wtmp, přičemž je uvedeno uživatelské jméno, údaj o terminálu, ze kterého uživatel pracoval, čas přihlášení uživatele do systému a čas jeho odhlášení ze systému, jakož i doba trvání relace uživatele v systému. Pokud byla práce uživatele přerušena pouze z důvodu vypnutí samotného systému, je místo času odchodu uživatele slovo „dolů“ (z těchto řádků lze snadno určit čas zastavení systému). Čas restartu se zobrazuje na samostatných řádcích začínajících slovem „reboot“.

    tým lastb jako tým poslední, ale zobrazuje 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čí.

    tým lastlog formátuje a zobrazuje obsah souboru /var/log/lastlog. Zobrazí se uživatelské jméno, název terminálu, ze kterého se uživatel přihlásil, a čas posledního přihlášení. Standardně (když je příkaz zadán bez parametrů) prvky souboru /var/log/lastlog se zobrazí v pořadí ID čísla uživatele. Pokud zadáte volbu -u přihlašovací-jméno, zobrazí se pouze čas posledního přihlášení zadaného uživatele. Zadáním parametru -t days obdržíte záznamy pouze za poslední dny 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. K tomu dochází v důsledku skutečnosti, ž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 zde prostor pro práci na systému co největšímu počtu uživatelů. Proto v souboru /var/log/lastlog Mezi identifikačními čísly uživatelů pracujících v systému mohou být velké mezery. Protože při prohlížení takových intervalů program nezobrazuje informace na obrazovce a dochází k dojmu „zamrznutí“.

    Chcete-li zobrazit informace o tom, kdo aktuálně pracuje na systému, použijte příkazy w, SZO A uživatelů. tým uživatelů se používá, když chcete pouze vědět, který uživatel aktuálně 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 vytiskne informace ze souboru /var/run/utmp. Můžete jej přinutit k výstupu dat ze souboru /var/log/wtmp(nebo jakýkoli jiný soubor, pro který to dává smysl), pokud zadáte název tohoto souboru v příkazový řádek. 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í pomocí vzdálený počítač, název tohoto počítače.

    Příkaz vydává podstatně více informací 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é zatížení systému za poslední minutu, 5 a 15 minut. Poté pro každého uživatele vypíše:

  • uživatelské jméno,
  • název terminálu,
  • název vzdáleného hostitele
  • čas, který uplynul od přihlášení,
  • dobu, po kterou se tento terminál nepoužívá (doba nečinnosti),
  • celkový čas strávený všemi procesy započatými od tohoto terminálu(sloupec JCPU),
  • doba, po kterou běží poslední proces spuštěný uživatelem (graf PCPU),
  • informace o tom, jaký 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 řečeno, tým w zobrazuje informace uložené v souboru utmp. Mimochodem, manuál muž tvrdí, že běžní uživatelé musí být odepřen přístup k zápisu do souboru utmp, protože mnoho systémových programů (z nějakých nevysvětlitelných důvodů) závisí na jeho integritě. Pokud povolíte libovolnému uživateli zapisovat do souboru utmp, riskujete zmatení souborů statistiky systému a provedení změn v systémových souborech.

    Soubory protokolu jiných programů

    Kromě souborů, o kterých jsme již mluvili, 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é se provádějí v samostatné soubory. Některé z těchto programů vytvářejí své protokoly v podadresářích adresáře /var/log/, jiní ukládají protokoly na jiná místa. A struktura těchto souborů se může výrazně lišit od struktury souborů vytvořených systémem syslog. Jako příklad uvedu pár řádků z protokolu 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/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/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 systémových protokolech.

    Server Samba, kromě hlavního provozního protokolu serveru, vytváří v podadresáři /var/log/samba celá řada souborů protokolu pro různé případy, zejména samostatné soubory pro každého z uživatelů, kteří mají povoleno 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ě Výše ​​uvedené příklady ukazují, že pokud umíte trochu anglicky a rozumíte struktuře záznamů, můžete ze souborů protokolu vytěžit hodně užitečné informace. Pouze je třeba jej vytěžit z celých ložisek „odpadu“ – obrovských sekvenčních protokolových souborů, což je netriviální úkol. Proto byly vyvinuty speciální softwarové nástroje pro analýzu protokolů.

    Nástroje pro zpracování protokolů

    Pro analýzu protokolů bylo vyvinuto mnoho různých programů a skriptů. 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 verze 4.1 tohoto programu zveřejněna na webu vývojáře (a je jím Kirk Bauer).

    Hlavní myšlenkou tohoto programu je, že soubor protokolu prochází filtrem, který z protokolu vybírá všechny řádky (tj. zprávy), které splňují dané kritérium. Výsledky odesílá e-mailem určenému uživateli (ve výchozím nastavení - 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 zapsány pro čtení dat ze stdin a výstup výsledku do stdout.

    Základní použití logwatch se skládá ze zahrnutí odkazu na hlavní skript ( /etc/log.d/scripts/logwatch.pl) do adresáře /etc/cron.daily, což způsobí každodenní spouštění logwatch s výchozím nastavením. 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 také z příkazového řádku. Samozřejmě, pokud jste nezměnili parametr výstupu informací, pak by měl být výsledek jeho operace vyhledán v poštovní schránce superuživatele. Pokud chcete tyto výsledky vidět na obrazovce, musíte nastavit parametr na příkazovém řádku --tisk- vydat zprávu stdout.

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

    /etc/log.d/scripts/logwatch.pl [--detailúroveň ] [--log souborčasopis-skupina ] [--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, jejichž komentáře vám pomohou 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 odeslání zprávy poštou ji vytiskněte na stdout;
    • Uložit - místo odesílání zprávy poštou jej uložte do zadaného souboru;
    • Archivy – nejen proces aktuální verze logy, ale i staré kopie vytvořené logrotate;
    • Rozsah - zpracuje zadaný časový interval: Vše, Dnes, Včera (včerejší kalendářní den);
    • Detail - úroveň podrobností 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 několik filtrů);
    • LogFile – vše nebo název skupiny protokolů (lze zadat několik skupin).

    Více informací o skriptu logwatch najdete v .

    Článek popisuje další skript pro zpracování log souborů, 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 se standardně provádí pomocí jediného konfiguračního souboru $HOME/.swatchrc. Tento soubor obsahuje ukázkový text (ve formuláři regulární výrazy), který vzorník bude hledat v souborech protokolu. Po každém takovém příkladu je označena akce vzorník musí provést akci, pokud narazí na text, který odpovídá vzoru.

    Například chcete být varováni vždy, když dojde na váš webový server k pokusu o útok přetečením vyrovnávací paměti, když je požadován 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 obsahující slova „Název souboru je příliš dlouhý“. V tomto případě do vašeho souboru .swatchrc Musí být vložen následující pokyn:

    Watchfor /Název souboru je příliš dlouhý/ mail [e-mail chráněný], předmět=Pokus_přetečení vyrovnávací paměti

    Podrobnější popis programu zde nebudu uvádět. vzorník. Věnuje se tomu nadšený článek a samotný program najdete na webu. Chci jen upozornit a vzorník, A logwatch implementovat poměrně primitivní algoritmus pro zpracování protokolových souborů, který se scvrkává na prohledávání protokolu pro daný řetězec znaků (podpis). Mezitím, za prvé, přítomnost takové linky často neznamená vniknutí útočníka, 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í v „odloženém režimu“, protože běží 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é fungují nepřetržitě a implementují „inteligentní“ algoritmy analýzy 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 poznamenávám, že webová stránka SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) poskytuje seznam odkazů na stránky různých softwarových nástrojů pro zpracování protokolů se stručným popis 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ě chápete, že pokud je systém intenzivně používán, soubory protokolů rychle rostou. Což má za následek plýtvání místem na disku. A vyvstává problém „zkrocení“ protokolů. V Red Hat Linuxu je tento problém vyřešen 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 umožňuje zpracovávat nejen systémové logy 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řekročí stanovenou velikost (nebo po stanoveném časovém intervalu). Rotace není nic jiného než postupné kopírování předchozích verzí archivních souborů přibližně takto:

  • 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. Jména konfiguračních souborů jsou zadána na příkazovém řádku spouštění skriptu (parametry spouštění viz níže). V systému Red Hat Linux jsou ve výchozím nastavení konfigurační soubory pro logrotate soubor se používá /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 kořenové 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 následně jsou ve složených závorkách uvedeny lokální parametry, které jsou platné pouze při zpracování zadaných souborů (také jeden parametr na řádek). Názvy souborů protokolu mohou být uvedeny v uvozovkách podle pravidel 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í symbolem "#" jsou komentáře. Lokální parametry mají přednost před globálními.

    Příklad konfiguračního souboru nejprve popisuje 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, ve kterém každý balíček zapisuje lokální parametry pro své protokoly.

    V sekci globální parametry nejprve nastavíte jeden z následujících parametrů, které určují kritérium rotace souboru:

  • denně- ke změnám verzí v sérii dochází denně,
  • týdně- verze se mění každý týden,
  • měsíční- verze se mění 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" - kilobajt - a "M" - megabajt)

  • a parametr zahrnout, za kterým následuje název dalšího (dalšího) konfiguračního souboru nebo dokonce název 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 pro skript 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 mezi globálními i lokálními parametry a určuje, kolik starých verzí má být uloženo; pokud je číslo 0, pak se archivované verze protokolu nevytvoří.

    Pokud je parametr zadán komprimovat, pak jsou starší verze komprimovány pomocí gzip a pokud je uvedeno nocompress- nezmenšují se. Parametr komprimovatcmd umožňuje určit, který komprimační program bude použit (standardně gzip) a dekomprimovatcmd určuje dekompresní program (výchozí - ungzip). možnosti komprese nastavuje parametry komprimační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 rozšíření přípona určuje příponu přidanou k názvům souborů během rotace (před příponou komprese).

    Mezi klíčová slova, nacházející se v konfiguračních souborech, měli bychom si povšimnout zejména slov postrotovat A předtočit, které slouží jako otevírací závorky pro zahrnutí do konfiguračních souborů skriptu shellu. Všechny řádky konfiguračního souboru z řádku postrotovat na linku 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 na linku koncový skript jsou spuštěny před otočením souborů protokolu. Pomocí těchto skriptů můžete organizovat různé procedury pro zpracování souborů protokolu během rotace.

    Pomocí dalších parametrů konfiguračního souboru můžete předefinovat 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 ve fungování logovacího systému; odeslat archivovanou kopii protokolu určenému uživateli; nastavit adresář, do kterého se budou protokoly přesouvat při změnách verze (adresář musí být na stejném fyzickém zařízení jako /var/log) nebo nastavit seznam přípon vyloučení pro adresář zahrnout. Detailní popis Tyto vlastnosti a parametry (stejně jako ty, které nebyly zmíněny) najdete u příkazu muž logrotate.

    Jak již bylo zmíněno, další konfigurační soubory logrotate lze zadat na příkazovém řádku spuštění skriptu. Můžete zadat libovolný počet jmen konfiguračních souborů nebo adresářů. Názvy souborů a adresářů v tomto seznamu jsou odděleny jednoduše mezerami. Na pořadí, ve kterém jsou jména uvedena, záleží, protože možnosti jsou uvedeny níže konfigurační soubor, překrývají hodnoty parametrů uvedených v předchozí soubor. Pořadí souborů v konfiguračním adresáři není definováno.

    Kromě toho můžete 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,

    Akce démona syslogd jsou řízeny konfiguračním souborem /etc/syslog.conf. Toto je jednoduchý textový soubor, ve kterém jsou ignorovány prázdné řádky a řádky s # na první pozici. Formát souboru je následující:

    <селектор> <действие>.

    Například,

    mail.err /var/log/mail.errors

    Tento řádek zajistí, že všechny chyby doručování pošty budou zaznamenány do souboru /var/log/mail.errors.

    Důležité: Jako oddělovač mezi selektorem a akcí používejte pouze klávesu . Použití mezer by bylo chybou, kterou není snadné odhalit.

    Jak jste si již všimli, selektor je napsán ve složeném tvaru. V obecný pohled vypadá to jako prostředek.úroveň

    Navíc v terénu<селектор>může obsahovat jeden nebo více selektorů oddělených středníky. Selektor může obsahovat skupinu zařízení oddělených čárkami. Selektor může obsahovat znaky * a žádné, což znamená „vše“ a „nic“.

    Příklady selektoru:

    prostředky.úroveň působení

    znamená 1, znamená 2. úroveň působení

    znamená 1. úroveň 1, znamená 2. úroveň 2 akce

    *.akční úroveň

    *.úroveň;znamená.žádná akce

    V následujících tabulkách jsou uvedeny hlavní názvy funkcí syslog a úrovně závažnosti.

    Nástroj Programy, které jej používají

    kernel Systémové jádro

    uživatel Uživatelské procesy

    mail Emailový systém

    daemon Systémoví démoni

    auth Security and Authority Systems

    Tiskový systém lpr

    novinky Telekonferenční systém

    cron Démon cron

    local0-7 Osm úrovní místní zprávy

    syslog Interní systémové zprávy syslog

    ftp ftpd démon

    *Všechny výše uvedené prostředky

    Úroveň Hodnota úrovně

    mimořádné nouzové situace

    upozornit na naléhavé situace

    kritické stavy

    err Chybové stavy

    varování Varování

    upozornění Neobvyklé podmínky

    Info Informační zprávy

    ladění Informace o ladění

    Úrovně jsou uvedeny v sestupném pořadí. To znamená, že úrovně udávají minimální důležitost, kterou musí mít zpráva, aby byla přihlášena do systému syslog.

    Pole<действие>označuje, co dělat s přijatou zprávou.

    Popis akce

    filename Zapište zprávu do souboru na místním počítači

    @machinename Předá zprávu démonu syslogd na zadaném počítači

    @IP_address Totéž, pouze je zadána IP adresa stroje

    uživatel1, Zobrazí zprávu na obrazovkách zadaných uživatelů...

    uživatelN

    * Zobrazení zprávy na obrazovkách všech uživatelů

    *.emerg /dev/console

    *.err;auth.notice /dev/console

    *.err;auth,mail,user.info /var/log/messages

    mail.err /var/log/mail.log

    mail.info @192.168.0.1

    Když už jsme u systému syslog, musíme zmínit příkaz logger, který umožňuje zapisovat záznamy do systémového logu ze skriptů shellu.

    Tento příkaz je užitečný pro kontrolu změn provedených v souboru /etc/syslog.conf.

    local5.warning /var/log/local.log

    a chcete zkontrolovat, zda to funguje, zadejte příkaz

    # logger -p local5.warning "Místní test"

    Podívejte se na soubor /var/log/local.log. Pokud tam řádek "Local test" není, pak jste s největší pravděpodobností zapomněli poslat signál HUP démonu syslogd.

    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í“.

    Protokolování provozu jakéhokoli systému a zejména serveru je jednou z nejdůležitějších součástí administrace. Jsou to soubory protokolu, na které se díváme jako první, když v systému nastanou problémy. Odtud získáváme 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 mohou zpravidla pracovat se svými protokolovými soubory nezávisle, ačkoli mnoho z nich lze nakonfigurovat tak, aby pracovaly s démonem syslogd. Mezi výhody používání syslog patří možnost spravovat sběr potřebných informací pomocí jediného konfiguračního souboru, což zajišťuje konzistenci výsledných log souborů a v konečném důsledku zjednodušuje jejich správu.

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

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

    Tabulka 1. Úrovně zpráv

    Úroveň

    Popis

    vzniknout, panika

    Stav "panika"

    upozornění

    Stav vyžadující okamžitý zásah

    krit

    Kritický stav

    chyba, chyba

    Jiné provozní chyby

    varování, varování

    Varování

    oznámení

    Zprávy, které nejsou chybami, ale kterým byste měli věnovat pozornost

    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 při projednávání syntaxe konfiguračního souboru.

    Označení úrovně zpráv napsané na stejném řádku (například emerg a panika) 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áv 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říklad z brány firewall)

    řídicí panel

    Zprávy přicházející do konzole (/dev/console)

    syslog

    Nativní zprávy syslog

    cron

    Cron zprávy

    Zprávy časové služby

    Zprávy FTP servery

    Tisk zpráv podsystému

    pošta

    Zprávy poštovní služby

    zprávy

    Zprávy zpravodajské služby

    uucp

    Zprávy UUCP

    démon

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

    uživatel

    Zprávy uživatelského procesu

    místní0 – místní7

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

    Při konfiguraci aplikace pro použití služby 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í spuštění naleznete na manuálové stránce syslogd. Zde se budeme zabývat pouze několika z nich.

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

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

    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 zakázána. 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 a syslogd bude moci obsluhovat příchozí připojení. Přirozeně je v tomto případě nutné zajistit požadovanou úroveň zabezpečení a eliminovat možnost, že by ostatní hostitelé cokoliv zapisovali do vašich logů. Přepínač -a umožňuje nastavit omezení pro příchozí 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 démon syslogd naslouchá kromě výchozího /var/run/log. Tento klíč je například vyžadován, aby syslog mohl obsluhovat programy běžící v chrootovaném prostředí. Konkrétně takto funguje název počínaje BIND 9. Ve FreeBSD 5.3 se syslogd spouští pomocí následujících klíčů:

    #ps-wax | 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 typy řetězců – říkejme jim „filtry“ a „pravidla“.

    Řádek filtru určuje program nebo hostitele, ze kterého budou na zprávy z něj aplikována následující pravidla. Filtr ve tvaru „!prog“ (nebo „#!prog“) označuje, že následující řádky odkazují na protokoly, které jsou generovány zadaným programem. Synonymem pro tento záznam je „!+prog“. Řádek "!-prog" na druhé straně udává, že následná pravidla budou platit pro všechny zprávy kromě zpráv pocházejících z prog programu. Je povoleno uvést několik programů oddělených čárkami, přičemž znaménko „+“ nebo „-“ platí pro celý seznam.

    Pokud je řetězec filtru zadán jako "+název hostitele", bude zadaný hostitel použit jako zdroj zpráv, které by měly být zpracovány následnými pravidly. Stejně jako u 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 filtr, který byl nastaven dříve. To znamená, že pravidla uvedená za takovým řádkem budou platit pro všechny zprávy. Filtry s názvem hostitele nebo programu jsou na sobě nezávislé a mohou pracovat současně. Například:

    # Zde uvedená pravidla platí pro všechny zprávy

    Můj.hostitel

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

    Logger

    # Pravidla se aplikují na zprávy z loggeru z my.host (filtr hostitele zůstává v platnosti)

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

    # Pravidla platí pro zprávy od su z libovolného hostitele (filtr hostitele je zrušen, programový filtr nadále funguje)

    # Pravidla platí pro všechny zprávy (zruší se také programový filtr)

    Řádky pravidel vypadají takto:

    zařízení.CMPlevel cíl

    Zařízení je zdroj zprávy („*“ označuje jakékoli 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á pokyny k úplnému vyloučení zpráv z tohoto zdroje.

    CMP – operace porovnání (symboly „>“, „“ jsou povoleny<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня 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ý je uživatel připojeno). Zprávu lze také přenést ke zpracování do externího programu, pro který se používá symbol dopravníku „|“.

    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. Poznamenejte si pomlčku 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, když je vyrovnávací paměť plná. To snižuje zatížení souborového systému, ale může způsobit ztrátu některých informací, pokud se počítač zhroutí. 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 ladění pro uživatelské procesy budou odeslá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.*,news.* @syslog.host.ru

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

    lpr.!warning /var/log/printers.log

    Zprávy úrovně ladění (a pouze tato) 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 časové služby, 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 zprávy na úrovni varování, s výjimkou zpráv pocházejících z poštovních služeb, budou zaznamenány do souboru warning.log.

    *.=warning,mail.none /var/log/warn.log

    V tomto případě budou všechny zprávy, jejichž úroveň je větší nebo rovna crit, odeslány e-mailem uživateli root.

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

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

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

    Je třeba poznamenat, že pokud zpráva spadá do 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ě zprávy mail.err skončí v maillog i error.log.

    Strategie pro vytvoření konfiguračního souboru

    Na závěr naší recenze konfiguračního souboru řeknu pár slov o strategiích pro jeho kompilaci. Kromě velmi oblíbeného „dokud to funguje“ můžeme rozlišit dva hlavní, které budeme zhruba nazývat „podle zdroje“ a „podle účelu“.

    • První strategií, kterou lze vidět v řadě distribucí GNU/Linux, je napsat různé pravidlo pro každý zdroj zpráv (nebo skupinu pravidel, pokud by zprávy na různých úrovních měly být zpracovány odlišně). Jeho výhodou je snadné určení, kam se zprávy z konkrétních služeb zaznamenávají.
    • Strategie "podle cíle" zahrnuje vytvoření pokud možno pouze jednoho řádku pro každého "příjemce" zprávy, jako je soubor. Tento přístup následuje zejména FreeBSD. V důsledku toho můžete snadno určit, jaké informace se zapisují do konkrétního souboru protokolu, ale například cíle pro zprávy jádra musí být shromažďovány v celém konfiguračním souboru.

    Nástroj pro záznamník

    Systém obsahuje utilitu logger, 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 i ve vyvinutých skriptech pro protokolování jejich činnosti. Příklady:

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

    user$ logger -h syslog.host.ru „Otestovat“

    První příklad odešle zprávu s chybou uživatelské úrovně zařízení, která bude zpracována podle konfiguračního souboru. Druhý příkaz odešle zprávu vzdálenému hostiteli, výchozí zdroj a úroveň budou nastaveny na user.notice.

    Použití rotačních mechanismů

    Mechanismus protokolování popsaný výše neposkytuje žádnou správu 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ý prostor příslušného oddílu. Aby se tomu zabránilo, používá se rotační mechanismus.

    Jakmile například velikost souboru debug.log přesáhne 100 MB, bude přejmenován na debug.log.0 a zabalen do debug.log.0.bz2. A 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 popsaný postup se opakuje. Systém ukládá pouze určitý počet archivních souborů, přičemž ty nejstarší maže. Toto je rotace.

    utilita newsyslog

    Na systému FreeBSD je za rotaci zodpovědný nástroj newsyslog, který je standardně spouštěn na začátku každé hodiny démonem cron. Dobu rotace můžete změnit úpravou souboru /etc/crontab.

    Parametry rotace uvedené ve výše uvedeném příkladu (velikost souboru, balení), stejně jako řada dalších, jsou nastaveny v konfiguračním souboru /etc/newsyslog.conf. Pro každý soubor, který je třeba otočit, obsahuje řádek obecně devíti polí: název souboru, vlastník a skupina, přístupová práva, nejvyšší číslo v názvu archivního souboru, maximální velikost souboru, doba rotace, další příznaky a cesta k PID soubor aplikace, do které má být signál po otočení odeslán, a číslo signálu, který má být odeslán. (Vyslání signálu do procesu může být nezbytné, například pokud proces udržuje soubor protokolu otevřený po celou dobu; pokud tak neučiníte, použitý deskriptor souboru nebude odpovídat nově vytvořenému souboru.) Některá pole mohou být vynechána . Zde jsou dva příklady, úplné a „typické“:

    /var/log/pflog root:wheel 600 3 100 * JB /var/run/pflog.pid 1

    Podle tohoto pravidla by měl být soubor pflog přepsán, jakmile jeho velikost překročí 100 MB (5. pole) bez ohledu na čas (znak „*“ v 6. poli). Archivované 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 zabalen pomocí nástroje bzip2. Díky příznaku B se do archivovaných a nově vytvořených souborů nebudou přidávat zprávy služby rotace, protože soubor je vnímán jako binární. Nově vytvořený soubor bude vlastnit uživatel root a skupina wheel (toto pole může 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 bude moci čí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řepisován každou noc v 00:00 (v man newsyslog.conf je formát času popsán dostatečně podrobně). Archiv musí být zabalen, bude uloženo posledních 8 archivů (očíslovaných 0 až 7 včetně), nově vytvořený soubor bude ve vlastnictví uživatele root (výchozí hodnota, takže pole vlastníka je přeskočeno) a bude mít oprávnění rw-r -----.

    Chcete-li zobrazit zabalené soubory protokolu, můžete použít nástroje zcat a bzcat (pro gzip a bzip2). Midnight Commander automaticky volá 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.

    Je třeba poznamenat, ž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 rotace povolena pro protokoly, které aplikace spravuje samostatně (například protokoly clamd nebo squid), pak buďte obzvláště opatrní při zadávání vlastníka a přístupových práv. Jejich nesprávné zadání může vést k tomu, že po otočení nebude aplikace spuštěná jako neprivilegovaný uživatel moci zapisovat do nově vytvořeného souboru.

    Shrnutí

    Systém syslog je velmi výkonný a efektivní nástroj pro logování různých událostí, které se v systému vyskytují. 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 zaznamenávání informací protokolu přesně podle vašich potřeb.