Syslog - mrežni sistemski dnevnik. Linux log fajlovi po redu Koji ID syslog ima najveći prioritet

Demon unutra Unix imenuje program koji radi "na pozadini" , bez potrebe za kontrolom sa terminala, i dajući vam mogućnost da obavljate svoj drugi posao "u prvom planu". Daemon može biti pokrenut ili drugim procesom, na primjer, jednom od skripti za pokretanje sistema bez pristupa nijednom kontrolnom terminalu, ili od strane korisnika sa nekog terminala, ali i u ovom slučaju demon "ne hvata" terminala tokom njegovog rada. Naravno, postavlja se pitanje koji su demon programi potrebni na vašem sistemu, a koji se mogu onemogućiti.

Poreklo termina
U stvarnom (tj. ne-kompjuterskom) svijetu pojam (ili riječ) "demon" označava duha (najčešće zlog) ili "unutrašnji glas". Vrijedi napomenuti da se obje ove vrijednosti odnose i na Unix demone. Poput mitoloških demona, demoni u Unixu se kriju negdje "iza kulisa", pokušavajući ostati nevidljivi. I, poput unutrašnjeg glasa ili naše podsvijesti, oni su uvijek "na oprezu", uvijek dostupni, uvijek u stanju "manifestirati". Sama riječ "demon" predstavlja jedan od onih kompjuterskih akronima, čije je porijeklo teško utvrditi kao i odlučiti da li je u početku bilo kokoš ili jaje. Pretpostavljam ovaj izraz ("DAEMON") dolazi od riječi "Monitor diska i izvršavanja" program.

Krenuvši da proučavam problem, otišao sam kod jednog sveštenika koji koristi računar sa Ubuntu operativnim sistemom. Za svaki slučaj uzeo sam disk sa Windowsom. Nikad se ne zna... Ja sam direktna osoba, nisam tukao okolo, odmah sam dao sve informacije. Objašnjeno dugo i detaljno. Na moju veliku sreću, sve je to primio mirno, ponegde, dok sam ja pričala, čak se i nasmešio, posebno kada je pričao o razlozima odbijanja muža moje sestre od ubuntua. Otac, normalan čovek, ima već 50 godina, pričali smo još malo, odnosno ja sam pričao, da bi shvatio da je on tačno naučio šta sam rekao. Nakon toga, rekao mi je, ne sjećam se doslovno, ali nisam mogao to shvatiti na diktafonu, pa ću to opisati svojim riječima. Općenito, nema ništa loše u korištenju ovog izraza u Linuxu, glavna stvar je vjera u Boga.

Uvod u usluge

Demoni navedeni u /etc/init.d dizajnirani su da rade kao servisi ili servisi na Linuxu. Usluge su programi koji se pokreću i zaustavljaju putem init skripti koje se nalaze u direktoriju /etc/init.d. Mnoge od ovih usluga se pokreću tokom faze pokretanja sistema. /sbin/service uslužni program pruža korisnički interfejs (interakciju) sa skriptama za inicijalizaciju. I ove skripte same pružaju interfejs za upravljanje uslugama, dajući korisniku opcije za pokretanje, zaustavljanje, ponovno pokretanje, ispitivanje statusa usluge i obavljanje drugih radnji na usluzi. Na primjer, skripta za inicijalizaciju usluge httpd ima sljedeće opcije:

/sbin/service httpd Upotreba: httpd (start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest)

Možete vidjeti trenutni status svih sistemskih usluga pomoću sljedeće opcije uslužnog programa:

/sbin/service --status-all acpid (pid 2481) radi... anacron (pid 2647) radi... atd (pid 2657) radi... auditd (pid 2189) radi...

Informacije o nivou pokretanja ovih usluga, odnosno postavka o tome koji od nivoa pokretanja sistema određena usluga počinje u vrijeme pokretanja sistema, mogu se dobiti ili promijeniti pomoću uslužnog programa chkconfig. Pogledajmo, na primjer, trenutna podešavanja za syslog servis:

/sbin/chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Vidimo da se syslog servis automatski pokreće kada odete na nivoe 2, 3, 4 i 5. Da biste onemogućili pokretanje na nivoima 3 i 4 (usput rečeno, nije dobra ideja), možete koristiti sljedeća opcija komande chkconfig:

/sbin/chkconfig --nivoi 34 syslog isključen

/usr/bin/system-config-services uslužni program pruža grafičko sučelje za sistemske usluge koje vam omogućava da vidite i modificirate njihovo trenutno stanje, kao i da postavite njihovo pokretanje na različitim nivoima pokretanja

Pogledajmo kako se ovi servisi i demoni pojavljuju u izlazu naredbe ps. Evo kratkog izvoda:

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

Šta je tu zanimljivo napomenuti (osim, naravno, da sam danas ostao budan prekasno za kompjuterom)? Za svaki od demona, ID roditeljskog procesa (PPID) je 1. Ovo ukazuje da su demoni pokrenuti od strane procesa init tokom pokretanja sistema.

Ovaj rezultat se može jasnije vidjeti u izlazu tako korisne naredbe kao što je "pstree", koja prikazuje "stablo" procesa sa naznakom "roditelja". Evo malog isječka iz pstree izlaza:

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

Više o demonima na vašem sistemu

Završili smo s uvodnim informacijama. Hajde sada da pričamo o sistemskim demonima pojedinačno i da vidimo sa kojim je od njih bezbedno eksperimentisati. Ponovo napominjem da je ova napomena o sistemu koji koristi Red Hat Enterprise Linux Beta 2, u konfiguraciji radna stanica. Ovisno o specifičnostima vašeg sistema, možda ćete vidjeti više ili manje demona, uključujući i one koji ovdje nisu obuhvaćeni.

Svaki opis demona sadrži veze do web lokacija na kojima možete dobiti više informacija, ali najbolje mjesto za početak učenja o demonima je gledanje njihovih odgovarajućih man stranica. O'Reilly ima odličnu listu Linux komandi, poređanih po abecednom redu, a Wikipedia (wikipedia.org) takođe ima odjeljke o većini ovih demona.Takođe, ne zaboravite provjeriti README datoteke.

Ovo je usluga napredne konfiguracije i sučelja napajanja (ACPI). ACPI je otvoreni industrijski standard koji definiše radnje upravljanja sistemom, prvenstveno detekciju plug-and-play uređaja i upravljanje napajanjem, uključujući pokretanje sistema, gašenje i hibernaciju.

Vjerovatno ne biste trebali onemogućiti ovu uslugu osim ako to ne radite u svrhu otklanjanja grešaka ili rješavanja hardverskih problema.

Više informacija: http://www.acpi.info

Ako koristite laptop, kao što mnogi rade ovih dana, jedan od problema je taj što kada dodijelite neki posao cron demonu, niste uvijek sigurni da će vaš računar biti uključen u vrijeme kada je planirano da izvrši. Anacron (ime dolazi od "anahroni cron", nešto kao "zastarjeli cron") rješava ovaj problem provjeravanjem da li su poslovi pokrenuti u određenom vremenskom periodu. Na primjer, anacron će pokrenuti zadatak ako se nije pokrenuo u određenom broju dana.

Kada možete odustati od korištenja anakrona? Ako vaš sistem radi cijelo vrijeme.
Možete li jednostavno odbiti pokrenuti cron ako imate pokrenut anacron? Ne; za anacron, period ponovnog pokretanja posla može se podesiti samo u danima, a ne u minutima i sekundama.

Dodatne informacije:

Ovo je demon Advanced Power Management (APM) preko BIOS drajvera. APM standard i apmd demon su sada zamijenjeni ACPI i acpid. Ako vaš hardver podržava ACPI, ne morate pokretati apmd.

Ovo je demon za pokretanje poslova u određeno vrijeme. Ako ga ne koristite, možete ga isključiti.

Ovaj demon automatski montira diskove i sisteme datoteka koji su definirani u konfiguracijskoj datoteci. Korišćenje ovog demona čini rad sa prenosivim diskovima praktičnijim.

Više informacija: http://freshmeat.net/projects/autofs

Linux sistem revizije se sastoji od evidencije poziva sistema na nivou kernela i alata za evidentiranje korisničkog prostora. Daemon auditd zapisuje zabilježene poruke na disk. Auditd je podesiv, omogućavajući vam kontrolu i upravljanje informacijama koje se pohranjuju na disk.

Trebam li nastaviti da radi auditd? Informacije iz dnevnika mogu biti od velike pomoći u konfiguraciji svega što se odnosi na sigurnost sistema. Na primjer, auditd se koristi u SELinux evidentiranju događaja. Postoje i uslužni programi kao što je aureport koji vam omogućavaju da vidite evidenciju revizije. Evo primjera izvještaja koji je generirao uslužni program aureport:

sažetak izvještaja
======================

Raspon vremena u zapisnicima: 28.11.2006. 06:07:04.800 - 02.06.2007. 21:10:09.957 Odabrano vrijeme za izvještaj: 31.12.1969. 19:00:00 - 6.2.2007. 10:09.957 Broj promjena u konfiguraciji: 285 Broj promjena naloga, grupa ili uloga: 32 Broj prijava: 145 Broj neuspjelih prijava: 11 Broj korisnika: 2 Broj terminala: 22 Broj imena hosta: 11 Broj izvršnih: 27 Broj datoteka: 91 Broj AVC odbijanja: 688 Broj MAC događaja: 12 Broj neuspjelih syscall-a: 404 Broj anomalija: 0 Broj odgovora na događaje anomalije: 0 Broj kripto događaja: 0 Broj procesa ID-ovi: 14022 Broj događaja: 70694 Avahi-daemon i avahi-dnsconfd

Avahi web stranica to definira na sljedeći način: "Avahi je sistem koji pruža mogućnost otkrivanja servisa na lokalnoj mreži. To znači da nakon povezivanja vašeg računara na lokalnu mrežu možete odmah otkriti dostupne štampače, vidjeti koji su dionici dostupni na mreže, saznajte s kojim drugim korisnicima mreže možete razgovarati i tako dalje." Avahi je implementacija Zeroconf protokola. A Zeroconf je pristup koji omogućava korisnicima da kreiraju IP mreže bez posebnih konfiguracionih servisa kao što su DNS serveri.
Najčešća upotreba avahi-daemon-a je sa Rhythmbox-om, tako da možete vidjeti muzičke fajlove koji se dijele s drugima. Ako ne dijelite muziku ili fajlove sa svog računara, možete onemogućiti ovaj demon.

Više informacija: http://avahi.org, http://zeroconf.org

Bluetooth i hidd i pand demoni

Sama imena sve objašnjavaju. Pokrenite ove usluge ako želite da koristite Bluetooth uređaje. Ime stvarno pokrenutog demona je hcid (Host Controller Interface Daemon).

Ime hidd demona dolazi od "demona Bluetooth Human Interface Device Device". Pruža podršku za tastaturu, miš i kuglicu za praćenje putem Bluetooth protokola. A pand daemon podržava povezivanje vašeg računara na ethernet mrežu putem Bluetooth-a.

Više informacija: http://www.bluetooth.com.

Ovaj demon podržava Zajednički ISDN aplikacijski programski interfejs (Interfejs za programiranje aplikacija digitalne mreže integrisanih usluga). Trebalo bi da se pokrene ako se povezujete na hardverske ISDN komponente. Ova usluga počinje capiinit.

Više informacija: http://www.capi.org/pages

Ne, ovo nema nikakve veze sa kasnim emisijama o investiranju u nekretnine. Conman servis (i conmand demon) podržavaju upravljanje konzolom. Pruža podršku za više konzolnih uređaja i istovremeni rad korisnika, podršku za lokalne serijske uređaje i udaljene terminal servere (koristeći telnet protokol). Ako upravljate više servera, možda ćete morati koristiti conman.

Više informacija: http://home.gna.org/conman/
cpuspeed

Ovaj demon mijenja brzinu CPU kako bi se smanjila potrošnja energije. Ako je CPU u stanju mirovanja, možete smanjiti brzinu, čime se smanjuju troškovi energije, a da biste poboljšali performanse, morate povećati potrošnju energije. Ako radite za prijenosno računalo, ima smisla pokrenuti cpuspeed.

Više informacija: http://carlthompson.net/Software/CPUSpeed
crond

Ovaj demon je za auto start zadataka. Ovo je potrebno na svim Linux i Unix sistemima. Nemojte zaustavljati ili onemogućiti ovu uslugu.

Više informacija: http://www.unixgeeks.org/security/newbie/unix/cron-1.html , http://www.linuxhelp.net/guides/cron/

CUPS i cups-config-daemon

To je demon "Common UNIX Printing Solution". Kao što ime govori, ovo je sistem za štampanje koji vam omogućava rad sa različitim formatima datoteka i razne vrsteštampači. Ako želite da štampate, neka ovaj demon radi na vašem sistemu.

Više informacija: http://www.cups.org, http://www.easysw.com/cups/index.php

Ime ovog demona je akronim za "DHcp Client D-Bus Daemon". Free DeskTop wiki pruža sljedeću definiciju:

D-Bus je sistem sabirnice poruka, jednostavan način da aplikacije komuniciraju (ili komuniciraju) jedna s drugom. Uz međuprocesnu komunikaciju, D-Bus pomaže u koordinaciji životnog ciklusa procesa; pruža jednostavnu i robusnu implementaciju koda za pokretanje "jedne instance" aplikacije ili demona, omogućavajući pokretanje aplikacija i demona na zahtjev, kada se ukaže potreba za odgovarajućim uslugama.

Trebate li pokrenuti ovaj demon? Ako je vaš sistem umrežen (šta drugo?), posebno ako se krećete između mreža (na primjer, prelazite sa žičane mreže na bežičnu), tada bi trebali pokrenuti NetworkManager (za trenutak ćemo pogledati NetworkManager) .

Daemon dhcdbd obezbeđuje D-Bus interfejs za dhclient, ISC-ov DHCP klijent. Ovo omogućava NetworkManageru pristup i upravljanje dhclient-om.

Više informacija: http://www.freedesktop.org/wiki/Software/dbus

Ovaj demon vam daje mogućnost korištenja miša u konzolnim (tekstualnim) aplikacijama kao što su file manager Ponoćni komandant. Ovo može biti korisno ako često koristite konzolu; inače, tj. ako stalno radite kroz X Window sistem, možda vam nikada neće trebati gpmd.

Ne, to nije zli kompjuter iz 2001: Odiseja u svemiru. U ovom kontekstu, HAL je skraćenica za "Hardware Abstraction Layer" - "sloj hardverske apstrakcije". HAL daemon prikuplja (koristeći kernel i same uređaje) informacije o hardverskim uređajima i pruža ih aplikacijama na dosljedan način.

Nemojte onemogućiti ovu uslugu. Mnoge aplikacije ga koriste.

Dodatne informacije: "Konfiguracija desktopa i hardvera", David Zeuthen

Ovaj demon pruža podršku za HP Linux sistem za obradu slika i štampanje (HPLIP) koji se koristi za štampanje, skeniranje i slanje faksa na inkjet i laserski uređaji od HP-a. HPLIP je u interakciji sa CUPS-om, omogućavajući ovom potonjem pristup HP-ovim uređajima.

Dodatne informacije:

To je demon relacijske baze podataka u Javi. Ime je naslijedio od Hypersonic SQL projekta, koji se više ne održava. hsqldb se naširoko koristi u projektima otvorenog koda kao što je OpenOffice.org, kao iu demo programima jer može u potpunosti raditi u RAM-u. Zbog čega radi brzo. Trebate li pokrenuti ovu uslugu? Samo ako pokrenete neke programe koji ga koriste. Ali generalno je veoma koristan alat a ako niste upoznati s tim, vrijedi pogledati.

Više informacija: http://hsqldb.org, http://dba.openoffice.org

Apache web server. Koristi ga skoro 60% svih web stranica. Ako želite održavati web stranicu, pokrenite Apache. Ima li još nešto da se kaže?

Više informacija: http://httpd.apache.org

ip6tables i iptables

To su zaštitni zidovi ili zaštitni zidovi. Prema Wikipediji, "Firewall ili firewall (jar. firewall ili firewall od engleskog firewall) je skup hardvera i/ili softvera koji kontrolira i filtrira mrežne pakete koji prolaze kroz njega na različitim nivoima OSI modela u skladu sa određenim pravilima. glavni zadatak firewall-a je zaštita kompjuterske mreže ili pojedinačnih čvorova od neovlaštenog pristupa."

Iptables radi tako što specificira pravila filtriranja IPv4 paketa u obliku tabele kernela. Dolazni i odlazni paketi se provjeravaju u skladu sa ovim pravilima, a oni koji ne odgovaraju pravilima se blokiraju. Ip6tables radi isto za IPv6 pakete.

Koju od dvije usluge treba pokrenuti? Oba. Uvijek je. Web je opasna stvar!

Više informacija: http://www.netfilter.org , http://www.ipv6.org

IrDA (Infrared Data Association) je industrijski standard za bežičnu komunikaciju između uređaja putem infracrvene veze. Većina laptopa je opremljena infracrvenim predajnikom koji je u skladu sa IrDA standardom. Ovu uslugu trebate pokrenuti samo ako namjeravate organizirati komunikaciju sa drugim uređajima putem infracrvene veze.

Dodatne informacije:

irqbalance

Ovaj demon se bavi distribucijom hardverskih prekida između CPU-a u višeprocesorski SMP (simetrični procesor) arhitekturama u cilju poboljšanja performansi.

Na jednoprocesorskim sistemima, ovaj demon ne treba da se pokreće; njegov efekat utiče samo na višeprocesorske sisteme.

Više informacija: http://www.irqbalance.org

Ovo je veoma koristan demon. Pokreće se u vrijeme pokretanja i provjerava koji su hardverski uređaji dodani ili uklonjeni iz sistema. Ima smisla pokrenuti kudzu prilikom pokretanja, čak i ako ne planirate često dodavati ili uklanjati uređaje. Jer prije ili kasnije ćete se ipak naći u situaciji da dodate neki uređaj i očekujete da ga sistem otkrije. Osim toga, pošto kudzu radi tokom faze pokretanja, ne utiče negativno na performanse sistema.

Više informacija: http://fedora.redhat.com/projects/additional-projects/kudzu

Ovaj demon je dobio ime od Lan Information Servera. Lisa pruža funkcionalnost sličnu onoj koju pruža usluga "My Network Neighborhood" u MS-Windows-u, odnosno omogućava pristup serverima na vašoj lokalnoj mreži, uključujući CIFS (Common Internet File Systems) servere. lisa radi preko TCP/IP protokola, šaljući ICMP zahtjeve na IP adrese u rasponu koji navedete u konfiguracijskoj datoteci i čekajući koji će računari odgovoriti.

Više informacija: http://docs.kde.org/stable/en/kdenetwork/lisa , http://docs.kde.org/userguide/networking-with-windows.html .

lm_sensors

Ovaj demon prati temperature i napone na matičnoj ploči. Da bi sistem za nadzor funkcionisao potrebno je da u opremi ima odgovarajuće senzore. Pokretanje ovog demona ima smisla samo ako je obezbeđena hardverska podrška. Vjerovatno ga ne biste trebali pokretati na redovnim radnim stanicama. Prije je potreban na hi-end serverima koji obavljaju kritične funkcije.

Više informacija: http://www.lm-sensors.org , http://freshmeat.net/projects/lm_sensors

mcstrans

SELinux sistem za prevođenje konteksta Daemon. Ovaj demon pretvara informacije o sigurnosnom kontekstu u oblik čitljiv za ljude. Možete zaustaviti ovaj demon, ali u ovom slučaju ćete vidjeti da će se SELinux informacije koje daje naredba ls -Z promijeniti. Na primjer, kada je demon pokrenut, vidjet ćete:

Ls -Z -rw-r--r-- jsmith jsmith user_u:object_r:user_home_t bookmarks.html drwxr-xr-x jsmith jsmith user_u:object_r:user_home_t zdravo -r--r--r-- jsmith_user_u :user_home_t hello.c

A ako je demon zaustavljen, vidjet ćete sljedeće:

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

Imajte na umu da ako je demon zaustavljen, vrijednost sigurnosnog konteksta "s0" je prikazana. Mctrans in ovaj slučaj resetujte kontekst. Druge vrijednosti sigurnosnog konteksta se pretvaraju iz alfanumeričkih vrijednosti u njihova imena.

Više informacija: http://fedoraproject.org/wiki/SELinux/Understanding , http://danwalsh.livejournal.com

mdmonitor i mdmpd

Ova dva demona se koriste u sistemima skladištenja sa RAID nizovima (redundantni niz jeftinih/nezavisnih diskova). Mdmonitor pokreće, zaustavlja i ponovo pokreće mdadm (nadgledanje i upravljanje višestrukim uređajima), uslugu softvera za praćenje i upravljanje RAID-om. Ovu uslugu trebate pokrenuti samo ako imate RAID uređaje na vašem sistemu.

Dodatne informacije: http://www.linuxdevcenter.com/pub/a/linux/...12/05/RAID.html

sabirnica poruka

Ovo je demon sistemske sabirnice poruka D-BUS. Emituje sistemske događaje i događaje kao što su promene u redu za štampanje, ili dodani ili uklonjeni uređaji (imajte na umu da to nije isto što i kudzu, jer se takvi događaji mogu desiti u bilo kom trenutku tokom rada sistema, ne samo tokom učitavanja) .

Više informacija: http://www.freedesktop.org/software/dbus

netplugd i ifplugd

Ovi demoni konfigurišu Ethernet uređaje kada je mrežni kabl povezan i onemogućavaju te uređaje kada je kabl isključen. kada ti treba? Na primjer, na laptopima, tako da vaš mrežne veze vraća se samo za vrijeme dok je mrežni kabel povezan.

Imajte na umu da je netplugd zastario i da je sada zamijenjen ifplugd.

Više informacija: http://0pointer.de/lennart/projects/ifplugd

NetworkManager i NetworkManagerDispatcher

NetworkManager daemon automatizira prebacivanje između mrežnih veza. Ovaj demon je koristan za korisnike laptopa koji prelaze između bežične WiFi i Ethernet veze. NetworkManagerDispatcher daemon automatski pokreće skripte za izvođenje potrebnih operacija (na primjer, skripte za postavljanje specifičnih smjerova usmjeravanja paketa) kada NetworkManager promijeni stanje mreže.

Više informacija: http://www.gnome.org/projects/NetworkManager

Ovo je demon koji djeluje kao server imena domene. Trebali biste ga pokrenuti samo ako je vaš računar DNS server za vašu mrežu.

Više informacija: http://www.dns.net/dnsrd

nfsd daemon održava nfs mrežni komunikacijski protokol, koji se koristi za pružanje pristupa mrežni resursi u TCP/IP mrežama. Morate ga pokrenuti ako drugim korisnicima dajete pristup vašim sistemima datoteka koristeći nfs protokol.

Dodatne informacije:

Ovo je demon za keširanje za uslugu imena. Održava tabelu grupa i lozinki za pokretanje programa, a zatim vraća zapamćen rezultat pri sledećem zahtevu za usluge koje su inače presporo, kao što su NIS ili LDAP. Ako imate pokrenute ove usluge, trebali biste pokrenuti i nscd.

Ovo je demon koji podržava protokol mrežnog vremena. Postavlja sistemsko vrijeme i sinhronizuje ga sa vremenom postavljenim od strane internet servera koji održavaju vremenske reference. Ako je vaš sistem povezan na Internet (zar ne?), onda će ovaj demon osigurati da je sistemsko vrijeme na vašem računaru ispravno postavljeno.

Više informacija: http://www.ntp.org

Oddjobd daemon pokreće uslugu com.redhat.oddjob na sistemskoj magistrali. Svaka prilika koju pruža oddjobd pruža se kao zasebna metoda D autobus. Oddjobd pruža podršku za privilegovane operacije za neprivilegovane aplikacije.

Trebali biste pokrenuti ovaj demon samo ako pokrećete aplikacije koje ga zahtijevaju, kao što je Conga.

Više informacija: http://people.redhat.com/nalin/oddjob/oddjob.html.

Ovaj demon podržava virtuelne privatne mreže (virtuelne privatne mreže, VPN). Početna skripta za ovaj demon kaže:

OpenVPN je sigurna i vrlo fleksibilna aplikacija za tuneliranje koja koristi mogućnosti šifriranja, autentifikacije i sertifikacije OpenSSL biblioteke kako bi osigurala siguran tunel preko IP mreže preko jednog UDP porta.

Ako je vaš sistem VPN host, vjerovatno biste trebali pokrenuti OpenVPN.

Više informacija: http://openvpn.net

pcscd (PC/SC Smart Card Daemon) je demon za pcsc-lite (softver za pristup pametnoj kartici) i razvojno okruženje MuscleCard (bazirano na java). Omogućuje komunikaciju sa čitačima pametnih kartica i samim pametnim karticama.

(Pametna kartica je mala ploča u koju je ugrađen ili memorijski modul ili mikroprocesor sa memorijskim modulom. A Muscle je skraćenica za Pokret za korištenje pametnih kartica u Linux okruženju (pokret za korištenje pametnih kartica u Linux okruženje).

Više informacija: http://www.smartcardalliance.org, http://pcsclite.alioth.debian.org, http://www.linuxnet.com/musclecard/index.html

Demon portmapper upravlja vezama za daljinski poziv procedure (RPC). Konvertuje brojeve RPC programa u brojeve portova TCP/IP (ili UDP/IP) protokola. Portmapper najčešće koriste NFS i NIS servisi.

Dakle, ako vaš sistem zavisi od NIS-a ili NFS-a, nemojte onemogućiti portmap demon.

Više informacija: http://www.linux-nis.org/nis-howto/HOWTO/portmapper.html

To je agent za prijenos (transport) pošte. Ako vaš sistem nije relej e-pošte, ne morate pokrenuti ovu uslugu.

Više informacija: http://www.postfix.org

Ovaj demon (demon otkrivanja rutera) pronalazi rute na lokalnoj podmreži. Pokreće se u vrijeme pokretanja kako bi se tabele usmjeravanja popunile zadanim rutama.

Više informacija: http://www.informit.com/articles/article.asp?p=23951&rl=1

restorecond

Ovo je demon iz SELinuxa. Restorecond prati kreiranje datoteka (za datoteke navedene u /etc/selinux/restorecond.conf) i osigurava da datoteke imaju ispravan kontekst datoteke u skladu sa postavljenom politikom (politikom) i određuje zadani kontekst datoteke SELinux.

Nemojte onemogućiti ovu uslugu. To je potrebno za SELinux.

Više informacija: http://fedoraproject.org/wiki/SELinux/Understanding , http://danwalsh.livejournal.com/

Ovaj demon periodično provjerava preko kojih operacija se treba izvesti mrežni interfejs Red Hat (web interfejs Red Hat mreže) i pokreće ih. Ove operacije uključuju instalaciju, uklanjanje ili ažuriranje softvera, ponovno pokretanje sistema, instaliranje konfiguracijskih datoteka i tako dalje.

Više informacija: https://www.redhat.com/rhn/

rpcgssd, rpcidmapd i rpcsvcgssd

Demoni rpcgssd i rpcsvcgssd se koriste da obezbede sigurnost pri radu kroz RPC. Rpcidmapd pretvara korisnička imena u UID i GID brojeve.

Ako koristite NFS ili NIS, ovi demoni moraju biti pokrenuti.

Dodatne informacije:

readahead_early i readahead_later

Readahead daemon osigurava da se programi koji se koriste pri pokretanju sistema učitavaju u memoriju prije nego što se koriste, što smanjuje vrijeme pokretanja.

saslauthd

Ovo je demon servera SASL autentikacije. SASL (Simple Authentication and Security Layer) dodaje mogućnosti provjere autentičnosti protokolima zasnovanim na udaljenim vezama.

Više informacija: http://asg.web.cmu.edu/sasl

sendmail

Ovo je SMTP (Simple Mail Transfer Protocol) server. Sendmail prosljeđuje poštu s jednog sistema na drugi, odnosno on je agent za transport pošte (Mail Transport Agent). Ako koristite ove programi za e-poštu kao Thunderbird ili Evolution, ne morate pokretati sendmail.

Više informacija: http://www.sendmail.org

setroubleshoot

Ovo je SELinux demon za rješavanje problema. Setroubleshooter je jedan od sjajnih nedavnih dodataka za SELinux. Setroubleshooter pruža povratne informacije korisnika u realnom vremenu o greškama SELInux AVC (Access Vector Cache). Štaviše, ove povratne informacije su dostupne u prikladnom formatu.

Više informacija: https://hosted.fedoraproject.org/projects/setroubleshoot

Ovaj demon nadzire SMART (Tehnologija samokontrole, analize i izvještavanja) senzore koji se nalaze u mnogim tipovima diskova, kao što su SCSI-3 tvrdi diskovi. Daemon prati normalan rad takvih uređaja i vrši samotestiranje. Ako vaš hardver podržava SMART tehnologiju, morate pokrenuti ovu uslugu.

Dodatne informacije:

spamassassin

Ovaj demon koristi Apache SpamAssassin program za provjeru pošte na neželjenu poštu. Obično se pokreće zajedno sa serverom agenta za isporuku pošte (MDA). Ako koristite klijentske programe kao što su Thunderbird ili Evolution za pristup svojoj pošti, ne morate pokretati spamassassin.

Više informacija: http://spamassassin.apache.org

Ovo je demon za otvoreni ssh protokol. Ssh zamjenjuje nesigurne programe rsh i rlogin i pruža šifriranu komunikaciju između hostova na nesigurnim mrežama. Ako koristite veze sa drugim sistemima preko otvoreni internet, morate koristiti ssh i pokrenuti ovaj demon.

Više informacija: http://www.ssh.com , http://www.openssh.com

syslog je standardni sistem evidentiranja za Linux. Ne isključujte ga.

Više informacija: http://www.syslog.org

Ovaj demon je dio Samba paketa. Omogućava korisnicima Windows domena da se povežu kao Unix korisnici na Unix servere. Trebali biste pokrenuti ovaj demon ako imate posla sa mješovitom mrežom Windows i Linux/Unix računara.

Više informacija: http://www.samba.org/samba/docs/man/Samba-...on/winbind.html , http://www.samba.org

Ovo je server fontova. Ovaj demon učitava fontove u memoriju kako bi grafičke aplikacije radile brže nego da moraju učitavati fontove s tvrdog diska. Ova usluga bi trebala biti pokrenuta da poboljša performanse aplikacija na vašem sistemu.

Više informacija: http://linuxreviews.org/howtos/xfree/xfs

Ova usluga povezuje NIS klijent sa NIS domenom. "yp" u njegovom nazivu potiče od "žutih stranica", jer su NIS imenici kao telefonski imenici "žutih stranica". Ovu uslugu treba da pokrenete samo ako vaš sistem koristi NIS (Network Information Service) da omogući pristup korisničkim budžetima i imenima sistema.

Više informacija: http://www.linux-nis.org

yum-updatesd

yum-updatesd prati ažuriranja softvera i šalje obavještenja o tim ažuriranjima putem e-pošte, d-busa ili sistemskih poruka, a također može izvršiti automatsko ažuriranje ON. Poruke D-busa prima uslužni program "puplet" (ažuriranje paketa), koji obavještava korisnika da je ažuriranje dostupno i omogućava instaliranje ažuriranja.

Više informacija: http://linux.duke.edu/projects/yum, http://www.redhat.com/magazine/024oct06/features/fc62

Hvala za ZOOL za informacije navedene na web stranici http://www.centrlan.ru/node/17929

Izvor nije naveden

Svaki od početnika Linux korisnika prije ili kasnije naiđe na probleme u postavljanju i organizaciji funkcionisanja svog sistema. I svaki od početnika je gotovo sigurno čuo savjet od iskusnijih korisnika: "Pogledajte dnevnike." Savjet je dobar, ali početnik ipak mora znati: šta su trupci i gdje ih tražiti! Zato ću vam u ovom članku pokušati reći šta i gdje gledati.

U programerskom slengu, "logovi" se nazivaju protokoli rada koje održava i sam operativni sistem i nezavisno od strane mnogih programa. Riječ "časopis" se često koristi kao sinonim za riječ "protokol" u ovom smislu. Dvije su glavne situacije u kojima se javlja potreba za analizom protokola: kada nešto u sistemu ne radi kako smo očekivali (rješavanje problema), i kada postoji sumnja da je sistem hakovao neki napadač i moramo saznajte šta se tačno dogodilo kako je to učinjeno i šta je potrebno učiniti da se otklone posljedice invazije.

Jedan od najpoznatijih slučajeva korištenja log fajlova za otkrivanje uljeza je priča o hvatanju poznatog hakera Kevina Mitnicka od strane stručnjaka za kompjutersku sigurnost Tsuomo Shimomura. Evo jednog paragrafa iz članka koji opisuje kako se to dogodilo.

"Na Božić, kada je Shimomura otišao na skijanje u Nevadu na odmor, neko (već znamo ko) je provalio u njegov super-bezbedni kućni računar u Solana Beachu u Kaliforniji i počeo da kopira njegove fajlove - stotine poverljivih fajlova. Jedan diplomirani student iz Supercomputing Center u San Diegu, gde je Shimomura radio, primetio je promene u sistemskim "log" (log) fajlovima i brzo shvatio šta se dešava. Sve je to bilo moguće zahvaljujući činjenici da je Shimomura instalirao program na svom računaru koji je automatski kopirao "log" zapisi na rezervni kompjuter u San Dijegu. Student je nazvao Shimomuru, koji je požurio kući da izvrši inventar ukradene robe."

Ovdje neću iznositi cijelu priču, važno nam je samo napomenuti da je analiza protokola rada sistema poslužila kao osnova za uspješnost sprovedene istrage nedoličnog ponašanja. Detaljniji opis kako se takve istrage provode možete pronaći u članku. Ali da bi se mogli koristiti rezultati evidentiranja, mora se razumjeti kako se kreiraju protokoli, gdje se pohranjuju i šta se iz njih može izvući. Ovaj članak je posvećen razmatranju svih ovih pitanja.

Kako se generiraju poruke za protokol

Moramo početi s činjenicom da prilikom kreiranja programa u jeziku C, programeri imaju priliku, ako je potrebno, ubaciti poziv posebnim funkcijama openlog, setlogmask, syslog i closelog, uključen u standardnu ​​biblioteku C. Ove funkcije se koriste za slanje poruka o određenim događajima tokom izvršavanja programa posebnom sistemskom demonu syslogd, koji vodi sistemski protokol. Funkcija open log uspostavlja vezu sa demonom syslogd, funkcija syslog generira specifičnu poruku za pisanje u protokol i funkciju closelog zatvara otvorenu vezu.

Poruke koje generira funkcija syslog, sastoji se od više polja odvojenih razmacima. Svaka poruka počinje poljem PRI, koji u kodiranom obliku sadrži informacije o kategoriji poruke (objekat) i nivou ozbiljnosti (nivo ozbiljnosti) ili prioritetu (prioritet) poruke.

Kategorija (objekat) je informacija o tome kojoj klasi pripada data poruka. Kategorija je kodirana kao broj od 0 do 23. Postoje sljedeće kategorije (definirane su u datoteci /usr/include/sys/syslog.h):

Tabela 1.

Numerička vrijednostSimbolDešifrovanje
0 kern Kernel poruke
1 korisnik Dizajniran za razne poruke iz korisničkih programa (poruke iz korisničkih programa)
2 mail Poruke iz mail sistema.
3 daemon Poruke onih sistemskih demona koji, za razliku od FTP-a ili LPR-a, nemaju kategorije posebno dodijeljene za njih.
4 auth Sve što se odnosi na autorizaciju korisnika, kao što je prijava i su (sigurnost/dozvole)
5 syslog Sistem za evidentiranje može sam zabilježiti poruke.
6 lpr Poruke iz sistema za štampanje.
7 vijesti Poruke sa servera vesti. (Netnews, USENET)
8 uucp Poruke iz UNIX-to-UNIX Copy Protocol. Ovo je dio istorije UNIX-a i najvjerovatnije vam nikada neće trebati (iako se određeni dio poruka pošte još uvijek isporučuje putem UUCP-a).
9 cron Poruke iz sistemskog planera.
10 authpriv Isto kao i auth, ali poruke u ovoj kategoriji se upisuju u datoteku koju samo neki korisnici mogu čitati (možda je ova kategorija istaknuta jer poruke koje joj pripadaju mogu sadržavati javne lozinke korisnika koje ne bi smjele vidjeti neovlaštene osobe, a samim tim i log datoteke moraju imati odgovarajuće dozvole).
11 ftp Pomoću ove kategorije možete konfigurirati svoj FTP server da snima svoje radnje.
od 12 do 15 časova - Rezervisano za sistemsku upotrebu.
od 16 do 23hlocal0 - lokalni7 Rezervirane kategorije za korištenje od strane administratora sistema. Kategorija local7 se obično koristi za poruke generirane tokom pokretanja sistema.

Kategorija auth ima zastarjeli naziv-sinonim sigurnost, što se ne preporučuje. Osim toga, postoji posebna kategorija mark(nema digitalni ekvivalent), koji je dodijeljen pojedinačnim porukama koje generiše sam demon syslogd. Ova kategorija se koristi za stavljanje posebnih oznaka u dnevnik u određenom vremenskom intervalu (podrazumevano svakih 20 minuta), što omogućava, na primer, da se sa 20-minutnom tačnošću sazna kada se računar zamrzne.

Imajte na umu da kategorija nema nikakve veze sa imenom programa koji šalje poruke demonu. syslogd. Kako kažu, svaka slučajnost je čista slučajnost. Štaviše, neki programi mogu generirati poruke različitih kategorija. Na primjer, demon telnetd u slučaju neuspješnih pokušaja evidentiranja generira poruke kategorije authpriv, au drugim slučajevima kategorizira njihove objave kao daemon.

Drugi parametar na osnovu kojeg se formira vrijednost polja PRI, je nivo ili prioritet poruke (prioritet), odnosno informacija o stepenu važnosti poruke. Podrazumevano je postavljeno 8 nivoa važnosti (takođe su definisani u datoteci /usr/include/sys/syslog.h), koji su kodirani brojevima od 0 do 7:

Tabela 2.

Numerička vrijednostSimbol Dešifrovanje
0 emerge(stari naziv za PANIKA) Hitna. Sistem je neoperabilan.
1 uzbuna Anksioznost! Potrebna hitna intervencija.
2 krit Kritična greška (kritično stanje).
3 err(stari naziv ERROR) Poruka o grešci.
4 upozorenje(stari naziv za WARN)Upozorenje.
5 Biljeska Informacije o nekom normalnom ali važnom događaju.
6 info Najava.
7 debug Poruke generirane tokom otklanjanja grešaka.

Polje PRI poruka se formira na sljedeći način: brojčana vrijednost kategorije se množi sa 8 i dodaje brojčanoj vrijednosti prioriteta, a rezultirajući broj se stavlja u uglaste zagrade i upisuje u polje.

Praćenje terena PRI Sljedeća polja su uključena u poruku:

  • TIMESTAMP- vrijeme generiranja poruke,
  • HOSTNAME- ime hosta ili IP adresa u decimalnom zapisu,
  • MSG- proizvoljan tekst poruke - neki tekstualni (informacijski) niz u US-ASCII kodu (0x20 - 0x7e).

Vrijeme (lokalno!) je upisano u formatu: 13. februar 21:12:06. Ako je broj dana jednocifreni, onda mu prethodi dodatni razmak (ne 0!). Obratite pažnju na odsustvo godine i zone u datumu, što se mora uzeti u obzir prilikom organizovanja dugotrajno skladištenje protokol fajlova. Da bi vrijeme u poruci bilo ispravno, ono mora biti sinkronizirano (na primjer, korištenjem NTP protokola).

Ime hosta je uključeno u poruku kako se ne bi zbunile poruke sa različitih hostova, jer, kao što će biti prikazano u nastavku, logovanje se može obaviti na jednom od namenskih računara na mreži. Ime hosta je jednostavno ime mreže računara, bez navođenja domena. Ako računar ima više interfejsa sa različitim IP adresama, onda se bilo koji od njih može koristiti kao ime ili adresa hosta.

Tekst poruke ( MSG) obično sadrži oznaku ( TAG) ukazujući na program ili proces koji je izdao poruku i tijelo poruke ( SADRŽAJ). Oznaka može sadržavati latinična slova i brojeve. Tipično, oznaka je jednostavno ime programa, ponekad praćeno ID-om procesa u uglastim zagradama. Tijelo poruke je odvojeno od oznake posebnim znakovima - u Linuxu to su obično dvotočka i razmak.

Rukovanje porukama sa syslogd

Sve poruke generirane individualni programi koristeći funkciju syslog, poslano preko utičnice /dev/log sistemski demon syslogd, koji je odgovoran za obradu ovih poruka. Moram reći da su, u stvari, dva demona za logovanje pokrenuta u sistemu - syslogd i klogd. Oba demona su uključena u paket syslogd, čiju najnoviju verziju možete pronaći na web stranici.

Demon klogd je odgovoran za evidentiranje događaja koji se dešavaju u kernelu sistema. Potreba za posebnim demonom klogd jer kernel ne može koristiti standardnu ​​funkciju syslog. Činjenica je da standardne biblioteke (uključujući biblioteku u kojoj se nalazi funkcija syslog) namijenjeni su samo za uobičajene aplikacije. Budući da kernelu također trebaju slične funkcije, ono uključuje vlastite biblioteke koje nisu dostupne aplikacijama. Stoga kernel koristi svoj vlastiti mehanizam generiranja poruka. Demon klogd dizajniran da organizuje obradu ovih poruka. U principu, takvu obradu može izvršiti potpuno nezavisno i nezavisno od syslogd, na primjer pisanjem ovih poruka u datoteku, ali u većini slučajeva je zadana postavka klogd, u kojem se sve poruke iz kernela prosljeđuju istom demonu syslogd.

Da se uvjerim demonima syslogd i klogd pokrenuti na vašem sistemu, pokrenite naredbu ps-ax | grep log. Ova komanda mi je dala sljedeći rezultat:

$ ps -ax | grep log 569? S 0:00 syslogd -m 0 574 ? S 0:00 klogd -x 1013 ? S 0:00 prijava -- kos 1191 ? S 0:00 kalarmd --login Prva dva reda vam samo govore da su demoni za evidentiranje pokrenuti na sistemu.

Rukovanje porukama od strane demona syslogd sastoji se u tome da stalno prati izgled poruka i upoređuje svaki dolazni unos sa pravilima koja se nalaze u datoteci /etc/syslog.conf. Svako pravilo je zapisano kao linija u datoteci /etc/syslog.conf, koji se sastoji od dva polja. Lijevo polje ("selektor") specificira jedan ili više šablona po kojima se poruke biraju. Predlošci su odvojeni tačkom i zarezom (pogledajte primjer datoteke ispod /etc/syslog.conf). Desno polje ("akcija") određuje redosljed kojim se odabrane poruke obrađuju. Polja su odvojena jednim ili više razmaka ili kartica.

Svaki obrazac u polju "selektor" je u obliku "category.level" (to jest, "facility.priority"). Vrijednosti polja "kategorija" mogu biti:

  • jedan od konvencionalnih naziva kategorija navedenih u tabeli 1,
  • nekoliko takvih naziva (u ovom slučaju su odvojeni zarezima)
  • ili simbol * (što znači "sve kategorije").

Vrijednosti polja "nivo" mogu biti:

  • jedan od uslovnih naziva nivoa navedenih u tabeli 2,
  • simbol * (snimite sve poruke ove kategorije, bez obzira na nivo),
  • ili riječ nijedan(ne snimajte poruke u ovoj kategoriji).

Navođenje određene vrijednosti u polju "nivo" tumači se kao "sve vrijednosti ovog i višeg nivoa". Ako trebate snimiti poruke samo jednog nivoa, tada morate staviti znak jednakosti ("=") ispred vrijednosti koju treba postaviti. Ako je potrebno snimiti poruke svih nivoa osim navedenog, tada se ispred naziva nivoa stavlja uzvičnik ("!"). Stavljanje ova dva znaka u isto vrijeme tumači se kao "ne snimajte poruke navedenog nivoa i više".

Velika i mala slova u polju "selektor" se ne razlikuju. Možete koristiti i brojeve (pogledajte /usr/include/syslog.h). Pored kategorija navedenih u Tabeli 1, možete odrediti mark(redovne vremenske oznake) i sigurnost(zastarjeli sinonim za auth). Pored vrijednosti prioriteta navedenih u Tabeli 2, možete koristiti upozoriti(sinonim za upozorenje), greška(sinonim za err), panika(sinonim za emerge).

Kada se kategorija i nivo primljene poruke podudaraju sa jednim od obrazaca polja "selektor" u redu, syslogd obrađuje zapis u skladu sa radnjom navedenom u polju "akcija" ovog reda.

Polje "akcija" može sadržavati

  • naziv obične datoteke (log fajla), i puna putanja do datoteke mora biti navedena, počevši od korijena "/", a ako navedena datoteka ne postoji, syslogd stvara ga
  • naziv imenovane cijevi (named pipe) - FIFO; u ovom slučaju, imenu prethodi okomita traka ("|"), a sam kanal se mora kreirati prije pokretanja syslogd tim mkfifo,
  • pokazujući na terminal ili konzolu (kao uređaj: /dev/tty1),
  • pokazujući na udaljeni host (prethodi simbol @),
  • ili lista korisnika (odvojenih zarezima) čijim će terminalima poruka biti poslana prema ovom pravilu. Umjesto liste korisnika, možete staviti zvjezdicu (*), što će značiti da se poruke šalju svim korisnicima koji rade u ovog trenutka u sistemu.

Najčešće, polje "akcija" još uvijek sadrži naziv datoteke evidencije. Štaviše, ispred imena datoteke možete staviti znak minus ("-"), što će značiti da sistem može pohraniti datoteku u keš bafer, a ne da je isprazni nakon svake poruke upisane na disk. To, naravno, ubrzava rad, posebno ako se u dnevnik upisuje mnogo velikih poruka, ali može dovesti do gubitka nekih poruka u slučaju neočekivanog pada sistema, odnosno upravo kada su takve poruke posebno potrebne. Takođe možete navesti štampač kao uređaj u polju "akcija" - /dev/lp0. Takvu varijantu "radnje" svrsishodno je primijeniti u onim slučajevima kada je riječ o posebno važnim sistemima. Protokoli koji se ispisuju ne mogu se obrisati ili promijeniti od strane hakera, tako da je ovo dobra upotreba za stari matrični pisač.

Pored redova sa pravilima u datoteci /etc/syslog.conf može sadržavati prazne redove i redove komentara koji počinju s #. Više o strukturi datoteka /etc/syslog.conf možete pročitati man stranicu syslog.conf za nekoliko primjera unosa pravila u ovoj datoteci. Imajte na umu da kada specificirate parove "category.level" u datoteci syslog.conf ne možete koristiti numeričke vrijednosti date u tabelama 1 i 2, dozvoljeni su samo njihovi uvjetni nazivi.

Ako poruka odgovara uzorcima od dva ili više redaka, bit će obrađena prema svakom od ovih pravila (tj. obrada poruke se ne zaustavlja pri prvom uspjehu). To znači da se proizvoljan broj radnji može izvršiti na jednoj poruci. Stoga možete napisati poruku u datoteku dnevnika i poslati je korisniku(ima) ili udaljenom hostu.

Osim toga, ako je nekoliko parova "category.level" navedeno (odvojenih tačkom i zarezom) u polju "selektor", onda sljedeći parovi mogu poništiti učinak prethodnih. Možete vidjeti primjer takvog otkazivanja u listi datoteka ispod. /etc/syslog.conf: evidentira sve poruke na ili iznad info u datoteku /var/log/messages, ali preskače (ne evidentira) mail, authpriv i cron poruke.

Listing 1. Fajl /etc/syslog.conf sa sistema izgrađenog na bazi Red Hat Linux 7.1 distribucije (upravo sam preveo komentare sadržane u ovoj datoteci na ruski i istakao podebljano linije pravila).
# Odštampajte sve poruke iz kernela na konzolu. #kern.* /dev/console# Zabilježite sve poruke nivoa info ili više, # osim poruka mail sistema koje sadrže povjerljive # informacije iz poruka za autentifikaciju i cron daemon poruka. *.info;mail.none;authpriv.none;cron.none /var/log/messages# Napišite poruke koje sadrže povjerljive # informacije o autentifikaciji u zasebnu datoteku, bez obzira na njihov nivo. authpriv.* /var/log/secure# Sve poruke mail sistema se takođe posebno snimaju. mail.* /var/log/maillog# Zabilježite akcije cron demona. cron.* /var/log/cron# Hitne poruke trebaju odmah primiti # svi korisnici sistema *.emerg*# Poruke iz novinskih servisa kritičnog nivoa i više se pišu u poseban fajl. uucp,news.crit /var/log/spooler# Kopirajte poruke izdate tokom faze pokretanja u datoteku boot.log local7.* /var/log/boot.log
Kao što vidite, većina poruka se jednostavno upisuje u različite datoteke dnevnika koje se nalaze u direktoriju /var/log ili njegove poddirektorije, pri čemu je datoteka glavnog sistemskog dnevnika u Red Hat Linux-u /var/log/messages. Samo poruke u kategorijama mail, authpriv i cron (za koje su odvojene datoteke) ne spadaju u njega. Pogledajmo ovu datoteku i, koristeći njen primjer, razmotrimo šta je zabilježeno u log datotekama.

Dnevnik /var/log/messages

Naravno, ovdje je nemoguće reći o sadržaju svakog reda ovog fajla. Da bi čitalac dobio predstavu o tome koje informacije se mogu naći u protokolu, daćemo posebne redove-poruke sa vrlo kratkim komentarima.

Svaki red u log datoteci sadrži jedan unos poruke koji se sastoji od sljedećih polja poruke, odvojenih razmacima:

  • datum u standardnom tekstualnom formatu (polje TIMESTAMP iz poruke syslog),
  • ime hosta (polje HOSTNAME iz poruke syslog)
  • tekst poruke (polja TAG i SADRŽAJ iz poruke syslog)

Prvo, vredi napomenuti da ako vaš računar ne radi 24/7, već je isključen noću, onda ova datoteka može sadržati zapise o nekoliko "ciklusa rada" počevši od pokretanja računara i završavajući gašenjem računara. Takav ciklus počinje porukom o pokretanju demona za evidentiranje (ovo je razumljivo, nijedna poruka nije snimljena prije nego što su pokrenute):

Sep 17 08:32:56 kos3 syslogd 1.4-0: restart. Sep 17 08:32:56 kos3 syslog: syslogd je pokrenut uspješan Sep 17 08:32:56 kos3 kernel: klogd 1.4-0, izvor dnevnika = /proc/kmsg pokrenut. Sep 17 08:32:56 kos3 kernel: Provjera /boot/System.map-2.4.2-2 Sep 17 08:32:56 kos3 syslog: pokretanje klogd uspješno

  • - Koja verzija kernela se koristi: Sep 17 08:32:56 kos3 kernel: Linux verzija 2.4.2-2 ( [email protected]) (gcc verzija 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) #1 ned 8. april 20:41:30 EDT 2001.
  • - Sa kojim parametrima se pokreće kernel: 17. septembar 08:32:56 kos3 kernel: komandna linija kernela: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2
  • - Informacije o tipu procesora i količini RAM-a: 17. septembar 08:32:56 kos3 kernel: Otkriven procesor od 1594,849 MHz. 17. septembar 08:32:56 kos3 kernel: Memorija: 125652k/130560k dostupno (1365k kod kernela, 4200k rezervisano, 92k podataka, 236k init, 0k highmem) 17. septembar 08:32:56 CPU:1 kernel I kernel:1 , L1 D keš: 8K Sep 17 08:32:56 kos3 kernel: CPU: L2 keš: 256K 17. septembar 08:32:56 kos3 kernel: CPU: Intel(R) Pentium(R) 4 CPU 1,60GHz stepping 02
  • - Informacije o memoriji diska (uključujući informacije o geometriji diska, strukturi particije diska i korištenim prekidima): 17. rujan 08:32:56 kos3 kernel: hda: MAXTOR 6L020J1, ATA DISK pogon 17. rujna 08:32:56 kos3 kernel: hdc: SAMSUNG CD-ROM SC-148C, ATAPI CD/DVD-ROM drajv 17. septembar 08:32:56 kos3 kernel: ide0 na 0x1f0-0x1f7,0x3f6 na irq 14. septembar 17. 08:32:56 kos3 kernel1: ide0-0x1 ,0x376 na irq 15 Sep 17 08:32:56 kos3 kernel: hda: 40132503 sektora (20548 MB) w/1819KiB keš memorije, CHS=2498/255/63, UDMA(100) 8 ruj: 32:5 kos 17:5 Provjera particije: Sep 17 08:32:56 kos3 kernel: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >Sep 17 08:32:56 kos3 kernel: Floppy disk(ovi): fd0 je 1.44M
  • - Informacije o perifernim uređajima: 17. septembar 08:32:56 kos3 kernel: usb-uhci.c: USB UHCI na I/O 0x1820, IRQ 11. septembar 17 08:32:56 kos3 kernel: usb-uhci.c: Otkrivena 2 porta Sep 17 08:32:56 kos3 kernel: ttyS00 na 0x03f8 (irq = 4) je 16550A Sep 17 08:32:56 kos3 kernel: ttyS01 na 0x02f8 (irq = 3) je 16550A Sep 17 08:32:56 kos3 kernel: ttyS01 na 0x02f8 (irq = 3) je 16150A Sep: 161735 kernel: eth0: Intel(R) 8255x baziran Ethernet adapter 17. septembar 08:32:56 kos3 kernel: Intel(R) PRO/100 Fast Ethernet adapter - upravljački program koji se može učitati, verzija 1.5.6 17. septembar 08:32:56 kos3 kernel : PCI: Pronađen IRQ 11 za uređaj 02:08.0
  • - Informacije o pokretanju pojedinačnih usluga i usluga: 17. septembar 08:32:56 kos3 kernel: NET4: Linux TCP/IP 1.0 za NET4.0 17. septembar 08:32:56 kos3 kernel: IP protokoli: ICMP, UDP, TCP, IGMP Sep 17 08:32:56 kos3 kernel: NET4: Unix domenske utičnice 1.0/SMP za Linux NET4.0. Sep 17 08:32:56 kos3 kernel: parport0: PC-style na 0x378 (0x778) Sep 17 08:32:56 kos3 kernel: parport0: irq 7 otkriven 17. septembar 08:32:42 kos3 rc.sysinit: Uključuje korisnika. i grupne kvote za lokalne sisteme datoteka: uspjelo 17. septembar 08:32:43 kos3 rc.sysinit: Omogućavanje swap prostora: uspjelo 17. septembar 08:32:44 kos3 init: Ulazak u nivo pokretanja: 3. septembar 17. 08:32:45 kos3 kudzu /etc/fstab uspjelo 17. ruj 08:32:55 kos3 kudzu: uspjelo 17. ruj 08:32:55 kos3 mreža: Postavi mrežne opcije: uspjelo 17. sep 08:32:55 kos3 mreža: Pokreni interfejs lo: uspjelo 08 17. septembra : 32:56 kos3 mreža: eth0 sučelje aktivirano: uspjelo 17. septembar 08:32:56 tabela tastature kos3: Učitavanje rasporeda tastature: 17. septembar 08:32:56 tabela kos3: Učitavanje sistemskog fonta: 17. septembar 08:32:56 kos Inicijalizacija generatora slučajnih brojeva: uspjelo 17. septembar 08:32:41 kos3 rc.sysinit: Konfiguriranje parametara kernela: uspješno 17. rujna 08:32:41 kos3 rc.sysinit: Postavljanje zadanog fonta (cyr-sun16): uspjelo Sep 17 08:32:41 kos3 rc.sysinit: Aktiviranje swap particija: uspjelo 17. septembar 08:32:41 kos3 rc.sysinit: Postavljanje imena hosta kos3: uspjelo 17. rujna 08:33:03 kos3 xinetd: suc1 xinetd: suc1 0 pokretano 33:05 kos3 gpm: pokretanje gpm uspjelo 17. septembar 08:33:05 kos3 crond: pokretanje crond uspjelo 17. rujna 08:33:06 kos3 xfs: slušanje na portu 7100 17. septembar 08:33 xfsc: kosce počelo
  • - informacije o vezi sistemi datoteka: Sep 17 08:32:56 kos3 kernel: VFS: Montirani root (ext2 sistem datoteka) samo za čitanje. Sep 17 08:32:56 kos3 kernel: Dodavanje Swap: 265032k swap-space (prioritet -1) Sep 17 08:32:56 kos3 kernel: MSDOS FS: Upotreba kodne stranice 866 17. septembar 08:32:56 kos3 kernel: MSD : IO charset koi8-r 17. septembar 08:32:41 kos3 rc.sysinit: Montiranje USB sistema datoteka: uspješno 17. septembar 08:32:41 kos3 rc.sysinit: Provjera korijenskog sistema datoteka uspjela 17. rujna 08:32:41 kosynit3 : Ponovno montiranje root datotečnog sistema u načinu čitanja i pisanja: uspjelo 17. septembar 08:32:41 kos3 rc.sysinit: Montiranje proc datotečnog sistema: uspješno 17. rujna 08:32:41 kos3 fsck: /: clean, 30407/1600927 fajlova, 091 blokovi 17. septembar 08:32:42 kos3 fsck: /HOME: čist, 6573/432864 fajlova, 689090/863722 blokovi 17. septembar 08:32:42 kos3 fsck: /usr: čist, 55105/3292852 fajlova, 55105/3292852 fajlova, 292956 17 08:32:42 kos3 rc.sysinit: Provjera sistema datoteka je uspjela
  • - Neke poruke o grešci: Sep 17 08:32:42 kos3 mount: SMB veza nije uspjela 17 Sep 08:32:42 kos3 mount: Slanje paketa nije uspjelo na 10.104.129.245(137) ERRNO=Mreža je nedostupna 17. septembar 08:32. kos3 mount: mount: /dev/sda4: nepoznat uređaj 17. septembar 08:32:59 kos3 mount: greška pri povezivanju na 192.168.36.20:139 (Nema rute do hosta) 17. septembar 08:32:59 kos3 mount: mount: / dev /sda4: nepoznati uređaj
  • - Poruke prijavljivanja korisnika: 17. septembar 08:33:14 kos3 login(pam_unix): sesija otvorena za korisnika kos od strane LOGIN(uid=0) 17. septembar 08:33:14 kos3 -- kos: LOGIN ON tty1 BY kos 17. septembra 08. :41:39 kos3 su(pam_unix): neuspjeh autentifikacije; logname=kos uid=500 euid=0 tty=ruser=rhost=user=root
  • - I na kraju, poruke napisane kada je računar isključen, na primjer: Sep 17 10:30:07 kos3 rc: Zaustavljanje tablice ključeva: uspjelo Sep 17 10:30:07 kos3 Font Server: završava se 17. Sep 10:30:08 kos3 xfs: stop xfs succeeded Sep 17 10:30:08 kos3 gpm: stop gpm succeeded Sep 17 10:30:08 kos3 xinetd: Izlazak... Sep 17 10:30:10 kos3 rpc.statd: Neuhvaćen signal 15 registracija i izlazak. Sep 17 10:30:11 kos3 kernel: Zaustavljeno evidentiranje kernela (proc). Sep 17 10:30:11 kos3 kernel: Prekida se demon dnevnika kernela. Sep 17 10:30:12 kos3 syslog: zaustaviti klogd uspješno Sep 17 10:30:12 kos3 izlazi na signal 15

    Približno ista struktura ima unose u drugim datotekama protokola spomenutim u datoteci /etc/syslog.conf.

    logger i tailf komande

    Iz prethodnog opisa možemo zaključiti da izdavanje svih poruka za sistemske logove treba da odredi programer u fazi kreiranja programa. Ovo nije sasvim tačno. Korisnik takođe ima mogućnost da pošalje poruku demonu syslogd. Da biste to učinili, Linux ima naredbu drvosječa, koji omogućava slanje poruke iz komandne linije (sh, bash, itd.). To je dio util-linux paketa. Naravno, ova naredba je prvenstveno namijenjena za pružanje mogućnosti evidentiranja kada korisnik kreira različite vrste shell skripti. Ali može se pokrenuti i direktno iz komandne linije, na primjer, da biste se upoznali sa mogućnostima sistema za evidentiranje. Format za pokretanje komande: logger [-isd] [-f fajl] [-p PRI] [-t TAG] [-u utičnica] Opcije komandne linije imaju sljedeće značenje:

    • -i- uključite broj procesa u poruku
    • -s- duplikat poruke za stderr
    • -d- koristite način rada datagrama prilikom slanja poruka (umjesto redovnog streaminga)
    • -f ime datoteke- sačuvajte poruku u navedenoj datoteci (podrazumevano je /var/log/messages)
    • -p nivo objekta- postavite kategoriju poruke i prioritet (podrazumevano: user.notice)
    • -t TAG - postaviti TAG polje
    • -u utičnica- poslati poruku na navedeni socket, umjesto poziva syslogd
    • MSG- Tekst poruke

    Pošaljite više poruka pomoću programa drvosječa i divite se rezultatu u fajlu /var/log/messages(osim ako, naravno, niste promijenili zadanu vrijednost).

    Usput, postoji vrlo zanimljiv način za pregled poruka zapisanih u datoteci /var/log/messages tim drvosječa. Ova metoda se zasniva na upotrebi poseban program tailf. Otvorite prozor terminala, dobijte prava superkorisnika (sa naredbom su) i pokrenite naredbu u ovom prozoru
    tailf /var/log/messages
    Nakon toga, prebacite se na drugi terminal i tamo pokrenite naredbu logger custom_text. Vaša poruka će se odmah prikazati u prozoru u kojem je program pokrenut. tailf. Odnosno, uz pomoć ovog programa administrator sistema može pratiti snimanje novih poruka u protokolu u realnom vremenu. Istina, kod sistem administrator malo je vjerovatno da će biti vremena za praćenje ponašanja sistema na ovaj način (osim u vanrednim situacijama). Stoga su razvijeni posebni programi za analizu protokola. Ali o njima malo niže, ali za sada pređimo na pitanje kako organizirati nadzor udaljenog računala (sjećate se kako ste uhvatili napadača Shimomuru?).

    Mrežno evidentiranje

    Kao što je spomenuto, sistemske poruke za evidentiranje mogu biti poslane od strane demona syslogd udaljenom hostu. Ali neko mora da ga odnese tamo. Ispostavilo se da je to isti demon syslogd radi na ovom udaljenom hostu. Preciznije, syslogd na bilo kom računaru, može slušati ne samo na /dev/log soketu (prihvatajući tako poruke iz lokalnih izvora), već i na portu 514/UDP, koji osigurava da se poruke primaju sa drugih računara na lokalnoj mreži (i zatim pišu u lokalnu datoteku). Ovo omogućava kreiranje "logging servera", što može biti veoma zgodno za administratora sistema (svi događaji na mreži se prate na jednom mestu), a takođe povećava bezbednost mreže, jer se javljaju izveštaji o hakerskom upadu na jedan od ovaj haker ne može odmah ukloniti mrežne hostove iz protokola.

    Međutim, da bi se organiziralo takvo "mrežno evidentiranje", moraju se uložiti dodatni napori.

    Prvo, pošto se port 514/UDP koristi za primanje i slanje poruka preko mreže, on mora biti dostupan na oba računara (klijent i server). Za ovo u fajlu /etc/services oba računara moraju imati liniju
    syslog 514/udp
    Ako je takva linija /etc/services nedostaje, syslogd ne može primati poruke niti ih slati na mrežu jer ne može otvoriti UDP port. Ukoliko dođe do takve situacije, syslogd odmah prestaje pisati bilo kakve poruke čak i u lokalni dnevnik. Međutim, kao što pokazuje naredba ps, ostaje u memoriji i čak pohranjuje poruke u neke međuspremnike, jer ako string " syslog 514/udp" vrati u datoteku /etc/services na klijentu, tada se barem neke od "nedostajućih" poruka i dalje pojavljuju u dnevniku (nakon ponovnog pokretanja syslogd).

    Drugo, prilikom pokretanja demona syslogd opcija mora biti specificirana na serveru -r, koji pruža mogućnost daljinskog evidentiranja (podrazumevano, daemon syslogdčeka poruku samo iz lokalne utičnice). Kako i gdje postaviti ovu opciju bit će razmotreno u nastavku, u odjeljku o pokretanju demona. syslogd.

    Pa, i treće, postavke u datotekama treba u skladu s tim ispraviti. /etc/syslog.conf na oba računara. Na primjer, ako želite preusmjeriti sve poruke na server za evidentiranje, potrebno je da upišete u datoteku na računaru klijenta /etc/syslog.conf red ovako:
    *.*@ime hosta
    Ako tokom pokretanja demona syslogd server će biti nedostupan (na primjer, trenutno je offline) ili ga neće biti moguće pronaći po imenu (DNS usluga nije radila ispravno) syslogd napravi još 10 pokušaja da pronađe server, a tek ako nakon toga nije bilo moguće pronaći server, prestaje pokušavati i šalje odgovarajuću poruku.

    Ako imate više domena na vašoj mreži koje opslužuje isti server za evidentiranje, nemojte se iznenaditi kada vidite puna imena klijenata (uključujući domenu) u evidenciji na serveru. Zaista, pri pokretanju syslogd mogu se koristiti opcije -s lista_domena ili -l hostlist, koji omogućavaju zamjenu punih imena hosta u protokolu njihovim kratkim imenima (bez navođenja domena).

    Ne zaboravite nakon podešavanja opcija pokretanja i datoteke /etc/syslog.conf ponovo pokrenite demon jer, za razliku od cron, syslogd ne čita ponovo konfiguracijske datoteke automatski.

    opcije pokretanja syslogd demona

    Pošto smo se dotakli pitanja postavljanja parametara pokretanja demona u prethodnom pododjeljku syslogd pogledajmo ovo pitanje detaljnije. Kao što je već pomenuto, oba demona za logovanje se pokreću u fazi inicijalizacije sistema, tačnije, kroz skriptu /etc/rc.d/init.d/syslog(za koje se, kao i za startup skripte drugih servisa, kreiraju simboličke veze u direktorijumima /etc/rc.d/rc?.d/). Međutim, nema potrebe za modifikacijom ove skripte kako bi se postavili parametri pokretanja, jer od verzije 7.2 u Red Hat distribuciji, opcije pokretanja za oba demona se čitaju iz zasebne konfiguracijske datoteke /etc/sysconfig/syslog. Evo kratke liste mogućih parametara za demon syslogd.

    Parametri pokretanja syslogd:

    • -utičnicu- Određuje dodatnu utičnicu na kojoj će demon slušati syslogd. Možete navesti do 19 soketa (moguće je više, ali za to morate ponovo kompajlirati paket). Ova opcija se koristi kada neki drugi demon (kao što je ftp ili http) radi u ograničenom okruženju (radi chroot).
    • -d- Režim za otklanjanje grešaka. Istovremeno, demon ne ide u pozadinu i šalje sve poruke trenutnom terminalu.
    • -f ime konfiguracijske datoteke Određuje ime alternativne konfiguracijske datoteke koja će se koristiti umjesto zadane. /etc/syslog.conf.
    • -h Podrazumevano u syslogd zabranjeno je prenošenje poruka primljenih preko mreže na neki drugi računar. Ovo se radi kako bi se izbjeglo beskonačno prenošenje poruka po prstenu. Opcija -h vam omogućava da nadjačate normalno ponašanje i osigurate da se poruke primljene od udaljenih hostova prosljeđuju na mrežu (i sami se pobrinite za moguće petlje).
    • -l host-list- Određuje listu hostova čija imena ne bi trebalo da budu upisana sa punim imenom domena (FQDN - Full Qwalified Domain Name); imena na listi su odvojena dvotočkama.
    • -m minuta Pokrenuto bez ove opcije syslogd redovno (svakih 20 minuta) evidentira poruke kategorije mark, odnosno samo vremenske oznake. Sa opcijom -m možete ili promijeniti interval između oznaka ili potpuno otkazati izdavanje takvih poruka, za koje trebate postaviti interval na nulu: -m0.
    • -n Ne idite u pozadinu; opcija je potrebna u slučajevima kada je syslogd pokrenut i kontrolisan od strane procesa u tome.
    • -p utičnica Određuje alternativnu UNIX utičnicu (umjesto zadanog slušanja /dev/log). Napomena: opcija -a specificira dodatne utičnice, i -p- alternativa!
    • -r Dozvolite primanje poruka od udaljenih domaćina. O tome smo govorili u prethodnom odeljku, pa sam izostavio detalje.
    • -s lista domena Određuje listu domena čija imena ne moraju biti evidentirana zajedno sa imenom hosta (to jest, za ove domene će se evidentirati samo imena hosta umjesto potpuno kvalificiranog imena domena (FQDN). Imena na listi su razdvojena sa Dvotačka Ime domene u kojoj se nalazi syslogd server nije potrebno na ovoj listi (njegovo ime je uklonjeno po defaultu).
    • -v Prikaži verziju i završi.
    • -x Odbijanje određivanja imena hosta iz njegove adrese sprečava zastoj kada se radi na istom hostu kao i DNS server.

    Nakon pokretanja demona syslogd status fajl je kreiran /var/lock/subsys/syslog nultu dužinu i datoteku s ID-om procesa /var/run/syslogd.pid.

    Sa komandom
    kill -SIGNAL `mačka /var/run/syslogd.pid`
    možete poslati demonu syslogd jedan od sljedećih signala:

    • SIGHUP - ponovno pokretanje demona (ponovna inicijalizacija); sve otvorene datoteke se zatvaraju, demon se ponovo pokreće, ponovo čitajući svoju konfiguracijsku datoteku.
    • SIGTERM - isključenje.
    • SIGINT, SIGQUIT - ako je debug mod uključen (opcija -d), signali se zanemaruju, u suprotnom - izlaz.
    • SIGUSR1 - omogući/onemogući način otklanjanja grešaka (radi samo ako je demon pokrenut sa prekidačem -d).

    Demon klogd ima barem onoliko opcija za pokretanje kao syslogd, međutim, nećemo ih dati ovdje, upućivanjem čitaoca na odgovarajuću man stranicu (korisnik ne bi trebao konfigurirati klogd, bolje ga je ostaviti u stanju kako su ga proizveli programeri distribucije).

    dmesg datoteku i naredbu dmesg

    Kao što je već spomenuto, datoteke evidencije navedene u datoteci /etc/syslog.conf obično se nalazi u imeniku /var/log i njegove poddirektorije. Ali, ako pogledamo u ovaj direktorij, tamo ćemo pronaći nekoliko datoteka koje su u /etc/syslog.conf nisu spominjani. Pogledajmo njihovu svrhu. Počnimo sa fajlom dmesg.

    Prvo, potrebno je napomenuti da Linux ima komandu sa istim imenom. Ako uporedimo izlaz ove naredbe (kada se izvodi bez parametara) sa sadržajem datoteke /var/log/dmesg, otkrit ćete da su vrlo slični, iako ne identični (usmjerite izlaz naredbe u datoteku dmesg2 i uporedi fajlove dmesg i dmesg2). Tačnije, fajl /var/log/dmesg jedan prema jedan poklapa se sa početkom izlaza koji dobijamo na komandu dmesg. Kao što slijedi iz , kernel ima prstenasti bafer u koji se upisuju poruke iz demona za evidentiranje kernela. One poruke koje se upisuju u ovaj bafer tokom procesa preuzimanja i čine sadržaj datoteke /var/log/dmesg. Očigledno, ovaj fajl se formira na kraju pokretanja sistema.

    Ako ponovo pogledate gornji popis datoteka /etc/syslog.conf, vidjet ćete da su svi postovi u kategoriji kern izdaje i konzoli. Ali tamo brzo pretrčavaju ekran i jedva da imate vremena da ih pročitate i shvatite. Ali oni su sačuvani u fajlu /var/log/dmesg i stoga dostupan za opušteno razmišljanje (ako je proces preuzimanja uspješno završen). Nakon što je proces pokretanja završen, pisanje poruka iz kernela u bafer prstena se nastavlja. Kada se naredba izvrši dmesg, vraća se trenutno stanje bafera. Stoga, izlaz ove naredbe sadrži više poruka od datoteke /var/log/dmesg: u izlazu ove naredbe, također možete vidjeti poruke koje kernel izdaje nakon što je proces pokretanja završen.

    Sve poruke od /var/log/dmesg naći ćete u datoteci /var/log/messages, samo se tamo izmjenjuju s porukama iz drugih programa. Postoji samo jedna značajna razlika: u fajlu dmesg vrijeme i izvor poruke (ime hosta i kategorija poruke) nisu specificirani. Domaćin je ovdje uvijek "lokalni", a početak odbrojavanja je određen posljednjim ponovnim pokretanjem računara.

    lastlog, wtmp i utmp datoteke

    Osim fajla dmesg u katalogu /var/log/ postoje još dva fajla koja nisu spomenuta /etc/syslog.conf, ali direktno vezano za logovanje - to su fajlovi zadnji dnevnik i wtmp. Ali pogledajte ih na isti način na koji smo pregledali fajl /var/log/messages nema smisla - nećeš ništa razumjeti. Činjenica je da se informacije u ovim datotekama snimaju u posebnom formatu i moraju se pregledati pomoću posebnih softverskih alata. Ali prvo moramo reći nekoliko riječi o svrsi ovih datoteka.

    File zadnji dnevnik pohranjuje informacije o posljednjoj prijavi korisnika na sistem. Ne znam da li ste primijetili da kada unesete korisničko ime i lozinku, na ekranu se pojavljuje poruka poput ove:

    Localhost prijava: kos Lozinka: Zadnja prijava: Wed Oct 9 19:25:53 na tty1 Ove tri linije generira uslužni program Ulogovati se, koji, nakon što utvrdi da korisnik ima prava na prijavu, pristupa datoteci /var/log/lastlog, odatle izdvaja informacije o prethodnoj uspješnoj prijavi korisnika, prikazuje ih na ekranu, a zatim ažurira unos u datoteci zadnji dnevnik. Ovu poruku možete potisnuti kreiranjem prazne .hushlogin datoteke u vašem kućnom direktoriju. Međutim, nije preporučljivo to učiniti, već naprotiv, vrijedno je obratiti posebnu pažnju na sadržaj ove poruke kako ne biste propustili slučajeve kada se neko drugi prijavio pod vašim imenom.

    Za razliku od fajla /var/log/lastlog, koji sadrži unose vremena zadnji prijavu svakog korisnika, u datoteci /var/log/wtmp se pamte sve korisničkih prijava i odjava od kada je ovaj fajl kreiran. Kao u fajlu zadnji dnevnik, zapisi u /var/log/wtmp izrađene su u posebnom formatu, tako da se mogu pogledati samo pomoću specijalni timovi. Ali, prije nego što pričamo o ovim naredbama, recimo da postoji još jedna datoteka koja sadrži unose o korisničkom logovanju - ovo je datoteka /var/run/utmp. Ova datoteka sadrži informacije o tome koji korisnik je trenutno prijavljen na sistem.

    Sada možete razgovarati o tome kako pregledati informacije o korisnicima koji rade ili su ranije radili u sistemu. Glavna komanda za ovo je komanda zadnji. Izbacuje sve zapise iz datoteke /var/log/wtmp, i korisničko ime, indikacija terminala sa kojeg je korisnik radio, vrijeme kada je korisnik ušao u sistem i vrijeme kada je napustio sistem, kao i trajanje sesije korisnika u sistemu. Ako je rad korisnika bio prekinut samo zbog gašenja samog sistema, umjesto vremena izlaska korisnika stoji riječ "down" (iz ovih linija je lako odrediti vrijeme zaustavljanja sistema). Vrijeme ponovnog pokretanja je prikazano u posebnim redovima koji počinju riječju "ponovno pokretanje".

    Tim lastb kao tim zadnji, ali prikazuje informacije o neuspjelim pokušajima prijave korisnika. Međutim, treba napomenuti da će ova naredba raditi samo ako datoteka postoji. /var/log/btmp. Međutim, nijedan od programa o kojima se ovdje govori ne stvara datoteke dnevnika, pa ako se jedan od njih izbriše, vođenje evidencije prestaje.

    Tim zadnji dnevnik formatira i ispisuje sadržaj datoteke /var/log/lastlog. Prikazaće se korisničko ime, naziv terminala s kojeg se korisnik prijavio i vrijeme posljednje prijave. Po defaultu (kada se naredba unese bez parametara) elementi datoteke /var/log/lastlogće biti ispisan po redoslijedu korisničkih ID brojeva. Ako navedete opciju -u ime-prijave, bit će prikazane samo informacije o vremenu posljednje prijave navedenog korisnika. Određivanjem opcije -t dana, dobićete samo zapise za poslednje dane dana. Ako se korisnik još uopće nije prijavio, tada će umjesto naziva terminala i vremena posljednje prijave biti prikazan niz "**Nikad nije prijavljen**".

    Prilikom izvršavanja naredbe zadnji dnevnik na sporom računaru, u nekim slučajevima može izgledati da komanda "visi". To je zbog činjenice da čak i ako su samo dva korisnika (root i korisnik) registrirana u sistemu, u datoteci /var/log/lastlog prostor je i dalje dodijeljen za maksimalno mogući broj korisnika koji mogu raditi u sistemu. Dakle, u fajlu /var/log/lastlog može postojati veliki jaz između ID brojeva korisnika koji su se prijavili. Budući da pri gledanju takvih intervala program ne prikazuje informacije na ekranu, a stvara se utisak "visi".

    Za prikaz informacija o tome ko trenutno radi u sistemu, koristite komande w, SZO i korisnika. Tim korisnika koristi se kada samo želite da znate koji korisnik trenutno radi u sistemu, ali vas ne zanima sa kog terminala se povezao i šta radi. Ako želite znati ko je prijavljen s kojeg terminala, koristite naredbu SZO. Ova komanda ispisuje informacije iz datoteke /var/run/utmp. Možete ga prisiliti da izlazi podatke iz datoteke /var/log/wtmp(ili bilo koju drugu datoteku za koju ima smisla), ako navedete naziv ove datoteke u komandna linija. Ali u izlazu ćete i dalje vidjeti samo korisničko ime, indikaciju terminala s kojeg se korisnik prijavio, vrijeme prijave i, u slučaju prijave sa udaljeni računar, naziv ovog računara.

    Naredba prikazuje znatno više informacija w. U njegovom izlazu ćete vidjeti trenutno vrijeme, koliko dugo sistem radi, koliko korisnika je trenutno prijavljeno na sistem i prosječno opterećenje sistema u posljednjem minutu, 5 i 15 minuta. Zatim daje za svakog korisnika:

  • korisničko ime,
  • naziv terminala,
  • ime udaljenog hosta
  • vrijeme je proteklo od prijave
  • vrijeme tokom kojeg se ovaj terminal ne koristi (vrijeme mirovanja),
  • ukupno vrijeme provedeno od strane svih procesa pokrenutih sa ovog terminala (kolona JCPU),
  • vrijeme tokom kojeg je pokrenut posljednji proces koji je pokrenuo korisnik (PCPU graf),
  • informacija o tome koji program trenutno izvršava korisnik (u obliku komandne linije za pokretanje komande sa svim parametrima).

    Kao što je već pomenuto, komanda w ispisuje informacije pohranjene u datoteci utmp. Usput, vodstvo covece navodi da običnim korisnicima treba zabraniti pristup pisanju fajlu utmp, od mnogih sistemski programi(iz nekog neobjašnjivog razloga) zavisi od njegovog integriteta. Rizikujete da zbunite sistemske datoteke statistiku i izvršite promjene u sistemskim datotekama ako dopustite bilo kojem korisniku da piše u utmp datoteku.

    Log fajlovi drugih programa

    Pored onih datoteka o kojima smo već govorili, postoje i druge datoteke protokola koje kreiraju zasebni programi. Najtipičniji primjeri su demonski protokoli. samba, ftpd ili httpd koji se vode u zasebnim fajlovima. Neki od ovih programa kreiraju svoje protokole u poddirektorijumima direktorijuma /var/log/, drugi spremaju protokole na drugim mjestima. I struktura ovih datoteka može se značajno razlikovati od strukture datoteka koje kreira sistem syslog. Na primjer, dat ću nekoliko redaka iz serverskog protokola Apache radi na mom računaru: 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 " ://linux/ve/papers/new/lo g/protok_lovim.htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/title.gif HTTP/1.1" 404 281 "http://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" Kao što vidite, struktura ove datoteke evidencije značajno se razlikuje od onoga što smo videli u sistemskim evidencijama.

    Samba-server, pored glavnog protokola rada servera, kreira u poddirektorijumu /var/log/samba broj log fajlova za različite prilike, posebno odvojene datoteke za svakog od korisnika kojima je dozvoljeno da koriste resurse koje obezbeđuje ovaj server. Iz jedne takve datoteke uzimaju se sljedeća dva unosa:

    smbd/service.c:make_connection(550) linux (192.168.36.10) povežite se na javni servis kao korisnik kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.16) 36.10) zatvorena veza sa javnom uslugom Gore navedeni primeri pokazuju da ako znate malo engleskog i razumete strukturu zapisa, možete izvući mnogo korisnih informacija iz datoteka evidencije. Samo što se mora izvući iz čitavih naslaga "otpadnog kamena" - ogromnih uzastopnih log fajlova, što nije trivijalan zadatak. Stoga su razvijeni posebni softverski alati za analizu protokola.

    Sredstva za obradu protokola

    Razvijeno je mnogo različitih programa i skripti za analizu protokola. Ja ću se ograničiti kratak opis dva takva sredstva: log sat i gledati.

    log sat je Perl skripta uključena u standardnu ​​Red Hat Linux distribuciju. Upravo u vrijeme pripreme ovog članka, verzija 4.1 ovog programa je objavljena na web stranici programera (a on je Kirk Bauer).

    Osnovna ideja iza ovog programa je da se datoteka evidencije propušta kroz filter koji izvlači iz dnevnika sve linije (tj. poruke) koje ispunjavaju specificirane kriterije. Rezultati se šalju e-poštom navedenom korisniku (root po defaultu). Filteri se mogu napisati na bilo kojem programskom jeziku, ali autor paketa preferira Perl. Filteri moraju biti napisani na takav način da čitaju podatke iz stdin i izlaze rezultat u stdout.

    Glavna upotreba log sat sastoji se od uključivanja veze do glavne skripte ( /etc/log.d/scripts/logwatch.pl) u direktorij /etc/cron.daily, što uzrokuje svakodnevno izvršavanje log sat sa zadanim postavkama. Vezi je dato ime koje počinje sa "00" (na primer, 00-logwatch) tako da se skripta pokrene pre logorotacije.

    Ali također možete pokrenuti skriptu iz komandne linije. Naravno, ako niste promijenili parametar izlaza informacija, onda treba tražiti rezultat njegovog rada poštansko sanduče superuser. Ako želite da vidite ove rezultate na ekranu, onda morate navesti parametar u komandnoj liniji --print- ispisati izvještaj na stdout.

    Opšti format za pokretanje skripte:

    /etc/log.d/scripts/logwatch.pl [--detalj nivo ] [--logfile log-group ] [--servis naziv usluge ] [--print] [--mailto adresa ] [--sačuvaj Ime dokumenta ] [--arhive] [--opseg datum-interval ]

    Zadane opcije su pohranjene u /etc/log.d/logwatch.conf datoteci, komentari u kojima omogućavaju razumijevanje značenja opcija komandne linije:

    • LogDir - direktorij u odnosu na koji se razmatraju imena datoteka;
    • MailTo - kome poslati izvještaj;
    • Štampanje - umjesto slanja izvještaja poštom, odštampajte ga na stdout;
    • Sačuvaj - umjesto slanja izvještaja poštom, spremite ga u navedenu datoteku;
    • Arhiva - rukovati ne samo trenutne verzije dnevnike, ali i stare kopije koje je kreirao logrotate;
    • Raspon - obraditi navedeni vremenski interval: Sve, Danas, Juče (jučerašnji kalendarski dan);
    • Detalj - nivo detalja izveštaja: od 0 do 10 ili Nizak, Srednji, Visok;
    • Usluga - Sve ili naziv filtera iz /etc/log.d/scripts/services/ (može se navesti više filtera);
    • LogFile - Sve ili ime grupe dnevnika (može se navesti više grupa).

    Više informacija o scenariju log sat naći ćete u .

    Članak opisuje još jednu skriptu za obradu log datoteka, koja je uključena u distribuciju Mandrake Linuxa. Ova skripta se zove gledati("Simple WATCHer") i takođe je napisan u Perlu.

    Upravljanje radom gledati urađeno s jednom konfiguracijskom datotekom, prema zadanim postavkama $HOME/.swatchrc. Ova datoteka sadrži uzorke teksta (u obliku regularnih izraza) koji gledatiće tražiti u log fajlovima. Svaki takav obrazac prati radnja koja gledati treba uzeti ako pronađe tekst koji odgovara uzorku.

    Na primjer, želite da budete upozoreni svaki put kada se napad prelivanja bafera pokuša na vašem web serveru kada se zatraži vrlo dugo ime datoteke. I to znate u takvim slučajevima u log fajlu /var/apache/error.log pojavljuje se poruka koja sadrži riječi "Ime datoteke predugačko". U ovom slučaju, u vašem dosijeu .swatchrc ubaci sljedeću izjavu:

    Pazi na /ime datoteke predugačko/mail [email protected], subject=BufferOverflow_attempt

    Ovdje neću davati detaljniji opis programa. gledati. Njemu je posvećen entuzijastičan članak, a sam program možete pronaći na web stranici. Samo želim da istaknem i gledati, i log sat implementirati prilično primitivan algoritam za obradu datoteka protokola, koji se svodi na traženje protokola za dati niz znakova (potpis). U međuvremenu, prvo, prisustvo takvog niza često još ne ukazuje na upad napadača, a drugo, kompetentan napadač može se pobrinuti da izbriše tragove svoje aktivnosti. Još jedan očigledan nedostatak razmatranih proizvoda je to što rade u "odloženom načinu rada", budući da se lansiraju samo po rasporedu. A borba protiv uljeza mora se voditi "u realnom vremenu", odmah reagirajući na pokušaje prodora u sistem. Stoga komercijalni proizvodi nude sisteme za praćenje koji rade kontinuirano i implementiraju "inteligentne" algoritme za analizu protokola. Ovi algoritmi se zasnivaju na statističkoj analizi toka poruka i identifikaciji statistički značajnih odstupanja sistema od njegovog normalnog ponašanja.

    U zaključku ovog odeljka, želeo bih da napomenem da veb lokacija SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) sadrži listu veza ka veb lokacijama različitih softverskih alata za obradu protokola sa kratak opis ovih alata. Možete eksperimentirati s različitim programima i odabrati onaj koji vam odgovara.

    Rotacija datoteke dnevnika

    Naravno, razumete da ako se sistem intenzivno koristi, onda datoteke evidencije brzo rastu. Što rezultira gubitkom prostora na disku. Takođe postoji problem "ukroćenja" protokola. Red Hat Linux rješava ovaj problem pomoću skripte. logrotate, koji se nalazi u imeniku /etc/cron.daily, i stoga ga pokreće demon cron dnevno. Ova skripta vam omogućava da obrađujete ne samo sistemske dnevnike syslog ali i bilo koje druge programe.

    Skripta logrotate prati rast log fajlova i osigurava takozvanu rotaciju ovih datoteka ako premašuju navedenu veličinu (ili nakon određenog vremenskog intervala). Rotacija nije ništa drugo do sekvencijalno kopiranje prethodne verzije arhivirajte fajlove ovako:

  • poruke.2 -> poruke.3
  • poruke.1 -> poruke.2
  • poruke.0 -> poruke.1
  • poruke -> poruke.0
    i kreiranje nove datoteke poruka za snimanje narednih poruka.

    Lista datoteka koje će obraditi skripta logrotate a parametri ove obrade su određeni konfiguracijskim datotekama, kojih može biti nekoliko. Imena konfiguracionih datoteka su navedena u komandnoj liniji za pokretanje skripte (pogledajte opcije pokretanja ispod). Na Red Hat Linux-u, po defaultu, kao konfiguracijski fajlovi za logrotate fajl se koristi /etc/logrotate.conf, što bi moglo izgledati otprilike ovako:

    Sedmična rotacija 4 kreiranje kompresije uključuje /etc/logrotate.d /var/log/wtmp /var/log/lastlog ( mjesečno kreiranje 0664 root utmp rotiranje 1 )

    Ovaj fajl je kao i svaki konfiguracioni fajl za skriptu. logrotate sastoji se od nekoliko sekcija. Prvi odjeljak definira globalne opcije (jedna po redu) koje postavljaju zadane opcije za sve dnevnike. Sljedeći odjeljci definiraju lokalne opcije za niz datoteka evidencije. Imena ovih datoteka su navedena u prvom redu odjeljka, a zatim se lokalni parametri postavljaju u vitičaste zagrade koje su važeće samo kada se obrađuju navedene datoteke (također jedan parametar po redu). Imena datoteka dnevnika mogu se citirati prema pravilima ljuske ako sadrže razmake ili druge posebne znakove. Možete navesti više naziva datoteka ili obrazaca naziva datoteka odvojenih razmakom (šabloni također slijede pravila ljuske). Obrada svake sekcije se tretira kao jedna radnja. Redovi koji počinju sa "#" su komentari. Lokalne postavke imaju prednost nad globalnim.

    U datom primjeru konfiguracijske datoteke, najprije su opisani globalni parametri, a zatim, u posebnom dijelu, parametri za obradu /var/log/wtmp i /var/log/lastlog datoteka. Osim toga, među globalnim parametrima, data je veza do direktorija /etc/logrotate.d, u koji svaki paket upisuje lokalne postavke za svoje dnevnike.

    U odjeljku globalnih postavki prvo se postavlja jedan od sljedećih parametara koji određuju kriterije rotacije datoteke:

  • dnevno- promjena verzija u seriji se dešava svakodnevno,
  • sedmično- verzija se mijenja sedmično,
  • mjesečno- verzija se mijenja mjesečno,
  • veličina bajt - promjena verzije dolazi ako veličina dnevnika premašuje navedeni broj bajtova; možete koristiti sufikse "k" - kilobajt - i "M" - megabajt)

  • i parametar uključiti, nakon čega slijedi naziv druge (dodatne) konfiguracijske datoteke ili čak ime direktorija. U potonjem slučaju, sve datoteke u navedenom direktoriju, osim poddirektorija, posebnih datoteka i datoteka sa sufiksima sa liste isključenja, smatraju se konfiguracijskim datotekama za skriptu. logrotate(direktiva uključiti ne može se koristiti unutar odjeljka koji specificira parametre obrade za grupu datoteka).

    Parametar rotirati broj može se nalaziti i među globalnim i među lokalnim parametrima i određuje koliko starih verzija treba pohraniti; ako je broj 0, ne kreiraju se arhivirane verzije protokola.

    Ako je parametar postavljen komprimirati, tada se starije verzije komprimiraju pomoću gzipa, i ako je navedeno nema kompresije- ne stisnu se. Parametar komprimirati cmd omogućava vam da odredite koji će se program za kompresiju koristiti (podrazumevano je gzip), i raspakujte cmd specificira program dekompresije (podrazumevano je ungzip). compressoptions postavlja parametre programa kompresije; zadana vrijednost je "-9", tj. maksimalna kompresija za gzip. Korištenje parametra compressext možete promijeniti sufiks za komprimirani fajlovi, i parametar proširenje sufiks specificira sufiks koji se dodaje imenima datoteka tokom rotacije (prije sufiksa kompresije).

    Među ključnim riječima koje se nalaze u konfiguracijskim datotekama, riječi postrotate i prerotate, koji služe kao otvorne zagrade za uključivanje shell skripti u konfiguracijske datoteke. Sve linije konfiguracijske datoteke iz reda postrotate do crte endscript se izvršavaju kao naredbe ljuske nakon procesa promjene verzije datoteke dnevnika. Prema tome, sve linije iz linije prerotate do crte endscript se izvršavaju prije rotiranja datoteka dnevnika. Koristeći ove skripte, možete organizirati različite procedure za obradu log datoteka tokom rotacije.

    Koristeći druge parametre konfiguracijske datoteke, možete nadjačati prava pristupa datotekama dnevnika (ako ovaj parametar nije postavljen, tada se koriste atributi stare datoteke evidencije); navesti kome da se šalju poruke o grešci o funkcionisanju sistema evidentiranja; poslati arhivsku kopiju dnevnika navedenom korisniku; postavite direktorij u koji će se protokoli premještati tijekom promjene verzije (direktorij se mora nalaziti na istom fizički uređaj kao /var/log) ili postavite listu sufiksa isključenja za direktorij uključiti. Detaljan opis ove karakteristike i opcije (kao i one koje nisu pomenute) ćete pronaći komandom manlogrotate.

    Kao što je već spomenuto, dodatne konfiguracijske datoteke logrotate može se navesti u komandnoj liniji za pokretanje skripte. Možete odrediti proizvoljan broj konfiguracijskih datoteka ili imena direktorija. Imena datoteka i direktorija na ovoj listi razdvojena su jednostavnim razmacima. Redoslijed imena na listi je važan jer opcije navedene u sljedećoj konfiguracijskoj datoteci nadjačavaju značenje opcija navedenih u prethodnoj datoteci. Redoslijed datoteka u konfiguracijskom direktoriju nije definiran.

    Također možete odrediti sljedeće opcije u komandnoj liniji za pokretanje:

    • -d- način otklanjanja grešaka, nema stvarnih promjena,
    • -f- izvršite promjene čak i ako logrotate ne vidi potrebu - koristi se za promjene u listi obrađenih dnevnika,
    • man logwatch
    • Mick Bauer, "Paranoid Penguin: uzorak: Automatsko praćenje dnevnika za budne, ali lijene"
    • RFC 3164. C. Lonvick, BSD Syslog Protocol, avgust 2001.
    • RFC 3195. D. New, M. Rose, Pouzdana isporuka za syslog, novembar 2001.
    • Per. S. Lapshansky, "Demon posmatra sistem"
    • Denis Kolisničenko,

    Protokol syslog i softver za podršku omogućavaju snimanje informacija o događajima u sistemskom logu (logovi, sistemska konzola), kao i njihov prijenos na logging server preko mreže, sortiranje i obradu u zavisnosti od izvora i važnosti poruka. Članak opisuje syslog protokol, njegovu implementaciju u Solarisu i Linuxu (syslogd), Cisco IOS, kao i pomoćne alate: logrotate, logwatch.

    Komponente sistema su generator poruka (uređaj ili proces), protokol za razmjenu, sakupljač poruka (kolektor, syslog server), relej (relej, prima poruke od jednog ili više generatora i prenosi ih jednom ili više sakupljača ili sledeći releji). Generator (ili relej prilikom odašiljanja) ne zna da li je prijemnik relej ili kolektor, može prenijeti jednu poruku na više prijemnika, može samu poruku obraditi (npr. upisivanje u datoteku).

    Protokol syslog ne sadrži nikakvu zaštitu od krivotvorenja poruka. Gore od toga, upotreba UDP protokola omogućava napadačima da šalju poruke u ime bilo kojeg domaćina. LAN mora biti zaštićen (IOS ACL, ipchains) od primanja paketa sa lažnim lokalnim adresama (iako to ne sprečava slanje lažnih poruka iz LAN-a) i od primanja paketa izvana na portu 514/udp. Poznati su slučajevi prepune diska sa lažnim porukama.

    Protokol syslog i UDP ne pružaju zagarantovanu isporuku (poruke mogu biti izgubljene zbog zagušenja mreže ili presretnute, oštećene poruke se brišu bez upozorenja), ispravan redoslijed isporuke (poruka o završetku procesa može stići prije poruke o pokretanju procesa), prioritetna isporuka.

    Povjerljivost poruka nije osigurana, jer se prenose u čistom tekstu.

    Ako navedete pogrešnu adresu sakupljača ili releja prilikom postavljanja generatora poruka, tada neće biti poruka o grešci - poruke će biti obrisane (ili upisane u tuđi dnevnik;).

    Ne postoje načini za sprječavanje petlje prijenosa poruka pogrešno konfiguriranim relejima.

    RFC 3195 predlaže novi protokol preko TCP-a (syslog-conn, 601) koji obezbeđuje zagarantovanu isporuku u ispravnom redosledu. Implementacija mi nije poznata. Monstruozna mješavina XML-a, komandi i povratnih kodova u SMTP stilu, i MIME (BEEP) zaglavlja koja omotavaju poruke standardnog formata syslog-a. Koriste se dva načina rada - RAW (analogno trenutnom UDP protokolu) i COOKED (poruke su strukturirane po poljima). BEEP vam omogućava da obezbedite autentifikaciju, integritet i poverljivost (SASL, TLS).

    Syslog-sign RFC projekat predlaže da se obezbedi autentikacija, redosled poruka, integritet poruka i detekcija poruka koje nedostaju generisanjem posebnih poruka koje sadrže digitalni potpis bloka prethodnih poruka, čuvajući standardni protokol i format syslog, i koristeći UDP. Koristi SHA1, OpenPGP DSA.

    Port 514/UDP se koristi za primanje poruka. Također se preporučuje korištenje izvornog porta 514 za prosljeđivanje poruka. Poruka je tekstualni niz i ne može biti duža od 1024 bajta, inače se može skratiti ili čak baciti. Čak i pogrešno oblikovana poruka poslana na port 514 treba se tretirati kao poruka syslog. Međutim, ako relej šalje poruku dalje, mora joj dodati standardna zaglavlja (moguće skraćivanje na 1024 bajta) - KORISNIK, OBAVIJEST, njegovo lokalno vrijeme i jednostavno ime izvora poruke.

    Poruka počinje PRI poljem, koje kodira informacije o izvoru poruke (sredstvu) i nivou ozbiljnosti (nivo ozbiljnosti) poruke. Iza njega slijedi vrijeme (TIMESTAMP), razmak, ime hosta ili IP adresa u decimalnom zapisu (HOSTNAME), razmak, prilagođeni tekst poruke (MSG) u US-ASCII (0x20 - 0x7e).

    Ime hosta (jednostavno, ne FQDN!) je napisano onako kako je poznato generatoru poruka. Ako uređaj ima više interfejsa sa različitim IP adresama, onda se bilo koji od njih može koristiti kao ime ili adresa hosta.

    Tijelo poruke (MSG) obično sadrži oznaku (TAG) koja označava program ili proces koji je izdao poruku i tijelo poruke (CONTENT). Oznaka može sadržavati latinična slova i brojeve. Početak tijela poruke određen je prvim posebnim znakom, obično dvotočkom ili otvorenom uglastom zagradom. Na primer, Cisco IOS koristi redni broj poruke i dvotačku kao oznaku, dok Unix koristi jednostavno ime programa (telo poruke počinje brojem procesa u uglastim zagradama i dvotačkom).

    syslogd prima poruke sa porta 514/UDP i iz lokalnih izvora (socket /dev/log), usmjerava ih ovisno o izvoru poruke i nivou ozbiljnosti. Omogućava vam da šaljete poruke u dnevnik, izlaz na konzolu, na terminal, šaljete na drugi server. Uvodi se dodatni tip izvorne MARK (obične oznake, info)

    Svaki redak dnevnika sadrži jedan unos poruke, koji se sastoji od polja razdvojenih razmacima:

    • datum u standardnom tekstualnom formatu (TIMESTAMP polje iz syslog poruke)
    • ime hosta (fqdn ili skraćenica, polje HOSTNAME iz syslog poruke)
    • tekst poruke (TAG i CONTENT polja iz syslog poruke)

    Parametri pokretanja:

    • -a dodatna-utičnica za slušanje (korisno za chrooting demona; može biti više od jednog)
    • -d(način otklanjanja grešaka)
    • -f config-file-name (zadano, /etc/syslog.conf)
    • -h(promijenite uobičajeno ponašanje da se poruke primljene od udaljenih hostova ne prosljeđuju kako bi bile zapisane udaljenom hostu kako bi se izbjeglo ponavljanje)
    • -l host-list (lista hostova čija imena ne treba pisati kao FQDN; odvojeno dvotočkom)
    • -m minuta (interval za redovne privremene unose; zadana vrijednost je 20; ako je 0, onda to uopće nemojte raditi)
    • -n
    • -p slušalica (zadano: /dev/log)
    • -r(dozvoli primanje poruka sa udaljenih hostova; firewall bi trebao biti otvoren; syslog za 514/udp bi trebao biti definiran u /etc/services)
    • -s lista domena (odrezati imena hosta od specificiranih imena domena; odvojeno dvotočkom; zadana postavka je skraćenje domene koja odgovara domeni servera syslog)
    • -v
    • -x(zabranjuje određivanje imena hosta iz njegove adrese, sprečava zastoj kada se radi na istom hostu kao DNS server)

    Korišteni fajlovi:

    • /etc/syslog.conf- konfiguracijski fajl (promijenjen pri pokretanju po parametru -f)
    • /dev/log- socket iz kojeg se čitaju lokalne poruke (promijenjeno pri pokretanju po parametru -p)
    • /var/run/syslogd.pid- ID procesa

    Reakcija na signale:

    • SIGHUP - reinicijalizacija (zatvara sve fajlove, ponovo čita konfiguracioni fajl)
    • SIGTERM - isključenje
    • SIGINT, SIGQUIT - izlaz ako je debagovanje onemogućeno
    • SIGUSR1 - omogući/onemogući otklanjanje grešaka (samo kada se koristi -d prekidač)

    Pokreće se kao root. Ne mijenja dozvole za fajlove. Ako je primoran da kreira fajl, onda ga kreira sa dozvolama 644. Ako je potrebno ograničiti pristup dnevniku, odgovarajući fajl se mora kreirati ručno (ili se moraju promeniti prava pristupa). Stvara posebne probleme logrotate.

    Predstavlja skup pravila usmjeravanja poruka. Svako pravilo se sastoji od selektora i radnje odvojene tabovima (u starijim sistemima, Solaris 5) ili razmacima (Linux). Nakon što primi poruku koju treba prijaviti (od klogd-a, iz lokalnog ili udaljenog programa), syslogd provjerava svako pravilo da vidi da li se poruka poklapa sa šablonom koji je odredio selektor. Ako se podudara, tada se izvršava radnja navedena u pravilu. Za jednu poruku m. izvršen je proizvoljan broj radnji (tj. obrada poruke se ne zaustavlja pri prvom uspjehu).

    Selektor se sastoji od dva dela odvojena tačkom: izvora poruke i nivoa ozbiljnosti. Velika i mala slova se ne razlikuju. Možete koristiti i brojeve (pogledajte /usr/include/syslog.h). Pored izvora definiranih u syslog.3, možete specificirati mark(redovne vremenske oznake), sigurnost(zastarjeli sinonim za auth). Pored nivoa ozbiljnosti definisanih u syslog.h, možete koristiti upozoriti(sinonim za upozorenje), greška(sinonim za err), panika(sinonim za emerge). Poruke čiji je nivo jednak ili veći od navedenog u selektoru i izvor jednak navedenom u selektoru smatraju se prihvatljivim. Zvezdica ispred tačke odgovara bilo kom izvoru, posle tačke - bilo kom nivou. Riječ nijedan nakon tačke - nema nivoa za ovaj izvor. Možete navesti više izvora u jednom selektoru (odvojeni zarezima). Više selektora može biti specificirano u istoj liniji. Semantika nije jasna: ako koristite pozitivne selektore, onda logično ILI, ako je negativan ( nijedan i uzvičnik), zatim logički I.

    U novom syslogd-u (linux), možete prethoditi nivou sa znakom jednakosti - samo poruke sa navedenim nivoom (ali ne i sa najvišim) će odgovarati selektoru; uzvičnik - neće odgovarati porukama sa nivoom jednakim ili većim; uzvičnik i jednak - neće odgovarati porukama sa nivoom jednakim navedenom.

    Kao radnju, možete odrediti:

    • regularno ime datoteke (puna putanja od korijena), minus ispred imena onemogućava sinhronizaciju pisanja
    • imenovani kanali - fifo (pre naziva se postavlja okomita traka), sam kanal bi trebao biti kreiran prije pokretanja syslogd-a naredbom mkfifo
    • terminala ili konzole
    • @hostname (prosljeđivanje poruka za daljinsko evidentiranje)
    • lista korisnika (odvojenih zarezima) na čije terminale će poruka biti poslana
    • zvjezdica za slanje poruke na sve terminale (zid)

    Prilikom raščlanjivanja konfiguracijskog fajla syslogd upoređuje adresu loghost(definisano u /etc/hosts, ne preko DNS-a) sa adresom vašeg računara, i ako se poklapa, definiše promenljivu LOGHOST. Syslog.conf se zatim prosljeđuje kroz m4(1) makro procesor. U osnovi, ovo se koristi tako da se ista konfiguraciona datoteka može koristiti na klijentu i serveru (sa stanovišta syslog-a) hostovima.

    Postupak pokretanja i zaustavljanja: /etc/init.d/syslog(linkovi do njega iz /etc/rc?.d direktorija). Broj procesa je pohranjen u /etc/syslog.pid.

    klogd čita poruke kernela (bilo kroz /proc/kmsg ili putem sistemskih poziva), određuje nivo, pretvara adrese komandi u imena programa i prosljeđuje poruku syslogd-u.

    Parametri pokretanja:

    • -c nivo(poruke ovog nivoa i one manje ozbiljne će biti poslate u syslog, a one ozbiljnije će biti izlazne na konzolu; podrazumevano je 7; 0 se ne može specificirati)
    • -d(način otklanjanja grešaka)
    • -f Ime dokumenta (logirajte se u navedenu datoteku umjesto u syslog)
    • -i(ponovno učitajte simbole modula u već pokrenutom klogd-u, moraju se koristiti svaki put kada se modul učitava ili isprazni; nadamo se da trenutne verzije insmod, rmmod i modprobe to rade same)
    • -Ja(ponovno učitajte simbole kernela i modula u već pokrenutom klogd-u)
    • -k Ime dokumenta (koristite navedenu datoteku kao tablicu simbola kernela umjesto /boot/System.map)
    • -n(nemojte ići u pozadinu; potrebno je pokrenuti iz init-a)
    • -o(jednokratni način rada - zabilježite sve poruke akumulirane u baferu kernela i izađite)
    • -p(za svaki slučaj, ponovo učitajte tablicu simbola modula u vrijeme prijevoda adrese - kernel možda neće moći to učiniti)
    • -s(koristite samo sistemske pozive i ne pristupajte /proc/kmsg da biste dobili originalne poruke)
    • -v(prikaži verziju i izađi)
    • -x(ne pretvarajte adrese u imena)
    • -2 (poruke o padu kernela - Ups! - emituju se dva puta: prije konverzije adrese u ime - za ksymoops - i poslije)

    Nivoi poruke kernela (određeni brojem u uglastim zagradama i pretvoreni u nivo ozbiljnosti syslog, nepromijenjeni kada se izlaze u datoteku):

    • KERN_EMERG - 0 (sistem je neupotrebljiv)
    • KERN_ALERT - 1 (radnja se mora poduzeti odmah)
    • KERN_CRIT - 2 (kritični uslovi)
    • KERN_ERR - 3 (uslovi greške)
    • KERN_WARNING - 4 (uvjeti upozorenja)
    • KERN_NOTICE - 5 (normalno, ali značajno stanje)
    • KERN_INFO - 6 (informativno)
    • KERN_DEBUG - 7 (poruke na nivou otklanjanja grešaka)

    Reakcija na signale:

    • SIGINT, SIGKILL, SIGTERM i SIGHUP - isključenje
    • SIGTSTP - zaustavi evidentiranje
    • SIGCONT - životopis, eventualno odabirom nekog drugog
    • izvor poruke (/proc/kmsg ili sistemski pozivi)
    • SIGUSR1 - ponovno učitavanje simbola modula
    • SIGUSR2 - ponovno učitavanje simbola kernela i modula

    Broj procesa je pohranjen u /var/run/klogd.pid.

    Inicijalizacija zapisivanja: open log- označava standardni prefiks koji se dodaje svim narednim porukama (obično ime programa, broj procesa u uglastim zagradama i dvotačka); izvor i opcije. closelog- završiti evidentiranje. syslog- evidentiranje (označava izvor, nivo ozbiljnosti i format linije kao u printf).

    logrotate(verzija 3.2-1/3.3.2-1/3.5.9) - borba protiv rastućih dnevnika: rotacija (verzija), kompresija, brisanje i slanje poštom. Pokreni svakodnevno cron /etc/cron.daily/logrotate) i omogućava vam obradu dnevnika ako su premašili navedenu veličinu ili u određenom vremenskom intervalu. Omogućava vam da obrađujete ne samo syslog dnevnike, već i sve druge programe. Parametri:

    • [-d](režim za otklanjanje grešaka, bez stvarnih promjena)
    • [-f](učinite promjene čak i ako logrotate ne vidi potrebu - koristi se prilikom promjene liste obrađenih dnevnika)
    • [-s ime-datoteke stanja ] (trenutno stanje dnevnika je pohranjeno u ovoj datoteci između pokretanja, zadana vrijednost je /var/lib/logrotate.status)
    • imena konfiguracionih datoteka (imena razdvojena razmakom; red je bitan; ako je specificirano ime direktorija, svaka datoteka u njemu se smatra konfiguracijskom datotekom; RH koristi datoteku /etc/logrotate.conf i imenik /etc/logrotate.d)

    Konfiguracijski fajl definira globalne opcije (jednu po redu) koje postavljaju zadane opcije za sve dnevnike. Za svaku seriju dnevnika koje treba obraditi, lokalne opcije su specificirane navođenjem osnovnog imena datoteke praćenog lokalnim opcijama u vitičastim zagradama, po jedna po redu. Ime datoteke se može navesti u skladu s pravilima ljuske ako sadrži razmake i druge posebne znakove. Možete navesti više naziva datoteka ili obrazaca naziva datoteka odvojenih razmakom (šabloni također slijede pravila ljuske). Obrada svake sekcije se tretira kao jedna radnja. Redovi koji počinju sa "#" su komentari. Opcije navedene u sljedećoj konfiguracijskoj datoteci nadjačavaju značenje opcija navedenih u prethodnoj datoteci. Lokalne postavke imaju prednost nad globalnim. Redoslijed datoteka u konfiguracijskom direktoriju nije definiran.

    Parametri:

    • komprimirati | nema kompresije(starije verzije komprimiraju ili ne komprimiraju pomoću gzipa)
    • komprimirati cmd(određuje program kompresije, default je gzip)
    • raspakujte cmd(postavlja dekompresor, default je ungzip)
    • compressext(postavlja sufiks za komprimirane datoteke)
    • compressoptions(postavlja parametre programa kompresije; zadana postavka je "-9", tj. maksimalna kompresija za gzip)
    • copytruncate | nocopytruncate(obično se stara verzija preimenuje i kreira se nova verzija dnevnika; sa ovom opcijom, logrotate kopira dnevnik u novu datoteku, a zatim skraćuje staru; koristi se ako program koji kreira dnevnik ne zna kako da se zatvori unosi napravljeni u intervalu između kopiranja i skraćivanja su izgubljeni; da li bi pomoglo ako program za bilježenje umjesto korištenja načina dodavanja samo piše u datoteku koristeći interni pokazivač?)
    • stvoriti[ dozvole vlasnik grupa] | nocreate(odmah nakon preimenovanja stare verzije časopisa i prije poziva postrotate kreira se novi dnevnik sa navedenim atributima - dozvole su specificirane u oktalnom obliku, kao u chmod.2; ako atributi nisu navedeni, onda su preuzeti iz starog dnevnika)
    • dnevno(promjena verzija u seriji se dešava svakodnevno)
    • delaycompress | nodelaycompress(neki programi ne zatvaraju dnevnik odmah, u kom slučaju kompresiju treba odgoditi do sljedećeg ciklusa)
    • greške email (kome prijaviti greške)
    • proširenje sufiks (određuje sufiks koji se dodaje imenima datoteka tokom rotacije prije sufiksa kompresije)
    • ifempty | notifempty(promijenite verzije čak i ako je datoteka prazna; zadano)
    • uključiti Ime dokumenta | ime-direktorija (tekstualno zamijenite datoteku ili sve datoteke iz navedenog direktorija; poddirektorijumi, posebne datoteke i datoteke sa sufiksima sa liste isključenja nisu uključene; ne mogu se koristiti unutar odjeljka)
    • mail adresa | nomail(kada promjena verzije zahtijeva brisanje starog dnevnika, a zatim ga pošaljite na navedenu adresu)
    • mailfirst(pošalji ne izbrisanu verziju dnevnika, već prvu)
    • maillast(pošalji verziju dnevnika za brisanje; zadano)
    • missingok | nomissingok(nemojte slati poruke o grešci ako dnevnik nedostaje)
    • mjesečno(verzija se mijenja mjesečno)
    • olddir imenik | noolddir(tokom promjene verzije, dnevnik se premješta u navedeni direktorij; mora biti na istom fizičkom uređaju)
    • postrotate endscript se izvršavaju kao naredbe ljuske nakon procesa promjene verzije)
    • prerotate(svi dalji redovi do linije endscript se izvršavaju prije procesa promjene verzije)
    • rotirati broj (koliko starih verzija treba zadržati; ako je 0, onda nijedna)
    • veličina bajt (promjena verzije se događa ako veličina dnevnika prelazi navedeni broj; možete koristiti sufikse "k" - kilobajt - i "M" - megabajt)
    • zajedničke skripte | nosharedscripts(izvrši komande prerotate i postrotate samo jednom za sve datoteke opisane u odjeljku)
    • tabooext [+ ] sufiks-list (postavljanje liste sufiksa za isključenje za uključiti; ako je naveden znak plus, tada dodavanje, u suprotnom zamjena; default: .rpmorig, .rpmsave, .rpmnew, ",v", .swp i "~")
    • sedmično(verzija se mijenja sedmično)

    Isporučuje RH /etc/logrotate.conf opisuje globalne opcije i opcije za /var/log/wtmp i /var/log/lastlog i upućuje na direktorij /etc/logrotate.d, u koji svaki paket upisuje lokalne postavke za svoje dnevnike.

    logwatch je okvir za pisanje programa (koji se nazivaju filteri) za izdvajanje korisnih informacija iz brojnih, velikih i raznolikih dnevnika (ne samo syslog). "Paket" dolazi sa nekoliko filtera dizajniranih za Red Hat Linux (neka drevna verzija, jer se spominje inetd umjesto xinetd), ali ćete ih morati sami prilagoditi određenoj situaciji. Posljednju promjenu autor je izvršio u septembru 2000. godine, tako da se daljnji razvoj više ne može očekivati.

    Filteri se mogu napisati na bilo kojem programskom jeziku, ali autor paketa preferira perl. Filteri moraju biti napisani na takav način da čitaju podatke iz stdin i izlaze rezultat u stdout. Prije pozivanja filtera, postavljaju se sljedeće varijable okruženja: LOGWATCH_DATE_RANGE, LOGWATCH_DETAIL_LEVEL, LOGWATCH_TEMP_DIR, LOGWATCH_DEBUG. Glavni program je takođe napisan u perlu: /etc/log.d/scripts/logwatch.pl(/etc/log.d/logwatch, /usr/sbin/logwatch i /etc/cron.daily/00-logwatch su simbolične veze ka njemu).

    Imenik /etc/log.d/conf/logfiles/ sadrži konfiguracijske datoteke grupe dnevnika koje pohranjuju zapise održavanih usluga. Svaka grupa je opisana u posebnom fajlu ime grupe.conf, koji specificira:

    • LogFile = ime datoteke koja sadrži dnevnik, ili obrazac imenovanja; može se specificirati više imena ili obrazaca; imena mogu biti u odnosu na LogDir
    • Arhiva = ime datoteke kreirane logrotiranjem arhivirane verzije dnevnika, ili obrazac imenovanja; može se specificirati više imena ili obrazaca; imena mogu biti u odnosu na LogDir
    • imena filtera ( samo jednom, iako je drugačije prikazano!) od /etc/log.d/scripts/shared/ as
      *naziv-filtera = parametri , na primjer, za filtriranje dnevnika po datumu ako je u standardnom syslog formatu, koristite red:
      *PrimjenaStdDate=

    Imenik /etc/log.d/conf/services/ sadrži konfiguracijske datoteke za usluge čije će zapise dnevnika logwatch obraditi. Svaka usluga je opisana u posebnom fajlu naziv usluge.conf, koji specificira:

    • LogFile = ime grupe dnevnika
    • filter imena iz /etc/log.d/scripts/shared/ as
      *naziv-filtera = parametri , pokrenut prije servisnog filtera
    • $ime-varijable okruženja = značenje

    Imenik /etc/log.d/scripts/logfiles/ sadrži filtere za obradu grupa dnevnika: prilikom obrade grupe dnevnika, sve datoteke u direktoriju /etc/log.d/scripts/logfiles/ ime grupe koriste se kao filteri.

    Imenik /etc/log.d/scripts/services/ sadrži filtere za obradu zapisa određenih usluga.

    Imenik /etc/log.d/scripts/shared/ sadrži uobičajene filtere koji se koriste u konfiguracijskim datotekama grupe dnevnika:

    • applystddate - filtrira dnevnik prema traženom datumu, ako je napisan u syslog formatu (ovdje i u privatnim filterima po datumu, ubacite LANG= prije datuma pozivanja, inače se Mar ni na koji način ne poklapa sa Mar;)
    • expandrepeat - pretvara redove "posljednje poruke ponovljene" u odgovarajući broj redova s ​​tekstom poruke iz prethodnog reda
    • onlycontains - ostavlja samo one redove dnevnika koji sadrže navedeni niz (stavio sam navodnike oko "$*")
    • onlyservice - odabire iz log formata syslog linije koje se odnose na navedenu uslugu (ime usluge se prosljeđuje kao parametar)
    • ukloniti - ostavlja samo one redove syslog dnevnika koji ne sadrže navedeni red ( Stavio sam navodnike oko "$*" i učinio sam remove1, remove2, itd. jer nisam razumio kako navesti nekoliko podobrazaca za egrep u jednom redu; usput, parametri se zamjenjuju u ljusci, tako da se ne mogu koristiti ni specijalni znakovi)
    • removeheaders - uklonite standardna polja (datum, vrijeme, ime hosta, oznaka usluge i broj procesa)
    • removeservice - uklanja redove iz syslog dnevnika koji nisu povezani sa navedenom uslugom (ime usluge se prosljeđuje kao parametar)

    Zadani parametri su pohranjeni u datoteci /etc/log.d/conf/logwatch.conf (/etc/log.d/logwatch.conf ima simboličku vezu do njega), komentari u kojima je moguće razumjeti značenje od parametara:

    • LogDir - direktorij u odnosu na koji se razmatraju nazivi datoteka
    • MailTo - kome poslati izvještaj
    • Štampaj - umjesto slanja izvještaja poštom, odštampajte ga na stdout
    • Sačuvaj - umjesto slanja izvještaja poštom, on će ga sačuvati u navedenu datoteku
    • Arhive - koristite verzije dnevnika koje generiše logrotate
    • Raspon - razmatrani vremenski interval: Sve, Danas, Jučer (jučerašnji kalendarski dan)
    • Detalj - nivo detalja izveštaja: od 0 do 10 ili Nizak, Srednji, Visok
    • Usluga - Sve ili naziv filtera iz /etc/log.d/scripts/services/ (može se navesti više filtera)
    • LogFile - Ime svih ili grupe dnevnika (može se navesti više grupa)

    Parametri pokretanja:

    • --detalj nivo (nivo opširnosti izvještaja: visok, srednji ili nizak)
    • --logfile log-group (obraditi samo dnevnike ove grupe; grupa je specificirana simboličkim imenom u konfiguracijskoj datoteci; može se specificirati više grupa)
    • --usluga naziv usluge (obraditi samo one unose dnevnika koji se odnose na ovu uslugu; usluga je specificirana simboličkim imenom u konfiguracijskoj datoteci; može se navesti više usluga; ime Sve uzrokuje obradu zapisa za sve usluge)
    • --print(izvještaj na stdout)
    • --mailto adresa (izvještaj poslati na navedenu adresu)
    • --sačuvaj Ime dokumenta (napišite izvještaj u navedeni fajl)
    • --arhive(obradite ne samo trenutne verzije dnevnika, već i stare kopije kreirane logrotate)
    • --domet datum-interval (obraditi samo one unose u dnevnike koji pripadaju datom vremenskom intervalu: Jučer, Danas, Sve)

    Glavna upotreba je uključiti datoteku 00-logwatch (počinje sa "00" za pokretanje prije logrotate) u /etc/cron.daily direktorij, što uzrokuje da se logwatch pokreće svakodnevno sa zadanim opcijama.

    Nažalost, svi filteri su dizajnirani tako da osiguraju da su dnevnici napisani na istom hostu na kojem servis radi.

    Svi logovi se čuvaju na jednom računaru (ako ste paranoični, možete pisati dnevnike na dva servera odjednom).

    Korespondencija između formalnog imena izvora i stvarnog uređaja ili programa:

    • local0-Cisco
    • local3 - ftp (postoji posebno ime izvora, ali Solaris 2.5 ga ne zna)
    • local4 - rezervirano za računovodstvo
    • local5 - POP3/IMAP
    • local6-tac_plus>

    Server mora imati otvoren ekran za port 514/udp (možete ograničiti izvorne adrese paketa, ali to će pomoći samo protiv nezgoda). Pokretanje syslogd-a (opcije u /etc/rc.d/init.d/syslog ili /etc/sysconfig/syslog) mora biti sa prekidačima "-r -m 0" (i takođe "-x" ako se pokreće na istom računaru DNS server). Pokretanje klogd sa prekidačima "-2 -c 1". Postavljanje syslog.conf:

    • *.crit - šalje poruke CRIT nivoa ozbiljnosti i više na terminale i upisuje ih u zasebnu datoteku (chmod 600), šalje svoje poruke na backup server; sendmail smatra primanje poruka kritičnim
    • kern - kreirajte kern fajl za poruke svih nivoa (chmod 600)
    • mail - kreirajte mail fajl za poruke svih nivoa (bez sinhronizacije)
    • auth, authpriv - kreirajte siguran fajl za poruke svih nivoa (chmod 600)
    • vijesti - kreirajte zasebnu datoteku za svaki nivo ozbiljnosti u direktoriju vijesti (otklanjanje grešaka bez sinhronizacije)
    • cron - kreirajte cron fajl za poruke svih nivoa (cron u RH 6.2 i Solaris 2.5 ne znaju da koriste syslog)
    • local0 - kreirajte zasebnu datoteku za svaki nivo ozbiljnosti u cisco direktoriju (err i ispod bez sinkronizacije)
    • local3 - kreirajte zasebnu datoteku za svaki nivo ozbiljnosti u ftp direktoriju (informacije i otklanjanje grešaka bez sinkronizacije)
    • local5 - kreirajte datoteku imap.log za poruke svih nivoa
    • local6 - kreirajte tac_plus.log fajl za poruke svih nivoa
    • local7 - datoteka boot.log (poruke prilikom pokretanja sistema i pokretanja ili zaustavljanja syslogd i klogd)
    • sve poruke nivoa INFO i više koje nisu uključene u jednu od gore definisanih datoteka, upišite u datoteku poruka (chmod 600)

    Na klijentskim računarima konfigurišemo syslog tako da se sve poruke prenose na syslog server, poruke o greškama se dupliraju u /var/log/syslog, kritične statusne poruke se dupliraju na konzoli, korisničkim terminalima. Na linux računarima, također iznesite poruke o pokretanju u lokalnu datoteku (local7, boot.log). Rezervni sistemski server treba da prima poruke kritičnog nivoa od mreže i da ih upiše u datoteku (rupa na ekranu, prekidač za pokretanje "-r").

    logrotate: čuvajte zauvijek, mijenjajte verzije što je rjeđe moguće (mjesečno, osim za squid), dump u zasebne direktorije (osim za squid) i komprimirajte (u odloženom načinu rada, osim za ftpd, linuxconf, sendfax), šaljite greške i obrisane datoteke na ja. Podudaranje parametara za syslog.

    Prednaziv datoteke sa znakom za crtu (|) omogućit će vam korištenje fifo (prvi ušao - prvi izašao, prvi ušao, prvi izašao) ili imenovana cev kao primaoca poruka. Prije pokretanja (ili ponovnog pokretanja) syslogd-a, mora se kreirati fifo pomoću naredbe mkfifo. Ponekad se fifo koristi za otklanjanje grešaka.

    Terminal i konzola

    Terminal kao što je /dev/console.

    udaljena mašina

    Za prosljeđivanje poruka drugom hostu, ispred imena hosta stavite znak at (@). Imajte na umu da se poruke ne prosljeđuju sa primaoca. (da bi ovaj zadatak radio na klijentu i serveru u datoteci /etc/services linija mora biti napisana syslog 514/udp i otvorite UTP port 514)

    spisak korisnika

    Lista korisnika koji primaju poruke razdvojena zarezima (ako je korisnik prijavljen). Ovo često uključuje root korisnika.

    Svi registrovani korisnici

    Da biste obavijestili sve registrovane korisnike pomoću naredbe zid, koristite znak zvjezdice (*).

    Primjer jednostavnog syslog.conf:

    # Odštampajte sve poruke kernela na konzoli. #kern.* /dev/console # Svi logovi nivoa informacija ili više, osim e-pošte, i # ne evidentiraju autentifikacione poruke i cron daemon poruke! *.info;mail.none;authpriv.none;cron.none /var/log/messages # Zabilježite poruke koje sadrže povjerljive # informacije o autentifikaciji u zasebnu datoteku, bez obzira na njihov nivo. authpriv.* /var/log/secure # Sve poruke iz mail sistema se također pišu u posebnu datoteku. mail.* -/var/log/maillog # Zabilježi poruke planera u datoteku /var/log/cron cron.* /var/log/cron # Hitne poruke treba odmah # primiti svi korisnici sistema *.emerg * # Sačuvaj poruke vijesti kritičnog nivoa i više u poseban fajl. uucp,news.crit /var/log/spooler # Pohranjivanje poruka o pokretanju u boot.log local7.* /var/log/boot.log

    Kao i kod mnogih konfiguracijskih datoteka, sintaksa je:

    • redovi koji počinju sa # i prazni redovi se zanemaruju.
    • Simbol * može se koristiti za označavanje svih kategorija ili svih prioriteta.
    • Posebna ključna riječ none označava da se evidentiranje za ovu kategoriju ne bi trebalo izvoditi za ovu radnju.
    • Crtica ispred imena datoteke (kao -/var/log/maillog u ovom primjeru) označava da dnevnik ne treba sinhronizirati nakon svakog pisanja. U slučaju pada sistema, možete izgubiti informacije, ali onemogućavanje sinhronizacije će poboljšati performanse.

    U sintaksi konfiguracijske datoteke, možete staviti ispred prioriteta sign! da pokaže da se radnja ne smije primjenjivati, od ovog nivoa pa naviše. Slično, prioritet može imati prefiks znak = da naznači da se pravilo primjenjuje samo na taj nivo, ili != da pokaže da se pravilo primjenjuje na sve nivoe osim ovog. Ispod je nekoliko primjera (man syslog.conf možete pronaći još mnogo primjera):

    # Pošalji sve poruke kernela na /var/log/kernel. # Pošalji sve poruke kritičnog i višeg nivoa na udaljenu sysloger mašinu i konzolu # Pošalji sve informacije, obaveštenja i poruke nivoa upozorenja na /var/log/kernel-info # kern.* /var/log/kernel kern.crit @sysloger kern .crit /dev/console kern.info;kern.!err /var/log/kernel-info # Pošalji sve poruke sistema pošte osim nivoa informacija na /var/log/mail. mail.*;mail.!=info /var/log/mail

    Pokušao sam što jasnije prikazati rad syslogd-a na dijagramu:

    Pokretanje syslogd demona

    Pokretanje demona za logovanje se pokreće u fazi inicijalizacije sistema pomoću skripte /etc/rc.d/init.d/syslog, međutim, da biste postavili opcije pokretanja, nema potrebe za modifikacijom ove skripte - počevši od verzije 7.2, opcije pokretanja se čitaju iz zasebne konfiguracijske datoteke /etc/sysconfig/syslog (/etc/default/syslogu debianu).

    Evo nekih mogućih Parametri pokretanja syslogd demona:

    • -a /folder/socket- određivanje dodatne utičnice za slušanje (ne zaboravite unaprijed kreirati utičnicu)
    • -d- način otklanjanja grešaka. U ovom slučaju, demon ne ide u pozadinu i šalje sve poruke trenutnom terminalu;
    • -f config-file-name. Određuje ime alternativne konfiguracijske datoteke koja će se koristiti umjesto zadanog /etc/syslog.conf;
    • -l host-list- postavljanje liste hostova čija imena ne treba pisati punim imenom domene (FQDN - Full Qwalified Domain Name);
    • -m minuta- radi bez ove opcije, sysklogd bilježi poruke oznake kategorije (vremenske oznake) svakih 20 minuta. Sa -m opcijom, možete ili promijeniti interval između oznaka ili potpuno zaustaviti izdavanje takvih poruka;
    • -p utičnica- postavljanje alternativnog UNIX socketa (umjesto zadanog slušanja /dev/log);
    • -r- dozvola za primanje poruka od udaljenih hostova;
    • -x- zabrana određivanja imena hosta po njegovoj adresi kako bi se spriječilo zamrzavanje pri radu na istom hostu kao i DNS server.
    • -v- pokazati verziju i završiti posao

    Nakon pokretanja syslogd demona, kreira se statusna datoteka /var/lock/subsys/syslog nultu dužinu i datoteku s ID-om procesa /var/run/syslogd.pid.

    Sa komandom
    kill -SIGNAL `mačka /var/run/syslogd.pid`

    može se poslati syslogd daemon jedan od sljedećih signala: SIGHUP- ponovno pokretanje demona; SIGTERM- završetak radova; SIGUSR1- omogućiti/onemogućiti način otklanjanja grešaka.

    Zapravo, dva demona za logovanje su pokrenuta u sistemu - syslogd i klogd. Oba demona su uključena u paket syslogd.

    klogd daemon odgovoran za evidentiranje događaja koji se dešavaju u jezgro sistema. Potreba za posebnim klogd demonom je zato što kernel ne može koristiti standardnu ​​funkciju syslog. To je zato što su standardne C biblioteke (uključujući biblioteku koja sadrži funkciju syslog) namijenjene da ih koriste samo uobičajene aplikacije. Budući da kernelu također trebaju funkcije evidentiranja, ono uključuje vlastite biblioteke koje nisu dostupne aplikacijama. Stoga kernel koristi svoj vlastiti mehanizam generiranja poruka.

    klogd daemon dizajniran da organizuje obradu ovih poruka. U principu, ovu obradu može obaviti potpuno samostalno i nezavisno od syslogd-a, kao što je pisanje ovih poruka u datoteku, ali u većini slučajeva se koristi zadana postavka klogd, u kojoj se sve poruke iz kernela prosljeđuju istom syslogd-u. daemon.

    Automatska rotacija (ažuriranje popunjenih datoteka) i arhiviranje dnevnika

    Vremenom, datoteka evidencije ima tendenciju da raste, posebno kada se usluga intenzivno izvodi. U skladu s tim, potrebno je biti u mogućnosti kontrolirati veličinu trupaca. Ovo se radi pomoću logrotate komande, koji se obično izvodi cron daemon. Govorit ću o radu cron-a u sljedećim člancima. glavni cilj logrotate komande je periodično pravljenje rezervnih kopija dnevnika i kreiranje novih čistih dnevnika. Nekoliko generacija dnevnika se sprema i kada evidencija posljednje generacije istekne, može se arhivirati (komprimirati). Rezultat se može poslati poštom, na primjer, osobi odgovornoj za arhiviranje.

    Da biste odredili redoslijed rotacije i arhiviranja dnevnika, koristite konfiguracijski fajl /etc/logrotate.conf . Za različite dnevnike možete podesiti različitu periodičnost, na primjer, dnevnu, sedmičnu ili mjesečnu, osim toga, možete podesiti broj akumuliranih generacija, kao i odrediti da li će kopije arhiva biti poslane upravitelju arhive i, ako Dakle, kada. Ispod je prikazano primjer /etc/logrotate.conf fajl:

    # prvo postavite zadane parametre (globalne opcije) # ažurirajte log fajlove sedmično # pohranite arhivu dnevnika za posljednje 4 sedmice rotirajte 4 # kreirajte novi (prazni) fajl nakon rotacije (ažuriranja) kreirajte # dekomentirajte ako želite da su sačuvani fajlovi komprimirani #komprimirajte # omogući postavke rotacije iz navedenog direktorija uključuju /etc/logrotate.d # ne pohranjuj wtmp ili btmp -- postavke rotacije podataka dnevnika su sljedeće: /var/log/wtmp (nedostaje mjesečno kreiranje 0664 root utmp rotacija 1) / var/log/btmp ( missingok mjesečno kreiranje 0664 root utmp rotate 1 ) # specifični syslogovi se mogu konfigurirati ispod

    Globalne opcije su postavljene na početku fajl logrotate.conf. Koriste se prema zadanim postavkama osim ako je negdje drugo specificirano nešto konkretnije. U primjeru, dnevnici su rotirani sedmično i rezervne kopije se čuvaju za četiri sedmice. Čim se dnevnik rotira, novi se automatski kreira umjesto starog. logrotate.conf fajl može sadržavati specifikacije iz drugih datoteka. Dakle, uključuje sve datoteke iz direktorija /etc/logrotate.d.

    Ovaj primjer također sadrži posebna pravila za /var/log/wtmp i /var/log/btmp(pohranjivanje informacija o uspješnim i neuspješnim pokušajima ulaska u sistem), čija se rotacija događa mjesečno. Ako fajlovi nedostaju, ne daje se poruka o grešci. Nova datoteka se kreira i čuva se samo jedna sigurnosna kopija.

    U ovom primjeru, kada rezervna kopija dosegne posljednju generaciju, ona se briše jer nije definirano što s njom učiniti.

    Sigurnosne kopije dnevnika također se mogu generirati kada zapisnici dostignu određenu veličinu, a skripte se mogu generirati iz skupova naredbi za pokretanje prije ili nakon operacije sigurnosnog kopiranja. primjer:

    /var/log/messages (rotiraj 5 poruka [email protected] veličina 100k postrotate /usr/bin/killall -HUP syslogd endscript )

    U ovom primjeru rotacija /var/log/messages se proizvodi kada dostigne veličinu od 100 KB. Akumulira se pet rezervnih kopija, a kada najstarija istekne backup, šalje se poštom na adresu [email protected] Komandna riječ postrotate uključuje skriptu koja ponovo pokreće syslogd demon nakon što se rotacija završi slanjem HUP signala. Komandna riječ endscripta je potrebna za završetak skripte, a također i ako postoji skripta unaprijed. Pogledajte man stranice za logrotate za više informacija.

    Parametri, postavljen u konfiguracijskoj datoteci logrotate.conf:

    • komprimirati| nema kompresije(starije verzije komprimiraju ili ne komprimiraju pomoću gzipa)
    • komprimirati cmd(određuje program kompresije, default je gzip)
    • raspakujte cmd(postavlja dekompresor, default je ungzip)
    • compressext(postavlja sufiks za komprimirane datoteke)
    • compressoptions(postavlja parametre programa kompresije; zadana postavka je "-9", tj. maksimalna kompresija za gzip)
    • copytruncate| nocopytruncate(obično se stara verzija preimenuje i kreira se nova verzija dnevnika; sa ovom opcijom, logrotate kopira dnevnik u novu datoteku, a zatim skraćuje staru; koristi se ako program koji kreira dnevnik ne zna kako da se zatvori to; gubi se unosi napravljeni u intervalu između kopiranja i skraćivanja; da li bi pomoglo ako program za evidentiranje umjesto da koristi način dodavanja samo piše u datoteku koristeći interni pokazivač?)
    • stvoriti[dozvola-vlasnik-grupa] | nocreate(odmah nakon preimenovanja stare verzije časopisa i prije pozivanja postrotate, kreira se novi časopis sa navedenim atributima - dozvole se postavljaju u oktalnom obliku, kao u chmod.2; ako atributi nisu specificirani, onda se preuzimaju iz stari dnevnik)
    • dnevno(promjena verzija u seriji se dešava svakodnevno)
    • delaycompress| nodelaycompress(neki programi ne zatvaraju dnevnik odmah, u kom slučaju kompresiju treba odgoditi do sljedećeg ciklusa)
    • greškeemail(kome prijaviti greške)
    • proširenjesufiks(određuje sufiks koji se dodaje imenima datoteka tokom rotacije prije sufiksa kompresije)
    • ifempty| notifempty(promijenite verzije čak i ako je datoteka prazna; zadano)
    • uključitiIme dokumenta| ime-direktorija (tekstualno zamijeniti datoteku ili sve datoteke iz navedenog direktorija; poddirektoriji, posebne datoteke i datoteke sa sufiksima sa liste isključenja nisu uključene; ne mogu se koristiti unutar odjeljka)
    • mailadresa| nomail(kada promjena verzije zahtijeva brisanje starog dnevnika, a zatim ga pošaljite na navedenu adresu)
    • mailfirst(pošalji ne izbrisanu verziju dnevnika, već prvu)
    • maillast(pošalji verziju dnevnika za brisanje; zadano)
    • missingok| nomissingok(nemojte slati poruke o grešci ako dnevnik nedostaje)
    • mjesečno(verzija se mijenja mjesečno)
    • olddirimenik| noolddir(tokom promjene verzije, dnevnik se premješta u navedeni direktorij; mora biti na istom fizičkom uređaju)
    • postrotate(svi daljnji redovi do endscript linije se izvršavaju kao naredbe ljuske nakon procesa promjene verzije)
    • prerotate(svi daljnji redovi do endscript linije se izvode prije procesa promjene verzije)
    • rotiratibroj(koliko starih verzija treba zadržati; ako je 0, onda nijedna)
    • veličinabajt(promjena verzije se događa ako veličina dnevnika prelazi navedeni broj; možete koristiti sufikse "k" - kilobajt - i "M" - megabajt)
    • zajedničke skripte| nosharedscripts(izvršite naredbe unaprijed i naknadno samo jednom za sve datoteke opisane u odjeljku)
    • tabooext[+] sufiks-list(postavljanje liste sufiksa za isključenje za uključi; ako je naveden znak plus, onda dodavanje, inače zamjena; zadano: .rpmorig, .rpmsave, .rpmnew, ",v", .swp i "~")
    • sedmično(verzija se mijenja sedmično)

    Proučavanje i praćenje časopisa

    Unosi u dnevnik obično sadrže vremensku oznaku, ime hosta na kojem se izvodi opisani proces i naziv procesa. Pogledajte dnevnike Možete koristiti program za pejdžing, na primjer, manje, možete tražiti određene unose (na primjer, poruke kernela od određenog demona) koristeći naredbu grep:

    # manje /var/log/messages # grep "ppp" /var/log/messages | tail 17. decembar 16:34:25 proxy pppd: Veza prekinuta. 17. decembar 16:34:25 proxy pppd: Izlaz. 17. decembar 16:35:57 proxy pppd: LCP prekinut od strane peer-a (^P]kV^@

    Računar možda neće raditi stalno i isključiti se, recimo noću. Stoga se unosi u /var/log/messages ciklično pohranjuju od pokretanja računala do gašenja, što se može vidjeti iz poruka:

    17. decembar 08:32:56 syslog-server syslogd 1.4-0: restart. 17. decembar 08:32:56 syslog-server syslog: syslogd je pokrenut uspio 17. decembar 08:32:56 syslog-server kernel: klogd 1.4-0, izvor dnevnika = /proc/kmsg je pokrenut. 17. decembar 08:32:56 syslog-server syslog: pokretanje klogd-a uspjelo

    17. decembar 08:32:56 kernel syslog-servera: komandna linija kernela: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2 17. decembar 08:32:56 kernel syslog-servera: Memorija: 125652k/130560k dostupno (1365k kod kernela, 4200k rezervisano, 92k podataka, 236k init, 0k highmem) 17. decembar 08:32:56 kernel syslog servera: CPU: Intel(R) Pentium(R) 60 GHz CPU

    Takođe, u ovoj datoteci možete pronaći informacije o memoriji diska (uključujući informacije o geometriji diska, strukturi particija i korišćenim prekidima), informacije o perifernim uređajima, o pokretanju pojedinačnih servisa i usluga, informacije o povezivanju sistema datoteka i poruke za prijavu korisnika. , kao kao i poruke o greškama.

    Ponekad može biti potrebno sistemski log monitoring za traženje aktuelnih događaja. Na primjer, možete pokušati uhvatiti događaj koji se rijetko događa u trenutku kada se dogodio. U ovom slučaju možete koristiti naredbu rep sa opcijom -f za praćenje sadržaja sistemskog dnevnika. primjer:

    # tail -f /var/log/messages | grep syslog-server 17. decembar 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 17. decembar 16:46:09 syslog-server pppd: Script/ip-up/ završeno (pid 12552), status = 0x0 17. decembra 16:46:49 syslog-server pptpd: CTRL: kontrolna veza klijenta 85.175.197.65 je počela 17. decembra 16:46:49 syslog-server pptpd: CTRL: Pokretanje ppp poziva otvaranje GRE) 17. decembar 16:46:49 syslog-server pppd: Dodatak /usr/lib/pptpd/pptpd-logwtmp.so učitan.

    Pored log datoteka navedenih u /etc/syslog.conf, postoje i druge datoteke, kao što je datoteka koja pohranjuje informacije o procesu pokretanja sistema prije pokretanja syslogd, kao i datoteke koje imaju binarni format i pohranjuju informacije o posljednjoj prijavi korisnika na sistem, o svim uspješnim prijavama korisnika, odnosno o svim neuspješnim prijavama korisnika. Direktorij /var/log/ također može sadržavati datoteke dnevnika za demone kao što su web server ili proxy server. Format ovih datoteka je sličan syslogd zapisnicima.

    Na kraju, želio bih da naglasim da ovaj protokol nije baš siguran, jer. syslog ne sadrži nikakvu zaštitu od krivotvorenja poruka. Još gore, upotreba UDP protokola omogućava napadačima da šalju poruke u ime bilo kojeg domaćina. Vaš LAN mora biti zaštićen od primanja paketa s lažnim lokalnim adresama (iako to ne sprječava slanje lažnih poruka iz LAN-a) i od primanja paketa izvana na portu 514/udp. Poznati su slučajevi prepune diska sa lažnim porukama.

    Protokol syslog i UDP ne pružaju zagarantovanu isporuku (poruke mogu biti izgubljene zbog zagušenja mreže ili presretnute, oštećene poruke se brišu bez upozorenja), ispravan redoslijed isporuke (poruka o završetku procesa može stići prije poruke o pokretanju procesa), prioritetna isporuka.

    Povjerljivost poruka nije osigurana, jer se prenose u čistom tekstu.

    Ako navedete pogrešnu adresu sakupljača ili releja prilikom postavljanja generatora poruka, tada neće biti poruka o grešci - poruke će biti izbrisane (ili upisane u tuđi dnevnik).

    Predloženo je nekoliko projekata za poboljšanje syslog protokola. Na primjer, RFC 3195 predlaže TCP-bazirani sistem evidentiranja (syslog-conn) koji osigurava da se poruke isporučuju u ispravnom redoslijedu. Projekat syslog-sign predlaže da se obezbedi autentikacija, redosled poruka, integritet poruka i otkrivanje poruka koje nedostaju generisanjem posebnih poruka koje sadrže digitalni potpis bloka prethodnih poruka uz održavanje standardnog syslog protokola i formata i korišćenjem UDP-a.

    Da sumiramo malo:

    Linux ima jedan demon odgovoran za evidentiranje događaja lokalnog sistema i udaljenih sistema. Svi događaji se prikupljaju iz socketa /dev/log, UDP porta - 514, kao i iz "pomoćnog" klogd demona, koji šalje poruke iz kernela. Sve prikupljene poruke filtrira syslogd demon kroz pravila u datoteci /etc/syslog.conf i distribuira se na odgovarajuća odredišta u skladu sa pravilima. Datoteke evidencije se periodično "odsječu". Učestalost se određuje pomoću datoteke logrotate.conf i naredbe logrotate, koju pokreće sistemski planer - cron.

    To je sve za danas. Nadam se da sam sve najjasnije opisao. S vremenom ću dopuniti članak!

    S poštovanjem, Mc.Sim!

    SERGEJ SUPRUNOV

    FreeBSD savjeti: korištenje syslog-a

    - Dozvolite, drugovi, imam sve poteze zapisane!

    „Kancelarija piše“, reče Ostap.

    I. Ilf, E. Petrov "12 stolica".

    Evidentiranje rada svakog sistema, a posebno servera, jedna je od najvažnijih komponenti administracije. To je u log fajlovima koje prvo gledamo kada dođe do nekih problema u sistemu. Odatle crpimo povjerenje da ovaj ili onaj program funkcionira kako se očekuje. Prilikom razvoja web aplikacija, datoteka dnevnika postaje najvažniji izvor informacija za otklanjanje grešaka. Biće reči o karakteristikama syslog demona, koji je odgovoran za evidentiranje sistemskih informacija.

    Šta je syslog

    Syslog je centralizirana usluga koja prikuplja i bilježi informacije dnevnika iz različitih komponenti operativnog sistema i korisničkih procesa. Programi trećih strana obično su u mogućnosti da rade sa sopstvenim datotekama evidencije, iako se mnogi od njih mogu konfigurisati da rade i sa syslogd demonom. Prednosti korištenja syslog-a uključuju mogućnost upravljanja procesom prikupljanja potrebnih informacija koristeći jednu konfiguracijsku datoteku, koja osigurava uniformnost rezultirajućih log datoteka i, kao rezultat, pojednostavljuje njihovo upravljanje.

    Syslog uslugu obezbjeđuje demon syslogd, koji se automatski pokreće pri pokretanju sistema. Stalno boravi u memoriji, čeka poruke od drugih procesa i obrađuje ih u skladu sa svojim postavkama.

    Svaku poruku karakterizira nivo i izvor (objekat). Nivo definiše važnost poruke u smislu rada sistema. Datoteka syslog.h definira sljedeće nivoe (prioritete):

    Tabela 1. Nivoi poruka

    Nivo

    Opis

    emerg, panika

    Stanje "panike"

    uzbuna

    Stanje koje zahtijeva hitnu pažnju

    krit

    Kritično stanje

    greska, greska

    Druge greške u radu

    upozorenje, upozorenje

    Upozorenja

    Biljeska

    Poruke koje nisu greške ali ih treba zabilježiti

    info

    Informativne poruke (normalan rad)

    debug

    Informacije o otklanjanju grešaka

    Tabela 1 navodi nivoe poruke u opadajućem redoslijedu. Ovaj red će biti potreban kasnije kada se raspravlja o sintaksi konfiguracijskog fajla.

    Notacije na nivou poruke napisane u istoj liniji (npr. Emerg i panic) su sinonimi i mogu se koristiti bilo koje. Međutim, panika, greška i upozorenje (navedeni na drugom mestu u tabeli) smatraju se zastarelim i treba ih izbegavati prilikom uređivanja konfiguracione datoteke. Umjesto toga koristite emerg, err i warning.

    Mogući izvori poruka su navedeni u tabeli 2:

    Tabela 2. Izvori poruka

    Izvor

    Opis

    kern

    Kernel poruke

    auth, authpriv

    sigurnost

    Sigurnosne poruke (npr. sa firewall-a)

    konzola

    Poruke koje stižu na konzolu (/dev/console)

    syslog

    Izvorne syslog poruke

    cron

    poruke cron podsistema

    Poruke servisa vremena

    Poruke FTP serveri

    Ispis poruka podsistema

    mail

    Poštanske poruke

    vijesti

    Poruke servisa vijesti

    uucp

    Poruke UUCP

    daemon

    Poruke od drugih demona koji rade na sistemu

    korisnik

    Korisnički obrađuje poruke

    lokalno0-lokalno7

    Može se koristiti za različite potrebe korisnika (ponekad koristi sistem)

    Kada konfigurišete aplikaciju za rad sa syslog uslugom, navedite koju mogućnost ona koristi. Neki programi vam omogućavaju da sami odredite izvor. Na primjer, clamd daemon (glavni proces clamav antivirusa) po defaultu koristi local6, ali vam omogućava da navedete drugi izvor (parametar LogFacility u konfiguracijskoj datoteci). U nekim slučajevima može biti korisno kombinovati njegove poruke sa porukama e-mail servisa, navodeći LOG_MAIL kao izvor.

    Opcije pokretanja Daemona

    Za kompletnu listu opcija pokretanja, pogledajte syslogd man stranicu. Ovdje ćemo razmotriti samo neke od njih.

    Syslog može pisati dolazne poruke u datoteke dnevnika (koje se obično nalaze u direktoriju /var/log), poslati ih na konzolu ili povezani korisnički terminal, proslijediti ih udaljenom hostu ili ih poslati vanjskom uslužnom programu za obradu .

    Za umrežavanje, syslog koristi portove 514 (UDP i TCP). Počevši bez dodatnih opcija, syslogd će slušati na ovim portovima za dolazne poruke. Prekidač -s onemogućuje dolazne poruke, ali utičnice na portovima 514 su i dalje kreirane za odlazne veze tako da syslogd može slati poruke udaljenim hostovima. Udvostručenje prekidača (-ss) takođe onemogućava odlazne veze.

    Podrazumevano, syslogd se pokreće sa -s opcijom (pogledajte /etc/defaults/rc.conf, opcija syslogd_flags), tako da su dolazne veze odbijene. Ako želite da koristite syslog uslugu vašeg servera za opsluživanje više mašina, dodajte sljedeći red u /etc/rc.conf:

    syslogd_flags= ””

    On će nadjačati vrijednost postavljenu u /etc/defaults/rc.conf i syslogd će moći opsluživati ​​dolazne veze. Naravno, u ovom slučaju potrebno je osigurati potreban nivo sigurnosti, eliminirajući mogućnost da strani domaćini zapišu bilo šta u vaše logove. Prekidač -a vam omogućava da postavite ograničenja na dolazne veze (pogledajte man syslogd). Takođe, pravilno konfigurisan zaštitni zid igra važnu ulogu.

    Još jedan koristan prekidač, -l, omogućava vam da odredite dodatne datoteke utičnice koje syslogd sluša pored podrazumevanog /var/run/log. Na primjer, ovaj ključ je potreban kako bi syslog mogao poslužiti programe koji rade u chroot okruženju. Konkretno, ovako named radi od BIND-a 9. U FreeBSD-u 5.3, syslogd se pokreće sa sljedećim opcijama:

    # ps -vosak | grep syslog

    321?? Ss 0:01.67 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s

    Sintaksa konfiguracijske datoteke

    Zapisivanje je konfigurisano u datoteci /etc/syslog.conf. Podrazumijeva se da ga samo root korisnik može uređivati. Ova datoteka sadrži dvije vrste stringova - nazovimo ih uslovno "filteri" i "pravila".

    Niz filtera definira program ili host čije će poruke biti predmet sljedećih pravila. Filter poput "!prog" (ili "#!prog") označava da se sljedeći redovi odnose na dnevnike koje je generirao specificirani programski program. Sinonim za ovaj unos je "!+prog". Linija "!-prog", s druge strane, kaže da će se sljedeća pravila primjenjivati ​​na sve poruke osim onih koje dolaze iz prog programa. Dozvoljeno je navesti nekoliko programa odvojenih zarezima, dok se znak “+” ili “-” odnosi na cijelu listu.

    Ako je niz filtera postavljen na "+hostname", tada će se navedeni host koristiti kao izvor poruka koje će se obraditi narednim pravilima. Kao i kod programa, simbol "-" označava da će se pravila primjenjivati ​​na sve poruke osim onih koje dolaze od navedenog hosta. Možete navesti listu hostova odvojenih zarezima.

    Znak "*" naveden kao program ili host nadjačava prethodno postavljeni filter. To jest, pravila navedena nakon takve linije će se primijeniti na sve poruke. Filteri imena hosta ili programa su nezavisni jedan od drugog i mogu biti aktivni u isto vrijeme. Na primjer:

    # Pravila koja se nalaze ovdje važe za sve poruke

    my.host

    # Pravila se primjenjuju na sve poruke sa my.host

    drvosječa

    # Pravila se primjenjuju na poruke iz logera sa my.host (filter hosta je još uvijek na snazi)

    # Pravila se primjenjuju na poruke od su sa my.host

    # Pravila se primjenjuju na poruke od su sa bilo kojeg hosta (filter hosta je uklonjen, programski filter je i dalje na snazi)

    # Pravila se primjenjuju na sve poruke (filter programa je također otkazan)

    Linije pravila izgledaju ovako:

    odredište.CMPlevel

    Ovdje je facility izvor poruke ("*" označava sve izvore), nivo je nivo poruka koje će biti obrađene u skladu sa ovim pravilom. Servisna riječ "none", specificirana umjesto nivoa, upućuje na potpuno isključivanje poruka iz ovog izvora.

    CMP je operacija poređenja (simboli ">", "<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    Odredište označava gdje poruka treba biti sačuvana. To može biti log datoteka (naznačena je puna putanja, koja počinje sa "/"), adresa udaljenog servera (koja počinje simbolom "@"), korisničko ime (poruke će biti poslane na terminal na koji je ovaj korisnik povezan). Takođe, poruka se može prenijeti na eksterni program na obradu, za šta se koristi simbol cjevovoda "|".

    Neki primjeri pravila

    Sve poruke kernela bit će poslane u kern.log datoteku.

    kern.* /var/log/kern.log

    Sve poruke o greškama, kao i emerg, alert i crit level poruke, bit će smještene u all-err.log. Obratite pažnju na crticu ispred imena datoteke evidencije. Podrazumevano, poruke se baferuju u memoriju i zapisuju na disk kako se bafer puni. Ovo smanjuje opterećenje sistema datoteka, ali može uzrokovati gubitak nekih informacija ako se mašina sruši. Crtica ispred imena datoteke uzrokuje da demon syslogd odmah zapisuje poruke na disk.

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

    Poruke za otklanjanje grešaka iz korisničkih procesa bit će prikazane na terminalu na koji je korisnik vasya trenutno povezan.

    user.debug

    Sve poruke sa servisa vesti i e-pošte biće prosleđene na 514. port mašine syslog.host.ru.

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

    Sve poruke usluge štampanja ispod upozorenja biće smeštene u navedenu datoteku. Kao što je ranije spomenuto, zadana vrijednost je veća ili jednaka, a ! on je obrnut, zamenjujući ga sa "manje". Ako želite isključiti određeni nivo, trebali biste koristiti "!=" konstrukciju.

    lpr.!upozorenje /var/log/printers.log

    Poruke nivoa za otklanjanje grešaka (i samo njega) sa nivoom objekta 0 i nivoom 3 biće prikazane na svim povezanim terminalima.

    level0,level3.=debug *

    Poruke servisa vremena veće od kritične (tj. pojavljivanje i upozorenje) i manje od ili jednake obaveštenju (obaveštenje, informacije i debug) biće poslate terminalima ntpuser i root korisnika.

    ntp.>crit,<=notice ntpuser,root

    Sve poruke na nivou upozorenja, osim onih koje dolaze od mail servisa, bit će zapisane u warn.log datoteku.

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

    U ovom slučaju, sve poruke veće od ili jednake crit će biti poslane putem e-pošte root korisniku.

    *.crit | mail -s “kritična poruka” root

    Kao što možete vidjeti, format konfiguracijske datoteke omogućava da više nivoa, izvora i odredišta budu navedeni u istom redu, što konfiguraciju čini fleksibilnijom. Da bi promjene nakon uređivanja stupile na snagu, potrebno je poslati HUP signal procesu syslogd:

    # kill –HUP `mačka /var/run/syslog.pid`

    Treba napomenuti da ako određena poruka padne pod djelovanje nekoliko linija u konfiguracijskoj datoteci, tada će biti obrađena u skladu sa svakom od njih. primjer:

    mail.* /var/log/maillog

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

    U ovom slučaju, poruke mail.err će završiti i u maillog-u iu error.log.

    Strategija kompilacije konfiguracijske datoteke

    Završavajući pregled konfiguracijskog fajla, reći ću nekoliko riječi o strategijama za njegovo sastavljanje. Pored vrlo popularnog „samo da radi“, mogu se izdvojiti dva glavna, koje ćemo uslovno nazvati „po izvoru“ i „po odredištu“.

    • Prva strategija, koja se može vidjeti u brojnim GNU/Linux distribucijama, je pisanje različitog pravila za svaki izvor poruke (ili grupu pravila ako poruke različitih nivoa treba tretirati drugačije). Njegova prednost je jednostavnost određivanja gdje su napisane poruke određenih servisa.
    • Strategija "prema odredištu" je kreiranje, ako je moguće, samo jednog reda za svakog "primaoca" poruke, kao što je datoteka. Ovaj pristup posebno prati FreeBSD. Kao rezultat toga, lako je odrediti koje su informacije upisane u određenu datoteku dnevnika, ali, na primjer, odredišta za poruke kernela moraju se prikupiti u cijeloj konfiguracijskoj datoteci.

    logger utility

    Sistem uključuje uslužni program za evidentiranje koji vam omogućava da šaljete poruke syslog servisu direktno iz komandne linije. Pogodan je za korištenje pri testiranju pravila konfiguracije, kao iu razvoju skripti za evidentiranje njihovog rada. primjeri:

    user$ logger -p user.err “Greška u korisničkom programu!”

    user$ logger -h syslog.host.ru “Test it”

    Prvi primjer će poslati poruku od korisnika objekta nivoa err, koja će biti obrađena prema konfiguracijskom fajlu. Druga komanda će poslati poruku udaljenom hostu, zadani izvor i nivo će biti postavljeni na user.notice.

    Korištenje rotacijskih mehanizama

    Mehanizam evidentiranja koji je gore razmotren ne omogućava nikakvo upravljanje datotekama evidencije. Poruke se jednostavno postavljaju u njih prema pravilima opisanim u konfiguracijskoj datoteci. To znači da će datoteke dnevnika stalno rasti, a ako se ništa ne učini, prije ili kasnije će popuniti sav raspoloživi prostor odgovarajuće particije. Da bi se to izbjeglo, koristi se mehanizam rotacije.

    Na primjer, čim veličina datoteke debug.log pređe 100 MB, ona se preimenuje u debug.log.0 i pakira u debug.log.0.bz2. Umjesto toga, kreira se novi debug.log. Nadalje, kada veličina nove datoteke također dostigne 100 MB, debug.log.0.bz2 se preimenuje u debug.log.1.bz2, a gore opisani postupak se ponavlja. Sistem pohranjuje samo određeni broj arhivskih datoteka, brišući one najstarije. Ovo je rotacija.

    uslužni program newsyslog

    Na FreeBSD sistemu, rotacijom upravlja uslužni program newsyslog, koji po defaultu pokreće cron demon na početku svakog sata. Možete promijeniti period rotacije uređivanjem /etc/crontab.

    Parametri rotacije navedeni u gornjem primjeru (veličina datoteke, pakovanje), kao i niz drugih, postavljeni su u konfiguracijskoj datoteci /etc/newsyslog.conf. Za svaki fajl koji treba rotirati, sadrži niz sa ukupno devet polja: naziv datoteke, vlasnik i grupa, dozvole, najveći broj u nazivu arhivske datoteke, maksimalnu veličinu datoteke, period rotacije, dodatne oznake i putanju do PID datoteka aplikacije kojoj treba poslati signal nakon rotacije i broj signala koji se šalje. (Slanje signala procesu može biti potrebno, na primjer, ako proces drži datoteku dnevnika otvorenom cijelo vrijeme; ako se to ne učini, korišteni deskriptor datoteke neće odgovarati novokreiranoj datoteci.) Neka polja mogu biti izostavljena . Evo dva primjera, potpuni i "tipični":

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

    Prema ovom pravilu, pflog datoteka mora biti prepisana čim njena veličina pređe 100 MB (5. polje) bez obzira na vrijeme (simbol "*" u 6. polju). Arhivske datoteke će imati imena kao što su pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2, itd.), a X ne može biti više od tri (parametar 3 u 4. polju). Oznaka J označava da se arhivska datoteka treba komprimirati pomoću bzip2 uslužnog programa. Zahvaljujući B zastavici, servisne poruke rotacije neće biti dodane u arhivirane i novokreirane fajlove, jer se fajl doživljava kao binarni. Novokreirana datoteka će biti u vlasništvu root korisnika i grupe kotača (ovo polje može biti izostavljeno jer je ovaj vlasnik postavljen po defaultu). Dozvole će biti postavljene na rw------- (numerička vrijednost 600), tj. samo će vlasnik moći čitati i pisati u ovu datoteku. Konačno, 1 (HUP) signal će biti poslan procesu čiji je PID pohranjen u /var/run/pflog.pid da ponovo otvori svoju datoteku dnevnika.

    /var/log/maillog 640 7 * @T00J

    Ovo pravilo specificira opcije rotacije za maillog datoteku: bez obzira na veličinu (zvjezdica u 5. polju), datoteka će biti prepisana svake noći u 00:00 (u man newsyslog.conf format za određivanje vremena je opisan u dovoljno detalja). Arhiva mora biti spakovana, zadnjih 8 arhiva (brojanih od 0 do 7 uključujući) će biti sačuvano, novo kreirana datoteka će biti u vlasništvu root korisnika (podrazumevano, tako da je polje vlasnika izostavljeno) i imaće rw-r--- -- dozvole.

    Možete koristiti zcat i bzcat uslužne programe (za gzip i bzip2, respektivno) za pregled upakovanih datoteka dnevnika. Midnight Commander automatski poziva odgovarajuće uslužne programe.

    Nakon uređivanja newsyslog.conf datoteke, signali se ne moraju nigdje slati - konfiguracija će biti ponovo pročitana sljedeći put kada se newsyslog pozove.

    Imajte na umu da uslužni program newsyslog nije vezan za syslogd demon. To jest, može se koristiti za rotiranje svih datoteka kojima je to potrebno. Ako je rotacija omogućena za dnevnike koje aplikacija sama održava (na primjer, clamd ili squid dnevnike), onda budite posebno pažljivi oko navođenja vlasnika i prava pristupa. Njihovo netačno navođenje može dovesti do toga da aplikacija radi kao neprivilegirani korisnik nakon rotacije ne može pisati u novokreiranu datoteku.

    Sažimanje

    Sistem syslog je veoma moćan i efikasan alat za evidentiranje raznih događaja koji se dešavaju u sistemu. Podrazumevane postavke su prilično izbalansirane i dobro rade za većinu sistema. Ipak, razumijevanje kako syslog funkcionira omogućit će vam da značajno poboljšate kvalitet evidentiranja tako što ćete konfigurirati podatke za evidentiranje striktno u skladu sa vašim potrebama.