Beleženje sistema v Linuxu. konfiguracijska datoteka demona syslogd Beleženje omrežja

Seznam pogostih demonov UNIX/LINUX v operacijskem sistemu Windows imenujemo storitve, ki jih je mogoče uporabiti v različnih modifikacijah UNIX/LINUX. Imena demonov UNIX/LINUX se pogosto končajo s črko d kot okrajšava za angleščino. daemon Z ukazom top ali ps aux lahko preverite, ali se proces/demon izvaja.

Spodaj je seznam imen najpogostejših demonov in njihovih Kratek opis. Spodnji seznam demonov UNIX/LINUX ni popoln/izčrpen in vaš sistem UNIX/LINUX ima lahko enega, vse ali več prisotnih ali odsotnih, odvisno od različice/tipa/spremembe/konfiguracije vašega sistema UNIX/LINUX in nameščenega ima na sebi programsko opremo.

Proces/Daemon Opis procesa/demona
auditdauditd je revizijska komponenta za sisteme Linux. Vzdržuje revizijski dnevnik na disku, ki si ga lahko ogledate z ukazoma ausearch in aureport. Ukaz auditctl vam omogoča konfiguracijo revizijskih pravil. Poleg tega se ob zagonu naložijo pravila iz datoteke /etc/audit.rules. Nekatere parametre samega demona je mogoče konfigurirati v datoteki auditd.conf.
acpidacpid (demon dogodkov ACPI) - demon za odzivanje na dogodke ACPI, na primer odziv na pritisk gumba za vklop ali zapiranje pokrova prenosnika. Upravljanje porabe energije in interakcija med Linuxom in BIOS-om prek ACPI (Advanced Configuration and Power Interface) in APM. Načini "mirovanja" ACPI: S1 - vse spi, CPU v načinu minimalne aktivnosti; S3 - "Suspend to RAM" - vse gre v stanje spanja, CPE se izklopi; S4 - "Suspend to Disk" izpis stanja se shrani na disk, sistem se izklopi, po vklopu se sistem obnovi s prejšnjega mesta; S5 - izklop programske opreme. http://acpid.sourceforge.net/
pridizvede čakalno vrsto opravil na (1)
autofsOblika tabele za samodejno namestitev. Zemljevidi samodejne namestitve so lahko datoteke ali tabele NIS, na katere se sklicuje glavna tabela samodejne namestitve (glejte auto.master(5)). V tabelah je opisana lokacija datotečni sistemi, ki se samodejno namestijo na osnovne točke namestitve (nastavljene v datoteki auto.master). Ta dokument opisuje format sončne tabele; za druge formate (npr. hesiod) ta dokument ne velja.

Tabele lahko urejate sproti - te spremembe bodo upoštevane pri naslednji operaciji s to tabelo, vendar to ne velja za glavno tabelo auto.master!

biodDeluje v povezavi z oddaljenim nfsd za razreševanje zahtev odjemalcev NFS.
certmongerDemon certmonger nadzoruje in preverja veljavnost potrdil ter jih lahko po želji obnovi s CA. Upravlja lahko celoten postopek registracije od generiranja ključa do registracije in podaljšanja.
cgconfigTa skript zažene pripomoček cgconfigparser, ki razčleni in konfigurira datotečni sistem nadzorne skupine (cgroup). Za analizo se uporablja konfiguracijska datoteka /etc/cgconfig.conf in v njej definirani parametri.
cgredDaemon upravlja pravila cgroup :)
cpufreqSkript naloži module jedra za nadzor frekvence procesorja.
cpuspeedSpremeni frekvenco procesorja za varčevanje z energijo. Številni sodobni prenosni in namizni računalniki podpirajo to tehnologijo. Uporabljajo ga lahko uporabniki s procesorji Pentium-M, Centrino, AMD PowerNow, Transmetta, Intel SpeedStep, Athlon-64, Athlon-X2, Intel Core 2. Uporabnikom prenosnih računalnikov priporočamo, da pustijo ta demon omogočen. Onemogočite ta demon, če želite, da CPE uporablja vrednost fiksne frekvence.
crond
cupsdTiskalni strežnik. Kot dostop do oddaljenih tiskalnikov, dostop do lokalnih, dostop od zunaj do lokalnih.
dbusMedprocesni komunikacijski sistem ( Širši analog CORBA in DCOP)
dbus-daemonDaemon za delo s podatkovnim vodilom
dhcpdDaemon za dinamično določanje konfiguracije TCP/IP za odjemalce.
dnsmasqDemon, ki predpomni imena DNS in zagotavlja strežnik DHCP.
earlysyslogZagon demona syslog zagotavlja beleženje.
zgodnjixdmZagon strežnika X
esoundSound daemon, s podporo za oddaljeni dostop do zvočne kartice
esdZvočni strežnik za upravitelja oken Enlightenment in okolje GNOME. ESD meša zvočne tokove več sočasno delujočih programov in nastali tok oddaja na zvočno kartico. Spada v paket esound.
famFAM ( Nadzornik spreminjanja datotek) - nadzornik sprememb datotek. Demon FAM uporabljajo namizna okolja, kot so GNOME, Xfce in KDE, za sledenje in prikaz sprememb v datotečnem sistemu. Vključeno v fam paket. Ima opis na wiki.archlinux.org.
nadzor ventilatorjaNadzor hitrosti vrtenja procesorskega hladilnika. Del lm_sensors.
fbsetSkript, potreben za delovanje okvirnega medpomnilnika. Konfigurira svoje delovanje, vključno z nalaganjem modulov jedra.
festivalDemon, ki omogoča delovanje programov za branje besedila.
fingerdZagotavlja omrežni vmesnik za prstni protokol za uporabo z ukazom prst.
prvi zagonStoritev je specifična samo za Fedoro. Zažene se samo enkrat po namestitvi za nastavitev po namestitvi (nastavitev korenskega gesla, dodajanje uporabnikov itd.). Lahko se onemogoči po namestitvi sistema.
ftpdStoritev za prenos datotek preko FTP protokola.
funkcijeEden od skriptov za inicializacijo sistema Arch Linux. Opisuje funkcije, ki preglasijo vrednosti, uporabljene pri nalaganju v runlevel 3. Skript se uporablja le, če uporabnik uporablja runlevel 5. Je del začetnih skriptov.
gpmMiški strežnik za konzolo in xterm. Vsebuje istoimenski paket.
gpsdVmesnik za komunikacijo z GPS opremo. Večina uporabnikov ga lahko izklopi.
Haldaemon, halHAL pomeni plast abstrakcije strojne opreme. Kritična storitev za zbiranje informacij o opremi iz različnih virov. Priporočljivo je, da ga pustite omogočenega.
zaustavitevSkript za zaustavitev in ponovni zagon.
stop.lokalnoSkript, katerega ukaze je treba izvesti, preden se začne zaustavitev ali ponovni zagon.
zdravjeNastavi območje delovne temperature matične plošče/procesorja in hitrosti hladilnika. Je ena od komponent lm_sensors.
heimdal-kdcCenter za distribucijo ključev. Vključeno v paket heimdal.
httpdDemon spletnega strežnika Apache.
vUnix program, ki sproži vse druge procese.

Privzeto ima init daemon 7 ravni izvajanja, od katerih vsaka izvaja vnaprej določen niz sistemskih storitev.

Stopnje teka:
0 - Zaustavitev sistema
1 - Enouporabniški način delovanja
2-5 - Večuporabniški načini delovanja sistema

Več podrobnosti o ravneh izvajanja: less /etc/inittab

inetdSpremlja omrežne zahteve. Če je zahteva veljavna, zažene postopek v ozadju za storitev zahteve. Nekateri sistemi uporabljajo razširjeno različico - xinetd
iptablesStandardni požarni zid v Linuxu. Še posebej priporočljivo za neposredna povezava na internet (preko kabla, DSL, T1). Ni priporočljivo, če dodatno uporabljate strojni požarni zid (Netgear, Linksys, D-Link itd.).
ip6tablesStoritev iptables deluje po protokolu IPv6. Če ste onemogočili podporo za IPv6, je treba to storitev onemogočiti. V nasprotnem primeru je priporočljivo, da ga pustite omogočenega.
irdaIrDA je potreben za podporo napravam, ki delujejo prek infrardečega vmesnika ( prenosni računalniki, dlančniki, mobilni telefoni, kalkulatorji (opomba prevajalca: kalkulatorji? o_O), itd. Večina uporabnikov ga lahko izklopi.
irexecdDemon za infrardečo povezavo. Prihaja z lirc-utils.
irqbalance, irq_balancerV večprocesorskih sistemih se uporablja za porazdelitev prekinitev med procesorji. Uporabniki, ki nimajo večprocesorskih računalnikov/prenosnikov, lahko onemogočijo ta demon/storitev. Omogočanje te storitve na računalniku z enim procesorjem ne bo imelo nobenega učinka. Na novih računalnikih z več kot enim procesorjem (Intel Core 2 Duo, AMD X2) mora biti ta storitev omogočena.
ivmanDemon je odgovoren za samodejno namestitev naprav v sistem (CD-ji, pogoni USB itd.)
jackd, jack-avdio-priključni kompletAvdio strežnik
jexecZagotavlja podporo za zagon in izvajanje aplikacij v java - JAR. Na voljo bo, če namestite Javo podjetja Sun. To ni obvezno in ga je mogoče onemogočiti.
igralna palicaSkript, ki naloži module jedra, da krmilna palica deluje.
kadmindDaemon za določanje računov, ki imajo dostop do baze podatkov Kerberos, in njihove ravni dostopa. Je ena od komponent paketa heimdal.
kdumpkdump - prikaz podatkov sledenja jedru. Ukaz prikaže sledilne datoteke jedra, izdelane s ktrace(1), v človeku berljivem formatu. Privzeto je prikazana datoteka ktrace.out v trenutnem imeniku.
kbdNastavitev tipkovnice v virtualnem terminalu.
kdmKDM ( KDE Display Manager) je eden od programov v paketu kdebase ( vključeno v KDE), ki omogoča prijavo preko grafičnega vmesnika.
kpasswdDaemon za spreminjanje gesel v Kerberos. Je ena od komponent paketa heimdal.
ksysguarddKDE demon za nadzor sistema.
libvirtdDaemon za upravljanje gostujočih strojev in omrežij QEMU.
libvirt-gostjeSkript, ki ob izklopu pošlje gostujoče operacijske sisteme v način mirovanja in jih zbudi ob nalaganju.
lircdDaemon LIRC dešifrira signale, ki prihajajo iz infrardečih vrat. Prihaja z lirc-utils.
lircmdDemon LIRC, ki prevaja signale miške. Prihaja z lirc-utils.
lvm2-monitorDaemon za nadzor LVM (Logical Volume Management). Priporočljivo, če uporabljate LVM, sicer ga pustite onemogočenega.
lpd“Line Printer Daemon” - protokol se uporablja za upravljanje tiskalnega spoola.
gospaDemon nadzoruje naprave MD (programski RAID v Linuxu).
mdmonitor in mdmpdTa dva demona se uporabljata v sistemih za shranjevanje z nizi RAID (redundantno polje poceni/neodvisnih diskov). Mdmonitor zažene, ustavi in ​​znova zažene mdadm (nadzor in upravljanje večpotnih naprav), storitev programske opreme za spremljanje in upravljanje RAID. To storitev morate zagnati le, če ima vaš sistem naprave RAID.
vodilo sporočilMedprocesna komunikacijska storitev za Linux. Kritična komponenta ker je priključen na D-BUS. Zelo priporočljivo je, da ga pustite omogočenega.
mikrokoda_ctl, mikrokoda.ctlStoritev, ki vam omogoča posodobitev vdelane programske opreme procesorja Intel (Pentium Pro, PII, Celeron, PIII, Xeon, Pentium 4 itd.). Posodobitve se zabeležijo ob vsakem prenosu. Omogočeno samo, če imate procesor Intel.
mcelog, mcelogdZa spremljanje težav s strojno opremo v 64-bitnih različicah Linuxa je priročno uporabljati paket mcelog, ki analizira stanje MCE (Machine Check Exception) v procesorjih AMD in Intel, kar lahko kaže na težave s pomnilnikom in predpomnilnikom procesorja, napake pri izmenjavi podatkov med CPU in nabor čipov matične plošče.
mpdPredvajalnik glasbe Daemon - predvajalnik glasbe ki ima arhitekturo odjemalec-strežnik, ki predvaja glasbo iz določenega imenika.
multipathdUporablja se za nadzor naprav Multi-Path, to je pogonov, do katerih lahko dostopa več kot en krmilnik ali metoda.
mysqld, mysqlMySQL Database Daemon
nfsdPostopek zahtev operaterja NFS za odjemalske sisteme. Zgodovinsko gledano vsak demon nfsd podpira eno zahtevo naenkrat, zato se zažene več kopij.
netconsoleOmogoča izvoz konzole na drug računalnik prek omrežja. Privzeto je lahko onemogočeno.
netfsMed zagonom samodejno pripne datotečne sisteme, ki so na voljo v omrežju ( NFS, Samba in drugi). Večina uporabnikov namiznih in/ali prenosnih računalnikov ga lahko izklopi.
omrežjeDaemon, odgovoren za ustvarjanje in konfiguracijo lokalnih omrežnih vmesnikov (LAN)
omrežni daljinciEnako kot prejšnji, le da dodatno dvigne brezžične vmesnike
nfs, nfslockStoritve zagotavljajo standardni omrežni datotečni sistem za operacijske sisteme Unix/Linux in BSD. Če morate odpreti dostop prek NFS, ga pustite omogočenega, sicer ga lahko izklopite.
nginxnginx je spletni strežnik in poštni proxy strežnik, ki deluje v operacijskih sistemih, podobnih Unixu.
nmbdUporablja se Samba. Glejte Sambo spodaj.
nscdStrežniški demon, ki predpomni imena in gesla, ki jih uporabljajo storitve, kot so NIS, NIS+, LDAP, hesiod. Lahko se izklopi.
nslcdlokalni demon LDAP imenske storitve.
ntpdNTP demon, ki upravlja časovno sinhronizacijo prek omrežja. xntpd je opremljen z različico 3 standarda NTP.
ntpdate
oddjobdDemon oddjobd zagotavlja storitev com.redhat.oddjob na vodilu za sporočila celotnega sistema. Vsaka možnost, ki jo nudi oddjobd, je na voljo kot ločena metoda D-Bus.
openntpdStrežnik in odjemalec za časovno sinhronizacijo.
openvpnZagotavlja varno metodo za ustvarjanje VPN-ja. Za Dodatne informacije glejte OpenVPN. Lahko je onemogočen, če ga NetworkManager ne uporablja.
pcmciaZagotavlja podporo za standardne razširitvene kartice pcmcia. Običajno se uporablja samo v prenosnih računalnikih.
pcscdZagotavlja podporo za čitalnike kartic in pametne kartice. Če nimate čitalnika kartic ali pametnih kartic, lahko to storitev izklopite. Pogosto na voljo na prenosnih računalnikih.
portreservePrepreči dostop do dejanskih vrat za različne storitve RPC in daje prednost rezerviranim aplikacijam. Podrobnejše informacije najdete na man strani portreserve. Priporočljivo je, da ga pustite omogočenega.
izpad napajanjaTa skript se zažene, ko so zaznana sporočila UPS
postfiksProgram za upravljanje pošte Postfix
pppdDaemon protokola od točke do točke
pppSkript za delo z demonom pppd.
psacctUpravlja procese jedra Linuxa. Ukvarja se s spremljanjem.
purge-kernelsSkript za samodejno brisanje stara jedra ( konfiguriran v /etc/zypp.conf)
kvota_nldkvota netlink sporočilni demon
surovSkript naloži neobdelane module naprave.
rdiscDemon za odkrivanje omrežnega prehoda, rdisc, deluje kot odjemalec protokola za odkrivanje prehoda ICMP. rdisc se pokliče ob zagonu, da pridobi omrežne usmerjevalne tabele s privzetimi prehodi.
rdatumstoritev je potrebna za sinhronizacijo računalnika s časovnim strežnikom ob zagonu operacijski sistem. Lahko se onemogoči.
obnovitikondUporablja se za obnovitev konteksta in spremljanje pravilnika SELinux, povezanega z datotekami. Storitev ni obvezna, vendar priporočljiva pri uporabi SELinux.
rngdrngd - Preveri in posreduj naključne podatke iz naprave strojne opreme v naključno napravo jedra. Dobesedno ga lahko prevedemo kot demon, ki preverja in sprejema naključne podatke iz strojne opreme za jedro naključnih naprav - kako pameten je :), random number generator daemon, v ruščini demon generiranja naključnih števil.
rpcbindDaemon za upravljanje RPC-jev, ki jih uporabljajo druge storitve (kot je NFS ali NIS). Deluje podobno kot portmap. Lahko se onemogoči, če ni drugih odvisnih storitev.
rpcgssd, rpcidmapd, rpcsvcgssdUporablja se NFS v4 (Network File System). Onemogočite, če ne potrebujete NFS v4. http://ru.wikipedia.org/wiki/Network_File_System
rsyslogrsyslog služi priročnemu zbiranju in obdelavi sistemskih dnevnikov in se postavlja kot razširjeni modul syslogd za Unix sistemi in Linux, ki se osredotoča na varnost in zanesljivost ter ima tudi napredno večnitnost. Rsyslog ponuja široko paleto funkcij, ki jih najdete s klikom na povezavo - RSyslog features. http://www.rsyslog.com/module-Static_Docs-view-f-features.html.phtml
rsyncrsync ( Oddaljena sinhronizacija) je program za operacijske sisteme, podobne UNIX-u, ki sinhronizira imenike in datoteke na več mestih, hkrati pa zmanjša promet, po potrebi z uporabo kodiranja podatkov. rsync je bil ustvarjen kot zamenjava za rcp in scp. Preberi več...
saslauthdDemon strežnika za preverjanje pristnosti SASL. SASL ( Preprosta avtentikacija in varnostna plast) omogoča preverjanje pristnosti v protokolih na podlagi oddaljenih povezav.
samba, smbdDemon strežnika Samba.
Pošlji poštoZagotavlja podporo za lokalno storitev IMAP ali POP3, pustite jo omogočeno. Storitev je lahko uporabna za obveščanje o aktivnosti različnih demonov/storitev, ki se lahko zagotovijo prek crona ali pošiljanja pošte iz PHP skript.
senzorDemon iz lm_sensors zbira informacije iz različnih senzorjev.
senzorjiSkript, ki po potrebi naloži potrebne module jedra za delo z lm_sensors.
obalni zidSkripta za upravljanje požarnega zidu shorewall.
vitekUpravitelj prijav za X.
smartdDemon SMART nadzoruje diske. Uporablja se za predvidevanje okvar in spremljanje težav s pogoni ali trdimi diski. Običajno uporabniki tega demona ne potrebujejo, vendar je še vedno priporočljivo (zlasti za strežnike), da ga pustite omogočenega.
kdor koliZa odpiranje skupnega je potreben demon SAMBA dostop do omrežja v datoteke v sistemu Linux za Uporabniki sistema Windows. Mora biti omogočeno, če imate v omrežju računalnike z operacijskim sistemom Windows, ki jim je treba omogočiti dostop do datotek.
dvoletnicaDemon, ki mesečno pošilja informacije za zbiranje statističnih podatkov za pomoč razvijalcem. Statistika je dostopna vsem. Uporabniki, ki želijo pomagati razvijalcem, morajo omogočiti to storitev.
snmpd, snmptrapdZagotovite podporo SNMP ( Preprost protokol za upravljanje omrežja), ki se lahko uporablja za upravljanje in konfiguracijo naprav, kot so omrežna vozlišča, strežniki, tiskalniki itd. in tako naprej. Lahko se onemogoči, vendar bo morda potrebno za zagon HP-jevih tiskalnih storitev ( hplip).
lignjiSquid proxy demon.
sshdPosluša zahteve strank po varni lupini. SSH omogoča drugim uporabnikom, da se prijavijo v omrežje iz drugega računalnika in zaženejo aplikacije na vašem računalniku, ki se običajno uporabljajo za oddaljeno skrbništvo. To bi lahko predstavljalo potencialno varnostno tveganje. Na delovnih postajah, ki ne potrebujejo oddaljenega dostopa, ga je priporočljivo izklopiti.
sssdSSSD ( Daemon sistemskih varnostnih storitev) omogoča dostop do oddaljenih mehanizmov za preverjanje pristnosti. To zabriše mejo med omrežno in lokalno avtentikacijo ter omogoča uporabo različnih mehanizmov. Podatke o uporabnikih prenaša zbirka podatkov, imenovana domena, in so lahko vir podatkov za oddaljeno avtentikacijo. Dovoljenih je več mehanizmov, ki omogočajo več strežnikom implementacijo različnih imenskih prostorov. Prejete informacije se posredujejo zunanjim aplikacijam prek standardnih vmesnikov NSS in PAM.

SSSD deluje kot nabor storitev, ki so neodvisne od aplikacije, ki jih kliče, zato aplikacijam ni treba vzpostaviti lastnih povezav z oddaljenimi domenami, niti jim ni treba vedeti, kateri demon/storitev je v uporabi. Lokalno predpomnjenje informacij o skupini in podatkov o identiteti omogoča ne glede na vir podatkov ( LDAP, NIS, IPA, DB, Samba itd.) še naprej delajo brez povezave, kar na splošno izboljša produktivnost. SSSD lahko dovoli več ponudnikov iste vrste ( na primer LDAP).

svnservesvn server daemon.
sysstatPaket Sysstat vsebuje pripomočke za spremljanje delovanja sistema in uporabljenih virov.
swapperKopira lokalni proces v izmenjalni prostor, da popravi stran fizičnega pomnilnika za jedro. Imenuje se tudi sched.
syslogdSistemski proces za snemanje različnih sistemskih sporočil.
sinhronizacijaObčasno se sinhronizira z sistemski pomnilnik ustanovljena sistemske datoteke.
syslog-ngDemon vodi sistemske dnevnike.
udev-postUpravitelj sistemskih naprav, ki ga uporablja udev. Udev privzeto podpira veliko število pravil, vedenj in dovoljenj za naprave. S to storitvijo lahko varno upravljate pravila. Priporočljivo je, da ga pustite omogočenega.
vhandSprosti pomnilniške strani za uporabo v drugih procesih. Znan tudi kot "demon za krajo strani".
vsftpdvsftpd ( Very Secure FTP Daemon - Zelo varen FTP Daemon) - FTP strežnik, ki podpira IPv6 in SSL.

vsftpd se privzeto uporablja v številnih operacijskih sistemih, podobnih Unixu, služi tudi uradnim repozitorijem ftp.openbsd.org, ftp.freebsd.org, ftp.debian.org, ftp.redhat.com in se uporablja v uradnem FTP jedra Linuxa strežnik.

webminStoritev upravljanja sistema prek brskalnika ( spletni vmesnik).
winbindStoritev, ki vam pomaga razlikovati v omrežju imena računalnikov Spodaj Nadzor Windows. Lahko se uporablja za nadzor računi Windows z računi Linux. Običajno večina uporabnikov tega demona ne potrebuje in ga lahko pustijo onemogočenega.
wpa_supplicantStoritev je potrebna za delo brezžične kartice, ki se uporabljajo za povezavo z dostopnimi točkami ( VPN ali Radius strežniki) zahtevajo šifriranje WPA. Večina uporabnikov ga lahko pusti onemogočenega.
xfsdSluži pisavam X11 za oddaljene odjemalce.
jamstoritev za posodabljanje RPM paketov, nameščenih v sistemu. Uporablja se predvsem v Fedora Core.
ypbindStoritev se uporablja za avtentikacijo NIS preko omrežja. Če se preverjanje pristnosti NIS ne uporablja, ga lahko onemogočite.
zvbidStoritev, ki omogoča dostop iz naprav V4L ali V4L2 do več aplikacij. Na primer, kartica za zajemanje Hauppage lahko uporablja to storitev, v drugih primerih jo je mogoče izklopiti.

Če zgornji seznam demonov/storitev UNIX/Linux ne deluje v vašem sistemu, potem poiščite pomoč glede take storitve uporabite man name_daemon, in če tam ni informacij o delujoči storitvi, potem zapišite v komentarje in skupaj bomo zbrali informacije o taki storitvi in ​​jih dodali na seznam demonov/storitev UNIX/Linux, ki je naveden tukaj.

Če v pomoči man name_daemon ni opisa storitve, potem demon/storitev je lahko virus, v tem primeru poiščite izvedljivo datoteko, kjer je name_daemon, in jo pošljite v analizo v virusni laboratorij - to lahko storite brez namestitve protivirusnega programa prek spletnega vmesnika, na primer http://vms.drweb.com/online/, http://www.esetnod32.ru/.support/scanner/ ali https://www.virustotal.com/.

Samodejno nalaganje demonov/storitev UNIX/LINUX

Spodaj so podrobna navodila za upravljanje zagona demonov/storitev v najpogostejših modifikacijah/različicah UNIX-u podobnih OS, kot npr CentOS Linux, Debian Linux in OS tipa BSD. V drugih modifikacijah/različicah operacijskih sistemov, podobnih UNIX-u, ima upravljanje samodejnega nalaganja demonov/storitev podoben postopek, čeprav ima lahko nekaj manjših ali celo radikalnih razlik!

Samodejno nalaganje demonov/storitev na CentOS Linux

CentOS ima definirane stopnje obremenitve po principu sistema V in so pobarvani v datoteki /etc/inittab, preberi manj /etc/inittab .

Imeniki za vsako raven nalaganja so poimenovani in se nahajajo v imeniku /etc/rc.d.

V vsakem izmed imenikov, ki ustreza določeni stopnji obremenitve, so skripte oziroma povezave do njih z navodili za zagon demona/programa/storitve, same skripte z navodili za zagon demona/programa/storitve pa se nahajajo v imenik /etc /rc.d/init.d

Primer skriptov, ki nadzorujejo zagon demona/programa/storitve, si lahko ogledate tako, da zaženete manj /etc/rc.d/init.d/mysqld ali manj /etc/rc.d/init.d/sshd. Običajno se skripti, ki nadzorujejo zagon demona/programa/storitve, pojavijo v /etc/rc.d/init.d/ in so po namestitvi programske opreme povezani z imeniki ravni izvajanja in njihov status je izklopljen/vklopljen za vsako stopnjo teka nadzira pripomoček chkconfig.

Z ukazom chkconfig --list lahko vidite, kateri demoni se bodo izvajali na različnih ravneh izvajanja. Demon lahko omogočite, da se samodejno zažene na kateri koli ravni izvajanja z ukazom chkconfig --level 345 mysqld on in izklopite chkconfig --level 345 mysqld off oz., chkconfig –del service_name za brisanje storitve, chkconfig service_name on |off, da omogočite ali onemogočite storitev na vseh ravneh.

Glede dodajanja skriptov v zagon pa Za samodejni prenos skripte streže /etc/rc.local, v /etc/rc.local je dovolj, da dodate celotno pot do skripta, na primer: /root/scripts/script.sh ali /bin/sh /root/scripts/script.sh . Če po namestitvi programske opreme ni nadzornega skripta zagona v /etc/rc.d/init.d/ želeni program, potem je lažje dodati njegovo inicializacijsko/zagonsko vrstico v /etc/rc.local.

Za upravljanje ravni izvajanja obstaja pripomoček, imenovan ntsysv, man ntsysv.

Samodejno nalaganje demonov/storitev na Debian Linux

Poimenovani so tudi imeniki za vsako zagonsko raven v Debian Linux rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d ampak, nahaja ni več v imeniku /etc/rc.d, ampak v korenu imenika /etc

Obstajale so skripte z navodili za zagon demona/programa/storitve oziroma simbolične povezave do njih se nahajajo v imenikih /etc/rc?.d kje je znak? ustreza stopnji obremenitve in Sami skripti z navodili za zagon demona/programa/storitve se nahajajo v imeniku /etc/init.d. Primer takega preskoka, na podlagi katerega lahko napišete svojega, najdete v datoteki less /etc/init.d/skeleton.

Spodaj bomo podali razlago servisnih informacij, uporabljenih v predlogi skripta /etc/init.d/skeleton:

  • Prispeva: Opisuje objekte, ki jih ponuja ta skript (arg1, agr2, ...) na tak način, da se ob zagonu skripta z argumentom start šteje, da ti objekti obstajajo, in zato drugi skripti v init, ki zahtevajo obstoj teh predmeti se bodo lahko začeli v poznejši fazi. Običajno lahko kot predmet uporabite ime skripta, lahko pa uporabite tudi ime storitve, ki jo nadomešča. Virtualni objekti tukaj niso označeni. Definirani so zunaj skriptov init.d
  • Zahtevano-Začetek: Podaja objekte, ki morajo obstajati za izvajanje skripta. Po potrebi lahko uporabite navidezne predmete, kot je opisano spodaj. Če objekti niso določeni, se skript lahko zažene takoj po zagonu, ne da bi bilo treba povezati lokalne datotečne sisteme, zagnati sistemski dnevnik itd.
  • Zahtevano-Stop: Podaja objekte, ki jih uporablja storitev, ki jih zagotavlja skript. Objekt, ki ga ponuja ta skript, se mora dokončati, preden se dokončajo tukaj navedeni objekti, da se izognete sporom. Običajno so tukaj označeni isti objekti kot v Zahtevan začetek
  • Moral bi začeti: Podaja objekte, ki jih je treba zagnati pred storitvijo, ki jo ponuja ta skript, če obstajajo. To omogoča šibke odvisnosti, ki ne povzročijo odpovedi storitve, če objekti niso na voljo. Po potrebi lahko uporabite virtualne predmete, kot je opisano spodaj.
  • Moral-Stop: Podaja objekte, ki jih je treba ustaviti, če obstajajo te storitve. Običajno so tukaj navedeni isti objekti kot v Should-Start
  • Privzeti začetek: Nastavi ravni izvajanja, pri katerih naj se skript privzeto zažene (ustavi). Na primer, če je treba storitev zagnati samo na nivojih 3, 4 in 5, določite "Default-Start: 3 4 5" in "Default-Stop: 0 1 2 6".
  • Kratek opis: Podaja kratek opis dejanja skripta. Omejeno na eno vrstico.
  • Opis: Podaja podrobnejši opis dejanja skripta. Lahko je v več vrsticah; v tem primeru se mora vsaka vrstica opisa začeti z znakom #, ki mu sledi tabulator ali vsaj 2 presledka. Opis se konča pred vrstico, ki ne ustreza temu pogoju.
  • X-Začetek-Pred, X-Stop-Po: Podaja inverzne odvisnosti, ki imajo enak pomen, kot če bi bile podane v zagonu in bi se moral ustaviti v tukaj navedenih paketih.

Ključne besede zagotavlja, zahteva- in bi- so pomembne za sledenje odvisnostim. Ostali niso uporabljeni. Program privzeto uporablja ravni izvajanja za organiziranje skriptov ( na primer inserv), da bi spremljali, kateri imenik rc?.d posodobitev, ko je storitev prvič dodana, in mora odražati namen storitve. Tukaj je nekaj "virtualnih" predmetov:

  • $local_fs- Vsi lokalni datotečni sistemi so povezani. Vsi skripti, ki pišejo v /var/, bi morali biti odvisni od tega, razen če so že odvisni od $remote_fs
  • $omrežje- nizko nivojsko omrežje, tj. omrežne kartice, lahko pomeni delovanje PCMCIA
  • $named- Predpostavlja se, da se izvajajo demoni, ki lahko zagotovijo razrešitev imena domene. Na primer DNS, NIS+ ali LDAP
  • $portmap- Demoni, ki zagotavljajo storitev preslikave vrat SunRPC/ONCRPC, kot je določeno v 1833 (če obstajajo)
  • $remote_fs- Vsi datotečni sistemi so povezani. Skripti, ki jih je treba izvajati med zaustavitvijo sistema, preden se vsem procesom pošlje signal za zaustavitev, morajo biti odvisni od $remote_fs.
  • $syslog- sistemski dnevnik deluje
  • $time- nastavljen je pravilen sistemski čas, na primer ntp ali rdate ali RTC
  • $vse- Zažene skript čim nazadnje

Samodejno nalaganje demonov v Debian Linux je nadzorovano s pripomočkom update-rc.d, ki je podrobno opisan v man update-rc.d. Pripomoček update-rc.d ne ustvari ali izbriše ničesar drugega kot simbolne povezave v /etc/rc?.d na tako imenovane inicialne skripte, ki nadzorujejo zagon in zaustavitev demona/programa/storitve, ki se nahajajo v imeniku /etc/init.d.

Če je skript za samodejni zagon demona/storitve ustvarjen ročno s predlogo /etc/init.d/skeleton, potem ga morate najprej postaviti v imenik /etc/init.d, nato ustvariti simbolično povezavo do tega skripta v imeniku /etc/rc?.d, kje? - številka ravni izvajanja ( stopnjo obremenitve sistema). Simbolična povezava bi morala izgledati takole: S№№script_name, kjer je št številka ukaza za zagon, če želite zapustiti simbolno povezavo, vendar ne začasno zagnati skripta, je treba simbolno povezavo spremeniti v to stanje KN. ime_skripta.

Preden se lahko obdela katera koli raven izvajanja, se najprej izvedejo vsi skripti, ki se začnejo s črko ". K" (ti skripti ustavijo storitve), nato pa se izvedejo vsi skripti, ki se začnejo s črko " S" (ti skripti zaženejo storitve). Dvomestna številka za črko "S" ali "K" označuje vrstni red, v katerem se bodo izvajali skripti. Najprej se izvedejo skripti z nižjo številko, na primer: S01script_name se bo začel prvi, S09script_name pa deveti.

Za ustvarjanje simbolne povezave uporabite program ln -s file1 file2 , Kje ključ -s govori o ustvarjanju simbolne povezave, datoteka1 kaže na obstoječo datoteko in datoteka2 ime nove povezave, vendar namesto ročnega ustvarjanja simbolnih povezav lahko uporabite pripomoček update-rc.d, ki je zasnovan posebej za ustvarjanje simbolnih povezav v /etc/rc?.d do skriptov iz /etc/init. d.

Sintaksa update-rc.d je takšna: dodajanje s privzetimi parametri update-rc.d privzete nastavitve, odstranitev in zaustavitev demona/storitve update-rc.d -f odstrani && posodobi-rc.d stop 20 2 3 4 5 . Zagon in zaustavitev demonov/storitev je mogoče nadzirati s skriptom imena storitve start|stop|restart.

Odkrito povedano, update-rc.d je relativno nepregleden pripomoček, Pripomoček chkconfig je bolj priročen, ki privzeto ni na voljo v Debian Linux. Če ga želimo namestiti, moramo dodati dodatne repozitorije, priporočljivo je, da uporabljamo samo uradne repozitorije paketov Debian Linux, na konec seznama vi /etc/apt/sources.list, primer sources.list v Debian GNU/Linux 6.0.5 _Squeeze_ - Uradni i386:

# # deb cdrom:/ squeeze main deb cdrom:/ squeeze main deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates , prej znan kot "nestanoviten" # Med namestitvijo ni bil izbran omrežni zrcalni naslov. Naslednji vnosi # so navedeni kot primeri, vendar jih morate ustrezno spremeniti # Za vašo ogledalo po izbiri. # # deb http://ftp.debian.org/debian/ squeeze-updates main # deb-src http://ftp.debian.org/debian/ squeeze-updates main deb http://backports.debian.org/ debian-backports squeeze-backports main deb http://ftp.debian.org/debian/ squeeze main #deb http://repo.yandex.ru/debian squeeze main contrib #deb http://mirror.yandex.ru/ debian squeeze main contrib #deb http://mirror.yandex.ru/debian-multimedia/ squeeze main contrib

Nato posodobite seznam paketov z apt-get update in namestite chkconfig apt-get install chkconfig, kot alternativo pa lahko dodatno namestite sysv-rc-conf apt-get install sysv-rc-conf. Kako uporabljati pripomoček chkconfig je bilo omenjeno zgoraj, dodatno glejte man sysv-rc-conf in man chkconfig.

Ko dodajate repozitorije Debian Linux, bodite pozorni na politike programske opreme, ki veljajo za vsako od področij, kot so main, contrib in non-free:

  • glavni: - Paketi v tem območju so del celotne distribucije Debian Linux in nobeden od paketov v glavnem področju ne potrebuje programske opreme izven tega področja za popolno delovanje. Vsakdo lahko prosto uporablja, deli, spreminja in distribuira pakete iz glavnega območja.
  • prispevati: - Pakete s tega področja je mogoče prosto distribuirati, vendar nekatere njihove odvisnosti morda niso brezplačne.
  • nesvobodni: - vsebuje pakete, ki jih v skladu z DSFG ni mogoče distribuirati brezplačno, in paketi s področja lahko vsebujejo napake, ki niso upoštevane pri razvoju in posodabljanju Debian Linuxa.

Za samodejni zagon drugih skriptov in programov v Debian Linuxu lahko uporabite stari dobri /etc/rc.local.

Sistemski skrbniki in običajni uporabniki Linuxa morajo pogosto pregledati dnevniške datoteke, da odpravijo težave. Pravzaprav je to prva stvar, ki bi jo moral narediti vsak sistemski skrbnik, ko pride do kakršne koli napake v sistemu.

Sam operacijski sistem Linux in aplikacije, ki se izvajajo, ustvarjajo različne vrste sporočil, ki se beležijo v različnih dnevniških datotekah. Linux uporablja posebno programsko opremo, datoteke in imenike za shranjevanje dnevniških datotek. Če veste, katere datoteke vsebujejo dnevnike katerih programov, boste prihranili čas in hitreje rešili težavo.

V tem članku si bomo ogledali glavne dele sistema za beleženje Linuxa, dnevniške datoteke in pripomočke, s katerimi si lahko ogledate dnevnike Linuxa.

Večina datotek Dnevniki Linuxa se nahajajo v mapi /var/log/ Dnevniške datoteke za vaš sistem lahko navedete z ukazom ls:

Rw-r--r-- 1 root root 52198 10. maj 11:03 alternative.log
drwxr-x--- 2 root root 4096 14. november 15:07 apache2
drwxr-xr-x 2 root root 4096 25. apr. 12:31 apparmor
drwx------ 2 root root 4096 5. maj 10:15 revizija
-rw-r--r-- 1 root root 33100 10. maj 10:33 boot.log

Spodaj si bomo ogledali 20 različnih dnevniških datotek Linuxa, ki se nahajajo v imeniku /var/log/. Nekatere od teh dnevnikov je mogoče najti samo v določenih distribucijah, na primer dpkg.log je mogoče najti samo v sistemih, ki temeljijo na Debianu.

/var/log/messages- vsebuje globalne sistemske dnevnike Linuxa, vključno s tistimi, ki se zabeležijo ob zagonu sistema. V tem dnevniku je zabeleženih več vrst sporočil: pošta, cron, različne storitve, jedro, avtentikacija in drugi.

/var/log/dmesg- vsebuje sporočila, prejeta od jedra. Beleži številna sporočila med fazo zagona, prikazujejo informacije o strojnih napravah, ki so bile inicializirane med postopkom zagona. Lahko rečete, da je to še en dnevnik sistema Linux. Število sporočil v dnevniku je omejeno in ko je datoteka polna, se z vsakim novim sporočilom stara prepišejo. Sporočila iz tega dnevnika si lahko ogledate tudi z ukazom dmseg.

/var/log/auth.log- vsebuje informacije o avtorizaciji uporabnikov v sistemu, vključno s prijavami uporabnikov in uporabljenimi mehanizmi za preverjanje pristnosti.

/var/log/boot.log- Vsebuje informacije, ki se zabeležijo ob zagonu sistema.

/var/log/daemon.log- Vključuje sporočila različnih demonov v ozadju

/var/log/kern.log- Vsebuje tudi sporočila iz jedra, uporabna pri odpravljanju napak v modulih po meri, vgrajenih v jedro.

/var/log/lastlog- Prikaže informacije o zadnji seji vseh uporabnikov. To je nebesedilna datoteka in za ogled morate uporabiti ukaz lastlog.

/var/log/maillog /var/log/mail.log- dnevnike e-poštnega strežnika, ki deluje v sistemu.

/var/log/user.log- Informacije iz vseh dnevnikov na ravni uporabnika.

/var/log/Xorg.x.log- Dnevnik sporočil strežnika X.

/var/log/alternatives.log- Informacije o delovanju programa za posodobitve-alternative. To so simbolične povezave do privzetih ukazov ali knjižnic.

/var/log/btmp- dnevnik datoteka Linux vsebuje informacije o neuspelih poskusih prijave. Za ogled datoteke je priročno uporabiti ukaz last -f /var/log/btmp

/var/log/cups- Vsa sporočila v zvezi s tiskanjem in tiskalniki.

/var/log/anaconda.log- vsa sporočila, posneta med namestitvijo, se shranijo v to datoteko

/var/log/yum.log- Beleži vse informacije o namestitvah paketov z uporabo Yum.

/var/log/cron- Kadarkoli začne demon Cron izvajati program, v to datoteko zapiše poročilo in sporočila samega programa.

/var/log/secure- vsebuje informacije v zvezi z avtentikacijo in avtorizacijo. Na primer, SSHd tukaj beleži vse, vključno z neuspelimi poskusi prijave.

/var/log/wtmp ali /var/log/utmp - Sistemski dnevniki Linuxa , vsebujejo dnevnik prijav uporabnikov. Z ukazom wtmp lahko ugotovite, kdo je prijavljen in kdaj.

/var/log/faillog- dnevnik sistemi linux, vsebuje neuspele poskuse prijave. Za prikaz vsebine te datoteke uporabite ukaz faillog.

/var/log/mysqld.log- Dnevniške datoteke Linux iz strežnika baze podatkov MySQL.

/var/log/httpd/ ali /var/log/apache2- dnevniške datoteke spletnega strežnika linux11 Apache. Dnevniki dostopa so v datoteki access_log, dnevniki napak pa v error_log

/var/log/lighttpd/ - linux dnevniki spletni strežnik lighttpd

/var/log/conman/- Dnevniške datoteke odjemalca ConMan,

/var/log/mail/- ta imenik vsebuje dodatne dnevnike poštnega strežnika

/var/log/prelink/- Program Prelink povezuje knjižnice in izvršljive datoteke da pospešite postopek prenosa. /var/log/prelink/prelink.log vsebuje informacije o datotekah .so, ki jih je spremenil program.

/var/log/audit/- Vsebuje informacije, ki jih ustvari demon auditd.

/var/log/setroubleshoot/ - SE Linux uporablja demon setroubleshootd (SE Trouble Shoot Daemon) za poročanje o varnostnih težavah. Ta dnevnik vsebuje sporočila tega programa.

/var/log/samba/- vsebuje informacije in dnevnike iz datotečnega strežnika Samba, ki se uporablja za povezavo mape v skupni rabi Windows.

/var/log/sa/- Vsebuje datoteke .cap, ki jih zbira paket Sysstat.

/var/log/sssd/- Uporablja ga sistemski varnostni demon, ki upravlja oddaljen dostop v imenike in mehanizme za preverjanje pristnosti.

Ogled dnevnikov v Linuxu

Za ogled dnevnikov v Linuxu je priročno uporabiti več pripomočkov ukazne vrstice Nizi Linuxa. Lahko bi bil kdorkoli urejevalnik besedil, oz posebna korist. Najverjetneje boste za ogled dnevnikov v Linuxu potrebovali pravice superuporabnika. Tukaj so ukazi, ki se najpogosteje uporabljajo za te namene:

  • zgrep
  • zmore

Ne bom se spuščal v podrobnosti o vsakem od teh ukazov, saj je večina že bila podrobno obravnavana na naši spletni strani. Bom pa dal nekaj primerov. Ogled dnevnikov Linuxa je zelo preprost:

Pogledamo dnevnik /var/log/messages z možnostjo drsenja:

manj /var/log/messages

Oglejte si dnevnike Linuxa v realnem času:

tail -f /var/log/messages

Odprite dnevniško datoteko dmesg:

mačka /var/log/dmesg

Prve vrstice dmesg:

glava /var/log/dmesg

Napake izpišemo samo iz /var/log/messages:

grep -i napaka /var/log/messages

Poleg tega si lahko ogledate dnevnike v Linuxu z uporabo grafičnih pripomočkov. Sistemski program Log Viewer lahko uporabite za udoben ogled in spremljanje sistemskih dnevnikov na prenosniku oz osebni računalnik z Linuxom.

Program lahko namestite na kateri koli sistem z nameščenim strežnikom X. Za ogled dnevnikov je mogoče uporabiti tudi kateri koli grafični urejevalnik testov.

zaključki

V imeniku /var/log najdete vse potrebne informacije o delovanju Linuxa. Iz današnjega članka ste se naučili dovolj, da veste, kje iskati in kaj iskati. Zdaj vam ogled dnevnikov v Linuxu ne bo povzročal težav. Če imate kakršna koli vprašanja, jih vprašajte v komentarjih!

Vsak začetni uporabnik Linuxa prej ali slej naleti na težave pri nastavitvi in ​​organizaciji delovanja svojega sistema. In vsak od novincev je skoraj zagotovo slišal nasvet bolj izkušenih uporabnikov: "Poglejte dnevnike." Nasvet je dober, a začetnik mora vseeno vedeti: kaj so hlodi in kje jih iskati! Zato vam bom v tem članku poskušal povedati, kaj gledati in kje.

V programskem slengu so "dnevniki" delovni protokoli, ki jih vzdržuje sam operacijski sistem in številni programi neodvisno. Beseda "dnevnik" se v tem pomenu pogosto uporablja kot sinonim za besedo "protokol". Obstajata dve glavni situaciji, v katerih se pojavi potreba po analizi protokola: ko nekaj v sistemu ne deluje, kot smo pričakovali (rešitev težave) in ko obstaja sum, da je v sistem vdrl nek napadalec in moramo ugotovite, kaj točno se je zgodilo, kako je bilo storjeno in kaj je treba storiti za odpravo posledic invazije.

Eden najbolj znanih primerov uporabe dnevniških datotek za odkrivanje napadalčevega vdora je zgodba o prijetju slavnega hekerja Kevina Mitnicka s strani strokovnjaka za računalniško varnost Tsuomo Shimomura. Tukaj je en odstavek iz članka, ki opisuje, kako se je to zgodilo.

"Na božični dan, ko je Shimomura za praznike odšel na smučanje v Nevado, je nekdo (že vemo, kdo) vlomil v njegov super varovalnik domači računalnik v Solana Beach v Kaliforniji in začel kopirati njegove datoteke - na stotine tajnih datotek. En podiplomski študent v Superračunalniškem centru v San Diegu, kjer je delal Shimomura, je opazil spremembe v sistemskih "log" datotekah in hitro ugotovil, kaj se dogaja. Vse to je bilo mogoče zaradi dejstva, da je Shimomura na svoj računalnik namestil program, ki samodejno kopira "dnevniške" vnose v rezervni računalnik v San Diegu. Študent je poklical Shimomura, ki je odhitel domov, da bi popisal ukradene predmete."

Tukaj ne bom povedal celotne zgodbe, pomembno nam je le, da je analiza protokolov delovanja sistema služila kot osnova za uspeh preiskave kršitev. Podrobnejši opis, kako te preiskave potekajo, najdete v članku. Da pa bi lahko izkoristili rezultate beleženja, morate razumeti, kako so protokoli ustvarjeni, kje so shranjeni in kaj je mogoče iz njih izvleči. Ta članek je posvečen obravnavi vseh teh vprašanj.

Kako se generirajo sporočila za protokol

Začeti moramo z dejstvom, da imajo programerji pri ustvarjanju programov v jeziku C možnost, da po potrebi vstavijo klice posebnih funkcij openlog, setlogmask, syslog in closelog, ki je vključen v standardno knjižnico jezika C. Te funkcije se uporabljajo za pošiljanje sporočil o določenih dogodkih med izvajanjem programa posebnemu sistemskemu demonu syslogd, vodenje sistemskega protokola. funkcija odprti dnevnik vzpostavi povezavo z demonom syslogd, funkcija syslog ustvari določeno sporočilo, ki se zabeleži v protokolu, in funkcijo closelog zapre odprto povezavo.

Sporočila, ki jih ustvari funkcija syslog, je sestavljen iz več polj, ločenih s presledki. Vsako sporočilo se začne s poljem PRI, ki v kodirani obliki vsebuje podatke o kategoriji sporočila (facility) in stopnji resnosti (severity level) oziroma prioriteti (priority) sporočila.

Kategorija (objekt) je informacija o tem, kateremu razredu pripada to sporočilo. Kategorija je kodirana s številko od 0 do 23. Obstajajo naslednje kategorije (definirane so v datoteki /usr/include/sys/syslog.h):

Tabela 1.

Številčna vrednostSimbolDekodiranje
0 kern Sporočila jedra
1 uporabnik Zasnovan za različna sporočila uporabniških programov (sporočila uporabniških programov)
2 pošta Sporočila osebe poštni sistem.
3 daemon Sporočila tistih sistemskih demonov, ki za razliko od FTP ali LPR nimajo posebej namenjenih kategorij.
4 avt Vse, kar je povezano z avtorizacijo uporabnika, kot sta prijava in su (varnost/pravice dostopa)
5 syslog Sistem beleženja lahko beleži sporočila sam od sebe.
6 lpr Sporočila iz tiskalniškega sistema.
7 novice Sporočila s strežnika novic. (News, USENET)
8 uucp Sporočila UNIX-to-UNIX Copy Protocol. Je del zgodovine UNIX-a in verjetno ga ne boste nikoli potrebovali (čeprav je nekaj pošte še vedno dostavljeno prek UUCP).
9 kron Sporočila sistemskega razporejevalnika.
10 authpriv Enako kot auth, vendar so sporočila v tej kategoriji zapisana v datoteko, ki jo lahko berejo le nekateri uporabniki (morda je ta kategorija izbrana, ker lahko sporočila, ki ji pripadajo, vsebujejo jasna uporabniška gesla, ki jih neznanci ne smejo videti, zato morajo imeti dnevniške datoteke ustrezne pravice dostopa).
11 ftp S to kategorijo lahko konfigurirate svoj FTP strežnik tako, da beleži svoje dejavnosti.
od 12 do 15 - Rezervirano za sistemsko uporabo.
od 16 do 23local0 - lokalno7 Rezervirane kategorije za uporabo s strani skrbnika sistema. Kategorija local7 se običajno uporablja za sporočila, ustvarjena med fazo zagona sistema.

Kategorija avt ima zastarelo sinonimno ime varnost, kar ni priporočljivo. Poleg tega obstaja posebna kategorija označiti(ki nima digitalnega ekvivalenta), ki je dodeljen posameznim sporočilom, ki jih ustvari sam demon syslogd. Ta kategorija se uporablja za postavljanje posebnih oznak v protokol v določenem časovnem intervalu (privzeto vsakih 20 minut), kar omogoča na primer, da z 20-minutno natančnostjo ugotovite, kdaj je vaš računalnik zamrznil.

Upoštevajte, da kategorija na splošno nima nobene zveze z imenom programa, ki pošilja sporočila demonu syslogd. Kot pravijo, je vsako naključje čisto naključje. Poleg tega lahko nekateri programi ustvarijo sporočila različnih kategorij. Na primer, demon telnetd v primeru neuspešnih poskusov beleženja ustvari sporočila kategorije authpriv, v drugih primerih pa kategorizira njihova sporočila daemon.

Drugi parameter, na podlagi katerega se oblikuje vrednost polja PRI, je stopnja ali prioriteta sporočila (prioriteta), to je podatek o stopnji pomembnosti sporočila. Privzeto je določenih 8 stopenj pomembnosti (definirane so tudi v datoteki /usr/include/sys/syslog.h), ki so kodirani s številkami od 0 do 7:

Tabela 2.

Številčna vrednostSimbol Dekodiranje
0 emerg(staro ime PANIC) Nujna pomoč. Sistem ne deluje.
1 opozorilo Anksioznost! Potrebna je takojšnja intervencija.
2 krit Kritična napaka(kritično stanje).
3 napaka(staro ime ERROR) Obvestilo o napaki.
4 Opozorilo(staro ime WARN)Opozorilo.
5 opaziti Informacije o nekem običajnem, a pomembnem dogodku.
6 info Obvestilo.
7 razhroščevanje Sporočila, ustvarjena med odpravljanjem napak.

Polje PRI Sporočilo se oblikuje na naslednji način: številčno vrednost kategorije pomnožimo z 8 in prištejemo k številčni vrednosti prioritete, dobljeno število zapišemo v oklepaj in zapišemo v polje.

Po polju PRI Sporočilo vključuje naslednja polja:

  • ČASOVNI ŽIG- čas generiranja sporočila,
  • HOSTNAME- ime gostitelja ali naslov IP v decimalnem zapisu,
  • MSG- poljubno besedilo sporočila - nekaj besedilnega (informacijskega) niza v kodi US-ASCII (0x20 - 0x7e).

Čas (lokalni!) je zapisan v obliki: 13. februar 21:12:06. Če je številka dneva enomestna, je pred njo dodaten presledek (ne 0!). Upoštevajte, da v datumu ni leta in območja, kar je treba upoštevati pri organizaciji dolgoročnega shranjevanja dnevniških datotek. Da je čas v sporočilu pravilen, mora biti sinhroniziran (na primer s protokolom NTP).

Ime gostitelja je vključeno v sporočilo, da se prepreči zamenjava med sporočili različnih gostiteljev, saj je, kot bo prikazano spodaj, lahko beleženje opravljeno na enem od namenskih računalnikov v omrežju. Ime gostitelja je preprosto omrežno ime računalnika brez navedbe domene. Če ima računalnik več vmesnikov z različnimi naslovi IP, lahko katerega koli od njih uporabite kot ime ali naslov gostitelja.

Besedilo sporočila ( MSG) običajno vsebuje oznako ( OZNAKA), ki označuje program ali proces, ki je izdal sporočilo, in telo sporočila ( VSEBINA). Oznaka lahko vsebuje latinične črke in številke. Običajno je oznaka preprosto ime programa, včasih dopolnjeno z identifikatorjem procesa v oglatih oklepajih. Telo sporočila je ločeno od oznake s posebnimi znaki - v Linuxu sta to običajno dvopičje in presledek.

Obdelava sporočil s pomočjo demona syslogd

Vsa sporočila, ki jih ustvarijo posamezni programi s funkcijo syslog, poslano prek vtičnice /dev/log sistemski demon syslogd, ki je odgovoren za obdelavo teh sporočil. Povedati je treba, da se v sistemu pravzaprav zaženeta dva demona za beleženje - syslogd in klogd. Oba demona sta vključena v paket sysklogd, katerega najnovejšo različico najdete na spletni strani.

Daemon klogd je odgovoren za beleženje dogodkov, ki se zgodijo v sistemskem jedru. Potreba po ločenem demonu klogd zaradi dejstva, da jedro ne more uporabljati standardne funkcije syslog. Dejstvo je, da standardne knjižnice(vključno s knjižnico, v kateri se nahaja funkcija syslog) so namenjeni samo za uporabo z navadnimi aplikacijami. Ker tudi jedro potrebuje podobne funkcije, vključuje lastne knjižnice, ki aplikacijam niso na voljo. Zato jedro uporablja lasten mehanizem za generiranje sporočil. Daemon klogd je namenjen organizaciji obdelave teh sporočil. Načeloma lahko takšno obdelavo izvaja popolnoma samostojno in neodvisno od syslogd, na primer z beleženjem teh sporočil v datoteko, vendar je v večini primerov uporabljena privzeta nastavitev klogd, v katerem so vsa sporočila iz jedra posredovana istemu demonu syslogd.

Da se prepričam o demonih syslogd in klogd ki se izvaja v vašem sistemu, zaženite ukaz ps -ax | dnevnik grep. Ta ukaz mi je dal naslednji rezultat:

$ ps -ax | dnevnik grep 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 Prvi dve vrstici kažeta, da se v sistemu izvajajo demoni za beleženje.

Obdelava sporočil s strani demona syslogd je v tem, da nenehno spremlja videz sporočil in primerja vsak dohodni vnos s pravili, ki so v datoteki /etc/syslog.conf. Vsako pravilo je zapisano kot vrstica datoteke /etc/syslog.conf, sestavljen iz dveh polj. Levo polje ("izbirnik") določa eno ali več predlog, po katerih se izbirajo sporočila. Vzorci so ločeni s podpičji (glejte primer datoteke spodaj /etc/syslog.conf). Desno polje (»dejanje«) določa vrstni red obdelave izbranih sporočil. Polja so ločena z enim ali več presledki ali tabulatorji.

Vsak vzorec v polju "izbirnik" ima obliko "category.level" (to je "facility.priority"). Vrednosti polja "kategorija" so lahko:

  • eno od običajnih imen kategorij, navedenih v tabeli 1,
  • več takih imen (v tem primeru so ločena z vejicami)
  • ali simbol * (kar pomeni "vse kategorije").

Vrednosti polja "raven" so lahko:

  • eno od imen ravni, navedenih v tabeli 2,
  • simbol * (zabeležite vsa sporočila te kategorije, ne glede na raven),
  • ali beseda nobeden(ne beleži sporočil v tej kategoriji).

Navedba določene vrednosti v polju »raven« se razlaga kot »vse vrednosti tej ravni in višje". Če želite posneti sporočila samo ene ravni, morate pred podano vrednostjo postaviti znak enačaja ("="). Če želite posneti sporočila vseh ravni razen navedene, potem postavite pred ime stopnje Klicaj("!"). Postavitev teh dveh znakov hkrati se razlaga kot "ne beleži sporočil določene stopnje ali višje."

V polju "izbirnik" ni razlike med velikimi in malimi črkami. Uporabite lahko tudi številke (glejte /usr/include/syslog.h). Poleg kategorij, navedenih v tabeli 1, lahko navedete označiti(redni časovni žigi) in varnost(zastarel sinonim za avt). Poleg prioritetnih vrednosti, navedenih v tabeli 2, lahko uporabite opozoriti(sinonim za Opozorilo), napaka(sinonim za napaka), panika(sinonim za emerg).

Ko se najde ujemanje med kategorijo in ravnjo prejetega sporočila ter enim od vzorcev v polju "izbirnik" nekega niza, syslogd obdela zapis v skladu z dejanjem, določenim v polju »dejanje« v tej vrstici.

Polje "dejanje" lahko vsebuje

  • ime običajne datoteke (dnevniške datoteke) in polna pot do datoteke mora biti navedena, začenši s korenom "/", in če navedena datoteka ne obstaja, syslogd ga ustvarja,
  • ime imenovane cevi - FIFO; v tem primeru je pred imenom postavljena navpična črta ("|"), sam kanal pa je treba ustvariti pred začetkom syslogd ekipa mkfifo,
  • ki kaže na terminal ali konzolo (kot v napravi: /dev/tty1),
  • navedba oddaljenega gostitelja (pred njim je simbol @),
  • ali seznam uporabnikov (ločenih z vejicami), na katerih terminale bo poslano sporočilo v skladu s tem pravilom. Namesto seznama uporabnikov lahko postavite zvezdico (*), kar bo pomenilo, da so sporočila poslana vsem uporabnikom, ki delajo v ta trenutek v sistemu.

Najpogosteje polje »dejanje« še vedno vsebuje ime datoteke dnevnika. Poleg tega lahko pred ime datoteke postavite znak minus ("-"), kar bo pomenilo, da lahko sistem datoteko shrani v predpomnilnik, namesto da bi jo izpraznil po zapisu vsakega sporočila na disk. To seveda pospeši delo, še posebej, če je v protokol zapisanih veliko velikih sporočil, lahko pa pride do izgube nekaterih sporočil v primeru nepričakovanega sesutja sistema, torej ravno takrat, ko so takšna sporočila še posebej potrebna. . Prav tako lahko določite tiskalnik - /dev/lp0 - kot napravo v polju "dejanje". To možnost "dejanja" je priporočljivo uporabiti v primerih, ko gre za posebej pomembne sisteme. Protokolov, ki so natisnjeni, hekerji ne morejo izbrisati ali spremeniti, zato je to dobra uporaba za stari matrični tiskalnik.

Poleg vrstic s pravili v datoteki /etc/syslog.conf lahko vsebuje prazne vrstice in vrstice komentarjev, ki se začnejo s simbolom #. Več o strukturi datoteke /etc/syslog.conf Lahko preberete man stran syslog.conf za kar nekaj primerov vnosov pravil v tej datoteki. Upoštevajte, da pri podajanju parov »category.level« v datoteki syslog.conf ne more uporabljati številske vrednosti, podanih v tabelah 1 in 2, so dovoljena samo njihova konvencionalna imena.

Če se sporočilo ujema z vzorci dveh ali več nizov, bo obdelano v skladu z vsakim od teh pravil (to pomeni, da se obdelava sporočila ne ustavi ob prvem uspehu). To pomeni, da je za eno sporočilo mogoče izvesti poljubno število dejanj. Zato lahko sporočilo zapišete v dnevniško datoteko in ga pošljete uporabniku(-om) ali oddaljenemu gostitelju.

Poleg tega, če je v polju "izbirnik" navedenih (ločenih s podpičji) več parov "category.level", potem lahko naslednji pari preglasijo prejšnje. Primer takega preklica si lahko ogledate v spodnjem seznamu datotek /etc/syslog.conf: Vsa sporočila, katerih raven je enaka ali višja od info, se zapišejo v datoteko /var/log/messages, vendar so sporočila iz kategorij e-pošte, authpriv in cron preskočena (niso zapisana).

Izpis 1. Datoteka /etc/syslog.conf iz sistema, zgrajenega na distribuciji Red Hat Linux 7.1 (v ruščino sem prevedel samo komentarje v tej datoteki in pravila označil s krepkim tiskom).
# Natisnite vsa sporočila iz jedra v konzolo. #kern.* /dev/console# Beleži vsa sporočila na ravni informacij ali višji, # razen sporočil poštnega sistema, ki vsebujejo občutljive # informacije iz sporočil za preverjanje pristnosti in sporočil demonov cron. *.info;mail.none;authpriv.none;cron.none /var/log/messages# Zapišite sporočila, ki vsebujejo občutljive # podatke za preverjanje pristnosti, v ločeno datoteko, ne glede na njihovo raven. authpriv.* /var/log/secure# Tudi vsa sporočila iz poštnega sistema je treba zabeležiti ločeno. pošta.* /var/log/maillog# Beležite dejanja demona cron. cron.* /var/log/cron# Sporočila v sili bi morali takoj prejeti # vsi uporabniki sistema *.emerg*# Zapišite sporočila novičarskih storitev na ravni kritičnosti in višje v ločeno datoteko. uucp,news.crit /var/log/spooler# Sporočila, izdana med fazo zagona, se prekopirajo v datoteko boot.log local7.* /var/log/boot.log
Kot lahko vidite, je večina sporočil preprosto zapisanih v različne dnevniške datoteke v imeniku /var/log ali njegovih podimenikov, pri čemer je datoteka glavnega sistemskega dnevnika v Red Hat Linux /var/log/messages. Ne vključuje le sporočil iz kategorij mail, authpriv in cron (za katere so dodeljene ločene datoteke). Oglejmo si to datoteko in na njenem primeru vidimo, kaj je zabeleženo v dnevniških datotekah.

Dnevniška datoteka /var/log/messages

Seveda tukaj ni mogoče govoriti o vsebini posamezne vrstice te datoteke. Da bi bralec dobil predstavo o tem, katere informacije lahko najdemo v protokolu, predstavljamo posamezne vrstice sporočil z zelo kratkimi komentarji.

Vsaka vrstica v dnevniški datoteki vsebuje en sam zapis sporočila, sestavljen iz naslednjih sporočilnih polj, ločenih s presledki:

  • datum v standardni besedilni obliki (polj ČASOVNI ŽIG iz sporočila syslog),
  • ime gostitelja (polje HOSTNAME iz sporočila syslog)
  • besedilo sporočila (polja OZNAKA in VSEBINA iz sporočila syslog)

Najprej je vredno omeniti, da če vaš računalnik ne deluje 24/7, ampak je ponoči izklopljen, potem v tej datoteki najdete zapise več "delovnih ciklov", ki se začnejo z zagonom računalnika in končajo z izklopom. Tak cikel se začne s sporočilom o zagonu demonov za beleženje (to je razumljivo, sporočila niso bila posneta, preden so bila zagnana):

17. september 08:32:56 kos3 syslogd 1.4-0: ponovni zagon. 17. september 08:32:56 kos3 syslog: zagon syslogd je uspel 17. september 08:32:56 jedro kos3: klogd 1.4-0, izvor dnevnika = /proc/kmsg zagnan. 17. september 08:32:56 jedro kos3: Pregled /boot/System.map-2.4.2-2 17. september 08:32:56 kos3 syslog: zagon klogd uspel

  • - Katera različica jedra je uporabljena: 17. september 08:32:56 jedro kos3: različica Linuxa 2.4.2-2 ( [e-pošta zaščitena]) (gcc različica 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) #1 Sun Apr 8 20:41:30 EDT 2001
  • - S katerimi parametri se je zagnalo jedro: Sep 17 08:32:56 jedro kos3: Ukazna vrstica jedra: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2
  • - Informacije o vrsti in zmogljivosti procesorja pomnilnik z naključnim dostopom: Sep 17 08:32:56 jedro kos3: Zaznan procesor 1594,849 MHz. 17. september 08:32:56 jedro kos3: Pomnilnik: 125652k/130560k na voljo (1365k koda jedra, 4200k rezervirano, 92k podatkov, 236k init, 0k highmem) 17. september 08:32:56 jedro kos3: CPE: L1 I predpomnilnik: 12K , L1 D predpomnilnik: 8K 17. september 08:32:56 jedro kos3: CPE: predpomnilnik L2: 256K 17. september 08:32:56 jedro kos3: CPE: CPU Intel(R) Pentium(R) 4 1,60 GHz korak 02
  • - Informacije o diskovni pomnilnik(vključno z informacijami o geometriji diska, strukturi diskovne particije in uporabljenih prekinitev): 17. september 08:32:56 jedro kos3: hda: MAXTOR 6L020J1, pogon ATA DISK 17. september 08:32:56 jedro kos3: hdc: SAMSUNG CD-ROM SC -148C, pogon ATAPI CD/DVD-ROM 17. september 08:32:56 jedro kos3: ide0 na 0x1f0-0x1f7,0x3f6 na irq 14. 17. september 08:32:56 jedro kos3: ide1 na 0x170-0x177,0x376 na irq 15 17. september 08:32:56 jedro kos3: hda: 40132503 sektorjev (20548 MB) w/1819KiB predpomnilnika, CHS=2498/255/63, UDMA(100) 17. september 08:32:56 jedro kos3: preverjanje particije: 17. september 08:32:56 kos3 jedro: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17. september 08:32:56 jedro kos3: disketni pogon(i): fd0 je 1,44M
  • - Informacije o periferne naprave: 17. september 08:32:56 jedro kos3: usb-uhci.c: USB UHCI pri V/I 0x1820, IRQ 11. 17. september 08:32:56 jedro kos3: usb-uhci.c: zaznana 2 vrata 17. september 08: 32:56 jedro kos3: ttyS00 pri 0x03f8 (irq = 4) je 16550A 17. september 08:32:56 jedro kos3: ttyS01 pri 0x02f8 (irq = 3) je 16550A 17. september 08:32:56 jedro kos3: eth0: Ethernetni vmesnik na osnovi Intel(R) 8255x 17. september 08:32:56 jedro kos3: hitri ethernetni vmesnik Intel(R) PRO/100 - gonilnik za nalaganje, različica 1.5.6 17. september 08:32:56 jedro kos3: PCI: najdeno IRQ 11 za napravo 02:08.0
  • - Informacije o lansiranju posameznih storitev: Sep 17 08:32:56 jedro kos3: NET4: Linux TCP/IP 1.0 za NET4.0 Sep 17 08:32:56 Jedro kos3: IP Protokoli: ICMP, UDP, TCP, IGMP 17. september 08:32:56 jedro kos3: NET4: domenske vtičnice Unix 1.0/SMP za Linux NET4.0. 17. september 08:32:56 jedro kos3: parport0: PC-style pri 0x378 (0x778) 17. september 08:32:56 jedro kos3: parport0: zaznan irq 7 17. september 08:32:42 kos3 rc.sysinit: vklop uporabnika in skupinske kvote za lokalne datotečne sisteme: uspelo 17. september 08:32:43 kos3 rc.sysinit: Omogočanje izmenjalnega prostora: uspelo 17. september 08:32:44 kos3 init: vstop v raven izvajanja: 3. september 17 08:32:45 kos3 kudzu: posodabljanje /etc/fstab uspelo 17. september 08:32:55 kos3 kudzu: uspelo 17. september 08:32:55 omrežje kos3: Nastavitev omrežnih parametrov: uspelo 17. september 08:32:55 omrežje kos3: Dvig vmesnika lo: uspelo 17. september 08: 32:56 kos3 omrežje: Aktiviranje vmesnika eth0: uspelo 17. september 08:32:56 kos3 keytable: nalaganje razporeditve tipkovnice: 17. september 08:32:56 kos3 keytable: nalaganje sistemske pisave: 17. september 08:32:56 kos3 naključno: inicializacija generator naključnih števil: uspelo 17. september 08:32:41 kos3 rc.sysinit: Konfiguriranje parametrov jedra: uspelo 17. september 08:32:41 kos3 rc.sysinit: nastavitev privzete pisave (cyr-sun16): uspelo 17. september 08:32: 41 kos3 rc.sysinit: Aktiviranje izmenjalnih particij: uspelo 17. september 08:32:41 kos3 rc.sysinit: Nastavitev imena gostitelja kos3: uspelo 17. september 08:33:03 kos3 xinetd: zagon xinetd je uspel 17. september 08:33:05 kos3 gpm : zagon gpm uspel 17. september 08:33:05 kos3 crond: zagon cronda uspel 17. september 08:33:06 kos3 xfs: poslušanje na vratih 7100 17. september 08:33:06 kos3 xfs: zagon xfs uspel
  • - Informacije o nameščanju datotečnih sistemov: 17. september 08:32:56 jedro kos3: VFS: nameščen koren (datotečni sistem ext2) samo za branje. 17. september 08:32:56 jedro kos3: Dodajanje zamenjave: 265032k swap-space (prioriteta -1) 17. september 08:32:56 jedro kos3: MSDOS FS: Uporaba kodne strani 866 17. september 08:32:56 jedro kos3: MSDOS FS : IO charset koi8-r 17. september 08:32:41 kos3 rc.sysinit: namestitev datotečnega sistema USB: uspelo 17. september 08:32:41 kos3 rc.sysinit: preverjanje korenskega datotečnega sistema je uspelo 17. september 08:32:41 kos3 rc.sysinit : Ponovna namestitev korenskega datotečnega sistema v načinu za branje in pisanje: uspelo 17. september 08:32:41 kos3 rc.sysinit: Namestitev proc datotečnega sistema: uspelo 17. september 08:32:41 kos3 fsck: /: čisto, 30407/160000 datotek, 95270/319410 bloki 17. september 08:32:42 kos3 fsck: /HOME: čisto, 6573/432864 datotek, 689090/863722 blokov 17. september 08:32:42 kos3 fsck: /usr: čisto, 55105/329952 datotek, 286888/659602 blokov sep 17 08:32:42 kos3 rc.sysinit: Preverjanje datotečnih sistemov je uspelo
  • - Nekatera sporočila o napakah: 17. september 08:32:42 pripenjanje kos3: povezava SMB ni uspela 17. september 08:32:42 pripenjanje kos3: pošiljanje paketa ni uspelo 10.104.129.245(137) ERRNO=Omrežje ni dosegljivo 17. september 08:32: 42 kos3 mount: mount: /dev/sda4: neznana naprava 17. september 08:32:59 kos3 mount: napaka pri povezovanju z 192.168.36.20:139 (ni poti do gostitelja) 17. september 08:32:59 kos3 mount: mount: / dev /sda4: neznana naprava
  • - Sporočila o prijavljanju uporabnikov: 17. september 08:33:14 kos3 login(pam_unix): sejo je za uporabnika kos odprl LOGIN(uid=0) 17. september 08:33:14 kos3 -- kos: PRIJAVA NA tty1 OD kos 17. september 08:41:39 kos3 su(pam_unix): napaka pri preverjanju pristnosti; logname=kos uid=500 euid=0 tty= ruser= rhost= uporabnik=root
  • - In končno, sporočila, posneta, ko je računalnik izklopljen, na primer: 17. september 10:30:07 kos3 rc: zaustavitev tabele s tipkami: uspelo 17. september 10:30:07 strežnik pisav kos3: prekinitev 17. september 10:30:08 kos3 xfs: ustavitev xfs je uspela 17. september 10:30:08 kos3 gpm: ustavitev gpm je uspela 17. september 10:30:08 kos3 xinetd: Izhod ... 17. september 10:30:10 kos3 rpc.statd: Ulovljen signal 15, ne- registracija in izstop. 17. september 10:30:11 jedro kos3: Beleženje jedra (proc) je ustavljeno. 17. september 10:30:11 jedro kos3: Demon dnevnika jedra se konča. 17. september 10:30:12 sistemski dnevnik kos3: zaustavitev klogd je uspela 17. september 10:30:12 izhod kos3 ob signalu 15

    Vnosi v drugih datotekah protokolov, omenjenih v datoteki, imajo približno enako strukturo /etc/syslog.conf.

    ukaza logger in tailf

    Iz prejšnjega opisa lahko sklepamo, da mora izdajo vseh sporočil za sistemske dnevnike določiti programer v fazi izdelave programa. To ne drži povsem. Uporabnik ima tudi možnost poslati sporočilo demonu syslogd. V Linuxu obstaja ukaz za to drvar, ki omogoča pošiljanje sporočila iz ukazne vrstice (sh, bash itd.). Je del paketa util-linux. Seveda je ta ukaz namenjen predvsem zagotavljanju zmožnosti beleženja, ko uporabnik ustvarja različne vrste lupinskih skriptov. Lahko pa ga zaženete tudi neposredno iz ukazne vrstice, na primer, da se seznanite z zmožnostmi sistema za beleženje. Oblika zagona ukaza: zapisovalnik [-isd] [-f datoteka] [-p PRI] [-t OZNAKA] [-u vtičnica] Možnosti ukazne vrstice imajo naslednji pomen:

    • -jaz- v sporočilo vključite številko procesa
    • -s- podvojeno sporočilo za stderr
    • -d- pri pošiljanju sporočil uporabljajte način datagrama (namesto običajnega pretakanja)
    • -f ime datoteke- shrani sporočilo v določeno datoteko(privzeto je /var/log/messages)
    • -p objekt.raven- nastavite kategorijo in prioriteto sporočila (privzeto: user.notice)
    • -t OZNAKA - nastavite polje TAG
    • -u vtičnica- pošlji sporočilo v določeno vtičnico namesto klica syslogd
    • MSG- Besedilo sporočila

    S programom pošljite več sporočil drvar in občudujte rezultat v datoteki /var/log/messages(če seveda niste spremenili privzete vrednosti).

    Mimogrede, obstaja zelo zanimiv način za ogled sporočil, zapisanih v datoteko /var/log/messages ekipa drvar. Ta metoda temelji na uporabi poseben program tailf. Odprite terminalsko okno, pridobite pravice superuporabnika (z ukazom su) in zaženite ukaz v tem oknu
    tailf /var/log/messages
    Po tem preklopite na drug terminal in tam zaženite ukaz logger free_text. Vaše sporočilo se bo takoj pojavilo v oknu, kjer se izvaja program tailf. To pomeni, da lahko s pomočjo tega programa skrbnik sistema spremlja snemanje novih sporočil v protokolu v realnem času. Prav, sistemski administrator skoraj ni časa za spremljanje obnašanja sistema na ta način (razen morda izrednih razmerah). Zato so bili razviti posebni programi za analizo protokolov. Toda več o njih spodaj, zdaj pa preidimo na vprašanje, kako organizirati nadzor oddaljenega računalnika (se spomnite, kako ste ujeli napadalca Shimomura?).

    Beleženje omrežja

    Kot rečeno, lahko sporočila sistema za beleženje pošilja demon syslogd na oddaljenega gostitelja. Tam pa ga mora nekdo sprejeti. Izkazalo se je, da to počne isti demon syslogd, ki se izvaja na tem oddaljenem gostitelju. Natančneje, syslogd na katerem koli računalniku lahko posluša ne samo vtičnico /dev/log (s čimer sprejema sporočila iz lokalnih virov), temveč tudi vrata 514/UDP, ki zagotavljajo sprejem sporočil iz drugih računalnikov v lokalnem omrežju (in njihovo poznejše snemanje v lokalna datoteka). To omogoča ustvarjanje »strežnika za beleženje«, kar je lahko zelo priročno za sistemskega administratorja (vse dogajanje v omrežju se spremlja na enem mestu), poleg tega pa se poveča varnost omrežja, saj sporočila o vdoru hekerja v enega od omrežnih gostiteljev ni mogoče takoj prijaviti, da jih je ta heker odstranil iz protokola.

    Za organizacijo takšnega "mrežnega beleženja" pa je treba vložiti nekaj dodatnih naporov.

    Prvič, ker se vrata 514/UDP uporabljajo za pošiljanje in prejemanje sporočil prek omrežja, morajo biti na voljo na obeh računalnikih (odjemalec in strežnik). Če želite to narediti v datoteki /etc/storitve linija mora biti prisotna na obeh računalnikih
    syslog 514/udp
    Če je taka vrstica v /etc/storitve odsoten, syslogd ne more niti prejemati sporočil niti jih pošiljati v omrežje, ker ne more odpreti vrat UDP. Če pride do takšne situacije, syslogd takoj preneha pisati kakršna koli sporočila, tudi v lokalni dnevnik. Ob tem, kot kaže ekipa ps, ostane v pomnilniku in celo shrani sporočila v nekatere medpomnilnike, ker če je vrstica " syslog 514/udp" obnoviti v datoteko /etc/storitve na stranko, nato po vsaj Nekatera "manjkajoča" sporočila so še vedno prikazana v dnevniku (po ponovnem zagonu syslogd).

    Drugič, pri zagonu demona syslogd možnost mora biti navedena na strežniku -r, ki nudi zmožnosti oddaljenega beleženja (privzeti demon syslogdčaka na sporočila samo iz lokalne vtičnice). Kako in kje nastaviti to možnost, bomo obravnavali spodaj, v razdelku o zagonu demona syslogd.

    No, in tretjič, nastavitve v datotekah je treba ustrezno popraviti /etc/syslog.conf na obeh računalnikih. Na primer, če želite vsa sporočila preusmeriti na strežnik za beleženje, morate pisati v datoteko v odjemalskem računalniku /etc/syslog.conf vrstica, kot je ta:
    *.* @imegostitelja
    Če med začetkom demon syslogd strežnik bo nedosegljiv (npr. trenutno ni povezan z omrežjem) ali pa ga ne bo mogoče najti po imenu (storitev DNS ni delovala pravilno) syslogd naredi še 10 poskusov iskanja strežnika in le če po tem strežnika ne najde, preneha s poskusi in pošlje ustrezno sporočilo.

    Če imate v omrežju več domen, ki jih oskrbuje en strežnik za beleženje, naj vas ne preseneti, da bo dnevnik na strežniku vključeval polna imena odjemalcev (vključno z domeno). Res je, ob zagonu syslogd lahko uporabite možnosti -s seznam_domen oz -l seznam_gostiteljev, ki zagotavljajo zamenjavo polnih imen gostiteljev v protokolu z njihovimi kratkimi imeni (brez navedbe domene).

    Ne pozabite po prilagoditvi možnosti zagona in datoteke /etc/syslog.conf znova zaženite demona, ker za razliko od kron, sysklogd konfiguracijskih datotek ne bere samodejno.

    možnosti zagona demona syslogd

    Ker smo se dotaknili vprašanja nastavitve parametrov zagona demona v prejšnjem pododdelku syslogd, poglejmo to vprašanje podrobneje. Kot že omenjeno, se oba dnevnika demona zaženeta v fazi inicializacije sistema, natančneje prek skripta /etc/rc.d/init.d/syslog(za katere so, tako kot za zagonske skripte za druge storitve, ustvarjene simbolične povezave v imenikih /etc/rc.d/rc?.d/). Vendar pa za nastavitev parametrov zagona ni treba prilagajati tega skripta, ker se od različice 7.2 v distribuciji Red Hat dalje možnosti zagona za oba demona berejo iz ločene konfiguracijske datoteke. /etc/sysconfig/syslog. Tukaj je kratek seznam možnih parametrov za demon syslogd.

    Parametri zagona syslogd:

    • - vtičnica- Določa dodatno vtičnico, ki jo bo demon poslušal syslogd. Določite lahko do 19 vtičnic (možnih je več, vendar morate za to znova prevesti paket). Ta možnost se uporablja v primerih, ko se kak drug demon (na primer ftp ali http) izvaja v omejenem okolju (chrooting).
    • -d- Način odpravljanja napak. V tem primeru demon ne gre v način ozadja in odda vsa sporočila na trenutni terminal.
    • -f ime-konfiguracijske-datoteke Podaja ime alternativne konfiguracijske datoteke, ki bo uporabljena namesto privzete /etc/syslog.conf.
    • -h Privzeto v sysklogd Prenos sporočil, prejetih po omrežju, na drug računalnik je prepovedan. To se naredi, da se preprečijo neskončni prenosi sporočil po obroču. Možnost -h vam omogoča, da spremenite običajno vedenje in zagotovite, da se sporočila, prejeta od oddaljenih gostiteljev, prenašajo naprej po omrežju (ter sami poskrbite za morebitno zanko).
    • -l seznam gostiteljev- Določa seznam gostiteljev, katerih imena ne smejo biti zapisana s polnim imenom domene (FQDN - Full Qualified Domain Name); imena na seznamu so ločena z dvopičjem.
    • -m minut Zagnano brez te možnosti sysklogd redno (vsakih 20 minut) beleži sporočila kategorij v protokol označiti, torej preprosto časovne žige. Uporaba možnosti -m lahko spremenite interval med oznakami ali popolnoma prekličete izdajo takih sporočil, za kar morate interval nastaviti na nič: -m 0.
    • -n Ne zbledi v ozadje; ta možnost je potrebna v primerih, ko se syslogd zažene in nadzoruje proces v.
    • -p vtičnica Podaja alternativno vtičnico UNIX (namesto privzete, ki posluša /dev/log). Opomba: možnost -a določa dodatne vtičnice in -str- alternativa!
    • -r Dovoli prejemanje sporočil od oddaljenih gostiteljev. O tem smo govorili v prejšnjem razdelku, zato bom podrobnosti izpustil.
    • -s seznam domen Podaja seznam domen, katerih imen ni treba beležiti skupaj z imenom gostitelja (to pomeni, da bo za te domene zabeleženo samo ime gostitelja namesto popolnoma kvalificiranega imena domene (FQDN). Imena na seznamu so ločeno z dvopičjem Imena domene, v kateri se nahaja strežnik syslogd, ni treba vključiti v ta seznam (njeno ime je privzeto odstranjeno).
    • -v Pokaži različico in dokončaj delo.
    • -x Prepoved določanja imena gostitelja po njegovem naslovu, preprečuje zastoj pri delu na istem gostitelju s strežnikom DNS.

    Po zagonu demona syslogd ustvarjena je statusna datoteka /var/lock/subsys/syslog ničelne dolžine in datoteko z identifikacijsko številko procesa /var/run/syslogd.pid.

    Uporaba ukaza
    kill -SIGNAL `cat /var/run/syslogd.pid`
    lahko pošljete demonu syslogd enega od naslednjih signalov:

    • SIGHUP - ponovni zagon demona (ponovna inicializacija); vse odprte datoteke so zaprte, demon se zažene znova in ponovno prebere svojo konfiguracijsko datoteko.
    • SIGTERM - izklop.
    • SIGINT, SIGQUIT - če je omogočen način odpravljanja napak (možnost -d), se signali prezrejo; v nasprotnem primeru se zaustavi.
    • SIGUSR1 - omogoči/onemogoči način odpravljanja napak (deluje samo, če je bil demon zagnan s stikalom -d).

    Daemon klogd nima nič manj možnosti zagona kot syslogd, vendar jih tukaj ne bomo predstavili, saj bomo bralca napotili na ustrezno stran priročnika (uporabnik naj se ne trudi z nastavitvijo klogd, je bolje, da ga pustite v stanju, v katerem so ga izdelali razvijalci distribucije).

    datoteko dmesg in ukaz dmesg

    Kot že omenjeno, dnevniške datoteke, omenjene v datoteki /etc/syslog.conf običajno v imeniku /var/log in njegovih podimenikov. Toda če pogledamo v ta imenik, bomo tam našli več datotek, ki /etc/syslog.conf niso bili omenjeni. Poglejmo njihov namen. Začnimo z datoteko dmesg.

    Najprej moramo omeniti, da ima Linux ukaz z istim imenom. Če primerjate izhod tega ukaza (ko se izvaja brez parametrov) z vsebino datoteke /var/log/dmesg, boste ugotovili, da sta si zelo podobna, čeprav ne enaka (usmerite izhod ukaza v datoteko dmesg2 in primerjaj datoteke dmesg in dmesg2). Natančneje, datoteka /var/log/dmesg ena proti ena sovpada z začetkom izhoda, ki ga dobimo iz ukaza dmesg. Kot izhaja iz , ima jedro obročni medpomnilnik, v katerega se zapisujejo sporočila demona za beleženje jedra. Tista sporočila, ki so med postopkom prenosa zapisana v ta medpomnilnik, sestavljajo vsebino datoteke /var/log/dmesg. Očitno je ta datoteka ustvarjena po zagonu sistema.

    Če ponovno pogledate navedeni seznam datotek /etc/syslog.conf, boste videli, da so vsa sporočila v kategoriji kern se izdajo tudi konzoli. Tam pa hitro stečejo po ekranu in skoraj nimaš časa, da bi jih prebral in dojel. Vendar so shranjeni v datoteki /var/log/dmesg in so tako na voljo za lagoden razmislek (če je postopek prenosa uspešno zaključen). Ko je postopek zagona končan, se pisanje sporočil iz jedra v medpomnilnik obroča nadaljuje. Ko je ukaz izvršen dmesg, se prikaže trenutno stanje medpomnilnika. Zato izhod tega ukaza vsebuje več sporočil kot datoteka /var/log/dmesg: v izhodu tega ukaza vidite tudi sporočila, ki jih izda jedro po končanem zagonskem procesu.

    Vsa sporočila od /var/log/dmesg boste našli v datoteki /var/log/messages, le tam se izmenjujejo s sporočili drugih programov. Obstaja samo ena pomembna razlika: v datoteki dmesgčas in vir sporočila (ime gostitelja in kategorija sporočila) nista navedena. Gostitelj je tukaj vedno »lokalni«, začetek štetja časa pa je določen z zadnjim ponovnim zagonom računalnika.

    datoteke lastlog, wtmp in utmp

    Poleg datoteke dmesg v katalogu /var/log/ obstajata še dve datoteki, ki nista omenjeni v /etc/syslog.conf, vendar neposredno povezane z beleženjem - to so datoteke lastlog in wtmp. Toda poglejte jih na enak način, kot smo pogledali datoteko /var/log/messages nima smisla - nič ne boste razumeli. Dejstvo je, da so informacije v teh datotekah zapisane v posebni obliki in si jih je treba ogledati s posebnimi programsko opremo. Najprej pa moramo povedati nekaj besed o namenu teh datotek.

    mapa lastlog hrani podatke o zadnji prijavi uporabnika. Ne vem, ali ste opazili, da se vam ob vpisu uporabniškega imena in gesla na zaslonu prikaže nekaj takega:

    Prijava lokalnega gostitelja: kos Geslo: Zadnja prijava: sreda, 9. oktober 19:25:53 na tty1 Te tri vrstice ustvari pripomoček Vpiši se, ki po ugotovitvi, da ima uporabnik prijavne pravice, dostopa do datoteke /var/log/lastlog, od tam pridobi informacije o prejšnji uspešni prijavi uporabnika, jih prikaže na zaslonu in nato posodobi zapis v datoteki lastlog. To sporočilo lahko zatrete tako, da v domačem imeniku ustvarite prazno datoteko .hushlogin. Vendar tega ni priporočljivo storiti, ravno nasprotno, bodite še posebej pozorni na vsebino tega sporočila, da ne bi zamudili primerov, ko se je nekdo drug prijavil pod vašim imenom.

    Za razliko od datoteke /var/log/lastlog, ki vsebuje časovne zapise zadnji prijava za vsakega uporabnika v datoteki /var/log/wtmp se spomnijo Vse prijave in odjave uporabnikov od ustvarjanja te datoteke. Enako kot v datoteki lastlog, vpisi v /var/log/wtmp so izdelani v posebnem formatu, zato jih je mogoče pregledovati samo s posebnimi ukazi. Toda preden govorimo o teh ukazih, povejmo, da obstaja še ena datoteka, ki vsebuje zapise o beleženju uporabnikov - to je datoteka /var/run/utmp. Ta datoteka vsebuje informacije o tem, kateri uporabniki trenutno delajo v sistemu.

    Zdaj lahko govorite o tem, kako si ogledate informacije o uporabnikih, ki delajo ali so prej delali v sistemu. Glavni ukaz za to je ukaz zadnji. Prikaže vse zapise iz datoteke /var/log/wtmp, pri čemer je navedeno uporabniško ime, navedba terminala s katerega je uporabnik delal, čas prijave uporabnika v sistem in čas odjave iz sistema ter trajanje uporabnikove seje v sistemu. Če je bilo delo uporabnika prekinjeno samo zaradi izklopa samega sistema, je namesto časa izhoda uporabnika beseda "dol" (iz teh vrstic je enostavno določiti čas, ko se je sistem ustavil). Čas ponovnega zagona je prikazan v ločenih vrsticah, ki se začnejo z besedo "reboot".

    Ekipa lastb kot ekipa zadnji, vendar prikazuje informacije o neuspelih poskusih prijave uporabnikov. Vendar je treba upoštevati, da bo ta ukaz deloval le, če datoteka obstaja /var/log/btmp. Vendar nobeden od tukaj obravnavanih programov ne ustvari dnevniških datotek, tako da se snemanje konča, če se katera od njih izbriše.

    Ekipa lastlog oblikuje in prikaže vsebino datoteke /var/log/lastlog. Prikaže se uporabniško ime, ime terminala, s katerega se je uporabnik prijavil, in čas zadnje prijave. Privzeto (ko je ukaz vnesen brez parametrov) elementi datoteke /var/log/lastlog bodo prikazane v vrstnem redu ID številk uporabnika. Če podate možnost -u prijavno-ime, bo prikazan samo čas zadnje prijave podanega uporabnika. Če navedete parameter -t days, boste prejeli samo zapise za zadnje dni dni. Če se uporabnik sploh ni prijavil v sistem, bo namesto imena terminala in časa zadnje prijave prikazan niz "**Nikoli prijavljen**".

    Pri izvajanju ukaza lastlog Na počasnem računalniku se lahko v nekaterih primerih zdi, da je ukaz obstal. To se zgodi zaradi dejstva, da tudi če sta v sistemu registrirana samo dva uporabnika (root in uporabnik), v datoteki /var/log/lastlogše vedno je prostora za delo čim večjega števila uporabnikov na sistemu. Zato v datoteki /var/log/lastlog Med ID številkami uporabnikov, ki delajo v sistemu, so lahko velike vrzeli. Ker pri ogledu takih intervalov program ne prikaže informacij na zaslonu in nastane vtis "zamrznitve".

    Za prikaz informacij o tem, kdo trenutno dela v sistemu, uporabite ukaze w, WHO in uporabniki. Ekipa uporabniki se uporablja, ko želite vedeti le, kateri uporabnik trenutno dela v sistemu, ne zanima pa vas, s katerega terminala se je povezal in kaj počne. Če želite vedeti, kdo se je prijavil iz katerega terminala, uporabite ukaz WHO. Ta ukaz natisne podatke iz datoteke /var/run/utmp. Lahko ga prisilite, da izpiše podatke iz datoteke /var/log/wtmp(ali katero koli drugo datoteko, za katero je to smiselno), če vnesete ime te datoteke ukazna vrstica. Toda v izpisu boste še vedno videli samo uporabniško ime, navedbo terminala, s katerega se je uporabnik prijavil, čas prijave in, v primeru prijave z oddaljeni računalnik, ime tega računalnika.

    Ukaz izpiše bistveno več informacij w. V njegovem izpisu boste videli trenutni čas, kako dolgo sistem deluje, koliko uporabnikov trenutno dela v sistemu in povprečno obremenitev sistema v zadnjih minutah, 5 in 15 minutah. Nato za vsakega uporabnika natisne:

  • uporabniško ime,
  • ime terminala,
  • ime oddaljenega gostitelja
  • čas, ki je pretekel od prijave,
  • čas, ko se ta terminal ne uporablja (čas mirovanja),
  • skupni čas, porabljen za vse procese, ki so se začeli od tega terminala(stolpec JCPU),
  • čas, v katerem teče zadnji proces, ki ga je zagnal uporabnik (PCPU graf),
  • podatek o tem, kateri program trenutno izvaja uporabnik (v obliki ukazne vrstice za zagon ukaza z vsemi parametri).

    Kot že rečeno, ekipa w prikaže informacije, shranjene v datoteki utmp. Mimogrede, priročnik moški navaja, da običajni uporabniki mora biti zavrnjen dostop za pisanje v datoteko utmp, saj je veliko sistemskih programov (iz nekaterih nerazložljivih razlogov) odvisnih od njegove celovitosti. Če kateremu koli uporabniku dovolite pisanje v datoteko utmp, tvegate zamenjavo sistemskih statističnih datotek in spreminjanje sistemskih datotek.

    Dnevniške datoteke drugih programov

    Poleg datotek, o katerih smo že govorili, obstajajo še druge protokolne datoteke, ki jih ustvarijo ločeni programi. Najbolj značilni primeri so protokoli demonov samba, ftpd oz httpd, ki se izvajajo v ločene datoteke. Nekateri od teh programov ustvarijo svoje protokole v podimenikih imenika /var/log/, drugi shranjujejo protokole na drugih mestih. In struktura teh datotek se lahko bistveno razlikuje od strukture datotek, ki jih ustvari sistem syslog. Kot primer bom dal nekaj vrstic iz strežniškega protokola Apache teče na mojem računalniku: 192.168.36.21 - - "GET /ve/papers/new/log/ HTTP/1.1" 200 1774 "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0 . 0) Gecko/20020530" 192.168.36.21 - - "GET /icons/back.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0 ) Gecko/20020530" 192.168.36.21 - - "GET /icons/folder.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko / 20020530" 192.168.36.21 - - "GET /icons/text.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530 " 192.168.36.21 - - "GET /ve/papers/new/log/protok_lovim.htm HTTP/1.1" 200 46597 "http://linux/ve/papers/new/log/" "Mozilla/5.0 (X11; U ; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /bugtraq.css HTTP/1.1" 404 279 "http://linux/ve/papers/new/log/ protok_lovim .htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/bug1.gif HTTP/1.1" 404 280 " http ://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/title.gif HTTP/1.1" 404 281 "http://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" Kot lahko vidite, se struktura te datoteke protokola bistveno razlikuje od tistega, kar smo videli v sistemskih protokolih.

    Strežnik Samba poleg glavnega protokola delovanja strežnika ustvarja v podimeniku /var/log/samba celo vrsto dnevniških datotek za različne primere, zlasti ločene datoteke za vsakega od uporabnikov, ki jim je dovoljeno uporabljati vire, ki jih zagotavlja ta strežnik. Naslednja dva vnosa sta vzeta iz ene take datoteke:

    Smbd/service.c:make_connection(550) linux (192.168.36.10) vzpostavi povezavo s storitvijo public kot uporabnik kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.168. 36.10) zaprta povezava z javnimi storitvami Zgornji primeri kažejo, da lahko, če znate malo brati angleško in razumete strukturo zapisov, iz dnevniških datotek izvlečete veliko koristne informacije. Samo to je treba izvleči iz celotnih nahajališč "odpadne kamnine" - ogromnih zaporednih protokolnih datotek, kar ni trivialna naloga. Zato so bila za analizo protokolov razvita posebna programska orodja.

    Orodja za obdelavo protokolov

    Za analizo protokolov je bilo razvitih kar nekaj različnih programov in skript. Omejil se bom Kratek opis dva taka sredstva: logwatch in vzorec.

    logwatch je skript Perl, vključen v standardno distribucijo Red Hat Linux. Ravno med pripravo tega članka je bila različica 4.1 tega programa objavljena na spletni strani razvijalca (in on je Kirk Bauer).

    Glavna ideja tega programa je, da se datoteka dnevnika prenese skozi filter, ki iz dnevnika izbere vse vrstice (to je sporočila), ki izpolnjujejo dani kriterij. Rezultate pošilja E-naslov podanemu uporabniku (privzeto - root). Filtri so lahko napisani v katerem koli programskem jeziku, vendar ima avtor paketa prednost Perl. Filtri morajo biti zapisani za branje podatkov iz stdin in izpis rezultata v stdout.

    Osnovna uporaba logwatch vključuje povezavo do glavnega skripta ( /etc/log.d/scripts/logwatch.pl) v imenik /etc/cron.daily, kar povzroči dnevno izvajanje logwatch s privzetimi nastavitvami. Povezava dobi ime, ki se začne z "00" (npr. 00-logwatch), tako da se skript zažene pred logrotate.

    Skript pa lahko zaženete tudi iz ukazne vrstice. Seveda, če niste spremenili parametra izhoda informacij, je treba rezultat njegovega delovanja iskati v nabiralniku superuporabnika. Če želite te rezultate videti na zaslonu, morate parameter nastaviti v ukazni vrstici --natisni- izda poročilo na stdout.

    Splošni format zagona skripta:

    /etc/log.d/scripts/logwatch.pl [--podrobnosti raven ] [--dnevniška datoteka revija-skupina ] [--storitev ime storitve ] [--print] [--mailto naslov ] [--shrani Ime datoteke ] [--arhivi] [--razpon datumski interval ]

    Privzeti parametri so shranjeni v datoteki /etc/log.d/logwatch.conf, komentarji v kateri vam pomagajo razumeti pomen parametrov ukazne vrstice:

    • LogDir - imenik, glede na katerega se upoštevajo imena datotek;
    • MailTo – komu poslati poročilo;
    • Natisni - namesto pošiljanja poročila po pošti, ga izpiši v stdout;
    • Shrani - namesto pošiljanja poročila po pošti, ga shranite v navedeno datoteko;
    • Arhivi - proces ne samo trenutne različice dnevniki, ampak tudi stare kopije, ki jih je ustvaril logrotate;
    • Obseg - obdelava podanega časovnega intervala: Vse, Danes, Včeraj (včerajšnji koledarski dan);
    • Podrobnost - stopnja podrobnosti poročila: od 0 do 10 ali nizka, srednja, visoka;
    • Storitev – vse ali ime filtra iz /etc/log.d/scripts/services/ (določite lahko več filtrov);
    • LogFile - Vse ali ime skupine dnevnikov (lahko je določenih več skupin).

    Več informacij o scenariju logwatch boste našli v.

    Članek opisuje drug skript za obdelavo dnevniških datotek, ki je vključen v distribucijo Mandrake Linux. Ta skript se imenuje vzorec(»Simple WATCHer«) in je tudi napisan v Perlu.

    Vodenje dela vzorec privzeto izvede z eno samo konfiguracijsko datoteko $HOME/.swatchrc. Ta datoteka vsebuje vzorčno besedilo (v obliki regularni izrazi), ki vzorec bo iskal v dnevniških datotekah. Za vsakim takim primerom je navedeno dejanje, ki vzorec mora ukrepati, če naleti na besedilo, ki se ujema z vzorcem.

    Na primer, želite biti opozorjeni ob vsakem poskusu napada s prekoračitvijo medpomnilnika na vašem spletnem strežniku, ko je zahtevano zelo dolgo ime datoteke. In veste, da v takih primerih v datoteki dnevnika /var/apache/error.log Prikaže se sporočilo z besedami "Ime datoteke je predolgo". V tem primeru v vašo datoteko .swatchrc Vstaviti je treba naslednje navodilo:

    Bodite pozorni na /ime datoteke je predolgo/ pošto [e-pošta zaščitena], subjekt=BufferOverflow_poskus

    Tukaj ne bom podajal podrobnejšega opisa programa. vzorec. Temu je posvečen navdušen članek, sam program pa najdete na spletni strani. Želim samo poudariti in vzorec, In logwatch implementirati precej primitiven algoritem za obdelavo protokolnih datotek, ki se zmanjša na iskanje protokola za dani niz znakov (podpis). Medtem, prvič, prisotnost takšne linije pogosto ne pomeni vdora napadalca, in drugič, pristojni napadalec lahko poskrbi za brisanje sledi svojih dejavnosti. Druga očitna pomanjkljivost pregledanih izdelkov je, da delujejo v »odloženem načinu«, saj delujejo le po urniku. In boj proti vsiljivcem je treba izvajati "v realnem času" in se takoj odzvati na poskuse prodora v sistem. Zato komercialni izdelki ponujajo nadzorne sisteme, ki delujejo neprekinjeno in izvajajo "inteligentne" algoritme za analizo protokolov. Ti algoritmi temeljijo na statistični analizi toka sporočil in identifikaciji statistično pomembnih odstopanj sistema od njegovega običajnega obnašanja.

    Na koncu tega razdelka ugotavljam, da spletno mesto SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) ponuja seznam povezav do spletnih mest različnih programskih orodij za obdelavo protokolov s kratkim opisom opis teh orodij. Lahko eksperimentirate z različnimi programi in izberete tistega, ki vam ustreza.

    Rotirajoče dnevniške datoteke

    Seveda razumete, da če se sistem intenzivno uporablja, se dnevniške datoteke hitro povečajo. Posledica tega je izguba prostora na disku. In pojavi se problem "krotenja" protokolov. V Red Hat Linux to težavo rešujejo skripti logrotirati, ki se nahaja v imeniku /etc/cron.daily, zato ga zažene demon kron dnevno. Ta skript vam omogoča obdelavo ne samo sistemskih dnevnikov syslog, ampak tudi vse druge programe.

    Skripta logrotirati spremlja rast dnevniških datotek in omogoča tako imenovano rotacijo teh datotek, če presežejo podano velikost (ali po določenem časovnem intervalu). Rotacija ni nič drugega kot zaporedno kopiranje prejšnjih različic arhivskih datotek približno takole:

  • sporočila.2 -> sporočila.3
  • sporočila.1 -> sporočila.2
  • sporočila.0 -> sporočila.1
  • sporočila -> sporočila.0
    in ustvarjanje nove datoteke sporočil za snemanje naslednjih sporočil.

    Seznam datotek, ki jih bo skript obdelal logrotirati in parametre te obdelave določajo konfiguracijske datoteke, ki jih je lahko več. Imena konfiguracijskih datotek so določena v ukazni vrstici zagona skripta (za zagonske parametre glejte spodaj). V sistemu Red Hat Linux so konfiguracijske datoteke za logrotirati datoteka se uporablja /etc/logrotate.conf, kar bi lahko izgledalo nekako takole:

    Weekly rotate 4 create compress include /etc/logrotate.d /var/log/wtmp /var/log/lastlog ( mesečno ustvarjanje 0664 root utmp rotate 1 )

    Ta datoteka je kot katera koli konfiguracijska datoteka za skript logrotirati je sestavljen iz več delov. Prvi razdelek določa globalne parametre (po enega na vrstico), ki določajo privzete parametre za vse dnevnike. Naslednji razdelki definirajo lokalne parametre za vrsto dnevniških datotek. Imena teh datotek so navedena v prvi vrstici razdelka, nato pa so v zavitih oklepajih podani lokalni parametri, ki so veljavni samo pri obdelavi navedenih datotek (tudi en parameter na vrstico). Imena dnevniških datotek se lahko navajajo v skladu s pravili lupine, če vsebujejo presledke ali druge posebne znake. Določite lahko več imen datotek ali vzorcev imen datotek, ločenih s presledki (vzorci prav tako upoštevajo pravila lupine). Obdelava vsakega razdelka se obravnava kot eno dejanje. Vrstice, ki se začnejo s simbolom "#", so komentarji. Lokalni parametri imajo prednost pred globalnimi.

    Primer konfiguracijske datoteke najprej opisuje globalne parametre, nato pa v ločenem razdelku parametre za obdelavo datotek /var/log/wtmp in /var/log/lastlog. Poleg tega je med globalnimi parametri navedena povezava do imenika /etc/logrotate.d, v katerega vsak paket zapiše lokalne parametre za svoje dnevnike.

    V razdelku z globalnimi parametri najprej nastavite enega od naslednjih parametrov, ki določajo kriterij rotacije datoteke:

  • dnevno- spremembe različic v seriji se pojavljajo dnevno,
  • tedensko- različice se spreminjajo tedensko,
  • mesečno- različice se spreminjajo mesečno,
  • velikost bajt - do spremembe različice pride, če velikost dnevnika preseže podano število bajtov; lahko uporabite priponi "k" - kilobajt - in "M" - megabajt)

  • in parameter vključujejo, ki mu sledi ime druge (dodatne) konfiguracijske datoteke ali celo ime imenika. V slednjem primeru se vse datoteke v navedenem imeniku, razen podimenikov, posebnih datotek in datotek s priponami s seznama izjem, štejejo za konfiguracijske datoteke za skript logrotirati(direktiva vključujejo ni mogoče uporabiti znotraj razdelka, ki določa parametre obdelave za skupino datotek).

    Parameter vrteti število je mogoče najti med globalnimi in lokalnimi parametri in določa, koliko starih različic je treba shraniti; če je število 0, se arhivirane različice protokola ne ustvarijo.

    Če je parameter določen stisniti, potem so starejše različice stisnjene z uporabo gzip in če je navedeno nocompress- se ne krčijo. Parameter stisni cmd vam omogoča, da določite, kateri program za stiskanje bo uporabljen (privzeto gzip) in uncompresscmd določa program za dekompresijo (privzeto - ungzip). stiskanja nastavi parametre programa stiskanja; privzeta vrednost je "-9", tj. največja kompresija za gzip. Uporaba parametra stisnitiext lahko spremenite pripono za stisnjene datoteke in razširitev pripona določa pripono, dodano imenom datotek med vrtenjem (pred pripono za stiskanje).

    Med ključne besede, ki jih najdemo v konfiguracijskih datotekah, moramo posebej opozoriti na besede postrotirati in predrotirati, ki služijo kot začetni oklepaji za vključitev v konfiguracijske datoteke lupinskega skripta. Vse vrstice konfiguracijske datoteke iz vrstice postrotirati v linijo endscript se izvedejo kot ukazi lupine po postopku spreminjanja različice datoteke dnevnika. V skladu s tem vse vrstice iz vrstice predrotirati v linijo endscript se izvedejo, preden se datoteke dnevnika zasukajo. Z uporabo teh skriptov lahko organizirate različne postopke za obdelavo dnevniških datotek med rotacijo.

    Z uporabo drugih parametrov konfiguracijske datoteke lahko na novo določite pravice dostopa do dnevniških datotek (če ta parameter ni določen, se uporabijo atributi stare dnevniške datoteke); navesti, komu pošiljati sporočila o napakah v delovanju sistema beleženja; pošljite arhivirano kopijo dnevnika navedenemu uporabniku; nastavite imenik, v katerega bodo dnevniki premaknjeni med spremembami različice (imenik mora biti na isti fizični napravi kot /var/log) ali nastavite seznam izključitvenih pripon za imenik vključujejo. Natančen opis Te lastnosti in parametre (pa tudi tiste, ki niso bili omenjeni) boste našli z ukazom človek logrotate.

    Kot že omenjeno, dodatne konfiguracijske datoteke logrotirati lahko podate v ukazni vrstici za zagon skripta. Določite lahko poljubno število imen konfiguracijskih datotek ali imenikov. Imena datotek in imenikov na tem seznamu so ločena preprosto s presledki. Vrstni red, v katerem so navedena imena, je pomemben, ker so naslednje možnosti navedene konfiguracijsko datoteko, prekrivajo vrednosti parametrov, navedenih v prejšnjo datoteko. Vrstni red datotek v konfiguracijskem imeniku ni definiran.

    Poleg tega lahko v zagonski ukazni vrstici določite naslednje parametre:

    • -d- način odpravljanja napak, ni nobenih resničnih sprememb,
    • -f– izvajati spremembe, tudi če logrotirati ne vidi potrebe - uporablja se, ko pride do sprememb na seznamu obdelanih dnevnikov,
    • človek logwatch
    • Mick Bauer, "Paranoid Penguin: vzorec: avtomatizirano spremljanje dnevnika za budne, a lene"
    • RFC 3164. C. Lonvick, BSD Syslog Protocol, avgust 2001.
    • RFC 3195. D. New, M. Rose, Reliable Delivery for syslog, november 2001.
    • per. S. Lapshansky, "Demon opazuje sistem"
    • Denis Kolisničenko,

    Dejanja demona syslogd nadzira konfiguracijska datoteka /etc/syslog.conf. To je preprosta besedilna datoteka, v kateri so prazne vrstice in vrstice z # na prvem mestu prezrte. Format datoteke je naslednji:

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

    na primer

    mail.err /var/log/mail.errors

    Ta vrstica bo zagotovila, da bodo vse napake pri dostavi pošte zabeležene v datoteki /var/log/mail.errors.

    Pomembno: kot ločilo med izbirnikom in dejanjem uporabite samo tipko . Uporaba presledkov bi bila napaka, ki je ni lahko zaznati.

    Kot ste že opazili, je izbirnik zapisan v sestavljeni obliki. IN splošni pogled izgleda kot sredstvo.raven

    Še več, na terenu<селектор>lahko vsebuje enega ali več izbirnikov, ločenih s podpičji. Izbirnik lahko vsebuje skupino objektov, ločenih z vejicami. Izbirnik lahko vsebuje znaka * in none, kar pomeni "vse" oziroma "nič".

    Primeri izbirnikov:

    pomeni raven delovanja

    pomeni 1, pomeni 2. stopnja delovanja

    pomeni 1. stopnjo 1; pomeni 2. dejanje stopnje 2

    *.akcijska raven

    *.level;means.none action

    V naslednjih tabelah so navedena glavna imena funkcij sistemskega dnevnika in stopnje resnosti.

    Orodje Programi, ki ga uporabljajo

    kern Sistemsko jedro

    uporabnik Uporabniški procesi

    pošta Elektronski sistem

    daemon Sistemski demoni

    auth Varnostni in avtoritetni sistemi

    Sistem tiskanja lpr

    novice Telekonferenčni sistem

    cron Demon cron

    local0-7 Osem ravni lokalnega sporočila

    syslog Notranja sistemska sporočila syslog

    ftp ftpd demon

    *Vsa zgoraj navedena sredstva

    Raven Vrednost ravni

    emerg Izredne razmere

    opozorilo Nujne situacije

    kritična stanja

    err Pogoji napake

    opozorilo Opozorila

    obvestilo Nenavadne razmere

    Info Informacijska sporočila

    debug Informacije o odpravljanju napak

    Ravni so navedene v padajočem vrstnem redu. To pomeni, da ravni označujejo najmanjšo pomembnost, ki jo mora imeti sporočilo, da se prijavi v sistem syslog.

    Polje<действие>označuje, kaj storiti s prejetim sporočilom.

    Opis akcije

    ime datoteke Napišite sporočilo v datoteko na lokalnem računalniku

    @machinename Posreduj sporočilo demonu syslogd na navedenem računalniku

    @IP_address Enako, podan je le naslov IP naprave

    user1, Prikaži sporočilo na zaslonih navedenih uporabnikov...

    uporabnikN

    * Prikažite sporočilo na zaslonih vseh uporabnikov

    *.emerg /dev/console

    *.err;auth.notice /dev/console

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

    mail.err /var/log/mail.log

    mail.info @192.168.0.1

    Ko že govorimo o sistemu syslog, moramo omeniti ukaz logger, ki omogoča pisanje vnosov v sistemski dnevnik iz lupinskih skriptov.

    Ta ukaz je uporaben za preverjanje sprememb v datoteki /etc/syslog.conf.

    local5.warning /var/log/local.log

    in želite preveriti, ali deluje, nato vnesite ukaz

    # logger -p local5.warning "Lokalni test"

    Poglejte datoteko /var/log/local.log. Če vrstice "Lokalni test" ni, potem ste najverjetneje pozabili poslati signal HUP demonu syslogd.

    SERGEY SUPRUNOV

    FreeBSD nasveti: uporaba syslog

    - Oprostite, tovariši, vse poteze imam zapisane!

    "Pisarna piše," je rekel Ostap.

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

    Beleženje delovanja vsakega sistema, še posebej pa strežnika, je ena najpomembnejših komponent administracije. Dnevniške datoteke si najprej ogledamo, ko se v sistemu pojavijo težave. Od tam pridobimo zaupanje, da ta ali oni program deluje po pričakovanjih. Pri razvoju spletnih aplikacij postane datoteka dnevnika najpomembnejši vir informacij za odpravljanje napak. Obravnavane bodo značilnosti demona syslog, ki je odgovoren za beleženje sistemskih informacij.

    Kaj je syslog

    Syslog je centralizirana storitev, ki zbira in beleži podatke dnevnika iz različnih komponent operacijskega sistema in uporabniških procesov. Programi tretjih oseb lahko praviloma delajo s svojimi dnevniškimi datotekami neodvisno, čeprav jih je veliko mogoče konfigurirati za delo z demonom syslogd. Prednosti uporabe syslog vključujejo možnost upravljanja zbiranja potrebnih informacij z eno samo konfiguracijsko datoteko, kar zagotavlja konsistentnost v nastalih dnevniških datotekah in na koncu poenostavi njihovo upravljanje.

    Storitev syslog zagotavlja demon syslogd, ki se samodejno zažene ob zagonu sistema. Nenehno je v pomnilniku, čaka na sporočila drugih procesov in jih obdeluje v skladu s svojimi nastavitvami.

    Vsako sporočilo je označeno z nivojem in virom (zmožnostjo). Raven določa stopnjo pomembnosti sporočila z vidika delovanja sistema. Datoteka syslog.h določa naslednje ravni (prioritete):

    Tabela 1. Ravni sporočil

    Raven

    Opis

    emerg, panika

    Stanje "panike"

    opozorilo

    Stanje, ki zahteva takojšnjo intervencijo

    krit

    Kritično stanje

    napaka, napaka

    Druge napake pri delovanju

    opozorilo, opozorilo

    Opozorila

    opaziti

    Sporočila, ki niso napake, vendar bi morali biti nanje pozorni

    info

    Informacijska sporočila (normalno delovanje)

    razhroščevanje

    Informacije o odpravljanju napak

    Tabela 1 navaja ravni sporočil v padajočem vrstnem redu. Ta vrstni red bo potreben pozneje, ko bomo razpravljali o sintaksi konfiguracijske datoteke.

    Oznake ravni sporočila, zapisane v isti vrstici (na primer emerg in panic), so sinonimi in lahko se uporablja katera koli od njiju. Vendar so panika, napaka in opozorilo (navedeno na drugem mestu v tabeli) zastareli in se jim je pri urejanju konfiguracijske datoteke treba izogibati. Namesto tega uporabite emerg, err in opozorilo.

    Možni viri sporočil so navedeni v tabeli 2:

    Tabela 2. Viri sporočil

    Vir

    Opis

    kern

    Sporočila jedra

    auth, authpriv

    varnost

    Varnostna sporočila (na primer iz požarnega zidu)

    konzola

    Sporočila, ki prihajajo na konzolo (/dev/console)

    syslog

    Izvorna sporočila sistemskega dnevnika

    kron

    Cron sporočila

    Sporočila časovne storitve

    Sporočila FTP strežniki

    Natisni sporočila podsistema

    pošta

    Sporočila poštnih storitev

    novice

    Sporočila novičarske službe

    uucp

    Sporočila UUCP

    daemon

    Sporočila drugih demonov, ki se izvajajo v sistemu

    uporabnik

    Sporočila uporabniškega procesa

    lokalno0 – lokalno7

    Lahko se uporablja za različne potrebe uporabnikov (včasih jih uporablja sistem)

    Ko konfigurirate aplikacijo za uporabo storitve syslog, preverite, katero možnost uporablja. Nekateri programi vam omogočajo, da sami določite vir. Na primer, demon clamd (glavni proces protivirusnega programa clamav) privzeto uporablja local6, vendar vam omogoča, da določite drug vir (parameter LogFacility v konfiguracijski datoteki). V nekaterih primerih je morda koristno združiti njegova sporočila s sporočili poštnih storitev, pri čemer kot vir navedete LOG_MAIL.

    Možnosti zagona demona

    Za celoten seznam možnosti zagona si oglejte man stran syslogd. Tukaj jih bomo obravnavali le nekatere.

    Syslog lahko beleži dohodna sporočila v dnevniške datoteke (ki se običajno nahajajo v imeniku /var/log), jih pošilja na uporabniško konzolo ali povezani terminal, jih pošilja oddaljenemu gostitelju ali jih pošilja zunanjemu pripomočku za obdelavo preko cevovoda.

    Za delo prek omrežja syslog uporablja vrata 514 (UDP in TCP). Ko se izvaja brez dodatnih parametrov, bo syslogd poslušal ta vrata in čakal na dohodna sporočila. Stikalo -s preprečuje sprejemanje dohodnih sporočil, vendar so vtičnice na vratih 514 še vedno ustvarjene za odhodne povezave, tako da lahko syslogd pošilja sporočila oddaljenim gostiteljem. Podvojitev stikala (-ss) onemogoči tudi odhodne povezave.

    Privzeto se syslogd zažene s stikalom -s (glejte /etc/defaults/rc.conf, parameter syslogd_flags), zato so dohodne povezave prepovedane. Če želite uporabiti storitev syslog vašega strežnika za oskrbo več strojev, dodajte naslednjo vrstico v /etc/rc.conf:

    syslogd_flags= ””

    To bo preglasilo vrednost, nastavljeno v /etc/defaults/rc.conf, in syslogd bo lahko servisiral dohodne povezave. Seveda je v tem primeru potrebno zagotoviti zahtevano raven varnosti in odpraviti možnost, da bi drugi gostitelji kaj zapisali v vaše dnevnike. Stikalo -a vam omogoča, da nastavite omejitve za dohodne povezave (glejte man syslogd). Pomembno vlogo ima tudi pravilno konfiguriran požarni zid.

    Drugo uporabno stikalo -l vam omogoča, da poleg privzetega /var/run/log določite dodatne datoteke vtičnic, ki jih posluša demon syslogd. Na primer, ta ključ je potreben, da lahko syslog služi programom, ki se izvajajo v okolju s korenskim korenom. Zlasti tako deluje named, začenši z BIND 9. V FreeBSD 5.3 se syslogd zažene z naslednjimi ključi:

    #ps-wax | grep syslog

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

    Sintaksa konfiguracijske datoteke

    Beleženje je konfigurirano v datoteki /etc/syslog.conf. Samoumevno je, da ga lahko ureja le root uporabnik. Ta datoteka vsebuje dve vrsti nizov – imenujemo jih »filtri« in »pravila«.

    Vrstica filtra določa program ali gostitelja, iz katerega bodo naslednja pravila uporabljena za sporočila iz njega. Filter v obliki “!prog” (ali “#!prog”) označuje, da se naslednje vrstice nanašajo na dnevnike, ki jih generira navedeni prog program. Sinonim za ta vnos je “!+prog”. Vrstica "!-prog" na drugi strani nakazuje, da bodo naslednja pravila veljala za vsa sporočila, razen za tista, ki izvirajo iz programa prog. Dovoljeno je navesti več programov, ločenih z vejicami, znak "+" ali "-" pa velja za celoten seznam.

    Če je niz filtra naveden kot "+ime gostitelja", bo podani gostitelj uporabljen kot vir sporočil, ki jih je treba obdelati z naslednjimi pravili. Tako kot pri programih simbol »-« označuje, da bodo pravila veljala za vsa sporočila, razen za tista, ki prihajajo iz navedenega gostitelja. Določite lahko seznam gostiteljev, ločenih z vejicami.

    Znak "*", določen kot program ali gostitelj, bo preglasil filter, ki je bil predhodno nastavljen. To pomeni, da bodo pravila, določena za takšno vrstico, veljala za vsa sporočila. Filtri z imenom gostitelja ali programa so neodvisni drug od drugega in lahko delujejo hkrati. Na primer:

    # Pravila, ki se nahajajo tukaj, veljajo za vsa sporočila

    Moj.gostitelj

    # Pravila veljajo za vsa sporočila od my.host

    Logger

    # Pravila se uporabljajo za sporočila zapisovalnika iz my.host (gostiteljski filter ostane v veljavi)

    # Pravila veljajo za sporočila od su do my.host

    # Pravila veljajo za sporočila su iz katerega koli gostitelja (gostiteljski filter je preklican, programski filter še naprej deluje)

    # Pravila veljajo za vsa sporočila (preklican je tudi programski filter)

    Vrstice pravil izgledajo takole:

    objekt.CMPLevel destinacija

    Tukaj je objekt vir sporočila (»*« označuje morebitne vire), raven je raven sporočil, ki bodo obdelana v skladu s tem pravilom. Storitvena beseda »brez«, podana namesto ravni, daje navodila za popolno izključitev sporočil iz tega vira.

    CMP – primerjalna operacija (dovoljena sta simbola “>”, “”.<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    Destinacija določa, kam naj se to sporočilo shrani. To je lahko dnevniška datoteka (navedena je celotna pot, ki se začne z »/«), naslov oddaljenega strežnika (začne se s simbolom »@«), uporabniško ime (sporočila bodo poslana na terminal, na katerega je uporabnik povezan). Sporočilo se lahko prenese tudi v zunanji program v obdelavo, za kar se uporablja simbol tekočega traku “|”.

    Nekaj ​​primerov pravil

    Vsa sporočila jedra bodo poslana v datoteko kern.log.

    kern.* /var/log/kern.log

    Vsa sporočila o napakah, kot tudi sporočila o nujnih, opozorilnih in kritičnih nivojih, bodo shranjena v all-err.log. Upoštevajte vezaj pred imenom datoteke dnevnika. Privzeto so sporočila shranjena v medpomnilniku in zapisana na disk, ko je medpomnilnik poln. To zmanjša obremenitev datotečnega sistema, vendar lahko povzroči izgubo nekaterih informacij, če se stroj zruši. Vezaj pred imenom datoteke povzroči, da demon syslogd takoj zapiše sporočila na disk.

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

    Sporočila o odpravljanju napak za uporabniške procese bodo poslana na terminal, na katerega je trenutno povezan uporabnik vasya.

    user.debug Vasya

    Vsa sporočila novic in e-poštnih storitev bodo posredovana na vrata 514 naprave syslog.host.ru.

    pošta.*,novice.* @syslog.host.ru

    Vsa sporočila storitve tiskanja, katerih raven je nižja od opozorila, bodo postavljena v navedeno datoteko. Kot smo že omenili, je privzeta primerjava "večje ali enako" in "!" ga obrne in ga nadomesti z "manj". Če morate izključiti določeno raven, uporabite konstrukcijo »!=«.

    lpr.!opozorilo /var/log/printers.log

    sporočila ravni odpravljanja napak (in samo to) z zmogljivostjo level0 in level3 bodo poslana vsem povezanim terminalom.

    level0,level3.=debug *

    Sporočila časovne storitve, ki so višja od kritične (to je emerg in alert) in nižja ali enaka obvestilu (notice, info in debug), bodo poslana terminalom ntpuser in root uporabnikom.

    ntp.>krit,<=notice ntpuser,root

    Vsa opozorilna sporočila, razen tistih, ki prihajajo iz poštnih storitev, bodo zapisana v datoteko warn.log.

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

    V tem primeru bodo vsa sporočila, katerih stopnja je višja ali enaka kritični, poslana po e-pošti korenskemu uporabniku.

    *.crit | mail -s koren "kritičnega sporočila".

    Kot lahko vidite, format konfiguracijske datoteke omogoča, da je več ravni, virov in ciljev navedenih v eni vrstici, zaradi česar je konfiguracija bolj prilagodljiva. Da spremembe po urejanju začnejo veljati, morate procesu syslogd poslati signal HUP:

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

    Upoštevati je treba, da če sporočilo spada v več vrstic konfiguracijske datoteke, bo obdelano v skladu z vsako od njih. primer:

    pošta.* /var/log/maillog

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

    V tem primeru bodo sporočila mail.err končala v maillogu in error.logu.

    Strategija za ustvarjanje konfiguracijske datoteke

    Ob zaključku našega pregleda konfiguracijske datoteke bom povedal nekaj besed o strategijah za njeno prevajanje. Poleg zelo popularnega »dokler deluje« lahko ločimo dve glavni, ki ju bomo okvirno poimenovali »po izvoru« in »po namenu«.

    • Prva strategija, ki jo lahko vidimo v številnih distribucijah GNU/Linux, je pisanje drugačnega pravila za vsak vir sporočila (ali skupine pravil, če je treba sporočila na različnih ravneh obdelati drugače). Njegova prednost je enostavnost določanja, kje se beležijo sporočila določenih storitev.
    • Strategija "po destinaciji" vključuje ustvarjanje, če je mogoče, samo ene vrstice za vsakega "prejemnika" sporočila, kot je datoteka. Temu pristopu sledi zlasti FreeBSD. Posledično lahko preprosto določite, katere informacije so zapisane v določeno datoteko dnevnika, vendar je treba na primer cilje za sporočila jedra zbirati v celotni konfiguracijski datoteki.

    Pripomoček Logger

    Sistem vključuje pripomoček za beleženje, ki vam omogoča pošiljanje sporočil v storitev syslog neposredno iz ukazne vrstice. Primeren je za uporabo pri testiranju konfiguracijskih pravil, pa tudi v razvitih skriptih za beleženje njihovega delovanja. Primeri:

    user$ logger -p user.err “Napaka v uporabniškem programu!”

    user$ logger -h syslog.host.ru “Preizkusite”

    Prvi primer bo poslal sporočilo z napako uporabniške ravni objekta, ki bo obdelano v skladu s konfiguracijsko datoteko. Drugi ukaz bo poslal sporočilo oddaljenemu gostitelju, privzeti vir in raven bosta nastavljena na user.notice.

    Uporaba rotacijskih mehanizmov

    Zgoraj obravnavani mehanizem beleženja ne zagotavlja upravljanja dnevniških datotek. Sporočila so preprosto postavljena vanje v skladu s pravili, opisanimi v konfiguracijski datoteki. To pomeni, da se bodo dnevniške datoteke nenehno povečevale in če ne storite ničesar, bodo prej ali slej zapolnile ves razpoložljivi prostor ustrezne particije. Da bi se temu izognili, se uporablja rotacijski mehanizem.

    Na primer, ko velikost datoteke debug.log preseže 100 MB, se preimenuje v debug.log.0 in zapakira v debug.log.0.bz2. In namesto tega se ustvari nov debug.log. Nato, ko velikost nove datoteke doseže 100 MB, se debug.log.0.bz2 preimenuje v debug.log.1.bz2 in zgoraj opisani postopek se ponovi. Sistem shrani samo določeno število arhivskih datotek, pri čemer izbriše najstarejše. To je rotacija.

    pripomoček newsyslog

    V sistemu FreeBSD je za rotacijo odgovoren pripomoček newsyslog, ki ga demon cron privzeto zažene na začetku vsake ure. Obdobje rotacije lahko spremenite tako, da uredite /etc/crontab.

    Parametri rotacije, navedeni v zgornjem primeru (velikost datoteke, pakiranje), kot tudi številni drugi, so nastavljeni v konfiguracijski datoteki /etc/newsyslog.conf. Za vsako datoteko, ki jo je treba rotirati, vsebuje vrstica na splošno devetih polj: ime datoteke, lastnik in skupina, pravice dostopa, največja številka v imenu arhivske datoteke, največja velikost datoteke, obdobje rotacije, dodatne zastavice in pot do PID datoteka aplikacije, v katero je treba poslati signal po rotaciji, in številka signala, ki naj se pošlje. (Pošiljanje signala procesu je morda potrebno, na primer, če ima proces ves čas odprto datoteko dnevnika; če tega ne storite, se uporabljeni deskriptor datoteke ne bo ujemal z novo ustvarjeno datoteko.) Nekatera polja so lahko izpuščena . Tu sta dva primera, popolni in »tipični«:

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

    V skladu s tem pravilom je treba datoteko pflog prepisati takoj, ko njena velikost preseže 100 MB (5. polje) ne glede na čas (znak »*« v 6. polju). Arhivirane datoteke bodo imele imena, kot so pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2 itd.), X pa ne sme biti več kot tri (parameter 3 v 4. polju). Zastavica J označuje, da je treba arhivsko datoteko zapakirati s pripomočkom bzip2. Zahvaljujoč zastavici B sporočila storitve rotacije ne bodo dodana arhiviranim in novo ustvarjenim datotekam, saj je datoteka zaznana kot binarna. Novo ustvarjena datoteka bo v lasti korenskega uporabnika in skupine koles (to polje lahko izpustite, ker je to privzeti lastnik). Dovoljenja bodo nastavljena na rw------- (številska vrednost 600), kar pomeni, da bo samo lastnik lahko bral in pisal to datoteko. Nazadnje bo signal 1 (HUP) poslan procesu, katerega PID je shranjen v /var/run/pflog.pid, da ponovno odpre svojo datoteko dnevnika.

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

    To pravilo določa parametre rotacije za datoteko maillog: ne glede na velikost (zvezdica v 5. polju) bo datoteka prepisana vsako noč ob 00:00 (v man newsyslog.conf je format časa opisan dovolj podrobno). Arhiv mora biti zapakiran, shranjenih bo zadnjih 8 arhivov (oštevilčenih od 0 do vključno 7), novo ustvarjena datoteka bo v lasti korenskega uporabnika (privzeta vrednost, zato je polje lastnika preskočeno) in bo imela dovoljenja rw-r -----.

    Za ogled pakiranih dnevniških datotek lahko uporabite pripomočka zcat in bzcat (za gzip oziroma bzip2). Midnight Commander samodejno pokliče ustrezne pripomočke.

    Po urejanju datoteke newsyslog.conf ni treba nikamor pošiljati signalov - konfiguracija bo ponovno prebrana ob naslednjem klicu newsyslog.

    Upoštevati je treba, da pripomoček newsyslog ni vezan na demon syslogd. To pomeni, da se lahko uporablja za vrtenje vseh datotek, ki to potrebujejo. Če je rotacija omogočena za dnevnike, ki jih aplikacija vzdržuje neodvisno (na primer dnevnike clamd ali squid), bodite še posebej previdni pri določanju lastnika in pravic dostopa. Če jih navedete nepravilno, se lahko zgodi, da po rotaciji aplikacija, ki se izvaja kot neprivilegirani uporabnik, ne bo mogla pisati v novo ustvarjeno datoteko.

    Če povzamem

    Sistem syslog je zelo zmogljivo in učinkovito orodje za beleženje različnih dogodkov v sistemu. Privzete nastavitve so dokaj uravnotežene in dobro delujejo v večini sistemov. Vendar pa vam bo razumevanje delovanja syslog omogočilo znatno izboljšanje kakovosti beleženja tako, da prilagodite beleženje informacij dnevnika strogo v skladu z vašimi potrebami.