Syslog – võrgu syslog. Linuxi logifailid järjekorras Milline syslogi ID on kõrgeima prioriteediga

Deemon sisse Unix helistage programmile, mis töötab " peal taustal" ilma terminali juhtimist nõudmata ja andes teile võimaluse teha oma muud tööd "esiplaanil". Deemoni saab käivitada kas mõne muu protsessiga, näiteks ühe süsteemi käivitusskripti abil ilma ühelegi juhtterminalile ligi pääsemata või kasutaja mõnest terminalist, kuid sel juhul deemon "ei võta võimust" terminali oma töö ajaks. Loomulikult tekib küsimus, milliseid deemoneid on teie süsteemis vaja ja milliseid saab keelata.

Mõiste päritolu
Reaalses (st arvutivälises) maailmas tähistab termin (või sõna) "deemon" vaimu (enamasti kurja) või "sisehäält". Väärib märkimist, et mõlemad väärtused kehtivad ka Unixi deemoniprogrammide kohta. Nagu mütoloogilised deemonid, peidavad end ka Unixi deemonid kulisside taha, püüdes jääda nähtamatuks. Ja nagu sisehääl või meie alateadvus, on nad alati "valves", alati kättesaadavad, võivad alati "avaldada". Sõna "deemon" ise esindab ühte neist arvutiakronüümidest, mille päritolu on täpselt sama raske välja selgitada kui otsustada, kas alguses oli kana või muna. Arvatavasti see termin ("DAEMON") tuleneb sõnadest "Ketta ja täitmismonitor" programm.

Olles asunud seda probleemi uurima, läksin preestri juurde, kes kasutab Ubuntu operatsioonisüsteemiga arvutit. Igaks juhuks võtsin Windowsiga ketta. Kunagi ei tea ... Olen otsekohene inimene, ei löönud võssa, andsin kohe kogu info välja. Seletatud pikalt ja üksikasjalikult. Minu suureks õnneks võttis ta seda kõike rahulikult, kohati, samal ajal kui mina rääkisin, isegi naeratas, eriti kui rääkis põhjustest, miks mu õe mees ubuntust keeldus. Isa, normaalne mees, ta on juba 50. Rääkisime natuke rohkem, õigemini ma rääkisin, et aru saada, et ta oli minu öeldu õigesti omaks võtnud. Pärast mida ta mulle ütles, et ma ei mäleta sõna otseses mõttes, aga ma ei mõelnud seda diktofonile salvestada, nii et kirjeldan seda oma sõnadega. Üldiselt pole selles, et Linuxis seda terminit kasutatakse, midagi halba, peaasi, et usk jumalasse.

Sissejuhatus teenustesse

Deemonid, millele viitab /etc/init.d, on loodud töötama Linuxis teenuse või teenusena. Teenused on programmid, mida käivitatakse ja peatatakse kataloogis /etc/init.d asuvate init-skriptide kaudu. Paljud neist teenustest käivitatakse süsteemi alglaadimisfaasis. Utiliit / sbin / Service pakub kasutajaliidest (interaktsiooni) initsialiseerimisskriptidega. Ja need skriptid ise pakuvad liidest teenuste haldamiseks, pakkudes kasutajale võimalusi käivitada, peatada, taaskäivitada, küsida teenuse olekut ja teha muid teenusega seotud toiminguid. Näiteks teenuse httpd init skriptil on järgmised valikud:

/ sbin / service httpd Kasutus: httpd (käivitage | peata | taaskäivitage | condrestart | laadi uuesti | olek | täielik olek | graatsiline | abi | konfiguratsioonitest)

Kõigi süsteemiteenuste hetkeseisu saate vaadata teenuseutiliidi järgmise suvandi abil:

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

Teavet nende teenuste käitamistaseme kohta, st selle, millisel süsteemi käitamistasemel konkreetne teenus alglaadimisel käivitatakse, saab hankida või muuta utiliidi chkconfig abil. Vaatame näiteks syslogi süsteemi logimisteenuse praeguseid sätteid:

/ sbin / chkconfig --list syslog syslog 0: väljas 1: väljas 2: sees 3: sees 4: sees 5: sees 6: väljas

Näeme, et syslogi teenus käivitub automaatselt, kui läheme tasemele 2, 3, 4 ja 5. Selle 3. ja 4. tasemelt käivitamise keelamiseks (muide, see pole hea mõte), võite kasutada järgmist valikut käsk chkconfig:

/ sbin / chkconfig --levels 34 syslog off

Utiliit / usr / bin / system-config-services pakub süsteemiteenustele graafilist liidest, mis võimaldab vaadata ja muuta nende praegust olekut ning seadistada need töötama erinevatel käitamistasemetel

Vaatame, kuidas need teenused ja deemonid ps-i käsu väljundis kuvatakse. Siin on kiire väljavõte:

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

Mida siin huvitavat veel tähele panna (lisaks muidugi sellele, et ma täna liiga hilja arvuti taga istusin)? Iga deemoni puhul on vanemprotsessi identifikaator (PPID) 1. See näitab, et deemonid käivitas alglaadimise ajal init.

Seda tulemust on selgemalt näha sellise kasuliku käsu nagu "pstree" väljundis, mis kuvab protsesside "puu" koos tähisega "vanemad". Siin on väike katkend pstree väljundist:

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

Lisateavet teie süsteemi deemonite kohta

Oleme sissejuhatava teabega valmis. Räägime nüüd eraldi süsteemideemonitest ja vaatame, millistega saate ohutult katsetada. Jällegi on see postitus süsteemist, mis töötab Red Hat Enterprise Linux Beta 2 tööjaama konfiguratsioonis. Sõltuvalt teie süsteemi spetsiifikast võite näha rohkem või vähem deemoneid, sealhulgas mõnda, mida siin ei käsitleta.

Iga deemoni kirjeldus sisaldab linke saitidele, kust saate lisateavet, kuid siiski on kõige parem alustada deemoni tundmaõppimist vastavate man-lehtede vaatamisest. O "Reillyl on suurepärane Linuxi käskude tähestikuline loend ja saidil wikipedia.org on ka jaotised enamiku nende deemonite kohta. Ärge unustage vaadata README-faile.

See on täiustatud konfiguratsiooni ja toiteliidese (ACPI) teenus. ACPI on avatud tööstusstandard, mis määratleb süsteemihaldustoimingud, eelkõige plug-and-play-seadmete määratluse ja toitehalduse, sealhulgas toimingud süsteemi käivitumisel, seiskumisel ja vähese energiatarbega režiimile lülitumisel.

Tõenäoliselt ei tohiks te seda teenust keelata, välja arvatud juhul, kui teete seda silumiseks või riistvaraprobleemide lahendamiseks.

Lisateave: http://www.acpi.info

Kui kasutate sülearvutit, nagu paljud tänapäeval teevad, on üheks probleemiks see, et kui palute cron deemonil midagi teha, ei ole te alati kindel, et teie arvuti on käivitamise ajal sisse lülitatud. planeeritud ülesanded. Anacron (see nimi pärineb sõnast "anachronistic cron", mis tähendab midagi nagu "vananenud cron") lahendab selle probleemi, kontrollides, kas tööd on teatud aja jooksul täidetud. Näiteks käivitab anacron ülesande, kui seda pole teatud arvu päevi käivitatud.

Millal saate anakroni kasutamise lõpetada? Kui teie süsteem töötab pidevalt.
Kas saate lihtsalt keelduda cronist, kui teil on anakron jooksmas? Mitte; anacroni puhul saab ülesande taaskäivitamise perioodi määrata ainult päevades, mitte minutites ja sekundites.

Lisainformatsioon:

See on täiustatud toitehalduse (APM) deemon BIOS-is oleva draiveri kaudu. APM-standard ja apmd-deemon on nüüd asendatud ACPI ja acpid-iga. Kui teie riistvara toetab ACPI-d, ei pea te käivitama apmd.

See on deemon tööde alustamiseks kindlaksmääratud ajal. Kui te seda ei kasuta, on see täiesti võimalik keelata.

See deemon ühendab automaatselt konfiguratsioonifailis määratletud kettad ja failisüsteemid. Selle deemoni kasutamine muudab irdketastega töötamise lihtsamaks.

Rohkem infot: http://freshmeat.net/projects/autofs

Linuxi auditeerimissüsteem koosneb kerneli tasemel süsteemikõnede logijatest ning kasutajaruumi logide kogumise ja vaatamise tööriistadest. Auditeeritud deemon kirjutab logitud teated kettale. Auditd on konfigureeritav, võimaldades teil kontrollida ja hallata, millist teavet kettale salvestatakse.

Kas auditit tuleks jätkata? Logidest saadav teave võib olla suureks abiks kõige süsteemi turvalisusega seonduva seadistamisel. Näiteks kasutatakse SELinuxi sündmuste logimisel auditit. Samuti on olemas utiliidid, näiteks aureport, mis võimaldavad teil vaadata auditiloge. Siin on näide aureporti utiliidi loodud aruandest:

Kokkuvõttev aruanne
======================

Ajavahemik logides: 28.11.2006 06: 07: 04.800 - 02.06.2007 21: 10: 09.957 Aruande jaoks valitud aeg: 31.12.1969 19:00:00 - 02/06/2007 10: 09.957 Konfiguratsiooni muudatuste arv: 285 Kontode, rühmade või rollide muudatuste arv: 32 Sisselogimiste arv: 145 Ebaõnnestunud sisselogimiste arv: 11 Kasutajate arv: 2 Terminalide arv: 22 Hostinimede arv: 11 Arv täitmisfailide arv: 27 Failide arv: 91 AVC keeldude arv: 688 MAC-sündmuste arv: 12 Ebaõnnestunud süsteemikutsete arv: 404 Anomaaliate sündmuste arv: 0 Anomaaliasündmuste vastuste arv: 0 Krüptosündmuste arv: 0 Protsesside arv ID-d: 14022 Sündmuste arv: 70694 Avahi-daemon ja avahi-dnsconfd

Avahi veebisait defineerib seda järgmiselt: "Avahi on süsteem, mis pakub võimalust avastada teenuseid kohtvõrgus. See tähendab, et kui teie arvuti on ühendatud kohtvõrku, saate kohe avastada saadaolevaid printereid, vaadata, millised jagamised on saadaval võrgus saate teada, kellega saate teistest võrgukasutajatest vestluse kaudu rääkida ja nii edasi. Avahi on Zeroconfi protokolli rakendus. Ja Zeroconf on lähenemisviis, mis võimaldab kasutajatel luua IP-võrke ilma spetsiaalsete konfiguratsiooniteenusteta, nagu DNS-serverid.
Enamasti kasutatakse avahi-deemonit koos Rhythmboxiga, et saaksite näha teistega jagatud muusikafaile. Kui te ei jaga oma arvutist muusikat ega faile, saate selle deemoni keelata.

Rohkem infot: http://avahi.org, http://zeroconf.org

Bluetooth ja hidd and pand deemonid

Nimed ise seletavad kõike. Kui soovite kasutada Bluetooth-seadmeid, käivitage need teenused. Tegelikult töötava deemoni nimi on hcid (Host Controller Interface Deemon).

Peidetud deemoni nimi pärineb "Bluetooth-i inimliidese seadme deemonist". See pakub Bluetoothi ​​klaviatuuri, hiire ja juhtkuuli tuge. Ja pandideemon hoiab teie arvuti Bluetoothi ​​abil Etherneti võrguga ühenduses.

Rohkem infot: http://www.bluetooth.com,

See deemon toetab ühist ISDN-i rakendusliidest. Seda tuleks käivitada, kui loote ühenduse ISDN-i riistvarakomponentidega. See teenus käivitab capiinit.

Rohkem infot: http://www.capi.org/pages

Ei, sellel pole midagi pistmist üleöiste kinnisvarainvesteeringute saadetega. Conman-teenus (ja conmand-deemon) toetavad konsoolihaldust. Pakub tuge mitmele konsooliseadmele ja samaaegsele kasutajatööle, kohalike jadaseadmete ja kaugterminaliserverite tuge (telneti protokolli kaudu). Kui haldate mitut serverit, võib teil vaja minna conmani.

Rohkem infot: http://home.gna.org/conman/
cpuspeed

See deemon muudab töö kiirust keskprotsessor energiatarbimise vähendamiseks. Kui protsessor on jõude, saate kiirust vähendada, vähendades seeläbi energiatarbimist, ja jõudluse suurendamiseks peate suurendama energiatarbimist. Kui töötate sülearvuti, on mõistlik käivitada cpuspeed.

Lisateave: http://carlthompson.net/Software/CPUSpeed
crond

Seda deemonit kasutatakse ülesannete automaatseks käivitamiseks. Seda nõutakse kõigis Linuxi ja Unixi süsteemides. Ärge lõpetage ega keelake seda teenust.

Lisateave: http://www.unixgeeks.org/security/newbie/unix/cron-1.html, http://www.linuxhelp.net/guides/cron/

CUPS ja cups-config-deemon

See on "Common UNIX Printing Solution" deemon. Nagu nimigi ütleb, on see printimissüsteem, mis käsitleb erinevaid failivorminguid ja erinevad tüübid printerid. Kui soovite printida, laske sellel deemonil oma süsteemis käitada.

Lisateave: http://www.cups.org, http://www.easysw.com/cups/index.php

Selle deemoni nimi on akronüüm sõnast "DHcp Client D-Bus Daemon". Free DeskTop wiki määratleb selle järgmiselt:

D-Bus on sõnumisiinide süsteem, mis võimaldab rakendustel üksteisega suhelda (või suhelda). Lisaks protsessidevahelisele suhtlusele aitab D-Bus koordineerida protsessi elutsüklit; see pakub lihtsa ja usaldusväärse teostuse koodis rakenduse või deemoni "eraldi eksemplari" käivitamise võimaluse kohta, mis võimaldab teil käivitada rakendusi ja deemoneid nõudmisel, kui tekib vajadus vastavate teenuste järele.

Kas peate selle deemoni käivitama? Kui teie süsteem töötab võrgus (kuidas see võiks olla teisiti?), Eriti kui liigute võrkude vahel (näiteks lülitudes juhtmega võrgult traadita võrgule), peaksite käivitama NetworkManageri (vaatame allpool NetworkManagerit) .

dhcdbd deemon pakub D-Bus-liidest dhclientile, mis on ISC DHCP-klient. See võimaldab NetworkManageril dhclientile juurde pääseda ja seda juhtida.

Lisateave: http://www.freedesktop.org/wiki/Software/dbus

See deemon annab teile võimaluse kasutada hiirt tekstipõhistes rakendustes, näiteks failihaldur Kesköö komandör. See võib olla kasulik, kui kasutate konsooli sageli; muidu, st kui kasutad kogu aeg X Window Systemi, ei pruugi gpmd kunagi vaja minna.

Ei, see pole kuri arvuti 2001. aasta kosmoseodüsseia filmist. Selles kontekstis tähistab HAL riistvara abstraktsioonikihti. HAL-deemon kogub (kasutades tuuma ja seadmeid endid) teavet riistvaraseadmete kohta ja esitab selle järjepidevalt rakendustele.

Ärge keelake seda teenust. Paljud rakendused kasutavad seda.

Lisateave: "Töölaua ja riistvara konfiguratsioon", autor David Zeuthen

See deemon toetab HP Linuxi kujutise ja printimise (HPLIP) süsteemi, mida kasutatakse printimiseks, skannimiseks ja faksimiseks tindiprinteri ja laserseadmed HP-st. HPLIP suhtleb CUPS-iga, pakkudes viimasele juurdepääsu HP seadmetele.

Lisainformatsioon:

See on Java relatsiooniandmebaaside deemon. See päris oma nime Hypersonic SQL projektilt, mida enam ei toetata. hsqldb-d kasutatakse laialdaselt avatud lähtekoodiga projektides, nagu OpenOffice.org, aga ka demodes, kuna see võib töötada täielikult RAM-is. Tänu sellele, et see töötab kiiresti. Kas peate seda teenust käivitama? Ainult siis, kui käivitate seda kasutavaid programme. Aga tegelikult on väga kasulik tööriist ja kui te pole sellega tuttav, tasub seda vaadata.

Lisateave: http://hsqldb.org, http://dba.openoffice.org

Apache veebiserver. Kasutatakse peaaegu 60% kõigist veebisaitidest. Kui soovite veebisaiti hooldada, käivitage Apache. Kas ma pean veel midagi ütlema?

Lisateave: http://httpd.apache.org

ip6tables ja iptables

Need on tulemüürid või tulemüürid. Wikipedia järgi on "tulemüür või tulemüür (žargoon. Firewall ehk tulemüür inglise keelest. Firewall) on riist- ja/või tarkvaratööriistade kogum, mis juhib ja filtreerib seda läbivaid võrgupakette OSI mudeli erinevatel tasanditel vastavalt määratud reeglid.tulemüür on kaitse arvutivõrgud või üksikute sõlmede eest volitamata juurdepääsu eest.

Iptables töötab IPv4 pakettide filtreerimise reeglite määramisega tuumatabeli kujul. Sissetulevaid ja väljaminevaid pakette kontrollitakse nende reeglite suhtes ning need, mis reeglitele ei vasta, blokeeritakse. Ip6tables teeb sama IPv6 pakettide puhul.

Millist kahest teenusest soovite käitada? Mõlemad. On alati. Võrk on ohtlik!

Lisateave: http://www.netfilter.org, http://www.ipv6.org

IrDA (infrapunaandmete assotsiatsioon) on tööstusstandard seadmetevahelise infrapuna traadita side jaoks. Enamik sülearvuteid on varustatud IrDA-ühilduva infrapunasaatjaga. Peate selle teenuse käivitama ainult siis, kui kavatsete infrapuna kaudu suhelda teiste seadmetega.

Lisainformatsioon:

irqbalance

See deemon vastutab jõudluse parandamiseks riistvarakatkestuste jaotamise eest sümmeetrilise protsessori (SMP) mitme protsessori arhitektuuris protsessorite vahel.

Seda deemonit pole vaja üheprotsessorilistes süsteemides käivitada, see mõjutab ainult mitmeprotsessorilisi süsteeme.

Rohkem infot: http://www.irqbalance.org

See on väga kasulik deemon. See töötab alglaadimise ajal ja kontrollib, millised riistvaraseadmed on süsteemi lisatud või sealt eemaldatud. Kudzu käivitamine alglaadimise ajal on mõttekas, isegi kui te ei kavatse seadmeid sageli lisada või eemaldada. Sest varem või hiljem leiate end samavõrra olukorrast, kus lisate seadme ja eeldate, et süsteem tuvastab selle. Lisaks, kuna kudzu töötab alglaadimise ajal, ei mõjuta see süsteemi jõudlust negatiivselt.

Rohkem infot: http://fedora.redhat.com/projects/additional-projects/kudzu

See deemon on saanud oma nime Lan Information Serveri järgi. Lisa pakub funktsioone, mis on sarnased MS-Windowsi võrgunaabrusteenuse pakutava funktsiooniga, see tähendab juurdepääsu teie kohaliku võrgu serveritele, sealhulgas CIFS-serveritele (Common Internet File Systems). lisa töötab üle TCP / IP, saadab ICMP päringuid IP-aadressidele konfiguratsioonifailis määratud vahemikus ja ootab arvutite reageerimist.

Lisateave: http://docs.kde.org/stable/en/kdenetwork/lisa, http://docs.kde.org/userguide/networking-with-windows.html,

lm_sensors

See deemon jälgib emaplaadi temperatuure ja pingeid. Seiresüsteemi töötamiseks on vajalik, et seadmetes oleksid vastavad andurid. Selle deemoni käivitamine on mõttekas ainult riistvaratoe olemasolul. Tõenäoliselt ei tohiks te seda tavalistes tööjaamades käivitada. Pigem on seda vaja tipptasemel serverites, mis täidavad kriitilisi funktsioone.

Lisateave: http://www.lm-sensors.org, http://freshmeat.net/projects/lm_sensors

mcstrans

SELinuxi konteksti tõlkesüsteemi deemon. See deemon teisendab turbekonteksti teabe inimloetavasse vormi. Saate selle deemoni peatada, kuid kui jah, näete SELinuxi teavet, mis kuvatakse käsuga ls -Z, muutumas. Näiteks kui deemon töötab, näete järgmist:

Ls -Z -rw-r - r-- jsmith jsmith user_u: object_r: user_home_t bookmarks.html drwxr-xr-x jsmith jsmith user_u: object_r: user_home_t Desktop -r-xr-xr-x jsmith jsmith user_home -: object_rt user_home - r - r-- jsmith jsmith kasutaja_u: objekt_r: kasutaja_kodu_t hello.c

Ja kui deemon on peatatud, näete järgmist:

Ls -Z -rw-r - r-- jsmith jsmith kasutaja_u: objekti_r: kasutaja_kodu_t: s0 järjehoidjad.html drwxr-xr-x jsmith jsmith kasutaja_u: objekti_r: kasutaja_kodu_t: s0 Töölaud -r-xr-xr-x thjsmith : jsmith objekt_r: kasutaja_kodu_t: s0 tere -r - r - r-- jsmith jsmith kasutaja_u: objekt_r: kasutaja_kodu_t: s0 hello.c

Pange tähele, et kui deemon on peatatud, kuvatakse turbekonteksti väärtus "s0". Mctrans on sel juhul konteksti nullinud. Muud turbekonteksti väärtused teisendatakse tähtnumbrilistest väärtustest nende nimedeks.

Lisateave: http://fedoraproject.org/wiki/SELinux/Understanding, http://danwalsh.livejournal.com

mdmonitor ja mdmpd

Neid kahte deemonit kasutatakse odavate / sõltumatute ketaste (RAID) salvestussüsteemides. Mdmonitor käivitab, peatab ja taaskäivitab tarkvaralise RAID-i jälgimis- ja haldusteenuse mdadm (multipath device monitooring and management). Peate selle teenuse käivitama ainult siis, kui teie süsteemis on RAID-seadmeid.

Rohkem infot: http://www.linuxdevcenter.com/pub/a/linux/...12/05/RAID.html

sõnumibuss

See on D-BUS süsteemi teadete siini deemon. See edastab süsteemisündmusi ja sündmusi, nagu muudatused prindijärjekorras või seadmete lisamine või eemaldamine (pange tähele, et see ei ole sama mis kudzu, kuna sellised sündmused võivad ilmneda igal ajal süsteemi töötamise ajal, mitte ainult alglaadimise etapis ).

Lisateave: http://www.freedesktop.org/software/dbus

netplugd ja ifplugd

Need deemonid konfigureerivad Etherneti seadmed, kui võrgukaabel on ühendatud, ja keelavad need seadmed, kui kaabel on lahti ühendatud. Millal sa seda vajad? Näiteks sülearvutitel, et teie võrguühendused taastatakse ainult siis, kui võrgukaabel on ühendatud.

Pange tähele, et netplugdi tugi on lõpetatud ja see on nüüd asendatud ifplugdiga.

Lisateave: http://0pointer.de/lennart/projects/ifplugd

NetworkManager ja NetworkManagerDispatcher

NetworkManageri deemon automatiseerib võrguühenduste vahetamise. See deemon on kasulik sülearvutikasutajatele, kes lülituvad WiFi traadita ühenduse ja Etherneti ühenduste vahel. Kui NetworkManager muudab võrgu olekut, käivitab NetworkManagerDispatcheri deemon automaatselt vajalike toimingute tegemiseks skripte (nt skriptid pakettide konkreetsete marsruutimisjuhiste määramiseks).

Lisateave: http://www.gnome.org/projects/NetworkManager

See on deemon, mis toimib domeeninimeserverina. Peaksite seda käivitama ainult siis, kui teie arvuti on teie võrgu DNS-server.

Rohkem infot: http://www.dns.net/dnsrd

Nfsd deemon toetab nfs-võrgu sideprotokolli, mida kasutatakse juurdepääsu tagamiseks võrguressursse TCP / IP võrkudes. Peate selle käivitama, kui annate teistele kasutajatele nfs-protokolli kasutades juurdepääsu oma failisüsteemidele.

Lisainformatsioon:

See on nimeteenuse vahemällu salvestamise deemon. See haldab töötavate programmide rühmade ja paroolide tabelit ning loob siis meeldejääva tulemuse järgmisel päringul teenuste jaoks, mis muidu on liiga aeglased, nagu NIS või LDAP. Kui teil on need teenused töötavad, peaksite käivitama ka nscd.

See on deemon, mis toetab võrguajaprotokolli. See määrab süsteemi aja ja sünkroonib selle võrdlusaega säilitavate Interneti-serverite määratud ajaga. Kui teie süsteem on Internetiga ühendatud (kas pole?), siis see deemon jälgib teie arvuti süsteemiaja õiget seadistust.

Rohkem infot: http://www.ntp.org

Oddjobd-deemon käitab süsteemisiinil teenust com.redhat.oddjob. Iga oddjobdi pakutav võimalus on ette nähtud eraldi meetod D-buss. Oddjobd pakub tuge privilegeeritud toimingute tegemiseks privilegeeritud rakenduste jaoks.

Peaksite selle deemoni käivitama ainult siis, kui kasutate seda nõudvaid rakendusi, näiteks Conga.

Lisateave: http://people.redhat.com/nalin/oddjob/oddjob.html,

See deemon toetab virtuaalseid privaatvõrke (VPN). Selle deemoni käivitusskript ütleb järgmist:

OpenVPN on tugev ja väga paindlik tunnelirakendus, mis kasutab OpenSSL-i teegi krüpteerimis-, autentimis- ja sertifitseerimisvõimalusi, et turvaliselt tunneldada IP-võrku ühe UDP-pordi kaudu.

Kui teie süsteem on VPN-i host, peaksite tõenäoliselt käivitama OpenVPN-i.

Rohkem infot: http://openvpn.net

pcscd (PC / SC Smart Card Deemon) on deemon pcsc-lite'i (kiipkaardi juurdepääsutarkvara) ja (java-põhise) MuscleCardi arenduskeskkonna jaoks. See pakub sidet kiipkaardilugejate ja kiipkaartidega.

(Kipkaart on väike trükkplaat, mis sisaldab kas mälumoodulit või mikroprotsessorit koos mälumooduliga. Muscle tähendab Movement for the Use of Smart Cards in a Linux Environment.

Lisateave: http://www.smartcardalliance.org, http://pcsclite.alioth.debian.org, http://www.linuxnet.com/musclecard/index.html

Portmapperi deemon haldab RPC (kaugprotseduurikõne) ühendusi. See teisendab RPC programmide numbrid TCP / IP (või UDP / IP) pordinumbriteks. Portmapperit kasutavad kõige sagedamini NFS ja NIS.

Nii et kui teie süsteem sõltub NIS-ist või NFS-ist, ärge keelake portmap deemonit.

Lisateave: http://www.linux-nis.org/nis-howto/HOWTO/portmapper.html

Tegemist on postiedastuse (transpordi) agentiga. Kui teie süsteem ei ole meilisüsteemi edasikandja, ei pea te seda teenust käivitama.

Lisateave: http://www.postfix.org

See deemon (ruuteri avastamise deemon) leiab marsruute kohalikust alamvõrgust. See käivitatakse alglaadimise ajal, et lisada marsruutimistabelitesse vaikemarsruudid.

Rohkem infot: http://www.informit.com/articles/article.asp?p=23951&rl=1

taastada seisukord

See on SELinuxi deemon. Restorecond jälgib failide loomist (kataloogis /etc/selinux/restorecond.conf loetletud failide puhul) ja tagab, et failidel on määratud poliitika jaoks õige failikontekst, ning määrab ka SELinuxi faili vaikekonteksti.

Ärge keelake seda teenust. See on SELinuxi jaoks vajalik.

Lisateave: http://fedoraproject.org/wiki/SELinux/Understanding, http://danwalsh.livejournal.com/

See deemon kontrollib perioodiliselt, milliseid toiminguid tuleks läbi viia võrguliides Red Hat (Red Hat Networki veebiliides) ja käitab neid. Need toimingud hõlmavad tarkvara installimist, eemaldamist või värskendamist, süsteemi taaskäivitamist, konfiguratsioonifailide installimist ja nii edasi.

Rohkem infot: https://www.redhat.com/rhn/

rpcgssd, rpcidmapd ja rpcsvcgssd

Rpcgssd ja rpcsvcgssd deemonid on mõeldud turvalisuse tagamiseks RPC kaudu. Rpcidmapd teisendab kasutajanimed UID- ja GID-numbriteks.

Kui kasutate NFS-i või NIS-i, peaksid need deemonid töötama.

Lisainformatsioon:

readahead_early ja readahead_later

Readahead deemon tagab, et käivitusprogrammid laaditakse mällu enne nende kasutamist, mis vähendab alglaadimisaega.

saslauthd

See on SASL-i autentimisserveri deemon. SASL (Simple Authentication and Security Layer) lisab kaugühendustel põhinevatele protokollidele autentimisvõimalused.

Lisateave: http://asg.web.cmu.edu/sasl

kirja saatma

See on SMTP (Simple Mail Transfer Protocol) server. Sendmail edastab kirjad ühest süsteemist teise, see tähendab, et see on postitranspordi agent. Kui kasutate saatjaid, nagu Thunderbird või Evolution, ei pea te sendmaili käivitama.

Rohkem infot: http://www.sendmail.org

tõrkeotsing

See on SELinuxi probleemide lahendamise deemon. Tõrkeotsing on SELinuxi üks viimase aja suurepäraseid uuendusi. Tõrkeotsing annab kasutajatele reaalajas tagasisidet SELInuxi AVC (juurdepääsuvektori vahemälu) tõrgete kohta. Lisaks antakse see tagasiside mugavas vormingus.

Lisateave: https://hosted.fedoraproject.org/projects/setroubleshoot

See deemon jälgib mitut tüüpi draividesse, näiteks SCSI-3 kõvaketastesse, paigaldatud SMART-andurite (self-Monitoring, Analysis and Reporting Technology) näitu. Deemon jälgib selliste seadmete normaalset tööd ja teostab enesetesti. Kui teie riistvara toetab SMART-tehnoloogiat, peate selle teenuse käivitama.

Lisainformatsioon:

spamassassin

See deemon kasutab rämpsposti kontrollimiseks programmi Apache SpamAssassin. Tavaliselt töötab see koos meiliedastusagendi (MDA) serveriga. Kui kasutate oma meilile juurdepääsuks klientprogramme, nagu Thunderbird või Evolution, ei pea te spamassassini käivitama.

Lisateave: http://spamassassin.apache.org

See on avatud ssh-protokolli deemon. Ssh asendab ebaturvalised rsh- ja rlogin-programmid ning pakub krüpteeritud ühendusi ebaturvaliste võrkude hostide vahel. Kui kasutate avatud Interneti kaudu ühendusi teiste süsteemidega, peate kasutama ssh-d ja käivitama selle deemoni.

Lisateave: http://www.ssh.com, http://www.openssh.com

syslog on tavaline Linuxi logimissüsteem. Ärge lülitage seda välja.

Lisateave: http://www.syslog.org

See deemon on osa Samba paketist. See võimaldab Windowsi domeeni kasutajatel luua Unixi kasutajatena ühenduse Unixi serveritega. See deemon tuleks käivitada, kui tegemist on Windowsi ja Linuxi / Unixi arvutite segavõrguga.

Lisateave: http://www.samba.org/samba/docs/man/Samba-...on/winbind.html, http://www.samba.org

See on fondiserver. See deemon laadib fonte mällu, nii et graafikarakendused töötaksid kiiremini, kui peaksid fonte kõvakettalt laadima. See teenus tuleks käivitada, et parandada teie süsteemi rakenduste jõudlust.

Lisateave: http://linuxreviews.org/howtos/xfree/xfs

See teenus seob NIS-kliendi NIS-domeeniga. Selle nimes olevad tähed "yp" pärinevad "kollastest lehtedest", kuna NIS-kataloogid on nagu kollaste lehtede telefonikataloogid. Peate selle teenuse käivitama ainult siis, kui teie süsteem kasutab kasutajaeelarvetele ja süsteeminimedele juurdepääsu võimaldamiseks NIS-i (Network Information Service).

Rohkem infot: http://www.linux-nis.org

nm-uuendatud

yum-updatesd jälgib tarkvarauuenduste saadavust ja saadab nende uuenduste kohta teateid e-posti, d-busi või süsteemisõnumite teel ning suudab ka toota automaatne värskendus PEAL. D-busi teated võtab vastu utiliit "nukk" (paketiuuendaja), mis teavitab kasutajat värskenduse olemasolust ja võimaldab ka värskenduse installida.

Lisateave: http://linux.duke.edu/projects/yum, http://www.redhat.com/magazine/024oct06/features/fc62

Tänu ZOOL veebisaidil http://www.centrlan.ru/node/17929 esitatud teabe saamiseks

Allikas pole täpsustatud

Iga algaja Linuxi kasutaja kogeb varem või hiljem probleeme oma süsteemi seadistamisel ja töö korraldamisel. Ja kõik algajad kuulsid peaaegu kindlasti kogenumatelt kasutajatelt nõu: "Vaadake logisid." See nõuanne on hea, kuid algaja peab siiski teadma: mis on palgid ja kust neid leida! Nii et ma püüan selles artiklis teile öelda, mida ja kust otsida.

Programmeerimisslängis on "logid" tööprotokollid, mida hooldavad nii operatsioonisüsteem ise kui ka iseseisvalt paljud programmid. Sõna "log" kasutatakse selles tähenduses sageli sõna "protokoll" sünonüümina. Protokolli analüüsimiseks on vaja kahte peamist olukorda: kui midagi süsteemis ei tööta ootuspäraselt (probleemi lahendamine) ja kui tekib kahtlus, et süsteemi on häkkinud mõni sissetungija ja see on vajalik et teada saada, mis täpselt juhtus, kuidas seda tehti ja mida tuleb teha, et tulla toime pealetungi tagajärgedega.

Üks kuulsamaid logifailide kasutamise juhtumeid ründaja sissetungi tuvastamiseks on lugu kuulsa häkkeri Kevin Mitnicki tabamisest arvutiturbespetsialisti Tsuomo Shimomura poolt. Siin on üks lõik artiklist, mis kirjeldab, kuidas see juhtus.

"Jõulupäeval, kui Shimomura läks Nevadasse puhkama suusatama, tungis keegi (me juba teame, kes) tema üliturvalisse koduarvutisse Solana Beachis Californias ja hakkas kopeerima tema faile – sadu salastatud faile. San Diegost. Superarvutikeskus, kus Shimomura töötas, märkas muudatusi süsteemi "logi" (logi) failides ja sai kiiresti aru, mis toimub. San Diegos asuvasse varuarvutisse. Õpilane helistas Shimomurale ja ta tormas koju varastatud kaupa inventeerima. ."

Ma ei räägi siin kogu lugu, oluline on märkida vaid seda, et ebaseaduslike toimingute uurimise õnnestumise aluseks oli süsteemi tööprotokollide analüüs. Üksikasjalikuma kirjelduse selle kohta, kuidas selliseid uurimisi läbi viiakse, leiate artiklist. Kuid logimise tulemuste kasutamiseks peate mõistma, kuidas protokolle luuakse, kus neid hoitakse ja mida neist saab välja võtta. See artikkel on pühendatud kõigi nende küsimuste käsitlemisele.

Kuidas protokolli jaoks sõnumeid genereeritakse

Alustada tuleb sellest, et C-keeles programme luues on programmeerijatel võimalus vajadusel sisestada erifunktsioonide kõne. openlog, setlogmask, syslog ja closelog sisaldub standardses C teegis. Neid funktsioone kasutatakse sõnumite saatmiseks teatud sündmuste kohta programmi täitmise ajal spetsiaalsele süsteemideemonile syslogd süsteemiprotokolli juhtimine. Funktsioon avatud logi loob ühenduse deemoniga syslogd, funktsioon syslog genereerib konkreetse sõnumi, mis kirjutatakse protokolli ja funktsiooni closelog sulgeb avatud lingi.

Funktsiooni poolt genereeritud sõnumid syslog, koosneb mitmest tühikutega eraldatud väljast. Iga teade algab väljaga PRI, mis kodeeris teabe rajatise kategooria ja sõnumi raskusastme või prioriteedi kohta.

Kategooria (rajatis) on teave selle kohta, millisesse klassi antud teade kuulub. Kategooria on kodeeritud numbritega 0 kuni 23. Seal on järgmised kategooriad (need on failis määratletud /usr/include/sys/syslog.h):

Tabel 1.

Numbriline väärtusSümbolDekrüpteerimine
0 kern Kerneli sõnumid
1 kasutaja Mõeldud mitmesuguste kasutajaprogrammide sõnumite jaoks. (Kasutajaprogrammide sõnumid)
2 mail Kirjad postisüsteemist.
3 deemon Sõnumid nendelt süsteemideemonitelt, millel erinevalt FTP-st või LPR-st ei ole kindlaid kategooriaid.
4 aut Kõik, mis on seotud kasutaja autoriseerimisega, nagu sisselogimine ja su (turvalisus / juurdepääsuõigused)
5 syslog Logisüsteem saab logida sõnumeid endalt.
6 lpr Sõnumid trükisüsteemist.
7 uudised Sõnumid uudisteserverist. (Netnews, USENET)
8 uucp Sõnumid UNIX-ilt UNIX-i kopeerimisprotokollilt. See on osa UNIX-i ajaloost ja tõenäoliselt ei lähe teil seda kunagi vaja (kuigi osa kirju toimetatakse siiski kohale UUCP kaudu).
9 cron Sõnumid süsteemi planeerijalt.
10 authpriv Sama mis autentimine, kuid selle kategooria kirjad kirjutatakse faili, mida saavad lugeda vaid vähesed kasutajad (võib-olla on see kategooria esile tõstetud, kuna sinna kuuluvad kirjad võivad sisaldada avatud kasutaja paroole, mida volitamata inimesed ei peaks nägema, ja seega logifailidel peavad olema vastavad õigused).
11 ftp Selle kategooria kaudu saate konfigureerida oma FTP-serveri selle toiminguid salvestama.
kella 12-15 - Reserveeritud süsteemi kasutamiseks.
16-23kohalik0 - kohalik7 Reserveeritud kategooriad kasutamiseks süsteemiadministraatorile. Local7 kategooriat kasutatakse tavaliselt süsteemi alglaadimise faasis genereeritud sõnumite jaoks.

Kategooria aut on vananenud sünonüüm turvalisus mida ei soovitata kasutada. Lisaks on olemas erikategooria mark(ei ole digitaalset vastet), mis määratakse deemoni enda loodud üksikutele sõnumitele syslogd... Seda kategooriat kasutatakse selleks, et panna protokolli kindla ajaintervalli järel (vaikimisi iga 20 minuti järel) erimärke, mis võimaldab näiteks 20-minutilise täpsusega teada, millal arvuti külmub.

Pange tähele, et kategoorial pole üldiselt midagi pistmist deemonile sõnumeid saatva programmi nimega. syslogd... Nagu öeldakse, on igasugune kokkusattumus puhas juhus. Lisaks võivad mõned programmid genereerida erineva kategooria sõnumeid. Näiteks deemon telnetd ebaõnnestunud logimiskatsete korral genereerib kategooriateateid authpriv ja muudel juhtudel kategoriseerib selle postitused deemon.

Teine parameeter, mille alusel moodustatakse välja väärtus PRI, on sõnumi tase või prioriteet (prioriteet), st teave sõnumi tähtsuse astme kohta. Standardina on seatud 8 raskusastet (need on ka failis määratletud /usr/include/sys/syslog.h), mis on kodeeritud numbritega 0 kuni 7:

Tabel 2.

Numbriline väärtusSümbol Dekrüpteerimine
0 esile kerkima(vana nimi PANIKA) Hädaolukord. Süsteem ei tööta.
1 hoiatus Ärevus! Vajalik kohene sekkumine.
2 kriit Surmav viga (kriitiline seisund).
3 eks(vana nimi ERROR) Veateade.
4 hoiatus(vana nimi WARN)Hoiatus.
5 märkama Teave mõne tavalise, kuid olulise sündmuse kohta.
6 info Teadaanne.
7 silumine Silumisel genereeritud sõnumid.

Väli PRI teade moodustatakse järgmiselt: kategooria arvväärtus korrutatakse 8-ga ja lisatakse prioriteedi arvväärtusele, saadud arv pannakse nurksulgudesse ja kirjutatakse väljale.

Põllu järgi PRI Sõnumile on lisatud järgmised väljad:

  • TIMESTAMP- sõnumi moodustamise aeg,
  • HOSTNAME- hostinimi või IP-aadress kümnendsüsteemis,
  • MSG- sõnumi suvaline tekst - mõni tekstiline (teabe)string US-ASCII koodis (0x20 - 0x7e).

Kellaaeg (kohalik!) Kirjutatakse formaadis: 13. veebruar 21:12:06. Kui päeva number on ühekohaline number, siis pannakse selle ette lisatühik (mitte 0!). Pöörake tähelepanu aasta ja tsooni puudumisele kuupäevas, millega tuleb korraldamisel arvestada pikaajaline ladustamine logifailid. Et sõnumis olev aeg oleks õige, tuleb see sünkroonida (näiteks kasutades NTP-protokolli).

Hostinimi sisaldub sõnumis, et mitte segamini ajada erinevatelt hostidelt pärit sõnumeid, kuna nagu allpool näidatud, saab logida ühes võrgus olevatest spetsiaalsetest arvutitest. Hostinimi on arvuti lihtne võrgunimi, domeeni määramata. Kui arvutil on mitu erineva IP-aadressiga liidest, siis saab hostinime või aadressina kasutada ükskõik millist neist.

Sõnumi tekst ( MSG) sisaldab tavaliselt silti ( TAG), osutades programmile või protsessile, mis selle sõnumi väljastas, ja sõnumi sisule ( SISU). Silt võib sisaldada ladina tähti ja numbreid. Tavaliselt kasutatakse sildina lihtsat programminime, millele mõnikord järgneb nurksulgudesse lisatud protsessi identifikaator. Sõnumi sisu eraldatakse sildist erimärkidega – Linuxis on need tavaliselt koolon ja tühik.

Syslogd sõnumite käsitlemine

Kõik sõnumid on loodud individuaalsed programmid funktsiooni kasutades syslog saadetakse pistikupesa kaudu / dev / log süsteemi deemon syslogd kes vastutab nende sõnumite töötlemise eest. Pean ütlema, et tegelikult käivitatakse süsteemis kaks logideemonit - syslogd ja klogd... Mõlemad deemonid on komplektis sysklogd, mille uusima versiooni leiate veebisaidilt.

Deemon klogd vastutab süsteemi tuumas toimuvate sündmuste logimise eest. Vajadus eraldi deemoni järele klogd on seletatav asjaoluga, et kernel ei saa kasutada standardfunktsiooni syslog... Fakt on see, et standardteegid (sealhulgas raamatukogu, milles funktsioon asub syslog) on mõeldud kasutamiseks ainult tavalistes rakendustes. Kuna kernel vajab ka sarnaseid funktsioone, sisaldab see oma teeke, mis pole rakendustele kättesaadavad. Seetõttu kasutab kernel oma sõnumi genereerimise mehhanismi. Deemon klogd on loodud nende sõnumite töötlemise korraldamiseks. Põhimõtteliselt saab ta sellist töötlemist läbi viia täiesti sõltumatult ja sõltumatult syslogd, näiteks kirjutades need sõnumid faili, kuid enamasti kasutatakse vaikeseadet klogd kus kõik kerneli sõnumid edastatakse samale deemonile syslogd.

Et veenduda deemonites syslogd ja klogd oma süsteemis töötades käivitage käsk ps -ax | grep logi... See käsk andis minu jaoks järgmise tulemuse:

$ ps -ax | grep logi 569? S 0:00 syslogd -m 0 574? S 0:00 klogd -x 1013? S 0:00 login - kos 1191? S 0:00 kalarmd --login Esimesed kaks rida näitavad, et logideemonid töötavad süsteemis.

Deemonite käsitsemise sõnumid syslogd seisneb selles, et see jälgib pidevalt sõnumite välimust ja võrdleb iga vastuvõetud kirjet failis olevate reeglitega /etc/syslog.conf... Iga reegel kirjutatakse faili reana /etc/syslog.conf koosneb kahest väljast. Vasakpoolne väli ("valija") määrab ühe või mitu malli, mille järgi sõnumeid valitakse. Mallid on eraldatud semikooloniga (vt allpool näidisfaili /etc/syslog.conf). Parem veeris ("tegevus") määrab valitud sõnumite töötlemise järjekorra. Väljad on eraldatud ühe või mitme tühiku või tabeldusmärgiga.

Iga mall väljal "selector" on kujul "category.level" (st "rajatis.priority"). Välja "Kategooria" väärtused võivad olla:

  • üks tabelis 1 loetletud kategooriate kokkuleppelistest nimetustest,
  • mitu sellist nime (antud juhul eraldatakse need komadega)
  • või tähemärki * (mis tähendab "kõiki kategooriaid").

Välja "tase" väärtused võivad olla:

  • üks tabelis 2 loetletud taseme tingimuslikest nimetustest,
  • märk * (salvestage kõik selle kategooria sõnumid, olenemata tasemest),
  • või sõna mitte ühtegi(ärge salvestage sellesse kategooriasse sõnumeid).

Konkreetse väärtuse määramist väljal "tase" tõlgendatakse kui "kõiki selle taseme ja kõrgemaid väärtusi". Kui teil on vaja salvestada ainult ühe taseme sõnumeid, peate määratud väärtuse ette panema võrdusmärgi ("="). Kui soovite salvestada kõikide tasemete sõnumeid, välja arvatud märgitud, asetatakse taseme nime ette hüüumärk ("!"). Nende kahe märgi samaaegset paigutamist tõlgendatakse kui "ära salvesta määratud või kõrgema taseme sõnumeid".

Suur- ja väiketähed väljal "valija" ei erine. Võite kasutada ka numbreid (vt /usr/include/syslog.h). Lisaks tabelis 1 loetletud kategooriatele mark(tavalised ajatemplid) ja turvalisus(aegunud sünonüüm sõnale aut). Lisaks tabelis 2 loetletud prioriteetsetele väärtustele saate kasutada hoiatama(sünonüüm hoiatus), viga(sünonüüm eks), paanika(sünonüüm esile kerkima).

Kui vastuvõetud sõnumi kategooria ja tase ühtivad mõne stringi välja "selektor" ühe malliga, syslogd töötleb kirjet vastavalt selle rea väljal "tegevus" määratud toimingule.

Väljal "tegevus" võib olla

  • tuleb määrata tavalise faili (logifaili) nimi ja faili täielik tee, alustades juurtest "/" ja kui määratud faili pole olemas, syslogd loob selle,
  • nimega toru nimi - FIFO; sel juhul asetatakse nime ette vertikaalne riba ("|") ja kanal ise tuleb enne käivitamist luua syslogd meeskond mkfifo,
  • osutab terminalile või konsoolile (nt seade: / dev / tty1),
  • viide kaughostile (eelneb sümbol @),
  • või kasutajate loend (eraldatuna komadega), kelle terminalidele saadetakse teade vastavalt sellele reeglile. Kasutajate loendi asemel võite panna tärni (*), mis tähendab, et sõnumid saadetakse kõigile kasutajatele, kes töötavad Sel hetkel süsteemis.

Kõige sagedamini sisaldab väli "tegevus" ikkagi logifaili nime. Lisaks saate failinime ette panna miinusmärgi ("-"), mis tähendab, et süsteem suudab faili vahemälu puhvrisse salvestada ja mitte seda pärast iga sõnumi kettale kirjutamist maha loputada. See muidugi kiirendab tööd, eriti kui logisse on salvestatud palju suuri sõnumeid, kuid ootamatu süsteemikrahhi korral, st täpselt siis, kui selliseid sõnumeid on eriti vaja, võib see kaasa tuua mõne sõnumi kadumise . Samuti saate väljale "tegevus" määrata seadmena printeri - / dev / lp0. Seda "tegevuse" valikut on soovitatav kasutada juhtudel, kui tegemist on eriti oluliste süsteemidega. Häkkerid ei saa prinditud protokolle kustutada ega muuta, seega sobib see vana maatriksprinteri jaoks hästi.

Lisaks failis olevad read reeglitega /etc/syslog.conf võib sisaldada tühje ridu ja kommentaariridu, mis algavad #-ga. Lisateave failistruktuuri kohta /etc/syslog.conf võid lugeda syslog.conf man-lehte, kus on palju näiteid selle faili reeglikirjetest. Pange tähele, et paaride määramisel failis "category.level". syslog.conf te ei saa kasutada tabelites 1 ja 2 toodud arvväärtusi, lubatud on ainult nende kokkuleppelised nimed.

Kui sõnum ühtib kahe või enama rea ​​mustriga, töödeldakse seda kõigi nende reeglite järgi (st sõnumi töötlemine ei peatu esimese õnnestumise korral). See tähendab, et ühe sõnumiga saab teha suvalise arvu toiminguid. Seetõttu saate nii kirjutada sõnumi logifaili kui ka saata selle kasutaja(te)le või kaughostile.

Lisaks, kui väljal "selector" on loetletud mitu "category.level" paari (eraldatuna semikooloniga), võivad järgnevad paarid eelmiste toimingu tühistada. Sellise tühistamise näidet näete allolevas faililoendis /etc/syslog.conf: Kõik sõnumid, mille tase on võrdne või sellest kõrgem, kirjutatakse faili / var / log / messages, kuid kategooriate mail, authpriv ja cron teated jäetakse vahele (ei kirjutata).

Nimekiri 1. Fail /etc/syslog.conf Red Hat Linux 7.1 distributsioonikomplekti baasil ehitatud süsteemist (tõlkisin just vene keelde selles failis sisalduvad kommentaarid ja valisin paksus kirjas reeglite read).
# Printige kõik sõnumid tuumast konsooli. # kern. * / dev / konsool# Logige kõik infotaseme või kõrgema taseme sõnumid, välja arvatud # konfidentsiaalseid autentimissõnumeid ja cron-teateid sisaldavad meilid. * .info; mail.none; authpriv.none; cron.none / var / log / sõnumid# Kirjutage konfidentsiaalset autentimisteavet sisaldavad sõnumid eraldi faili, olenemata nende tasemest. authpriv. * / var / log / turvaline# Kõik postisüsteemi sõnumid tuleks samuti eraldi salvestada. * / var / log / maillog# Logige cron deemoni toimingud. kroon * / var / log / kron# Hädaabisõnumid peaksid # koheselt vastu võtma kõik süsteemi kasutajad * .emerg *# Kriitilise ja kõrgema taseme uudisteteenuste sõnumid tuleks kirjutada eraldi faili. uucp, news.crit / var / log / spooler# Alglaadimisfaasis kuvatavad teated tuleks kopeerida faili boot.log local7. * /var/log/boot.log
Nagu näete, kirjutatakse enamik sõnumeid lihtsalt erinevatesse kataloogis asuvatesse logifailidesse / var / log või selle alamkataloogid ja Red Hat Linuxi peamine süsteemi logifail on fail / var / log / sõnumid... See ei hõlma ainult kategooriate mail, authpriv ja cron sõnumeid (mille jaoks on eraldatud eraldi failid). Vaatame seda faili ja selle näitel kaalume, mis logifailides on kirjutatud.

Logifail / var / log / sõnumid

Muidugi ei saa siin kuidagi rääkida selle faili iga rea ​​sisust. Et lugeja saaks aimu, millist infot protokollist võib leida, esitame eraldi sõnumiread väga lühikeste kommentaaridega.

Logifaili iga rida sisaldab ühte sõnumikirjet, mis koosneb järgmistest tühikutega eraldatud sõnumiväljadest:

  • kuupäev standardses tekstivormingus (väli TIMESTAMP postist syslog),
  • hostinimi (väli HOSTNAME postist syslog)
  • sõnumi tekst (väljad TAG ja SISU postist syslog)

Esiteks tasub tähele panna, et kui arvuti ei tööta ööpäevaringselt, vaid lülitub öösiti välja, siis siit failist leiad mitme "töötsükli" kirjed, alustades arvuti alglaadimisest ja lõpetades selle väljalülitamisega. Selline tsükkel algab teatega logideemonite käivitamise kohta (see on arusaadav, enne nende käivitamist sõnumeid ei salvestatud):

17. september 08:32:56 kos3 syslogd 1.4-0: taaskäivitamine. 17. september 08:32:56 kos3 syslog: syslogd õnnestus 17. september 08:32:56 kos3 kernel: klogd 1.4-0, logi allikas = / proc / kmsg alanud. 17. september 08:32:56 kos3 kernel: /boot/System.map-2.4.2-2 kontrollimine 17. september 08:32:56 kos3 syslog: start klogd õnnestus

  • - Millist kerneli versiooni kasutatakse: 17. september 08:32:56 kos3 kernel: Linuxi versioon 2.4.2-2 ( [e-postiga kaitstud]) (gcc versioon 2.96 20000731 (Red Hat Linux 7.1 2.96–79)) # 1. Pühap, 8. aprill 20:41:30 EDT 2001
  • - Milliste parameetritega kernel käivitati: 17. september 08:32:56 kos3 kernel: Kerneli käsurida: auto BOOT_IMAGE = linux ro root = 303 BOOT_FILE = / boot / vmlinuz-2.4.2-2
  • - Teave protsessori tüübi ja RAM-i hulga kohta: Sep 17 08:32:56 kos3 kernel: Tuvastati 1594,849 MHz protsessor. 17. september 08:32:56 kos3 tuum: Mälu: 125652k / 130560k saadaval (1365k kerneli kood, 4200k reserveeritud, 92k andmed, 236k init, 0k highmem) 17. september 08:32:56 CPUK1:3 kerneli 2:1 koche , L1 D vahemälu: 8K 17. september 08:32:56 kos3 kernel: CPU: L2 vahemälu: 256K 17. september 08:32:56 kos3 tuum: CPU: Intel (R) Pentium (R) 4 CPU 1,60 GHz samm 02
  • - Kettamälu teave (sealhulgas teave ketta geomeetria, ketta partitsioonide struktuuri ja kasutatud katkestuste kohta): 17. september 08:32:56 kos3 kernel: hda: MAXTOR 6L020J1, ATA kettadraiv 17. september 08:32:56 kos3 kernel: hdc: SAMSUNG CD-ROM SC-148C, ATAPI CD / DVD-ROM draiv 17. september 08:32:56 kos3 kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14. september 17 08:32:56 kos3 tuum: ide1 at 0x177-, 0 0x376 irq-is 15. 17. september 08:32:56 kos3 kernel: hda: 40132503 sektorit (20548 MB) koos 1819KiB vahemäluga, CHS = 2498/255/63, UDMA (100) 3. osa: 6. kernel 27:08 kontroll: 17. september 08:32:56 kos3 kernel: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17. september 08:32:56 kos3 kernel: disketiseade (id): fd0 on 1,44M
  • - Välisteave: 17. september 08:32:56 kos3 tuum: usb-uhci.c: USB UHCI at I / O 0x1820, IRQ 11. september 17 08:32:56 kos3 tuum: usb-uhci.c: tuvastati 2 porti 17 08:32:56 kos3 tuum: ttyS00 juures 0x03f8 (irq = 4) on 16550A, 17. september 08:32:56 kos3 tuum: ttyS01 juures 0x02f8 (irq = 3) on 165550A kernel 0x03f8 (irq = 3) Sep3 kos3 58p:270A : eth0: Intel (R) 8255x põhinev Etherneti adapter 17. september 08:32:56 kos3 tuum: Intel (R) PRO / 100 kiire Etherneti adapter – laaditav draiver, versioon 1.5.6, 17. september 08:32:56 kos3 tuum: PCI: leitud IRQ 11 seadmele 02: 08.0
  • - Teave üksikute teenuste ja teenuste käivitamise kohta: 17. september 08:32:56 kos3 kernel: NET4: Linux TCP / IP 1.0 NET4.0 jaoks 17. september 08:32:56 kos3 tuum: IP-protokollid: ICMP, UDP, TCP, IGMP 17. september 08:32:56 kos3 kernel: NET4: Unixi domeenisoklid 1.0 / SMP Linuxi NET4.0 jaoks. 17. september 08:32:56 kos3 kernel: parport0: PC-stiilis 0x378 (0x778) 17. september 08:32:56 kos3 kernel: parport0: tuvastati irq 7 17. september 08:32:42 kos3 rc.sysinit: Turning on user ja grupikvoodid kohalikele failisüsteemidele: õnnestus 17. september 08:32:43 kos3 rc.sysinit: Vahetusruumi lubamine: õnnestus 17. september 08:32:44 kos3 init: Käitustasemele sisenemine: 3. september 17 08:32:45 kos3 kudzu: Üles / etc / fstab õnnestus 17. september 08:32:55 kos3 kudzu: õnnestus 17. september 08:32:55 kos3 võrk: võrguparameetrite määramine: õnnestus Sep 17 08:32:55 kos3 võrk: Liidese tõstmine lo: õnnestus Sep 17 08 : 32:56 kos3 võrk: Liides eth0 on aktiveeritud: õnnestus 17. september 08:32:56 kos3 klaviatuur: laadib klaviatuuri paigutuse: 17. september 08:32:56 kos3 klahvitabel: Laadib süsteemi fondi: 17. september 08:32:56 kos3 juhuslik : Initsialiseerib juhuslike arvude generaatori: õnnestus 17. september 08:32:41 kos3 rc.sysinit: Kerneli parameetrite konfigureerimine: õnnestus 17. september 08:32:41 kos3 rc.sysinit: vaikefondi (cyr-sun16) seadistamine: õnnestus september 17 08:32:41 kos3 rc.sysinit: Vahetussektsioonide aktiveerimine: õnnestus 17. september 08:32:41 kos3 rc.sysinit: hostinime seadistamine kos3: õnnestus 17. september 08:33:03 kos3 xinetd: algus 8 xinetd 7 õnnestus 33:05 kos3 gpm: start gpm õnnestus 17. september 08:33:05 kos3 crond: start crond õnnestus 17. september 08:33:06 kos3 xfs: kuulamine pordist 7100 september 17 08:33:06 kos3 xfs õnnestus:
  • - Teave failisüsteemide ühendamise kohta: Sep 17 08:32:56 kos3 kernel: VFS: ühendatud juur (ext2 failisüsteem) kirjutuskaitstud. 17. september 08:32:56 kos3 kernel: vahetusruumi lisamine: 265032k vahetusruum (prioriteet -1) 17. september 08:32:56 kos3 kernel: MSDOS FS: koodilehe 866 kasutamine 17. september 08:32:56 MSDOS FS: : IO märgistik koi8-r 17. september 08:32:41 kos3 rc.sysinit: USB-failisüsteemi ühendamine: õnnestus 17. september 08:32:41 kos3 rc.sysinit: juurfailisüsteemi kontrollimine õnnestus 17. september 08:32:41 kosysin3 rc. : Juurfailisüsteemi uuesti ühendamine lugemis-kirjutamisrežiimis: õnnestus 17. september 08:32:41 kos3 rc.sysinit: Proc failisüsteemi ühendamine: õnnestus 17. september 08:32:41 kos3 fsck: /: puhas, 30407/160000 faili, 9159270/3159270/ plokid 17. september 08:32:42 kos3 fsck: / KODU: puhas, 6573/432864 failid, 689090/863722 plokid 17. september 08:32:42 kos3 fsck: / usr: puhas, 55105/3269528p failid 17 08:32:42 kos3 rc.sysinit: failisüsteemide kontrollimine õnnestus
  • - Teatatud on mõned veateated: 17. september 08:32:42 kos3 ühendamine: SMB ühendus ebaõnnestus 17. september 08:32:42 kos3 ühendamine: paketi saatmine aadressile 10.104.129.245 (137) ERRNO = Võrk on kättesaamatu 17. september: 32: 08 42 kos3 mount: mount: / dev / sda4: tundmatu seade 17. september 08:32:59 kos3 mount: tõrge ühenduse loomisel 192.168.36.20:139 (marsruut hostini puudub) 17. september 08:32:59 kos3 mount: mount: / dev / sda4: tundmatu seade
  • - Sõnumid kasutaja logimise kohta: 17. september 08:33:14 kos3 sisselogimine (pam_unix): seanss avati kasutajale kos kasutajale LOGIN (uid = 0) 17. september 08:33:14 kos3 - kos: LOGI SISSE tty1 BY kos 17. september 08 :41:39 kos3 su (pam_unix): autentimise tõrge; loginimi = kos uid = 500 euid = 0 tty = ruser = rhost = kasutaja = juur
  • - Ja lõpuks arvuti väljalülitamisel salvestatud sõnumid, näiteks: 17. september 10:30:07 kos3 rc: klahvitabeli peatamine: õnnestus 17. september 10:30:07 kos3 fondiserver: lõpetab 17. september 10:30:08 kos3 xfs: peatada xfs õnnestus 17. september 10:30:08 kos3 gpm: peatada gpm õnnestus 17. september 10:30:08 kos3 xinetd: väljumine ... 17. september 10:30:10 kos3 rpc.statd: tabatud signaal 15, - registreerimine ja väljumine. 17. september 10:30:11 kos3 kernel: Kerneli logimine (proc) peatus. 17. september 10:30:11 kos3 kernel: Kerneli logideemon lõpeb. 17. september 10:30:12 kos3 syslog: stop klogd õnnestus 17. september 10:30:12 kos3 väljumine signaalil 15

    Teiste failis mainitud protokollifailide kirjetel on ligikaudu sama struktuur. /etc/syslog.conf.

    Logija ja saba käsud

    Eelnevast kirjeldusest võime järeldada, et kõigi süsteemilogide teadete väljastamise peaks programmeerija määrama programmi loomise etapis. See pole täiesti tõsi. Kasutajal on ka võimalus saata deemonile sõnum syslogd... Selleks on Linuxil käsk metsaraie, mis pakub sõnumi saatmist käsurealt (sh, bash jne). See sisaldub util-linuxi paketis. Loomulikult on see käsk mõeldud peamiselt logimisvõimaluste pakkumiseks, kui kasutaja loob mitmesuguseid shelliskripte. Kuid selle saab käivitada ka otse käsurealt, et näiteks logimissüsteemi võimalustega tutvuda. Käsu käivitamise vorming: logija [-isd] [-f fail] [-p PRI] [-t TAG] [-u pesa] Käsurea parameetritel on järgmine tähendus:

    • -i- lisage sõnumisse protsessi number
    • -s- duplikaat sõnum stderrile
    • -d- kasutage sõnumite saatmisel datagrammi režiimi (tavalise voogedastuse asemel)
    • -f failinimi- salvestage sõnum määratud faili (vaikimisi kasutatakse seda / var / log / sõnumid)
    • -p rajatis.tase- määrake sõnumi kategooria ja prioriteet (vaikimisi: user.notice)
    • -t TAG - määrake väli TAG
    • -u pistikupesa- syslogd helistamise asemel saatke sõnum määratud pesasse
    • MSG- Sõnumi tekst

    Saate programmi abil mitu sõnumit saata metsaraie ja imetlege failis olevat tulemust / var / log / sõnumid(kui te pole muidugi vaikeseadet muutnud).

    Muide, faili kirjutatud sõnumite vaatamiseks on väga huvitav viis / var / log / sõnumid meeskond metsaraie... See meetod põhineb kasutamisel eriprogramm saba... Avage terminali aken, hankige superkasutaja õigused (käsuga su) ja käivitage selles aknas käsk
    tailf / var / log / messages
    Pärast seda lülituge teisele terminalile ja käivitage seal käsk logija suvaline_tekst... Teie teade ilmub koheselt aknasse, kus programm töötab saba... See tähendab, et seda programmi kasutades saab süsteemiadministraator jälgida uute sõnumite protokolli salvestamist reaalajas. Tõsi, tõenäoliselt ei jää süsteemiadministraatoril aega sellisel viisil süsteemi käitumist jälgida (välja arvatud juhul, kui tegemist on hädaolukordadega). Seetõttu on protokollide analüüsimiseks välja töötatud spetsiaalsed programmid. Kuid nende kohta pisut madalamal, kuid praegu liigume edasi küsimusega, kuidas korraldada kaugarvuti järelevalvet (mäletate, kuidas tabasite ründaja Shimomura?).

    Võrgu logimine

    Nagu mainitud, saab logiteateid saata deemon. syslogd kaughostile. Aga keegi peab sellega leppima. Selgub, et seda teeb sama deemon syslogd töötab sellel kaughostil. Täpsemalt, syslogd mis tahes arvutis saab see kuulata mitte ainult pesast / dev / log (sellega saab sõnumeid kohalikest allikatest), vaid ka pordis 514 / UDP, mis tagab teadete vastuvõtmise (ja seejärel kirjutamise) teistest kohaliku võrgu arvutitest. kohalikku faili). See annab võimaluse luua "logiserveri", mis võib olla süsteemiadministraatorile väga mugav (kõiki võrgus olevaid sündmusi jälgitakse ühes kohas) ning suurendab ka võrgu turvalisust, kuna teated võrgu sissetungimise kohta See häkker ei saa ühe võrguhosti häkkerit kohe protokollist eemaldada.

    Siiski on selle "võrgu logimise" seadistamiseks vaja teha lisapingutusi.

    Esiteks, kuna porti 514 / UDP kasutatakse sõnumite saatmiseks ja vastuvõtmiseks üle võrgu, peab see olema saadaval mõlemas arvutis (klient ja server). Selleks failis / jne / teenused rida peab olema mõlemas arvutis
    syslog 514 / udp
    Kui selline rida sisse / jne / teenused puudu, syslogd ei saa sõnumeid vastu võtta ega võrku saata, kuna see ei saa UDP-porti avada. Kui selline olukord tekib, syslogd lõpetab kohe sõnumite kirjutamise, isegi kohalikku logisse. Veelgi enam, nagu käsk näitab ps, jääb see mällu ja salvestab isegi sõnumid mõnesse puhvrisse, sest kui string " syslog 514 / udp " taasta failis / jne / teenused kliendis, siis vähemalt osa "kadunud" teateid ilmuvad logisse (pärast taaskäivitamist syslogd).

    Teiseks deemoni käivitamisel syslogd serveril peab olema võimalus -r mis pakub kauglogimise võimalust (vaikimisi deemon syslogd ootab ainult sõnumeid kohalikust pistikupesast). Kuidas ja kus seda valikut määrata, kirjeldatakse allpool deemoni käivitamise osas. syslogd.

    Noh, ja kolmandaks, failide seadeid tuleb vastavalt parandada. /etc/syslog.conf mõlemas arvutis. Näiteks kui soovite kõik kirjad logimisserverisse suunata, peate kirjutama kliendi arvutis olevasse faili /etc/syslog.conf selline rida:
    *. * @hostinimi
    Kui deemoni alguse ajal syslogd server ei ole saadaval (näiteks on hetkel võrgust lahti ühendatud) või ei ole võimalik seda nime järgi leida (DNS-teenus ei töötanud korralikult) syslogd teeb veel 10 katset serveri leidmiseks ja alles siis, kui pärast seda serverit ei leita, katkestab katsed ja saadab vastava teate.

    Kui teie võrgus on mitu domeeni, mida teenindab üks logiserver, siis ärge imestage, et serveri logi sisaldab klientide täisnimesid (sh domeeni). Tõsi, käivitamisel syslogd saate kasutada valikuid -s domeenide_loend või -l hostlist, mis tagavad, et protokoll asendab täielikult kvalifitseeritud hostinimed nende lühinimedega (domeeni määramata).

    Ärge unustage pärast käivitusvalikute ja faili kohandamist /etc/syslog.conf taaskäivitage deemon, sest erinevalt cron, sysklogd ei loe konfiguratsioonifaile automaatselt uuesti.

    Syslogd deemoni käivitusvalikud

    Kuna oleme eelmises alajaotuses puudutanud deemoni käivitamise parameetrite seadmise küsimust syslogd, vaatame seda probleemi lähemalt. Nagu juba mainitud, käivitatakse mõlemad logideemonid süsteemi initsialiseerimise etapis ja täpsemalt skripti kaudu /etc/rc.d/init.d/syslog(mille jaoks, nagu ka muude teenuste käivitamiseks vajalike skriptide jaoks, luuakse sümboolsed lingid /etc/rc.d/rc?.d/ kataloogides). Käivitusparameetrite seadistamiseks pole aga vaja seda skripti kohandada, sest alates versioonist 7.2 Red Hat distributsioonis loetakse mõlema deemoni käivitusvalikud eraldi konfiguratsioonifailist / etc / sysconfig / syslog... Siin on lühike loetelu deemoni võimalikest parameetritest syslogd.

    Käivitamise parameetrid syslogd:

    • - pistikupesa- Määrab täiendava pesa, mida deemon kuulab syslogd... Saate määrata kuni 19 pesa (saab määrata rohkem, kuid peate paketi uuesti kompileerima). Seda suvandit kasutatakse siis, kui mõni muu deemon (nt ftp või http) töötab piiratud keskkonnas (kasutab chrooti).
    • -d- Silumisrežiim. Sel juhul ei lähe deemon taustale ja saadab kõik teated praegusele terminalile.
    • -f konfiguratsioonifaili_nimi Määrab alternatiivse konfiguratsioonifaili nime, mida kasutatakse vaikefaili asemel /etc/syslog.conf.
    • -h Vaikimisi sisse sysklogd võrgu kaudu vastuvõetud sõnumite edastamine mõnda teise arvutisse on keelatud. Seda tehakse selleks, et vältida lõputut sõnumiedastust ringi ümber. Valik -h võimaldab muuta tavapärast käitumist ja tagada, et kaughostidelt saadud sõnumid edastatakse mööda võrku (ja hoolitseda võimalike silmuste eest ise).
    • -l host-list- Määrab loendi hostidest, mille nimesid ei tohiks salvestada koos täieliku domeeninimega (FQDN - Full Qwalified Domain Name); loendis olevad nimed on eraldatud koolonitega.
    • -m minutit Alustati ilma selle valikuta sysklogd logib regulaarselt (iga 20 minuti järel) kategooria sõnumeid mark st lihtsalt ajatemplid. Võimalusega -m saate muuta märkide vahelist intervalli või täielikult tühistada selliste teadete väljastamise, mille jaoks peate määrama nulli intervalli: -m 0.
    • -nÄrge minge taustale; seda suvandit on vaja siis, kui syslogd käivitatakse ja seda juhib protsess selles.
    • -p pesa Määrab alternatiivse UNIX-i pesa (vaikekuulamise asemel / dev / log). Pange tähele: valik -a määrab täiendavad pistikupesad ja -lk- alternatiiv!
    • -r Võimaldab kaughostidelt sõnumeid vastu võtta. Me rääkisime sellest eelmises jaotises, nii et jätan üksikasjad välja.
    • -s domeenide loend Määrab domeenide loendi, mille nimesid ei pea koos hostinimega logima (st nende domeenide puhul logitakse täiskvalifitseeritud domeeninime (FQDN) asemel ainult hostinimed). Nimed loendis on eraldatud koolonite kaupa. Domeeni nimi, kus syslogd server asub) , seda selles loendis ei nõuta (selle nimi on vaikimisi eemaldatud).
    • -v Kuva versioon ja välju.
    • -x Keelake hostinime määramine selle aadressi järgi, väldib ummikseisu DNS-serveriga samas hostis töötades.

    Pärast deemoni käivitamist syslogd olekufail luuakse / var / lock / subsys / syslog null pikkus ja fail protsessi ID-ga /var/run/syslogd.pid.

    Kasutades käsku
    kill -SIGNAL "cat / var / run / syslogd.pid".
    võid saata deemonile syslogdüks järgmistest signaalidest:

    • SIGHUP – taaskäivitage deemon (reinitsialiseerimine); kõik avatud failid suletakse, deemon alustab otsast, lugedes uuesti oma konfiguratsioonifaili.
    • SIGTERM – seiskamine.
    • SIGINT, SIGQUIT - kui silumisrežiim on lubatud (valik -d), ignoreeritakse signaale, vastasel juhul - välju.
    • SIGUSR1 - silumisrežiimi lubamine / keelamine (töötab ainult siis, kui deemon käivitati lülitiga -d).

    Deemon klogd pole vähem käivitusvõimalusi kui syslogd, kuid me ei hakka neid siin loetlema, suunates lugeja vastavale man-lehele (kasutaja ei tohiks seadistusse kaasata klogd, on parem jätta see samasse olekusse, nagu selle levitamiskomplekti arendajad tootsid).

    Dmesg-fail ja dmesg-käsk

    Nagu öeldud, failis viidatud logifailid /etc/syslog.conf asub tavaliselt kataloogis / var / log ja selle alamkataloogid. Kuid kui me seda kataloogi uurime, siis leiame sealt mitu faili, mis asuvad /etc/syslog.conf ei mainitud. Vaatame nende eesmärki. Ja alustame failiga dmesg.

    Esiteks tuleb mainida, et Linuxil on sama nimega käsk. Kui võrrelda selle käsu väljundit (kui seda käivitatakse ilma parameetriteta) faili sisuga / var / log / dmesg, leiad, et need on väga sarnased, ehkki mitte identsed (juhi väljund faili dmesg2 ja faile võrrelda dmesg ja dmesg2). Täpsemalt failist / var / log / dmesgüks ühele langeb kokku väljundi algusega, mille me käsuga saame dmesg... Nagu kernelist tuleneb, on olemas ringpuhver, kuhu kirjutatakse kerneli logideemoni sõnumid. Need kirjad, mis laadimisprotsessi ajal sellesse puhvrisse kirjutatakse ja moodustavad faili sisu / var / log / dmesg... Ilmselt genereeritakse see fail süsteemi alglaadimise lõpus.

    Kui vaatate ülaltoodud faililoendit uuesti /etc/syslog.conf siis näete, et kõik selle kategooria postitused kern väljastatakse ka konsoolile. Aga seal jooksevad need kiiresti üle ekraani ja vaevalt ei jää aega neid lugeda ja aru saada. Kuid need salvestatakse faili / var / log / dmesg ja on seega saadaval rahulikuks mõistmiseks (kui allalaadimisprotsess on edukalt lõppenud). Pärast alglaadimisprotsessi lõppu jätkub teadete kirjutamine kernelist ringikujulisse puhvrisse. Kui käsk täidetakse dmesg, kuvatakse puhvri praegune olek. Seetõttu sisaldab selle käsu väljund rohkem sõnumeid kui fail / var / log / dmesg: selle käsu väljundis näete ka teateid, mille kernel väljastab pärast alglaadimisprotsessi lõppu.

    Kõik sõnumid saatjalt / var / log / dmesg leiate failist / var / log / sõnumid, ainult seal vahelduvad need teiste programmide sõnumitega. On ainult üks oluline erinevus: failis dmesg kirja aeg ja allikas (hostinimi ja sõnumi kategooria) ei ole määratud. Host on siin alati "kohalik" ja loenduse alguse määrab arvuti viimane taaskäivitamine.

    Lastlog-, wtmp- ja utmp-failid

    Peale faili dmesg kataloogis / var / log / seal on veel kaks faili, mida pole mainitud /etc/syslog.conf, kuid on otseselt seotud logimisega – need on failid lastlog ja wtmp... Kuid nende vaatamine on sama, mis me vaatasime faili / var / log / sõnumid pole mõtet - te ei saa millestki aru. Fakt on see, et nendes failides sisalduv teave salvestatakse spetsiaalses vormingus ja seda tuleb vaadata spetsiaalsete tarkvaratööriistade abil. Kuid kõigepealt tuleb öelda paar sõna nende failide eesmärgi kohta.

    Fail lastlog salvestab teabe viimase süsteemi sisse logitud kasutaja kohta. Ma ei tea, kas märkasite, et kasutajanime ja parooli sisestamisel ilmub ekraanile järgmine teade:

    Localhosti sisselogimine: kos Parool: Viimane sisselogimine: kolmapäev okt 9 19:25:53 tty1-s Need kolm rida genereerib utiliit Logi sisse, mis pärast kasutajal sisselogimisõiguse kindlakstegemist pääseb failile juurde / var / log / lastlog, hangib sealt infot eelmise eduka kasutaja sisselogimise kohta, prindib selle ekraanile ja värskendab seejärel faili kirjet lastlog... Saate selle teate sulgeda, luues oma kodukataloogis tühja .hushlogin-faili. Seda ei soovita siiski teha, pigem, vastupidi, peaksite pöörama erilist tähelepanu selle sõnumi sisule, et mitte jätta märkamata juhtumeid, kui keegi teine ​​teie nime all süsteemi sisenes.

    Erinevalt failist / var / log / lastlog mis sisaldab selle aja ülestähendusi viimane iga kasutaja sisselogimine failis / var / log / wtmp on meeles kõik kasutajate sisse- ja väljalogimisi alates selle faili loomisest. Nagu failis lastlog, sissekanded / var / log / wtmp on tehtud erivormingus, nii et neid saab vaadata ainult spetsiaalsete käskude abil. Kuid enne nendest käskudest rääkimist oletame, et on veel üks fail, mis sisaldab kandeid kasutaja logimise kohta – see on fail / var / run / utmp... See fail sisaldab teavet selle kohta, milline kasutaja on praegu süsteemi sisse logitud.

    Nüüd saate rääkida, kuidas vaadata teavet praegu süsteemis töötavate või varem töötavate kasutajate kohta. Selle peamine käsk on käsk viimane... See väljastab failist kõik kirjed / var / log / wtmp, lisaks näidatakse ära kasutajanimi, märge terminalist, kust kasutaja töötas, kasutaja süsteemi sisenemise ja väljalogimise aeg, samuti kasutaja seansi kestus süsteemis. Kui kasutaja töö katkes ainult süsteemi seiskamise tõttu, kasutatakse kasutaja väljumisaja asemel sõna "maha" (nende ridade abil saab hõlpsasti määrata süsteemi seiskamisaja). Taaskäivitamise aeg kuvatakse eraldi ridadel, mis algavad sõnaga "reboot".

    Meeskond lastb nagu meeskond viimane kuid kuvab teavet kasutaja ebaõnnestunud sisselogimiskatsete kohta. Siiski tuleb märkida, et see käsk töötab ainult siis, kui fail on olemas. / var / log / btmp... Ükski siin käsitletud programm ei loo aga logifaile, nii et kui mõni neist kustutatakse, siis salvestamine lõpeb.

    Meeskond lastlog vormindab ja väljastab faili sisu / var / log / lastlog... Väljad on kasutajanimi, terminali nimi, kust kasutaja sisse logis, ja viimase süsteemi sisselogimise aeg. Vaikimisi (kui käsk sisestatakse ilma parameetriteta) failielemendid / var / log / lastlog kuvatakse kasutaja ID numbrite järjekorras. Kui määrate parameetri -u login-name, kuvatakse ainult teave määratud kasutaja viimase sisselogimise aja kohta. Määrates parameetri -t days, saate ainult viimaste päevade kirjed. Kui kasutaja pole üldse süsteemi sisse loginud, siis terminali nime ja viimase sisselogimise aja asemel näidatakse stringi "** Pole kunagi sisse logitud **".

    Käsu täitmisel lastlog aeglases arvutis võib mõnel juhul tunduda, et käsk on kinni jäänud. See juhtub seetõttu, et isegi kui süsteemis on failis registreeritud ainult kaks kasutajat (juur ja kasutaja). / var / log / lastlog ruumi on veel võimalikult paljudele kasutajatele, kes saavad süsteemi kallal töötada. Seega failis / var / log / lastlog süsteemi sisse logitud kasutajate ID-numbrite vahel võivad olla suured lüngad. Kuna selliste intervallide vaatamisel ei kuvata programm ekraanil teavet ja tekib "külmumise" mulje.

    Teabe kuvamiseks selle kohta, kes parajasti süsteemis töötavad, kasutage käske w, WHO ja kasutajad... Meeskond kasutajad seda kasutatakse siis, kui tahad vaid teada, kes kasutajatest parasjagu süsteemis töötab, aga ei huvita, millisest terminalist ta ühenduse võttis ja millega tegeleb. Kui soovite teada, kes millisest terminalist sisse logis, kasutage käsku WHO... See käsk väljastab failist teabe / var / run / utmp... Saate panna selle failist andmeid väljastama / var / log / wtmp(või mõni muu fail, mille jaoks see on mõistlik), kui määrate käsureal selle faili nime. Kuid väljundis näete ikkagi ainult kasutajanime, viidet terminalile, kust kasutaja sisse logis, sisselogimisaega ja kaugarvutist sisselogimisel selle arvuti nime.

    Käsk kuvab oluliselt rohkem teavet w... Selle väljundis näete praegust kellaaega, kui kaua süsteem on töötanud, kui palju kasutajaid hetkel süsteemis töötab ning süsteemi keskmist koormust viimase minuti, 5 ja 15 minuti jooksul. Seejärel prindib see iga kasutaja jaoks:

  • kasutajanimi,
  • terminali nimi,
  • kaughosti nimi
  • sisselogimisest möödunud aeg,
  • aeg, mille jooksul seda terminali ei kasutata (jõudeaeg),
  • kõigi sellest terminalist käivitatud protsesside koguaeg (JCPU graafik),
  • aeg, mille jooksul töötab viimane kasutaja käivitatud protsess (PCPU graafik),
  • teave selle kohta, millist programmi kasutaja parasjagu käivitab (käsurea kujul kõigi parameetritega käsu käivitamiseks).

    Nagu juba mainitud, käsk w väljastab faili salvestatud teabe utmp... Muide, giid mees sätestab, et tavakasutajatele tuleks keelata failile kirjutamisõigus utmp kuna paljud süsteemiprogrammid(mingil seletamatul põhjusel) sõltuvad selle terviklikkusest. Kui lubate mis tahes kasutajal utmp-faili kirjutada, võite süsteemi statistikafailid segamini ajada ja süsteemifailides muudatusi teha.

    Teiste programmide logifailid

    Lisaks juba kirjeldatud failidele on ka teisi protokollifaile, mis on loodud eraldi programmide abil. Kõige tüüpilisemad näited on deemonite protokollid. samba, ftpd või httpd mida hoitakse eraldi failides. Mõned neist programmidest loovad oma protokollid kataloogi alamkataloogides / var / log / teised hoiavad protokolle mujal. Ja nende failide struktuur võib oluliselt erineda süsteemi loodud failide struktuurist. syslog... Näiteks annan paar rida serveri logist Apache töötab minu arvutis: 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 / 2002 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 28" : // linux / ve / paberid / uus / lo g / protok_lovim.htm "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /img/title.gif HTTP / 1.1 "404 281" http: //linux/ve/papers/new/log/protok_lovim.htm "" Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "Nagu näete, erineb selle logifaili struktuur oluliselt sellest, mida nägime süsteemilogides.

    Samba server loob lisaks põhiserveri tööprotokollile alamkataloogis / var / log / samba mitu logifaili erinevatel juhtudel, eelkõige eraldi failid iga kasutaja jaoks, kellel on lubatud kasutada selle serveri pakutavaid ressursse. Ühest sellisest failist on võetud järgmised kaks kirjet:

    Smbd / service.c: make_connection (550) linux (192.168.36.10) ühenduse loomine avaliku teenusega kasutajana kos (uid = 500, gid = 500) (pid 1366) smbd / service.c: close_cnum (550) linux (192.168). 36.10) suletud ühendus teenuse avalikuga Need näited näitavad, et kui oskate natuke inglise keeles lugeda ja mõistate kirjete struktuuri, saate logifailidest palju kasulikku teavet välja võtta. Ainult see tuleb eraldada tervetest "jääkkivi" ladestustest - tohututest järjestikustest logifailidest, mis on mittetriviaalne ülesanne. Seetõttu töötati välja spetsiaalsed tarkvaratööriistad protokollide analüüsiks.

    Tööriistad protokollide töötlemiseks

    Protokolli analüüsimiseks on välja töötatud palju erinevaid programme ja skripte. Ma piiran ennast lühikirjeldus kaks sellist vahendit: logikell ja näidis.

    logikell on Perli skript, mis sisaldub Red Hat Linuxi standarddistributsioonis. Just selle artikli ettevalmistamise ajal avaldati arendaja veebisaidil selle programmi versioon 4.1 (ja ta on Kirk Bauer).

    Selle programmi põhiidee seisneb selles, et logifail lastakse läbi filtri, mis eraldab logist kõik read (st sõnumid), mis vastavad antud kriteeriumile. Tulemused saadetakse e-posti teel määratud kasutajale (vaikimisi on root). Filtreid saab kirjutada mis tahes programmeerimiskeeles, kuid paketi autor eelistab Perli. Filtrid tuleks kirjutada nii, et nad loevad andmeid stdinist ja väljastavad tulemuse stdout-i.

    Peamine kasutusviis logikell koosneb lingi lisamisest põhiskriptile ( /etc/log.d/scripts/logwatch.pl) kataloogi /etc/cron.daily, mis põhjustab igapäevase täitmise logikell vaikeparameetritega. Lingile antakse nimi, mis algab tähega "00" (nt 00-logwatch), et skript jookseks enne logrotate.

    Kuid saate skripti käivitada ka käsurealt. Muidugi, kui te infoväljundi parameetrit ei muutnud, tuleks selle töö tulemust otsida superkasutaja postkastist. Kui soovite neid tulemusi ekraanil näha, peate määrama käsurea parameetri -- printida- väljastada stdoutile aruanne.

    Üldine skripti käivitamise vorming:

    /etc/log.d/scripts/logwatch.pl [--detail tasemel ] [--logifail rühma-logid ] [--teenus teenuse nimi ] [--print] [--mailto aadress ] [--salvesta Faili nimi ] [--arhiivid] [--vahemik kuupäev-intervall ]

    Vaikeparameetrid salvestatakse faili /etc/log.d/logwatch.conf, mille kommentaarid võimaldavad mõista käsurea parameetrite tähendust:

    • LogDir - kataloog, mille suhtes failinimesid käsitletakse;
    • MailTo – kellele aruanne saata;
    • Prindi - selle asemel, et saata aruanne posti teel, väljastage see ettevõttele stdout;
    • Salvesta – aruande posti teel saatmise asemel salvesta see määratud faili;
    • Arhiivid - ei töötle mitte ainult logide praeguseid versioone, vaid ka logrotate'i loodud vanu koopiaid;
    • Vahemik – töötle määratud ajavahemikku: Kõik, Täna, Eile (eilne kalendripäev);
    • Detail – aruande detailsuse tase: 0 kuni 10 või Madal, Keskmine, Kõrge;
    • Teenus – kõik või filtri nimi /etc/log.d/scripts/services/ (saab määrata mitu filtrit);
    • LogFile – kõik või logirühma nimi (saab määrata mitu rühma).

    Lisateave skripti kohta logikell leiate sisse.

    Selles artiklis kirjeldatakse teist Mandrake Linuxi distributsiooniga kaasas olevat logifailide töötlemise skripti. Seda skripti nimetatakse näidis("Simple WATCHer") ja on kirjutatud ka Perlis.

    Töö juhtimine näidis tehakse vaikimisi ühe konfiguratsioonifaili abil $ KODU / .swatchrc... See fail sisaldab näidisteksti (regulaaravaldise kujul), mis näidis otsib logifailidest. Igale sellisele mustrile järgneb tegevus, mis näidis peaks võtma, kui see leiab mustriga sobiva teksti.

    Näiteks võite soovida saada hoiatuse iga kord, kui proovite puhvri ületäitumise rünnakut oma veebiserverile väga pika failinime eest. Ja teate, et sellistel juhtudel logifailis /var/apache/error.log ilmub teade sõnadega "Faili nimi liiga pikk". Sel juhul teie faili .swatchrc tuleb lisada järgmine märkus:

    Watchfor / Faili nimi liiga pikk / post [e-postiga kaitstud], subjekt = BufferOverflow_attempt

    Programmi täpsemat kirjeldust ma siinkohal ei anna. näidis... Talle on pühendatud entusiastlik artikkel ja programmi enda leiate veebisaidilt. Tahaksin vaid märkida, ja näidis, ja logikell rakendab protokollifailide töötlemiseks üsna primitiivset algoritmi, mis taandub protokollist antud märgistringi (signatuuri) otsimisele. Samal ajal esiteks ei viita sellise joone olemasolu sageli veel sissetungijale ja teiseks võib pädev ründaja hoolitseda selle eest, et nende tegevuse jäljed kustutada. Veel üks läbivaadatud toodete ilmne puudus on see, et need töötavad "viivitatud režiimis", kuna need tuuakse turule ainult ajakava järgi. Ja võitlus sissetungijate vastu tuleb läbi viia "reaalajas", reageerides kohe süsteemi tungimise katsetele. Seetõttu pakuvad kaubanduslikud tooted seiresüsteeme, mis töötavad pidevalt ja rakendavad protokollide analüüsimiseks "intelligentseid" algoritme. Need algoritmid põhinevad sõnumivoo statistilisel analüüsil ja süsteemi statistiliselt oluliste kõrvalekallete tuvastamisel tavapärasest käitumisest.

    Selle jaotise lõpetuseks tahaksin märkida, et veebisait SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) sisaldab linkide loendit erinevate protokollide töötlemise tarkvaratööriistade saitidele. koos nende tööriistade lühikirjeldusega. Saate katsetada erinevaid programme ja valida endale sobiva.

    Pöörlevad logifailid

    Muidugi mõistate, et kui süsteemi kasutatakse palju, kasvavad logifailid kiiresti. Mis toob kaasa kettaruumi raiskamise. Ja tekibki protokollide "taltsutamise" probleem. Red Hat Linux lahendab selle probleemi skriptidega. logroteerida mis asub kataloogis /etc/cron.daily, ja seetõttu käivitab selle deemon cron iga päev. See skript võimaldab teil töödelda rohkem kui lihtsalt süsteemiloge syslog, aga ka mis tahes muud programmid.

    Skript logroteerida jälgib logifailide kasvu ja pakub nende failide nn rotatsiooni, kui need on ületanud määratud suuruse (või pärast määratud ajaintervalli möödumist). Pööramine pole midagi muud kui arhiivifailide eelmiste versioonide järjestikune kopeerimine, umbes selline:

  • teated.2 -> teated.3
  • teated.1 -> teated.2
  • teated.0 -> teated.1
  • sõnumid -> sõnumid.0
    ja uue sõnumifaili loomine järgmiste sõnumite salvestamiseks.

    Skripti poolt töödeldavate failide loend logroteerida ja selle töötlemise parameetrid määravad konfiguratsioonifailid, mida võib olla mitu. Konfiguratsioonifailide nimed määratakse skripti käivitamise käsureal (käivitusparameetrid leiate altpoolt). Red Hat Linuxis vaikekonfiguratsioonifailid logroteerida kasutatud faili /etc/logrotate.conf, mis võib välja näha umbes selline:

    Iganädalane pööramine 4 loomine tihendus sisaldab /etc/logrotate.d / var / log / wtmp / var / log / lastlog (igakuine loomine 0664 root utmp rotate 1)

    See fail on nagu iga skripti konfiguratsioonifail. logroteerida koosneb mitmest sektsioonist. Esimeses jaotises määratletakse globaalsed parameetrid (üks rea kohta), mis määravad kõigi logide vaikeparameetrid. Järgmistes jaotistes määratletakse logifailide seeria kohalikud parameetrid. Nende failide nimed on loetletud jaotise esimesel real ja seejärel määratakse lokkis sulgudes kohalikud parameetrid, mis toimivad ainult määratud failide töötlemisel (samuti üks parameeter rea kohta). Logifailide nimesid saab tsiteerida shellireeglitega, kui need sisaldavad tühikuid või muid erimärke. Saate määrata mitu failinime või failinimemustrit, mis on eraldatud tühikutega (mustrid järgivad ka kest). Iga jaotise töötlemist käsitletakse ühe toiminguna. #-märgiga algavad read on kommentaarid. Kohalikud parameetrid on globaalsete parameetrite ees ülimuslikud.

    Antud konfiguratsioonifaili näites kirjeldatakse esmalt globaalseid parameetreid ja seejärel eraldi jaotises failide / var / log / wtmp ja / var / log / lastlog töötlemise parameetreid. Lisaks antakse globaalsete parameetrite hulgas link kataloogile /etc/logrotate.d, kuhu iga pakett kirjutab oma logide jaoks kohalikud parameetrid.

    Globaalsete parameetrite jaotises määratakse kõigepealt üks järgmistest parameetritest, mis määravad faili pööramise kriteeriumi:

  • iga päev- sarja versioonide vahetus toimub iga päev,
  • iganädalane- versioonivahetus toimub kord nädalas,
  • igakuine- versioonivahetus toimub iga kuu,
  • suurus bait - versioonivahetus toimub, kui logi suurus on ületanud määratud baitide arvu; võite kasutada järelliiteid "k" - kilobaidid - ja "M" - megabaidid)

  • ja parameeter sisaldama millele järgneb mõne muu (täiendava) konfiguratsioonifaili nimi või isegi kataloogi nimi. Viimasel juhul loetakse skripti konfiguratsioonifailideks kõik määratud kataloogis olevad failid, välja arvatud alamkataloogid, erifailid ja failid, millel on välistuste loendist sufiksid. logroteerida(direktiiv sisaldama ei saa kasutada jaotises, mis määrab failirühma töötlemise parameetrid).

    Parameeter pöörata number võib leida nii globaalsete kui ka kohalike parameetrite hulgast ja määrab, kui palju vanu versioone tuleks alles jätta; kui number on 0, siis protokolli arhiveeritud versioone ei looda.

    Kui parameeter on määratud suruma kokku siis vanad versioonid tihendatakse gzipi abil ja kui see on määratud mittekompress- need ei kahane. Parameeter tihenda cmd võimaldab määrata, millist tihendusprogrammi kasutatakse (vaikimisi gzip) ja lahti pakkidacmd määrab lahtipakkimisprogrammi (vaikimisi ungzip). kompressioonid määrab tihendusprogrammi parameetrid; vaikimisi on "-9", st. maksimaalne pakkimine gzipi jaoks. Parameetri kasutamine tihendada saate muuta tihendatud failide järelliidet ja parameetrit pikendamine järelliide määrab pööramise ajal failinimedele lisatava sufiksi (enne tihendamise järelliidet).

    Konfiguratsioonifailides leiduvate märksõnade hulgas on sõnad järelpööramine ja eelroteerida mis toimivad avatud sulgudena shelliskriptide lisamiseks konfiguratsioonifailidesse. Kõik konfiguratsioonifaili read reast järelpööramine joonele lõpukiri käivitatakse shellikäskudena pärast logifaili versiooni muutmise protsessi. Vastavalt sellele kõik read realt eelroteerida joonele lõpukiri käivitatakse enne logifailide pööramist. Nende skriptide abil saate korraldada erinevaid protseduure logifailide töötlemiseks pööramise ajal.

    Teiste konfiguratsioonifaili parameetrite abil saate logifailide juurdepääsuõigused alistada (kui seda parameetrit pole määratud, kasutatakse vana logifaili atribuute); märkige, kellele saata teateid logisüsteemi töös esinevate vigade kohta; saadama määratud kasutajale logi arhiivikoopia; määrake kataloog kuhu protokollid versiooni muutmise ajal teisaldatakse (kataloog peab asuma samas füüsiline seade as / var / log) või määrake kataloogi välistavate järelliidete loend sisaldama... Nende funktsioonide ja parameetrite (nagu ka mainimata) üksikasjaliku kirjelduse leiate käsu alt mees logrotate.

    Nagu juba mainitud, täiendavad konfiguratsioonifailid logroteerida saab määrata skripti käivitamise käsureal. Konfiguratsioonifailide või kataloogide jaoks saate määrata suvalise arvu nimesid. Failide ja kataloogide nimed selles loendis eraldatakse lihtsalt tühikutega. Nimede järjekord loendis on oluline, kuna järgmises konfiguratsioonifailis määratud parameetrid alistavad loendis määratud parameetrite väärtused. eelmine fail... Failide järjekord konfiguratsioonikataloogis on määramata.

    Lisaks saab käivitamise käsureal määrata järgmised parameetrid:

    • -d- silumisrežiim, tegelikke muudatusi ei tehta,
    • -f- teha muudatusi isegi siis, kui logroteerida ei näe vajadust - seda kasutatakse, kui töödeldud logide loendis on muudatusi,
    • mees logikell
    • Mick Bauer, "Paranoiline pingviin: näidis: automatiseeritud logide jälgimine valvsatele, kuid laiskadele"
    • RFC 3164. C. Lonvick, The BSD Syslog Protocol, august 2001.
    • RFC 3195. D. New, M. Rose, Reliable Delivery for syslog, november 2001.
    • Per. S.Lapshansky, "Deemon jälgib süsteemi"
    • Deniss Kolisnitšenko,

    Syslogi protokoll ja tugitarkvara tagavad sündmuste info kirjutamise süsteemilogi (logid, süsteemikonsool), samuti edastatakse üle võrgu logiserverisse, sorteeritakse ja töödeldakse olenevalt sõnumite allikast ja raskusastmest. Selles artiklis kirjeldatakse syslogi protokolli, selle rakendamist Solarises ja Linuxis (syslogd), Cisco IOS-is ja abitööriistu: logrotate, logwatch.

    Süsteemi komponendid on sõnumigeneraator (seade või protsess), vahetusprotokoll, sõnumite koguja (koguja, syslogi server), releed (releed, võtab vastu sõnumeid ühelt või mitmelt generaatorilt ja edastab ühele või mitmele kogujale või järgmistele releedele). Generaator (ehk edastuse ajal relee) ei tea, kas vastuvõtja on relee või kollektor, ta võib edastada ühe sõnumi mitmele vastuvõtjale, ta suudab sõnumit ise töödelda (näiteks faili kirjutades).

    Syslogi protokoll ei paku mingit kaitset sõnumite võltsimise eest. Veel hullem UDP-protokolli kasutamine võimaldab ründajatel saata sõnumeid mis tahes hosti nimel. Kohalik võrk peab olema kaitstud ekraaniga (IOS ACL, ipchains) võltsitud kohalike aadressidega pakettide vastuvõtmise eest (kuigi see ei takista võltssõnumite saatmist kohaliku võrgu seest) ja pakettide vastuvõtmise eest väljastpoolt pordi 514 / udp kaudu. On teada ketta ületäitumise juhtumeid valeteadetega.

    Syslogi protokoll ja UDP ei taga garanteeritud kohaletoimetamist (sõnumid võivad kaduda võrgu ülekoormuse või pealtkuulamise ajal, rikutud sõnumid kustutatakse ilma hoiatuseta), õiget tarnejärjestust (teade protsessi lõpu kohta võib tulla enne sõnumit selle alguse kohta) , prioriteetne kohaletoimetamine.

    Sõnumeid ei hoita konfidentsiaalsena, kuna need edastatakse selge tekstina.

    Kui teate generaatori seadistamisel määrate kollektori või relee vale aadressi, siis veateateid ei tule - teated kustutatakse (või kirjutatakse kellegi teise logisse;).

    Valesti konfigureeritud releede teadete edastamise silmuse eest kaitsmise vahendeid ei pakuta.

    RFC 3195 pakub välja uue protokolli üle TCP (syslog-conn, 601), et tagada õiges järjestuses edastamine. Teostus pole mulle teada. Koletu segu XML-ist, SMTP-stiilis käskudest ja tagastuskoodidest ning MIME-päistest (BEEP), mis on pakitud tavalistesse syslogi sõnumitesse. Kasutatakse kahte režiimi – RAW (praeguse UDP-protokolli analoog) ja COOKED (sõnumid on struktureeritud väljade kaupa). BEEP võimaldab autentimist, terviklikkust ja konfidentsiaalsust (SASL, TLS).

    Syslog-sign RFC pakub välja autentimise, järjestamise, sõnumite terviklikkuse ja puuduvate sõnumite tuvastamise, genereerides spetsiaalseid sõnumeid, mis sisaldavad eelmiste sõnumite ploki digitaalset allkirja, säilitades samal ajal standardse syslogi protokolli ja vormingu ning kasutades UDP-d. Kasutab SHA1, OpenPGP DSA.

    Porti 514 / UDP kasutatakse sõnumite vastuvõtmiseks. Sõnumite saatmiseks on soovitatav kasutada ka lähteporti 514. Sõnum on tekstistring ja ei tohi olla pikem kui 1024 baiti, vastasel juhul on lubatud seda kärpida või isegi ära visata. Isegi porti 514 saadetud valesti vormindatud teadet tuleks pidada syslogi sõnumiks. Kui aga relee edastab sõnumit edasi, siis peab ta sellele lisama standardsed päised (samal ajal, võib-olla ka 1024 baidiseks lõigates) - KASUTAJA, MÄRKUS, selle kohalik aeg ja sõnumi allika lihtne nimi.

    Sõnum algab PRI-väljaga, mis kodeeris sõnumi rajatise ja raskusastme. Sellele järgneb aeg (TIMESTAMP), ruum, hostinimi või IP-aadress kümnendsüsteemis (HOSTNAME), tühik, suvaline sõnumi tekst (MSG) US-ASCII-s (0x20 - 0x7e).

    Hostinimi (lihtne, mitte FQDN!) Kirjutatakse sõnumigeneraatorile teadaolevana. Kui seadmel on mitu erineva IP-aadressiga liidest, siis saab hostinime või aadressina kasutada ükskõik millist neist.

    Sõnumi tekst (MSG) sisaldab tavaliselt silti (TAG), mis identifitseerib sõnumi väljastanud programmi või protsessi ja sõnumi sisu (CONTENT). Silt võib sisaldada ladina tähti ja numbreid. Sõnumi keha algust tuvastab esimene erimärk, tavaliselt koolon või avanev nurksulg. Näiteks Cisco IOS kasutab sildina järjestikust sõnuminumbrit, millele järgneb koolon, ja Unix kasutab lihtsat programminime (teate sisu algab protsessinumbriga nurksulgudes ja kooloniga).

    syslogd võtab vastu sõnumeid pordist 514 / UDP ja kohalikest allikatest (socket / dev / log), suunab need sõltuvalt sõnumite allikast ja raskusastmest. Võimaldab väljastada sõnumeid logisse, väljastada konsooli, terminali, saata teise serverisse. Kasutusele võetakse täiendav allikatüüp MARK (tavalised märgid, info)

    Logi iga rida sisaldab ühte sõnumikirjet, mis koosneb tühikutega eraldatud väljadest:

    • kuupäev standardses tekstivormingus (TIMESTAMP väli syslogi sõnumist)
    • hostinimi (fqdn või stenogramm, väli HOSTNAME syslogi sõnumist)
    • sõnumi tekst (süsteemilogi sõnumi väljad TAG ja SISU)

    Käivitamise parameetrid:

    • -a lisakuulamispesa (kasulik chrootiga deemonitele; neid võib olla mitu)
    • -d(silumisrežiim)
    • -f konfiguratsioonifaili nimi (vaikimisi, /etc/syslog.conf)
    • -h(muuda tavapärast käitumist, mille kohaselt kaughostidelt saadud sõnumeid ei edastata kaughostile kirjutamiseks, et vältida silmuseid)
    • -l host-loend (loend hostidest, mille nimesid ei tohiks kirjutada FQDN-idena; eraldatud koolonitega)
    • -m minutit (tavaliste ajutiste salvestuste intervall; vaikimisi - 20; kui 0, siis ärge tehke üldse)
    • -n
    • -lk kuulamispesa (vaikimisi: / dev / log)
    • -r(võimaldab vastu võtta sõnumeid kaughostidelt; tulemüür peaks olema veidi avatud; syslog for 514 / udp tuleks määratleda / etc / services)
    • -s domeenide loend (eemaldage määratud domeenide nimed hostinimedest; eraldage koolonitega; vaikimisi kärbitakse domeen, mis ühtib syslogi serveri domeeniga)
    • -v
    • -x(keelavad hostinime määramise selle aadressi järgi, väldivad ummikseisu DNS-serveriga samas hostis töötades)

    Kasutatud failid:

    • /etc/syslog.conf- konfiguratsioonifail (muudetud käivitamisel parameetri järgi -f)
    • / dev / log- pesa, millest loetakse kohalikke sõnumeid (muutub käivitamisel parameetri järgi -lk)
    • /var/run/syslogd.pid- protsessi ID

    Reaktsioon signaalidele:

    • SIGHUP – taasinitsialiseerimine (sulgeb kõik failid, loeb konfiguratsioonifaili uuesti)
    • SIGTERM – seiskamine
    • SIGINT, SIGQUIT – väljuge, kui silumine on keelatud
    • SIGUSR1 - lubage / keelake silumine (ainult lüliti -d kasutamisel)

    Käitab rootina. Ei muuda faili õigusi. Kui ta on sunnitud faili looma, teeb ta seda õigustega 644. Kui on vaja logile juurdepääsu piirata, tuleb vastav fail käsitsi luua (või õigusi muuta). Tekitab erilisi probleeme logroteerida.

    See on sõnumite suunamise reeglite kogum. Iga reegel koosneb valijast ja toimingust, mis on eraldatud sakkide (vanemates süsteemides Solaris 5) või tühikutega (Linux). Pärast logisse kirjutatava sõnumi saamist (klogd-st, kohalikust või kaugprogrammist) kontrollib syslogd iga reegli puhul, kas teade vastab valija määratud mustrile. Vajadusel sooritatakse reeglis määratud toiming. Ühe sõnumi jaoks m. sooritatud on suvaline arv toiminguid (st sõnumite töötlemine ei peatu esimese õnnestumise korral).

    Valijal on kaks punktiga eraldatud osa: sõnumi allikas ja raskusaste. Suur- ja väiketähed on samad. Võite kasutada ka numbreid (vt /usr/include/syslog.h). Lisaks syslog.3-s määratletud allikatele saate määrata mark(tavalised ajatemplid) turvalisus(aegunud sünonüüm sõnale aut). Lisaks failis syslog.h määratletud raskusastmetele saate kasutada hoiatama(sünonüüm hoiatus), viga(sünonüüm eks), paanika(sünonüüm esile kerkima). Teateid, mille tase on valijas määratuga võrdne või kõrgem ja mille allikas on valijas määratuga võrdne, loetakse kehtivaks. Tärn enne punkti vastab mis tahes allikale, pärast punkti - mis tahes tasemele. Sõna mitte ühtegi pärast punkti - antud allika jaoks puudub tase. Ühes valijas saate määrata mitu allikat (eraldatuna komadega). Ühel real saab määrata mitu valijat. Semantika pole selge: kui kasutada positiivseid selektoreid, siis loogilist VÕI kui negatiivne ( mitte ühtegi ja hüüumärk), siis loogiline JA.

    Uues syslogdis (linux) saab tasemele eelneda võrdusmärk – valijaga sobivad ainult määratud (kuid mitte kõrgeima) tasemega sõnumid; hüüumärk – sõnumid, mille tase on võrdne või suurem, ei ühti; hüüumärk ja võrdne ei vasta sõnumitele, mille tase on võrdne määratud tasemega.

    Toiminguna saate määrata:

    • tavaline failinimi (täielik tee juurest), miinus nime ees keelab kirje sünkroonimise
    • nimega kanalid - fifo (nime ette pannakse vertikaalne joon), kanal ise peaks olema loodud enne syslogd käivitamist käsuga mkfifo
    • terminal või konsool
    • @hostinimi (teadete edastamine kauglogimiseks)
    • kasutajate loend (eraldatuna komadega), kelle terminalidesse sõnum saadetakse
    • tärn sõnumi saatmiseks kõigile terminalidele (seinale)

    Konfiguratsioonifaili sõelumisel syslogd võrdleb aadressi loghost(määratletud failis / etc / hosts, mitte DNS-i kaudu) teie arvuti aadressiga ja kui see ühtib, määrab muutuja LONGOST... Seejärel juhitakse fail syslog.conf läbi m4 (1) makroprotsessori. Põhimõtteliselt kasutatakse seda selleks, et sama konfiguratsioonifaili saaks kasutada kliendi ja serveri (süslogi vaatepunktist) hostides.

    Käivitamise ja peatamise protseduur: /etc/init.d/syslog(lingid sellele /etc/rc?.d kataloogidest). Protsessi number on salvestatud /etc/syslog.pid.

    klogd loeb kerneli sõnumeid (kas / proc / kmsg või süsteemikutsete kaudu), määrab taseme, tõlgib käskude aadressid programmide nimedeks ja saadab sõnumi syslogd-ile.

    Käivitamise parameetrid:

    • -c tase(selle taseme ja vähem tõsised sõnumid saadetakse syslogi ja tõsisemad väljastatakse konsooli; vaikimisi - 7; 0 ei saa määrata)
    • -d(silumisrežiim)
    • -f Faili nimi (logige syslogi asemel määratud faili)
    • -i(laadige uuesti mooduli sümbolid juba töötavas klogdis, tuleb kasutada iga kord, kui moodul laaditakse või maha laaditakse; loodetavasti teevad insmod, rmmod ja modprobe praegused versioonid seda ise)
    • - Mina(laadige uuesti kerneli ja mooduli sümbolid juba töötavas klogdis)
    • -k Faili nimi (kasutage määratud faili kerneli sümbolite tabelina /boot/System.map)
    • -n(ärge minge taustale; käivitamiseks on vajalik initist)
    • -o(ühekordne režiim – logi kõik kerneli puhvrisse kogunenud sõnumid ja välju)
    • -lk(igaks juhuks laadige aadressi tõlkimise ajal uuesti mooduli sümbolite tabel - kernel ei pruugi seda teha)
    • -s(kasutage ainult süsteemikõnesid ja ärge minge algsete sõnumite saamiseks aadressile / proc / kmsg)
    • -v(näita versiooni ja lõpeta)
    • -x(ärge teisendage aadresse nimedeks)
    • -2 (kerneli krahhi teated – oi! – väljastatakse kaks korda: enne aadresside teisendamist nimedeks – ksymoopsi puhul – ja pärast)

    Kerneli sõnumite tasemed (määratakse nurksulgudes oleva arvu järgi ja teisendatakse syslogi raskusastmeks, faili väljundis muutmata):

    • KERN_EMERG – 0 (süsteem on kasutuskõlbmatu)
    • KERN_ALERT – 1 (tegevus tuleb võtta viivitamatult)
    • KERN_CRIT – 2 (kriitilised tingimused)
    • KERN_ERR – 3 (veatingimused)
    • KERN_WARNING – 4 (hoiatustingimused)
    • KERN_NOTICE – 5 (tavaline, kuid oluline seisund)
    • KERN_INFO – 6 (teave)
    • KERN_DEBUG – 7 (silumistaseme teated)

    Reaktsioon signaalidele:

    • SIGINT, SIGKILL, SIGTERM ja SIGHUP – seiskamine
    • SIGTSTP – lõpeta logimine
    • SIGCONT – jätka, võib-olla mõne teise valimine
    • sõnumite allikas (/ proc / kmsg või süsteemikõned)
    • SIGUSR1 – moodulite sümbolite uuesti laadimine
    • SIGUSR2 – laadige uuesti kerneli ja mooduli sümbolid

    Protsessi number on salvestatud /var/run/klogd.pid.

    Logimise lähtestamine: avatud logi- näidatakse kõikidele järgnevatele teadetele lisatud standardne eesliide (tavaliselt programmi nimi, protsessi number nurksulgudes ja koolon); allikas ja valikud. closelog- metsaraie lõpetamine. syslog- logimine (määrab stringi allika, tõsiduse ja vormingu nagu printf-is).

    logroteerida(versioon 3.2-1 / 3.3.2-1 / 3.5.9) - Võitlus kasvavate palkide vastu: pööramine (versioonimine), tihendamine, kustutamine ja postitamine. Töötab iga päev croniga ( /etc/cron.daily/logrotate) ja võimaldab töödelda logisid, kui need ületavad määratud suuruse või määratud ajavahemiku järel. Võimaldab töödelda mitte ainult syslogi logisid, vaid ka muid programme. Parameetrid:

    • [-d](silumisrežiim, tegelikke muudatusi ei tehta)
    • [-f](teha muudatusi ka siis, kui logrotate ei näe vajadust – seda kasutatakse töödeldavate logide loendi muutmisel)
    • [-s osariigi failinimi ] (logide praegune olek salvestatakse sellesse faili käitamiste vahel, vaikimisi - /var/lib/logrotate.status)
    • konfiguratsioonifailide nimed (nimed on eraldatud tühikutega; järjekord on oluline; kui on määratud kataloogi nimi, loetakse iga faili konfiguratsioonifailiks; RH kasutab faili /etc/logrotate.conf ja kataloog /etc/logrotate.d)

    Konfiguratsioonifail määratleb globaalsed parameetrid (üks rea kohta), mis määravad kõigi logide vaikeparameetrid. Iga töödeldud logipartii jaoks määratakse kohalikud parameetrid: määratakse põhifailinimi, millele järgneb lokkis sulgudes kohalikud parameetrid, üks rea kohta. Failinime saab tsiteerida shellireeglitega, kui see sisaldab tühikuid või muid erimärke. Saate määrata mitu failinime või failinimemustrit, mis on eraldatud tühikutega (mustrid järgivad ka kest). Iga jaotise töötlemist käsitletakse ühe toiminguna. #-märgiga algavad read on kommentaarid. Järgmises konfiguratsioonifailis määratud parameetrid alistavad eelmises failis määratud parameetrite väärtused. Kohalikud parameetrid on globaalsete parameetrite ees ülimuslikud. Failide järjekord konfiguratsioonikataloogis on määramata.

    Parameetrid:

    • suruma kokku | mittekompress(vanemad versioonid on gzipiga tihendatud või mitte)
    • tihenda cmd(määrab tihendusprogrammi, vaikimisi gzip)
    • lahti pakkidacmd(määrab vaikimisi lahtipakkimisprogrammi - ungzip)
    • tihendada(määrab tihendatud failide järelliite)
    • kompressioonid(määrab tihendusprogrammi parameetrid; vaikimisi on "-9", st maksimaalne tihendus gzipi jaoks)
    • kopeerida | nocopytrumpeerima(tavaliselt nimetatakse vana versioon ümber ja luuakse logi uus versioon; kui see parameeter on määratud logrotate kopeerib logi uude faili ja seejärel kärbib vana; kasutatakse kui logi loov programm ei suuda seda sulgeda; tehtud kirjed kopeerimise ja kärpimise vahel on kadunud; Aga kas sellest on abi, kui logi loov programm lisamisrežiimi asemel lihtsalt sisemise osuti abil faili kirjutab?)
    • loo [ juurdepääsuõigused omanik Grupp] | ei loo(kohe pärast ajakirja vana versiooni ümbernimetamist ja enne helistamist järelpööramine luuakse uus logi määratud atribuutidega - õigused määratakse kaheksandarvuga, nagu chmod.2-s; kui atribuute pole määratud, võetakse need vanast logist)
    • iga päev(seeria versioonivahetus toimub iga päev)
    • viivituskompress | nodelaycompress(mõned programmid ei sulge kohe logi, sellisel juhul tuleks tihendamine järgmise tsüklini edasi lükata)
    • vead meili (kellele veateateid saata)
    • pikendamine järelliide (määrab failinimedele lisatava järelliide, kui pööratakse enne tihendusliidet)
    • kui tühi | teatamata(muuda versioone isegi siis, kui fail on tühi; see on vaikeseade)
    • sisaldama Faili nimi | kataloogi nimi (tekstiliselt asendada fail või kõik failid määratud kataloogist; alamkataloogid, erifailid ja failid, millel on välistuste loendist järelliide, ei sisaldu; ei saa kasutada jaotises)
    • mail aadress | nomail(kui versioonimuudatuse tõttu on vaja vana logi kustutada, siis saata see määratud aadressile)
    • mailfirst(ärge saatke ajakirja kustutatud versiooni, vaid esimest)
    • maillast(saatke logi kustutatud versioon; see on vaikeseade)
    • puudu | nomissingok(ärge saatke veateateid, kui logi puudub)
    • igakuine(versioonivahetus toimub iga kuu)
    • vanadir kataloog | noolddir(versiooni muutmise ajal teisaldatakse logi määratud kataloogi; peaks asuma samas füüsilises seadmes)
    • järelpööramine lõpukiri käivitatakse pärast uuendamist shellikäskudena)
    • eelroteerida(kõik edasised read kuni reani lõpukiri käivitatakse enne uuendusprotsessi)
    • pöörata number (mitu vana versiooni säilitada; kui 0, siis mitte ühtegi)
    • suurus bait (versioonimuutus toimub siis, kui logi suurus on ületanud määratud arvu; võite kasutada järelliiteid "k" - kilobaidid - ja "M" - megabaidid)
    • jagatud skriptid | nosharedscripts(käivita käske eelroteerida ja järelpööramine ainult üks kord kõigi jaotises kirjeldatud failide jaoks)
    • tabuekst [+ ] järelliide-loend (määrates loendi järelliide eranditest sisaldama; kui plussmärk on määratud, siis liitmine, muidu asendamine; vaikeseaded: .rpmorig, .rpmsave, .rpmnew, ", v", .swp ja "~")
    • iganädalane(versioonivahetus toimub kord nädalas)

    Tarnimisel RH /etc/logrotate.conf kirjeldab globaalseid parameetreid ja parameetreid / var / log / wtmp ja / var / log / lastlog jaoks ning viitab kataloogile /etc/logrotate.d, kuhu iga pakett kirjutab oma logide jaoks kohalikud parameetrid.

    logwatch on raamistik programmide (mida nimetatakse filtriteks) kirjutamiseks, et hankida kasulikku teavet paljudest suurtest ja mitmekesistest logidest (mitte ainult syslogist). "Paketis" on mitmeid Red Hat Linuxi jaoks mõeldud filtreid (mingi iidne versioon, kuna xinetd asemel mainitakse inetd), kuid need tuleb teil ise konkreetse olukorraga kohandada. Viimase muudatuse tegi autor 2000. aasta septembris, seega pole vaja edasiarendust oodata.

    Filtreid saab kirjutada mis tahes programmeerimiskeeles, kuid paketi autor eelistab perli. Filtrid tuleks kirjutada nii, et nad loevad andmeid stdinist ja väljastavad tulemuse stdout-i. Enne filtri kutsumist määratakse keskkonnamuutujad: LOGWATCH_DATE_RANGE, LOGWATCH_DETAIL_LEVEL, LOGWATCH_TEMP_DIR, LOGWATCH_DEBUG. Põhiprogramm on kirjutatud ka perlis: /etc/log.d/scripts/logwatch.pl(/etc/log.d/logwatch, / usr / sbin / logwatch ja /etc/cron.daily/00-logwatch on sümboolsed lingid sellele).

    Kataloog /etc/log.d/conf/logfiles/ sisaldab logirühmade konfiguratsioonifaile, kuhu salvestatakse hooldatavate teenuste kirjed. Iga rühma kirjeldatakse eraldi failis grupi nimi.conf, milles on määratud:

    • LogFile = logi sisaldava faili nimi või nimemuster; saab määrata mitu nime või mustrit; nimed m. võrreldes LogDiriga
    • Arhiiv = faili nimi, mis on loodud logi arhiveeritud versiooni logrotate abil või nimetamismuster; saab määrata mitu nime või mustrit; nimed m. võrreldes LogDiriga
    • filtrite nimed ( ainult üks kord, kuigi teist näidatakse!) alates /etc/log.d/scripts/shared/ nagu
      *filtri nimi = parameetrid , näiteks logi filtreerimiseks kuupäeva järgi, kui see on kirjutatud standardses syslogi vormingus, kasutage rida:
      * ApplyStdDate =

    Kataloog /etc/log.d/conf/services/ sisaldab nende teenuste konfiguratsioonifaile, mille logikirjeid logwatch töötleb. Iga teenust kirjeldatakse eraldi failis teenuse nimi.conf, milles on määratud:

    • LogFile = logirühma nimi
    • filtrite nimed /etc/log.d/scripts/shared/ nagu
      *filtri nimi = parameetrid enne hooldusfiltrit
    • $keskkonnamuutuja nimi = tähenduses

    Kataloog /etc/log.d/scripts/logfiles/ sisaldab filtreid logirühmade töötlemiseks: logirühma töötlemisel kõik kataloogis olevad failid /etc/log.d/scripts/logfiles/ grupi nimi kasutatakse filtritena.

    Kataloog /etc/log.d/scripts/services/ sisaldab filtreid konkreetsete teenuste kirjete töötlemiseks.

    Kataloog /etc/log.d/scripts/shared/ sisaldab üldisi filtreid, mida kasutatakse logirühma konfiguratsioonifailides:

    • applystddate - filtreerib logi vajaliku kuupäeva järgi, kui see on kirjutatud syslogi formaadis (siia ja privaatfiltrites kuupäeva järgi sisesta LANG = enne helistamiskuupäeva, vastasel juhul ei kattu Mar kuidagi Mar-iga;)
    • expandrepeat – muudab "viimane korduv sõnum" read vastavaks arvuks eelmise rea sõnumiridadeks
    • onlycontains - jätab ainult need logiread, mis sisaldavad määratud stringi (panin jutumärgid "$ *" ümber)
    • onlyservice - ekstraktib logist syslogi vormingus määratud teenusega seotud read (teenuse nimi edastatakse parameetrina)
    • eemalda - jätab syslogi vormingusse ainult need logiread, mis ei sisalda määratud rida ( Panin jutumärgid "$ *" ümber ja eemaldasin1, eemalda2 jne. kuna ma ei saanud aru, kuidas määrata egrepi jaoks mitu alammustrit ühel real; muide, parameetrid asendatakse kestaga, seega ei saa kasutada ka erimärke)
    • eemalda päised – eemaldage standardväljad (kuupäev, kellaaeg, hostinimi, teenuse silt ja protsessi number)
    • removeservice - ekstraktib logist syslogi vormingus read, mis ei ole seotud määratud teenusega (teenuse nimi edastatakse parameetrina)

    Vaikeparameetrid salvestatakse faili /etc/log.d/conf/logwatch.conf (/etc/log.d/logwatch.conf-l on sellele sümboolne link), mille kommentaarid võimaldavad teil mõista faili tähendust. parameetrid:

    • LogDir – kataloog, mille suhtes failinimesid käsitletakse
    • MailTo – kellele aruanne saata
    • Prindi - selle asemel, et saata aruanne posti teel, väljastage see ettevõttele stdout
    • Salvesta – aruande posti teel saatmise asemel salvestab see selle määratud faili
    • Arhiivid – kasutage logrotate loodud logide versioone
    • Vahemik – arvestatud ajavahemik: kõik, täna, eile (eilne kalendripäev)
    • Detail – aruande detailsuse tase: 0 kuni 10 või Madal, Keskmine, Kõrge
    • Teenus – kõik või filtri nimi /etc/log.d/scripts/services/ (saab määrata mitu filtrit)
    • Logifail – kõik või logirühma nimi (saab määrata mitu rühma)

    Käivitamise parameetrid:

    • -- detail tasemel (aruande üksikasjalikkus: kõrge, keskmine või madal)
    • --logifail rühma-logid (töötlege ainult selle rühma logisid; grupp on konfiguratsioonifailis määratud sümboolse nimega; määrata saab mitu rühma)
    • --teenus teenuse nimi (töötlege ainult neid logide kirjeid, mis on selle teenusega seotud; teenus on konfiguratsioonifailis määratud sümboolse nimega; määrata saab mitu teenust; nimi Kõik kõigi teenuste kõnede kirjete töötlemine)
    • -- printida(teata stdoutile)
    • --mailto aadress (saada aruanne määratud aadressile)
    • -- salvestada Faili nimi (kirjutage aruanne määratud faili)
    • --arhiivid(töötlege mitte ainult logide praeguseid versioone, vaid ka logrotate loodud vanu koopiaid)
    • --vahemik kuupäev-intervall (töötlege ainult neid kirjeid logides, mis on seotud antud ajavahemikuga: eile, Täna, Kõik)

    Peamine kasutusala on lisada kataloogi /etc/cron.daily 00-logwatchi fail (algab 00-st, et käitada enne logrotate'i), mis paneb logwatch'i igapäevaselt töötama vaikevalikutega.

    Kahjuks on kõik filtrid loodud nii, et logid kirjutatakse samasse hosti, millel teenus töötab.

    Kõiki logisid hoitakse ühes arvutis (kui teil on paranoilisi kalduvusi, saate logisid salvestada korraga kahes serveris).

    Allika ametliku nime ja tegeliku seadme või programmi vastavus:

    • kohalik0 – Cisco
    • local3 - ftp (seal on spetsiaalne allika nimi, kuid Solaris 2.5 ei tea seda)
    • local4 - reserveeritud raamatupidamiseks
    • local5 – POP3 / IMAP
    • local6 – tac_plus>

    Serveris peaks olema avatud pordi 514 / udp ekraan (saate piirata pakettide lähteaadresse, kuid see aitab ainult õnnetuste korral). Syslogd käivitamine (parameetrid failis /etc/rc.d/init.d/syslog või / etc / sysconfig / syslog) tuleb käivitada klahvidega "-r -m 0" (ja ka "-x", kui sama arvuti on töötab DNS-server). Käivitage klogd lülititega "-2 -c 1". Syslog.conf seadistamine:

    • * .crit - CRIT ja kõrgema raskusastmega sõnumid tuleb saata terminalidesse ja kirjutada eraldi faili (chmod 600), teie sõnumid tuleb saata varuserverisse; sendmail peab sõnumeid meili vastuvõtmisega seotud probleemide kohta kriitiliseks
    • kern – loo kern-fail kõikide sõnumitasemete jaoks (chmod 600)
    • mail – loo meilifail kõikide tasemete sõnumite jaoks (ilma sünkroonimiseta)
    • auth, authpriv – looge turvaline fail kõikide tasemete sõnumite jaoks (chmod 600)
    • uudised - looge uudiste kataloogis iga raskusastme jaoks eraldi fail (silumine ilma sünkroonimiseta)
    • cron – kõigi tasemete sõnumite jaoks cron-faili loomine (RH 6.2 ja Solaris 2.5 cron ei saa syslogi kasutada)
    • local0 – looge cisco kataloogis iga raskusastme jaoks eraldi fail (viga ja allpool ilma sünkroonimiseta)
    • local3 - looge ftp kataloogis iga raskusastme jaoks eraldi fail (teave ja silumine ilma sünkroonimiseta)
    • local5 – looge fail imap.log kõikide tasemete sõnumite jaoks
    • local6 – loo tac_plus.log fail kõikide tasemete sõnumite jaoks
    • local7 – fail boot.log (teateid, kui süsteem käivitub ning syslogd ja klogd käivituvad või peatuvad)
    • kõik INFO-taseme ja kõrgemad sõnumid, mis ei sattunud ühte ülalpool määratletud faili, kirjutage sõnumite faili (chmod 600)

    Kliendiarvutites seadistage syslog nii, et kõik sõnumid saadetakse syslogi serverisse, veateated dubleeritakse failis / var / log / syslog, kriitilise oleku teated dubleeritakse konsooli, kasutajaterminalidesse. Linuxi masinatel tühjendatakse ka alglaadimisteated kohalikku faili (local7, boot.log). Varusüsteemi logiserver peaks vastu võtma võrgust kriitilised sõnumid ja kirjutama need faili (auk ekraanil, käivituslüliti "-r").

    logrotate: säilita igavesti, vaheta versioone nii harva kui võimalik (igakuiselt, välja arvatud squid), tõmba eraldi kataloogidesse (va squid) ja tihenda (viivitatud režiimis, v.a ftpd, linuxconf, sendfax), saada mulle vead ja kustutatud failid. Sobitage syslogi parameetrid.

    Toru sümboli (|) asetamine failinime ette võimaldab kasutada fifo (esimene sisse - esimene välja, esimene tuli – esimene tuli välja) või nimega toru sõnumite vastuvõtjana. Enne syslogd käivitamist (või taaskäivitamist) peate käsu mkfifo abil looma fifo. Mõnikord kasutatakse fifosid silumiseks.

    Terminal ja konsool

    Terminal, näiteks / dev / konsool.

    Kaugmasin

    Sõnumite edastamiseks teisele hostile lisage hostinime ette @ sümbol. Pange tähele, et sõnumeid ei edastata vastuvõtvalt hostilt. (et see ülesanne töötaks failis olevas kliendis ja serveris / jne / teenused rida tuleb kirjutada syslog 514 / udp ja UTP-port 514 on avatud)

    kasutajate loend

    Komadega eraldatud sõnumeid saavate kasutajate loend (kui kasutaja on sisse logitud). See hõlmab sageli juurkasutajat.

    Kõik registreeritud kasutajad

    Kõigi registreeritud kasutajate teavitamiseks seinakäsuga kasutage tärni (*) sümbolit.

    Näide lihtsast syslog.conf:

    # Väljastage kõik kerneli sõnumid konsooli. # kern * / dev / console # Kõik logid teabetasemel või kõrgemal, välja arvatud meilisõnumid, ja # ei logi autentimissõnumeid ja cron deemoniteateid! * .info; mail.none; authpriv.none; cron.none / var / log / messages # Kirjutage konfidentsiaalset autentimisteavet sisaldavad sõnumid eraldi faili, olenemata nende tasemest. authpriv * / var / log / secure # Kõik kirjad meilisüsteemist tuleks samuti kirjutada eraldi faili. mail * - / var / log / maillog # Logi planeerija sõnumid aadressile / var / log / cron cron * / var / log / cron # Hädaabiteated tuleb kohe kätte saada # kõik süsteemi kasutajad * .emerg * # Salvesta sõnumid Kriitiline tase ja kõrgem eraldi faili. uucp, news.crit / var / log / spooler # Salvesta alglaadimisteated faili boot.log local7. * /var/log/boot.log

    Nagu paljude konfiguratsioonifailide puhul, on süntaks järgmine:

    • #-ga algavaid ridu ja tühje ridu ignoreeritakse.
    • Sümbolit * saab kasutada kõigi kategooriate või kõigi prioriteetide tähistamiseks.
    • Spetsiaalne märksõna none näitab, et selle toimingu jaoks ei tohiks selle kategooria logimist teha.
    • Sidekriips failinime ees (nagu selles näites / var / log / maillog) näitab, et logi ei tohiks pärast iga kirjet sünkroonida. Süsteemi krahhi korral võite teabe kaotada, kuid sünkroonimise keelamine parandab jõudlust.

    Konfiguratsioonifaili süntaksis saate seada prioriteedi ette märk! näidata, et toimingut ei tohiks rakendada, sellelt ja kõrgemalt tasemelt... Samamoodi võib eelistada märk = näitamaks, et reegel kehtib ainult sellele tasemele, või != näitamaks, et reegel kehtib kõikidel tasanditel peale selle. Mõned näited on toodud allpool (palju teisi näiteid leiate failist man syslog.conf):

    # Saada kõik kerneli sõnumid aadressile / var / log / kernel. # Saada kõik kriitilised ja kõrgemad sõnumid kaugsüslogeri masinasse ja konsooli # Saada kõik info-, teate- ja hoiatusteated aadressile / var / log / kernel-info # kern. * / Var / log / kernel kern.crit @sysloger kern .crit / dev / console kern.info; kern.! err / var / log / kernel-info # Saada kõik meilisüsteemi teated, välja arvatud teabetase kaustas / var / log / mail. mail. *; mail.! = info / var / log / mail

    Püüdsin diagrammil näidata syslogdi tööd võimalikult selgelt:

    Syslogd deemoni käivitamine

    Logideemon käivitatakse süsteemi initsialiseerimise etapis skripti abil /etc/rc.d/init.d/syslog Käivitusparameetrite määramiseks pole aga vaja seda skripti kohandada – alates versioonist 7.2 loetakse käivitusvalikud eraldi konfiguratsioonifailist / etc / sysconfig / syslog (/ etc / default / syslogdebianis).

    Siin on mõned võimalikud syslogd deemoni käivitusvalikud:

    • -a / kaust / pistikupesa- täiendava kuulamispesa määramine (ärge unustage kõigepealt pesa luua)
    • -d- silumisrežiim. Sel juhul ei lähe deemon taustale ja saadab kõik sõnumid praegusele terminalile;
    • -f konfiguratsioonifaili nimi... Määrab alternatiivse konfiguratsioonifaili nime, mida kasutatakse vaikefaili /etc/syslog.conf asemel;
    • -l host-list- loendi seadmine hostidest, mille nimesid ei tohiks salvestada, märkides täieliku domeeninime (FQDN - Full Qwalified Domain Name);
    • -m minutit- ilma selle võimaluseta käivitatud sysklogd logib märgikategooria (ajatemplid) teateid iga 20 minuti järel. Suvandi -m abil saate muuta märkide vahelist intervalli või selliste teadete väljastamise täielikult tühistada;
    • -p pesa- alternatiivse UNIX-i pesa seadistamine (vaikimisi kuulamise asemel / dev / log);
    • -r- luba kaughostidelt sõnumeid vastu võtta;
    • -x- hostinime aadressi järgi määramise keeld, et vältida külmumist DNS-serveriga samas hostis töötades.
    • -v- näita versiooni ja lõpeta töö

    Pärast syslogd deemoni käivitamist luuakse olekufail / var / lock / subsys / syslog null pikkus ja fail protsessi ID-ga /var/run/syslogd.pid.

    Kasutades käsku
    kill -SIGNAL "cat / var / run / syslogd.pid".

    saab saata syslogd deemonileüks järgmistest signaalidest: OHA- deemoni taaskäivitamine; SIGTERM- tööde lõpetamine; SIGUSR1- lubage / keelake silumisrežiim.

    Tegelikult töötab süsteemis kaks logideemonit - syslogd ja klogd... Mõlemad deemonid on komplektis sysklogd.

    klogdi deemon vastutab sündmuste sisselogimise eest süsteemi tuum... Vajadus eraldi klogd-deemoni järele tuleneb sellest, et kernel ei saa kasutada standardset syslogi funktsiooni. Asi on selles, et standardsed C-teegid (sealhulgas syslogi funktsiooni sisaldav teek) on mõeldud kasutamiseks ainult tavapärased rakendused... Kuna kernel vajab ka logimisfunktsiooni, sisaldab see oma teeke, mis pole rakendustele kättesaadavad. Seetõttu kasutab kernel oma sõnumi genereerimise mehhanismi.

    klogdi deemon on loodud nende sõnumite töötlemise korraldamiseks. Põhimõtteliselt suudab ta seda töötlust teha täiesti sõltumatult ja sõltumatult syslogd-st, näiteks kirjutades need kirjad faili, kuid enamasti kasutatakse vaikimisi klogd seadistust, mis saadab kõik kernelist kirjad samale syslogd deemonile.

    Automaatne pööramine (täisfailide uuendamine) ja logide arhiveerimine

    Aja jooksul kipub logifail kasvama, eriti mis tahes teenuse intensiivse töö korral. Sellest lähtuvalt peate suutma kontrollida palkide suurust. Seda tehakse koos logrotate käsud mida tavaliselt tehakse cron deemon... Croni tööst räägin järgmistes artiklites. peamine eesmärk logrotate käsud on logide perioodiline varundamine ja uute puhaste logide loomine. Säilitatakse mitu põlvkonda logisid ja kui viimase põlvkonna logi aegumiskuupäev saabub, saab selle arhiveerida (tihendada). Tulemuse saab saata näiteks posti teel arhiivi pidamise eest vastutavale isikule.

    Palkide pööramise ja arhiveerimise järjekorra määramiseks kasutage konfiguratsioonifail /etc/logrotate.conf ... Erinevate ajakirjade puhul saab määrata erineva sageduse, näiteks iga päev, kord nädalas või kuus, lisaks saab reguleerida akumuleeritud põlvkondade arvu, samuti määrata, kas arhiivide koopiad saadetakse hoolduse eest vastutavale isikule. arhiivid ja kui jah, siis millal. Näidatud allpool näide /etc/logrotate.conf fail:

    # "vaike" parameetrid (globaalsed valikud) määratakse kõigepealt # uuenda logifaile kord nädalas # säilita logide arhiivi viimase 4 nädala kohta pööra 4 # loo uus (tühi) fail pärast pööramist (värskenda) loo # tühista kommentaar, kui soovite salvestatud failid tihendada # tihendada # lubada määratud kataloogis olevad pööramise sätted sisaldavad /etc/logrotate.d # ei salvesta wtmp-d või btmp - logiandmete pööramise sätted on järgmised: / var / log / wtmp (missingok igakuine loo 0664 root utmp rotate 1) / var / log / btmp (missingok igakuine loo 0664 root utmp rotate 1) # konkreetseid süsteemi logisid saab konfigureerida allpool

    Globaalsed valikud asetatakse algusesse logrotate.conf faili... Neid kasutatakse vaikimisi, kui mujal pole midagi täpsemat täpsustatud. Näites toimub ajakirjade pöörlemine iganädalane ja varukoopiaid hoitakse alles neli nädalaid. Niipea kui päevikut pööratakse, luuakse vana päeviku asemele automaatselt uus. Logrotate.conf fail võib sisaldada spetsifikatsioone muudest failidest. Seega sisaldab see kõiki kataloogi faile /etc/logrotate.d.

    See näide sisaldab ka erireegleid / var / log / wtmp ja / var / log / btmp(salvestatakse teavet edukate ja ebaõnnestunud süsteemi sisselogimiskatsete kohta), mida vahetatakse kord kuus. Kui failid puuduvad, siis veateadet ei kuvata. Luuakse uus fail ja salvestatakse ainult üks varukoopia.

    Selles näites, kui varukoopia jõuab viimase põlvkonnani, kustutatakse see, kuna pole määratletud, mida sellega teha.

    Logi varukoopiad saab genereerida ka siis, kui logid jõuavad teatud suuruseni, ja skripte saab genereerida käsukomplektidest, mida käivitada enne või pärast varundustoimingut. Näide:

    / var / log / sõnumid (pöörake 5 kirja [e-postiga kaitstud] suurus 100k postrotate / usr / bin / killall -HUP syslogd endscript)

    Selles näites on pöörlemine / var / log / sõnumid toodetakse, kui see jõuab 100 KB-ni. Kogutakse viis varukoopiat ja kui vanim varukoopia aegub, saadetakse see aadressile [e-postiga kaitstud] Postrotate käsusõna võimaldab skriptil pärast pööramise lõpetamist HUP-signaali saatmisega syslogd deemoni taaskäivitada. Lõppskripti käsusõna on vajalik skripti lõpetamiseks ja ka siis, kui eelrotatsiooni skript on saadaval. Lisateabe saamiseks vaadake logrotate man-lehekülgi.

    Parameetrid antud konfiguratsioonifailis logrotate.conf:

    • suruma kokku| mittekompress(vanemad versioonid on gzipiga tihendatud või mitte)
    • tihenda cmd(määrab tihendusprogrammi, vaikimisi gzip)
    • lahti pakkidacmd(määrab vaikimisi lahtipakkimisprogrammi - ungzip)
    • tihendada(määrab tihendatud failide järelliite)
    • kompressioonid(määrab tihendusprogrammi parameetrid; vaikimisi on "-9", st maksimaalne tihendus gzipi jaoks)
    • kopeerida| nocopytrumpeerima(tavaliselt nimetatakse vana versioon ümber ja luuakse logi uus versioon; kui see parameeter on määratud, kopeerib logrotate logi uude faili ja seejärel kärbib vana; kasutatakse juhul, kui logi loov programm ei suuda seda sulgeda; kopeerimise ja kärpimise vahel tehtud kirjed lähevad kaotsi; aga kas sellest on abi, kui logi loov programm lisamisrežiimi asemel lihtsalt sisemise kursori abil faili kirjutab?)
    • luua[õiguste omanike rühm] | ei loo(kohe pärast ajakirja vana versiooni ümbernimetamist ja enne postrotate väljakutsumist luuakse uus ajakiri määratud atribuutidega - õigused on seatud kaheksandas, nagu chmod.2; kui atribuute pole määratud, siis võetakse need vanast ajakiri)
    • iga päev(seeria versioonivahetus toimub iga päev)
    • viivituskompress| nodelaycompress(mõned programmid ei sulge kohe logi, sellisel juhul tuleks tihendamine järgmise tsüklini edasi lükata)
    • veadmeili(kellele veateateid saata)
    • pikendaminejärelliide(määrab failinimedele lisatava järelliide, kui pööratakse enne tihendusliidet)
    • kui tühi| teatamata(muuda versioone isegi siis, kui fail on tühi; see on vaikeseade)
    • sisaldamaFaili nimi| katalooginimi (asendage tekstiliselt fail või kõik failid määratud kataloogist; alamkataloogid, erifailid ja failid, millel on välistuste loendist järelliide, ei sisaldu; ei saa kasutada jaotises)
    • mailaadress| nomail(kui versioonimuudatuse tõttu on vaja vana logi kustutada, siis saata see määratud aadressile)
    • mailfirst(ärge saatke ajakirja kustutatud versiooni, vaid esimest)
    • maillast(saatke logi kustutatud versioon; see on vaikeseade)
    • puudu| nomissingok(ärge saatke veateateid, kui logi puudub)
    • igakuine(versioonivahetus toimub iga kuu)
    • vanadirkataloog| noolddir(versiooni muutmise ajal teisaldatakse logi määratud kataloogi; peaks asuma samas füüsilises seadmes)
    • järelpööramine(kõik järgmised read kuni lõppskripti reani käivitatakse shellikäskudena pärast versiooni muutmise protsessi)
    • eelroteerida(kõik järgmised read kuni lõppskripti reani käivitatakse enne versiooni muutmise protsessi)
    • pööratanumber(mitu vana versiooni säilitada; kui 0, siis mitte ühtegi)
    • suurusbait(versioonimuutus toimub siis, kui logi suurus on ületanud määratud arvu; võite kasutada järelliiteid "k" - kilobaidid - ja "M" - megabaidid)
    • jagatud skriptid| nosharedscripts(käsu prerotate ja postrotate ainult üks kord kõigi jaotises kirjeldatud failide puhul)
    • tabuekst[+] järelliide-loend(määrab sufiksite välistamise loendi lisamise jaoks; kui on määratud plussmärk, siis lisamine, muul juhul asendamine; vaikimisi: .rpmorig, .rpmsave, .rpmnew, ", v", .swp ja "~")
    • iganädalane(versioonivahetus toimub kord nädalas)

    Logide uurimine ja jälgimine

    Logikirjed sisaldavad tavaliselt ajatemplit, hostinime, millel kirjeldatud protsess töötab, ja protsessi nime. Vaata logisid võite kasutada lehekülgede otsimise programmi, näiteks vähem, saate otsida konkreetseid kirjeid (nt kerneli sõnumeid konkreetselt deemonilt), kasutades käsku grep:

    # less / var / log / messages # grep "ppp" / var / log / messages | saba 17. detsember 16:34:25 puhverserver pppd: Ühendus katkestati. 17. detsember 16:34:25 puhverserver pppd: Välju. 17. detsember 16:35:57 puhverserver pppd: LCP lõpetas partner (^ P] kV ^ @

    Arvuti ei pruugi kogu aeg töötada ja lülituda välja, näiteks öösel. Seetõttu salvestatakse kirjed kaustas / var / log / sõnumid tsükliliselt alates arvuti käivitamisest kuni sulgemiseni, seda on näha sõnumitest:

    17. detsember 08:32:56 syslog-server syslogd 1.4-0: taaskäivitamine. 17. detsember 08:32:56 syslog-server syslog: syslogd õnnestus 17. detsember 08:32:56 syslog-serveri kernel: klogd 1.4-0, logi allikas = / proc / kmsg käivitatud. 17. dets 08:32:56 syslog-server syslog: start klogd õnnestus

    17. detsember 08:32:56 syslog-serveri tuum: Kerneli käsurida: auto BOOT_IMAGE = linux ro root = 303 BOOT_FILE = / boot / vmlinuz-2.4.2-2 17. detsember 08:32:56 syslog-serveri kernel: Mälu: Saadaval 125652k / 130560k (1365k kerneli kood, 4200k reserveeritud, 92k andmed, 236k init, 0k highmem) 17. detsember 08:32:56 syslog-serveri tuum: CPU: Intel (R) Pentium (R) 60 GHz (R) 60 CPUz (R)

    Samuti leiate sellest failist teavet kettamälu kohta (sh teave ketta geomeetria, partitsioonide struktuuri ja kasutatud katkestuste kohta), teavet välisseadmete, üksikute teenuste ja teenuste käivitamise kohta, teavet failisüsteemide ühendamise kohta ja teateid kasutaja sisselogimise kohta. veateadetena.

    Mõnikord võib see osutuda vajalikuks jälgimissüsteemi logid jooksvate sündmuste otsimiseks. Näiteks võite püüda tabada haruldast sündmust selle toimumise hetkel. Sel juhul saate kasutada käsku saba valikuga -f syslogi sisu jälgimiseks. Näide:

    # saba -f / var / log / sõnumid | grep syslog-server 17. detsember 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 17. detsember 16:46:09 syslog-server pppd / skript / etc / ppp lõpetatud (pid 12552), olek = 0x0 17. detsember 16:46:49 syslog-server pptpd: CTRL: Kliendi 85.175.197.65 juhtimisühendus alanud 17. detsember 16:46:49 syslog-server pptpd: kõne (CTRL, Starting pptt) avamine GRE) 17. detsember 16:46:49 syslog-server pppd: Plugin /usr/lib/pptpd/pptpd-logwtmp.so laaditud.

    Lisaks failis /etc/syslog.conf määratud logifailidele on ka muid faile, näiteks fail, mis salvestab teavet süsteemi alglaadimisprotsessi kohta enne syslogd käivitamist, samuti failid, mis on kahendvormingus ja salvestavad teavet vastavalt viimase sisselogimise, kõigi edukate kasutajate sisselogimiste ja kõigi ebaõnnestunud kasutajate sisselogimiste kohta. Samuti võib kataloog / var / log / sisaldada deemonite, näiteks veebiserveri või puhverserveri logifaile. Nende failide vorming on sarnane syslogd logidele.

    Lõpetuseks tahaksin rõhutada, et see protokoll ei ole kuigi turvaline, tk. syslog ei sisalda vahendeid sõnumite võltsimise eest kaitsmiseks. Mis veelgi hullem, UDP kasutamine võimaldab ründajatel saata sõnumeid mis tahes hosti nimel. Teie kohalikku võrku tuleks kaitsta võltsitud kohalike aadressidega pakettide vastuvõtmise eest (kuigi see ei takista teil kohalikust võrgust võltssõnumeid saatmast) ja pakettide vastuvõtmisest väljaspool porti 514 / udp. On teada ketta ületäitumise juhtumeid valeteadetega.

    Syslogi protokoll ja UDP ei taga garanteeritud kohaletoimetamist (sõnumid võivad kaduda võrgu ülekoormuse või pealtkuulamise ajal, rikutud sõnumid kustutatakse ilma hoiatuseta), õiget tarnejärjestust (teade protsessi lõpu kohta võib tulla enne sõnumit selle alguse kohta) , prioriteetne kohaletoimetamine.

    Sõnumeid ei hoita konfidentsiaalsena, kuna need edastatakse selge tekstina.

    Kui teate generaatori seadistamisel määrate vale kollektori või relee aadressi, siis veateateid ei tule - teated kustutatakse (või kirjutatakse kellegi teise logisse).

    Syslogi protokolli täiustamiseks on välja pakutud mitmeid projekte. Näiteks pakub RFC 3195 välja TCP-põhise logimissüsteemi (syslog-conn), et tagada sõnumite õiges järjestuses edastamine. Syslog-signi projekt pakub välja autentimise, järjestamise, sõnumite terviklikkuse ja puuduvate sõnumite tuvastamise, genereerides spetsiaalseid sõnumeid, mis sisaldavad eelmiste sõnumite ploki digitaalset allkirja, säilitades samal ajal standardse syslogi protokolli ja vormingu ning kasutades UDP-d.

    Teeme kokkuvõtte:

    Linuxil on üks deemon, mis vastutab sündmuste logimise eest kohalikus süsteemis ja kaugsüsteemides. Kõik sündmused kogutakse pesast / dev / log, UDP pordist - 514, aga ka "abist" - klogd deemonilt, mis saadab sõnumeid kernelist. Syslogd deemon filtreerib kõik kogutud kirjad faili /etc/syslog.conf reeglite kaudu ja levitab vastavalt reeglitele sobivatesse sihtkohtadesse. Logifaile perioodiliselt "kärbitakse". Sageduse määrab fail logrotate.conf ja käsk logrotate, mida käivitab süsteemi planeerija - cron.

    See on tänaseks kõik. Loodan, et kirjeldasin kõike võimalikult selgelt. Aja jooksul täiendan artiklit!

    Lugupidamisega Mc.Sim!

    SERGEI SUPRUNOV

    FreeBSD näpunäited: syslogi kasutamine

    - Vabandage, seltsimehed, mul on kõik käigud kirja pandud!

    "Kontor kirjutab," ütles Ostap.

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

    Iga süsteemi ja ennekõike serveri töö logimine on halduse üks olulisemaid komponente. Kui süsteemis on probleeme, vaatame kõigepealt logifailidest. Sealt saame kindlustunde, et see või teine ​​programm töötab ootuspäraselt. Veebirakenduste arendamisel muutub logifail kõige olulisemaks silumisinfo allikaks. Arutletakse süsteemiteabe logimise eest vastutava syslogi deemoni funktsioonide üle.

    Mis on syslog

    Syslog on tsentraliseeritud teenus, mis kogub ja salvestab logiteavet erinevatest operatsioonisüsteemi komponentidest ja kasutajaprotsessidest. Kolmandate osapoolte programmid suudavad tavaliselt oma logifailidega iseseisvalt töötada, kuigi paljusid neist saab konfigureerida töötama koos syslogd deemoniga. Syslogi kasutamise eelised hõlmavad võimalust juhtida vajaliku teabe kogumise protsessi ühe konfiguratsioonifaili abil, mis tagab vastuvõetud logifailide järjepidevuse ja selle tulemusena lihtsustab nende haldamist.

    Syslogi teenust pakub syslogd deemon, mis käivitatakse automaatselt süsteemi käivitamisel. See on pidevalt mälus, ootab sõnumeid teistelt protsessidelt ja töötleb neid vastavalt oma sätetele.

    Iga sõnumit iseloomustavad tase ja võimalus. Tase määrab sõnumi tähtsuse astme süsteemi toimimise seisukohalt. Fail syslog.h määratleb järgmised tasemed (prioriteedid):

    Tabel 1. Sõnumitasemed

    Tase

    Kirjeldus

    tekkima, paanika

    Paanikaseisund

    hoiatus

    Seisund, mis nõuab kohest tähelepanu

    kriit

    Kriitiline seisund

    eksitus, viga

    Muud töövead

    hoiatus, hoiatus

    Hoiatused

    märkama

    Sõnumid, mis ei ole vead, kuid mida tuleks tähele panna

    info

    Infoteated (tavaline töö)

    silumine

    Silumisinfo

    Tabelis 1 on loetletud sõnumitasemed kahanevas järjekorras. Seda järjekorda läheb vaja hiljem konfiguratsioonifaili süntaksi arutamisel.

    Samale reale kirjutatud sõnumitaseme tähised (nt esilekerkimine ja paanika) on sünonüümid ning kasutada võib ükskõik millist neist. Paanika, vead ja hoiatused (tabelis teisel kohal) on aga aegunud ja neid tuleks konfiguratsioonifaili redigeerimisel vältida. Kasutage selle asemel erg, err ja hoiatust.

    Võimalikud sõnumi allikad on loetletud tabelis 2:

    Tabel 2. Sõnumite allikad

    Allikas

    Kirjeldus

    kern

    Kerneli sõnumid

    auth, authpriv

    turvalisus

    Turvateated (nt tulemüürist)

    konsool

    Sõnumid konsoolile (/ dev / konsool)

    syslog

    Syslogi algsõnumid

    cron

    Croni alamsüsteemi teated

    Ajateenistuse teated

    Postitused FTP serverid

    Printige alamsüsteemi teated

    mail

    Postiteenuste sõnumid

    uudised

    Uudisteteenistuse sõnumid

    uucp

    Postitused UUCP

    deemon

    Sõnumid teistelt süsteemis töötavatelt deemonitelt

    kasutaja

    Kasutaja töötleb teateid

    kohalik0 - kohalik7

    Saab kasutada erinevate kasutajate vajaduste jaoks (mõnikord kasutab ka süsteem)

    Kui konfigureerite rakenduse syslogi teenusega töötama, kontrollige, millist võimalust see kasutab. Mõned programmid võimaldavad teil allika ise määrata. Näiteks clamd deemon (Clamavi viirusetõrje põhiprotsess) kasutab vaikimisi local6, kuid võimaldab teil määrata teistsuguse allika (konfiguratsioonifaili parameeter LogFacility). Mõnel juhul võib olla kasulik kombineerida selle sõnumeid meiliteenuste sõnumitega, määrates allikaks LOG_MAIL.

    Deemoni käivitusvalikud

    Käivitusvalikute täieliku loendi leiate syslogd man-lehelt. Siin käsitleme ainult mõnda neist.

    Syslog suudab kirjutada sissetulevad sõnumid logifailidesse (mis asuvad tavaliselt kataloogis / var / log), saata need konsooli või ühendatud kasutajaterminali, saata need kaughostile või suunata need välisesse utiliiti. töötlemine.

    Võrgustiku loomiseks kasutab syslog porte 514 (UDP ja TCP). Ilma täiendavate parameetriteta käivitatud Syslogd kuulab nendel portidel sissetulevaid sõnumeid. Lüliti -s keelab sissetulevad sõnumid, kuid väljaminevate ühenduste jaoks luuakse endiselt pesad 514 portides, et syslogd saaks saata sõnumeid kaughostidesse. Võtme kahekordistamine (-ss) keelab ka väljaminevad ühendused.

    Vaikimisi käivitatakse syslogd lülitiga -s (vt /etc/defaults/rc.conf, syslogd_flags parameeter), seega on sissetulevad ühendused keelatud. Kui soovite kasutada oma serveri syslogi teenust mitme masina teenindamiseks, lisage faili /etc/rc.conf järgmine rida:

    syslogd_flags = ””

    See alistab failis /etc/defaults/rc.conf määratud väärtuse, et syslogd saaks hakkama sissetulevate ühendustega. Loomulikult on sel juhul vaja tagada vajalik turvalisuse tase, välistades võimaluse, et välismajutajad kirjutavad teie logidesse midagi. Lüliti -a võimaldab seada piiranguid sissetulevatele ühendustele (vt man syslogd). Olulist rolli mängib ka korralikult konfigureeritud tulemüür.

    Teine kasulik lüliti -l võimaldab teil määrata täiendavaid soklifaile, mida syslogd kuulab lisaks vaikeväärtusele / var / run / log. Näiteks on see lüliti vajalik selleks, et syslog saaks hakkama chroot-keskkonnas töötavate programmidega. Täpsemalt töötab named nii alates versioonist BIND 9. FreeBSD 5.3 puhul käivitatakse syslogd järgmiste klahvidega:

    # ps -vaha | grep syslog

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

    Konfiguratsioonifaili süntaks

    Logimine on konfigureeritud failis /etc/syslog.conf. On ütlematagi selge, et seda saab redigeerida ainult juurkasutaja. See fail sisaldab kahte tüüpi stringe – nimetagem neid "filtriteks" ja "reegliteks".

    Filtri string määrab programmi või hosti, mille kaudu saadetud sõnumitele järgmised reeglid rakendada. Filter nagu "! Prog" (või "#! Prog") näitab, et järgmised read viitavad määratud prog-programmi loodud logidele. Selle kirje sünonüüm on "! + Prog". Ja vastupidi, rida "! -Prog" tähendab, et järgmised reeglid kehtivad kõikidele sõnumitele, välja arvatud need, mis tulevad prog-programmist. Lubatud on loetleda mitu programmi, eraldades need komadega, samas kui "+" või "-" märki rakendatakse kogu loendile.

    Kui filtristring on määratud kui "+ hostinimi", kasutatakse määratud hosti järgmiste reeglite abil töödeldavate sõnumite allikana. Nagu programmide puhul, näitab sümbol “-”, et reeglid kehtivad kõikidele sõnumitele, välja arvatud need, mis tulevad määratud hostilt. Saate määrata komadega eraldatud hostide loendi.

    Programmi või hostina määratud märk "*" alistab varem seatud filtri. See tähendab, et pärast sellist rida määratud reeglid kehtivad kõikidele sõnumitele. Hostinime või programmiga filtrid on üksteisest sõltumatud ja võivad töötada samaaegselt. Näiteks:

    # Siin asuvad reeglid kehtivad kõikidele sõnumitele

    Minu.host

    # Reeglid kehtivad kõikidele minu.hosti sõnumitele

    Raiemees

    # Reeglid kehtivad logija my.host sõnumitele (hostifilter jätkub)

    # Reeglid kehtivad minu.host su sõnumitele

    # Reeglid kehtivad su sõnumitele mis tahes hostidelt (hostifilter tühistatakse, programmifilter jätkub)

    # Reegleid rakendatakse kõikidele sõnumitele (ka programmifilter tühistatakse)

    Reegliread on järgmised:

    rajatis.CMPtaseme sihtkoht

    Siin on rajatis sõnumi allikas ("*" tähistab mis tahes allikaid), tase on sõnumite tase, mida selle reegli kohaselt töödeldakse. Taseme asemel määratud teenindussõna "puudub" juhendab selle allika sõnumid täielikult välistama.

    CMP – võrdlusoperatsioon (märgid ">", "<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    Sihtkoht määrab, kuhu see sõnum salvestada. See võib olla logifail (täielik tee on näidatud, alustades tähega "/"), kaugserveri aadress (alates sümboliga "@"), kasutajanimi (sõnumid saadetakse terminalile, kuhu see kasutaja on ühendatud). Samuti saab sõnumi edastada töötlemiseks välisele programmile, mille puhul kasutatakse toru sümbolit "|".

    Mõned näited reeglitest

    Kõik kerneli sõnumid saadetakse faili kern.log.

    * /var/log/kern.log

    Kõik veateated, samuti esilekerkivad, hoiatus- ja kriitilise taseme teated paigutatakse faili all-err.log. Pange tähele sidekriipsu logifaili nime ees. Vaikimisi puhverdatakse sõnumid mällu ja kirjutatakse puhver täitumisel kettale. See vähendab failisüsteemi koormust, kuid masina kokkujooksmisel võib osa teabest kaotsi minna. Failinime ees olev sidekriips paneb syslogd deemoni kohe teateid kettale kirjutama.

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

    Kasutajaprotsesside silumissõnumid väljastatakse terminali, millega kasutaja Vasya on praegu ühendatud.

    user.debug vasya

    Kõik uudiste ja meiliteenuste sõnumid edastatakse syslog.host.ru masina porti 514.

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

    Kõik allpool olevad hoiatusteated prinditeenuse sõnumid paigutatakse määratud faili. Nagu varem öeldud, on vaikeväärtus suurem või võrdne võrdlusega ja! see pöörab ümber, asendades selle sõnaga "vähem". Kui teil on vaja teatud tase välistada, peaksite kasutama konstruktsiooni "! =".

    lpr.! hoiatus /var/log/printers.log

    Silumistaseme teated (ja ainult silumissõnumid) rajatise level0 ja level3 väljastatakse kõikidele ühendatud terminalidele.

    tase0, tase3. = silumine *

    Time Service'i sõnumid, mis on kriitilisest kõrgemad (st tekkivad ja hoiatavad) ning väiksemad või võrdsed kui teate (teade, teave ja silumine), saadetakse ntpuser- ja juurterminalidesse.

    ntp.> crit,<=notice ntpuser,root

    Kõik hoiatusteated peale meiliteenuste hoiatusteated kirjutatakse faili warn.log.

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

    Sel juhul saadetakse kõik sõnumid, mille tase on suurem või sellega võrdne, juurkasutajale.

    * .crit | mail -s “kriitilise sõnumi” juur

    Nagu näete, võimaldab konfiguratsioonifaili formaat mitme taseme, allika ja sihtkoha loetlemist ühel real, mis muudab konfiguratsiooni paindlikumaks. Muudatuste jõustumiseks pärast redigeerimist peate saatma HUP signaali syslogd protsessile:

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

    Tuleb märkida, et kui see või teine ​​sõnum langeb konfiguratsioonifaili mitme rea tegevuse alla, töödeldakse seda vastavalt igaühele neist. Näide:

    * / var / log / maillog

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

    Sel juhul suunatakse mail.err-teated nii postilogi kui ka error.log-i.

    Konfiguratsioonifaili strateegia

    Konfiguratsioonifaili käsitlemise lõpetuseks ütlen paar sõna selle koostamise strateegiate kohta. Lisaks väga populaarsele "kui ainult see töötab" saab eristada kahte peamist, mida me tinglikult nimetame "allika järgi" ja "eesmärgi järgi".

    • Esimene strateegia, mida võib täheldada paljudes GNU / Linuxi distributsioonides, on kirjutada iga sõnumiallika jaoks erinev reegel (või reeglite rühm, kui erineva tasemega sõnumeid töödeldakse erinevalt). Selle eeliseks on konkreetsete teenuste sõnumite kirjutamise koha määramise lihtsus.
    • "Sihtkoha järgi" strateegia on võimaluse korral luua ainult üks rida iga sõnumi (nt faili) "saaja" jaoks. Seda lähenemist kasutab eelkõige FreeBSD. Tänu sellele saate hõlpsalt kindlaks teha, milline teave konkreetsesse logifaili salvestatakse, kuid näiteks tuuma sõnumite sihtkohad tuleb koguda kogu konfiguratsioonifailist.

    Logeri utiliit

    Süsteem sisaldab logija utiliiti, mis võimaldab saata sõnumeid syslogi teenusele otse käsurealt. Seda on mugav kasutada konfiguratsioonireeglite testimisel, samuti skriptide väljatöötamisel nende töö logimiseks. Näited:

    kasutaja $ logger -p user.err “Viga kasutajaprogrammis!”

    kasutaja $ logger -h syslog.host.ru “Testi seda”

    Esimene näide saadab veatasemel rajatise kasutajateate, mida töödeldakse vastavalt konfiguratsioonifailile. Teine käsk saadab sõnumi kaughostile, allikaks ja vaiketasemeks määratakse user.notice.

    Pöörlemismehhanismide kasutamine

    Eespool käsitletud logimismehhanism ei paku logifailide haldamist. Sõnumid paigutatakse neisse lihtsalt vastavalt konfiguratsioonifailis kirjeldatud reeglitele. See tähendab, et logifailid kasvavad pidevalt ja kui midagi ette ei võeta, täidavad need varem või hiljem kogu vastava partitsiooni vaba ruumi. Selle vältimiseks kasutatakse pöörlemismehhanismi.

    Näiteks niipea, kui fail debug.log ületab 100 MB, nimetatakse see ümber debug.log.0-ks ja pakitakse faili debug.log.0.bz2. Selle asemel luuakse uus fail debug.log. Seejärel, kui uue faili suurus jõuab 100 MB-ni, nimetatakse debug.log.0.bz2 ümber debug.log.1.bz2-ks ja ülaltoodud protseduuri korratakse. Süsteem salvestab ainult teatud arvu arhiivifaile, kustutades vanimad. See on pöörlemine.

    Newsyslogi utiliit

    FreeBSD-s tegeleb pööramisega uudistelogi utiliit, mida vaikimisi käivitab iga tunni alguses cron deemon. Pöörlemisperioodi saate muuta, redigeerides faili / etc / crontab.

    Ülaltoodud näites määratud pööramisparameetrid (faili suurus, pakkimine) ja ka mitmed muud parameetrid määratakse konfiguratsioonifailis /etc/newsyslog.conf. Iga pööramist vajava faili puhul sisaldab see rida, mis koosneb üldiselt üheksast väljast: faili nimi, omanik ja rühm, juurdepääsuõigused, suurim arv arhiivi failinimes, maksimaalne faili suurus, pööramise periood, täiendavad lipud ja PID-i tee. pärast pööramist signaali saatmise rakenduse fail ja saadetava signaali number. (Võib-olla peate saatma protsessile signaali, näiteks kui protsess hoiab logifaili kogu aeg avatuna; vastasel juhul ei ühti kasutatav failideskriptor vastloodud failiga.) Mõned väljad võib välja jätta. Siin on kaks täielikku ja tüüpilist näidet:

    / var / log / pflog juur: ratas 600 3 100 * JB /var/run/pflog.pid 1

    Selle reegli järgi tuleb pflog-fail üle kirjutada kohe, kui selle suurus ületab 100 MB (5. väli), olenemata kellaajast (6. väljal "*"). Arhiivifailidel on sellised nimed nagu pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2 jne) ja X ei tohi olla rohkem kui kolm (parameeter 3 väljal 4). J-lipp näitab, et arhiivifail tuleks tihendada utiliidi bzip2 abil. Tänu B lipule ei lisata arhiveeritud ja äsja loodud failidele pööramise teenusteateid, kuna faili tajutakse binaarsena. Vastloodud fail kuulub juurkasutajale ja rattarühmale (selle välja oleks võinud välja jätta, kuna see on vaikeomanik). Õigused seatakse väärtusele rw ------- (numbriline väärtus 600), mis tähendab, et ainult omanik saab seda faili lugeda ja sellele kirjutada. Lõpuks saadetakse 1 (HUP) signaal protsessile, mille PID on salvestatud faili /var/run/pflog.pid, et logifail uuesti avada.

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

    See reegel määrab postilogi faili pööramise parameetrid: olenemata suurusest (5. väljal tärn) kirjutatakse fail ümber igal õhtul kell 00:00 (ajavormingu üksikasjalikku kirjeldust vt man newsyslog.conf). Arhiiv peab olema pakitud, viimased 8 arhiivi salvestatakse (numbritega 0 kuni 7 (kaasa arvatud)), vastloodud fail kuulub juurkasutajale (vaikeväärtus, seega omanikuväli jäetakse välja) ja sellel on rw -r ----- load.

    Pakitud logifailide vaatamiseks saate kasutada utiliite zcat ja bzcat (vastavalt gzip ja bzip2 jaoks). Midnight Commander kutsub automaatselt välja vastavad utiliidid.

    Pärast faili newsyslog.conf redigeerimist ei pea signaale kuhugi saatma – konfiguratsioon loetakse uuesti järgmisel korral, kui uudistelogi kutsutakse.

    Pange tähele, et uudistelogi utiliit ei ole seotud syslogd deemoniga. See tähendab, et seda saab kasutada kõigi seda vajavate failide pööramiseks. Kui pööramine on lubatud logide puhul, mida rakendus iseseisvalt haldab (nt clamd või squid logid), siis pöörake erilist tähelepanu omaniku ja juurdepääsuõiguste määramisele. Nende ebaõige määramine võib viia selleni, et pärast pööramist ei saa privilegeeritud kasutajana käivitatud rakendus vastloodud faili kirjutada.

    Summeerida

    Syslogi süsteem on väga võimas ja tõhus tööriist erinevate süsteemis toimuvate sündmuste logimiseks. Vaikesätted on üsna tasakaalustatud ja töötavad enamiku süsteemide jaoks hästi. Syslogi toimimise mõistmine võimaldab teil aga logimise kvaliteeti oluliselt parandada, kohandades logimist vastavalt teie konkreetsetele vajadustele.