Sistemska prijava u Linuxu. syslogd daemon konfiguracijska datoteka Mrežno evidentiranje

Lista uobičajenih UNIX/LINUX demona, u Windows OS-u se nazivaju servisi koji se mogu koristiti u različitim UNIX/LINUX modifikacijama. UNIX/LINUX imena demona se često završavaju slovom d kao skraćenica za engleski. daemon Možete provjeriti da li proces/demon radi koristeći top ili ps aux komandu.

Ispod je lista imena najčešćih demona i njihovih Kratki opis. Lista UNIX/LINUX demona u nastavku nije potpuna/iscrpna i vaš UNIX/LINUX sistem može imati jednog, sve ili više njih prisutnih ili odsutan u zavisnosti od verzije/tipa/modifikacije/konfiguracije vašeg UNIX/LINUX sistema i instaliranog ima softver na sebi.

Proces/Daemon Opis procesa/demona
auditdauditd je komponenta revizije za Linux sisteme. Održava evidenciju revizije na disku, koja se može vidjeti pomoću naredbi ausearch i aureport. Komanda auditctl vam omogućava da konfigurirate pravila revizije. Štaviše, pri pokretanju se učitavaju pravila sadržana u datoteci /etc/audit.rules. Neki parametri samog demona mogu se konfigurirati u datoteci auditd.conf.
acpidacpid (ACPI događaj daemon) - demon za reagovanje na ACPI događaje, na primjer, reagovanje na pritisak na dugme za napajanje ili zatvaranje poklopca laptopa. Upravljanje napajanjem i interakcija između Linuxa i BIOS-a putem ACPI (Advanced Configuration and Power Interface) i APM-a. ACPI "sleep" modovi: S1 - sve spava, CPU u režimu minimalne aktivnosti; S3 - "Suspend to RAM" - sve ide u stanje mirovanja, CPU se isključuje; S4 - "Suspend to Disk" dump stanja se pohranjuje na disk, sistem se isključuje, nakon uključivanja sistem se vraća sa prethodnog mjesta; S5 - isključenje softvera. http://acpid.sourceforge.net/
atdizvršava red poslova na (1)
autofsFormat tabele za automatsko montiranje. Mape za automatsko montiranje mogu biti datoteke ili NIS tabele na koje upućuje glavna tabela automatskog montiranja (pogledajte auto.master(5)). Tabele opisuju lokaciju sistem datoteka, koji se automatski montiraju na osnovne tačke montiranja (podešene u auto.master datoteci). Ovaj dokument opisuje format Sun table, za druge formate (npr. hesiod) ovaj dokument nije primjenjiv.

Tabele se mogu uređivati ​​u hodu - ove promjene će biti uzete u obzir u sljedećoj operaciji sa ovom tablicom, ali to se ne odnosi na glavnu tabelu auto.master!

biodRadi u sprezi sa udaljenim nfsd-om za rješavanje zahtjeva NFS klijenata.
certmongerDaemon certmonger nadzire i provjerava isteka certifikata i opciono može obnoviti certifikate koristeći CA. Može upravljati cijelim procesom registracije od generiranja ključa do registracije i obnove.
cgconfigOva skripta pokreće uslužni program cgconfigparser, koji analizira i konfiguriše sistem datoteka kontrolne grupe (cgroup). Za analizu se koristi konfiguraciona datoteka /etc/cgconfig.conf i parametri definisani u njoj.
cgredDaemon upravlja pravilima cgroup :)
cpufreqSkripta učitava module kernela za kontrolu frekvencije procesora.
cpuspeedMijenja CPU frekvenciju radi uštede energije. Mnogi moderni laptopi i desktop računari podržavaju ovu tehnologiju. Mogu ga koristiti korisnici sa procesorima Pentium-M, Centrino, AMD PowerNow, Transmetta, Intel SpeedStep, Athlon-64, Athlon-X2, Intel Core 2. Korisnicima laptopa se preporučuje da ovaj demon ostave uključen. Onemogućite ovaj demon ako želite da CPU koristi vrijednost fiksne frekvencije.
crond
cupsdPrint server. Kao pristup udaljenim štampačima, pristup lokalnim, pristup izvana lokalnim.
dbusInterprocesni komunikacioni sistem ( Širi analog CORBA i DCOP)
dbus-daemonDaemon za rad sa sabirnicom podataka
dhcpdDaemon za dinamičko određivanje TCP/IP konfiguracije za klijente.
dnsmasqDemon koji kešira DNS imena i pruža DHCP server.
earlysyslogPokretanje syslog demona omogućava evidentiranje.
ranoxdmPokretanje X servera
esoundZvučni demon, sa podrškom za daljinski pristup zvučnoj kartici
esdZvučni server za Menadžer prozora Enlightenment i GNOME okruženje. ESD miješa audio tokove nekoliko istovremeno pokrenutih programa i emituje rezultirajući tok na zvučnu karticu. Pripada esound paketu.
famFAM ( Monitor izmjene datoteka) - monitor promjene datoteka. FAM daemon se koristi u desktop okruženjima kao što su GNOME, Xfce i KDE za praćenje i prikaz promjena napravljenih u sistemu datoteka. Uključeno u fam paket. Ima opis na wiki.archlinux.org.
kontrola ventilatoraKontrola brzine rotacije CPU hladnjaka. Dio lm_senzora.
fbsetSkripta potrebna da bi framebuffer radio. Konfigurira svoj rad, uključujući učitavanje modula kernela.
festivalDemon koji omogućava da programi za čitanje teksta rade.
fingerdPruža mrežni interfejs za protokol prsta, za upotrebu sa komandom prsta.
firstbootUsluga je specifična samo za Fedoru. Pokreće se samo jednom nakon instalacije za nakon instalacije (postavljanje root lozinke, dodavanje korisnika, itd.). Može se onemogućiti nakon instalacije sistema.
ftpdServis za prenos fajlova preko FTP protokola.
funkcijeJedna od skripti za inicijalizaciju Arch Linux sistema. Opisuje funkcije koje poništavaju vrijednosti koje se koriste prilikom učitavanja u runlevel 3. Skripta se koristi samo ako korisnik koristi runlevel 5. To je dio initscripts-a.
gpmServer miša za konzolu i xterm. Sadrži u istoimenom pakovanju.
gpsdInterfejs za komunikaciju sa GPS opremom. Većina korisnika ga može isključiti.
Haldemon, haleHAL je skraćenica za sloj hardverske apstrakcije. Kritična usluga za prikupljanje informacija o opremi od različitih izvora. Preporučuje se da ga ostavite uključenim.
staniSkripta za isključivanje i ponovno pokretanje.
halt.localSkript čije naredbe moraju biti izvršene prije nego što započne isključivanje ili ponovno pokretanje.
healthdPostavlja opseg radne temperature matične ploče/procesora i brzine hladnjaka. To je jedna od komponenti lm_sensors.
heimdal-kdcCentar za distribuciju ključeva. Uključeno u heimdal paket.
httpdApache Web Server Daemon.
u tomeUnix program koji pokreće sve druge procese.

Podrazumevano, init demon ima 7 nivoa izvršenja, od kojih svaki pokreće unapred definisani skup sistemskih usluga.

Nivoi trčanja:
0 - Gašenje sistema
1 - Jednokorisnički način rada
2-5 - Višekorisnički načini rada sistema

Više detalja o nivoima pokretanja: manje /etc/inittab

inetdNadgleda mrežne zahtjeve. Ako je zahtjev valjan, pokreće pozadinski proces za servisiranje zahtjeva. Neki sistemi koriste proširenu verziju - xinetd
iptablesStandardni zaštitni zid u Linuxu. Posebno se preporučuje za direktnu vezu na Internet (putem kabla, DSL-a, T1). Ne preporučuje se ako dodatno koristite hardverski zaštitni zid (Netgear, Linksys, D-Link, itd.).
ip6tablesUsluga iptables radi koristeći IPv6 protokol. Ako ste onemogućili podršku za IPv6, onda ovu uslugu treba onemogućiti. U suprotnom, preporučuje se da ga ostavite uključenim.
irdaIrDA je potreban za podršku uređaja koji rade preko infracrvene ( laptop računari, PDA uređaji, mobilni telefoni, kalkulatori (napomena prevodioca: kalkulatori? o_O), itd. Većina korisnika ga može isključiti.
irexecdDemon za infracrveno. Dolazi sa lirc-utils.
irqbalance, irq_balancerU višeprocesorskim sistemima, koristi se za distribuciju prekida između procesora. Korisnici koji nemaju višeprocesorske računare/laptopove mogu onemogućiti ovaj demon/uslugu. Omogućavanje ove usluge na računaru sa jednim procesorom neće imati nikakvog efekta. Na novim računarima sa više od jednog procesora (Intel Core 2 Duo, AMD X2), ova usluga mora biti omogućena.
ivmanDaemon je odgovoran za automatsko montiranje uređaja u sistem (CD-ovi, USB diskovi, itd.)
jackd, jack-audio-connection-kitAudio server
jexecPruža podršku za pokretanje i pokretanje aplikacija u java - JAR. Biće dostupno ako instalirate Javu sa Sun-a. Ovo je opciono i može se onemogućiti.
džojstikSkripta koja učitava module kernela da bi džojstik radio.
kadmindDaemon za određivanje naloga koji imaju pristup Kerberos bazi podataka i njihov nivo pristupa. To je jedna od komponenti heimdal paketa.
kdumpkdump - prikaz podataka o tragovima kernela. Naredba prikazuje datoteke praćenja kernela proizvedene pomoću ktrace(1) u ljudskom čitljivom formatu. Podrazumevano se prikazuje datoteka ktrace.out u trenutnom direktorijumu.
kbdPodešavanje tastature u virtuelnom terminalu.
kdmKDM ( KDE Display Manager) je jedan od programa u kdebase paketu ( uključeno u KDE), koji pruža mogućnost prijave putem grafičkog interfejsa.
kpasswdDaemon za promjenu lozinki u Kerberos-u. To je jedna od komponenti heimdal paketa.
ksysguarddKDE demon za nadzor sistema.
libvirtdDaemon za upravljanje QEMU gostujućim mašinama i mrežama.
libvirt-guestsSkripta koja stavlja gostujuće operativne sisteme u stanje mirovanja prilikom isključivanja i budi ih prilikom učitavanja.
lircdLIRC daemon dešifruje signale koji dolaze iz infracrvenog porta. Dolazi sa lirc-utils.
lircmdLIRC demon koji prevodi signale miša. Dolazi sa lirc-utils.
lvm2-monitorDaemon za nadgledanje LVM (Upravljanje logičkim volumenom). Preporučeno ako koristite LVM, inače ga ostavite onemogućenog.
lpd“Line Printer Daemon” - protokol se koristi za upravljanje ispisom.
mdadmDaemon nadgleda MD uređaje (softverski RAID u Linuxu).
mdmonitor i mdmpdOva dva demona se koriste u sistemima za skladištenje sa RAID nizovima (redundantni niz jeftinih/nezavisnih diskova). Mdmonitor pokreće, zaustavlja i ponovo pokreće mdadm (nadgledanje i upravljanje višestrukim uređajima), uslugu softvera za praćenje i upravljanje RAID-om. Ovu uslugu trebate pokrenuti samo ako vaš sistem ima RAID uređaje.
sabirnica porukaInterprocesni komunikacioni servis za Linux. Kritična komponenta jer je povezan na D-BUS. Veoma je preporučljivo da ga ostavite uključenim.
microcode_ctl, microcode.ctlUsluga koja vam omogućava da ažurirate firmver Intel procesora (Pentium Pro, PII, Celeron, PIII, Xeon, Pentium 4 i tako dalje). Ažuriranja se snimaju svaki put kada preuzmete. Trebalo bi da bude omogućeno samo ako imate Intel procesor.
mcelog, mcelogdZa praćenje hardverskih problema u 64-bitnim Linux verzijama, zgodno je koristiti paket mcelog, koji analizira status MCE (Machine Check Exception) u AMD i Intel CPU-ima, što može ukazivati ​​na probleme s memorijom i CPU kešom, greške u razmjeni podataka između CPU i čipset matične ploče.
mpdMusic Player Daemon - muzički plejer imaju klijent-server arhitekturu koja pušta muziku iz određenog direktorija.
multipathdKoristi se za nadgledanje Multi-Path uređaja, odnosno disk jedinica kojima može pristupiti više od jednog kontrolera ili metoda.
mysqld, mysqlMySQL Database Daemon
nfsdProces zahtjeva NFS operatera za klijentske sisteme. Istorijski gledano, svaki nfsd demon podržava jedan po jedan zahtjev, tako da se pokreće nekoliko kopija.
netconsoleOmogućava vam da izvezete konzolu na drugu mašinu preko mreže. Može biti onemogućeno prema zadanim postavkama.
netfsTokom pokretanja, automatski montira sistem datoteka dostupnih preko mreže ( NFS, Samba i drugi). Većina korisnika desktopa i/ili laptopa može ga isključiti.
mrežeDaemon odgovoran za kreiranje i konfiguraciju sučelja lokalne mreže (LAN)
network-remotefsIsto kao i prethodni, ali dodatno podiže bežična sučelja
nfs, nfslockUsluge pružaju standardni mrežni sistem datoteka za Unix/Linux i BSD operativne sisteme. Ako trebate otvoriti pristup preko NFS-a, ostavite ga uključenim, inače ga možete isključiti.
nginxnginx je web server i mail proxy server koji radi na operativnim sistemima sličnim Unixu.
nmbdSamba se koristi. Pogledajte Sambu ispod.
nscdDemon servera koji kešira imena i lozinke koje koriste servisi kao što su NIS, NIS+, LDAP, hesiod. Može se isključiti.
nslcdlokalni demon usluge LDAP imena.
ntpdNTP daemon koji upravlja vremenskom sinhronizacijom preko mreže. xntpd je opremljen verzijom 3 NTP standarda.
ntpdate
oddjobdDemon oddjobd pruža uslugu com.redhat.oddjob na sabirnici poruka širom sistema. Svaka mogućnost koju oddjobd pruža je obezbeđena kao posebna D-Bus metoda.
openntpdServer i klijent za vremensku sinhronizaciju.
openvpnPruža siguran metod za kreiranje VPN-a. Za Dodatne informacije pogledajte OpenVPN. Može biti onemogućeno ako ga NetworkManager ne koristi.
pcmciaPruža podršku za pcmcia standardne kartice za proširenje. Obično se koristi samo u laptopovima.
pcscdPruža podršku za čitače kartica i pametne kartice. Ako nemate čitač kartica ili pametne kartice, možete isključiti ovu uslugu. Često dostupan na laptopovima.
portreserveSprečava pristup stvarnim portovima za različite RPC usluge i daje prioritet rezerviranim aplikacijama. Detaljnije informacije možete pronaći na man stranici portreserve. Preporučuje se da ga ostavite uključenim.
powerfailOva skripta se pokreće kada se detektuju poruke od UPS-a
postfixPostfix program za upravljanje poštom
pppdPoint-to-Point Protocol Daemon
pppSkripta za rad sa pppd demonom.
psacctUpravlja procesima Linux kernela. Bavi se monitoringom.
purge-kernelsSkripta za automatsko brisanje stara jezgra ( konfigurirano u /etc/zypp.conf)
quota_nldkvota netlink poruka demon
sirovoSkripta učitava neobrađene module uređaja.
rdiscDemon za otkrivanje mrežnog gatewaya, rdisc, djeluje kao klijent protokola ICMP Gateway Discovery Protocol. rdisc se poziva pri pokretanju kako bi se dobile mrežne tablice rutiranja sa zadanim gateway-ima.
rdateservis je potreban za sinhronizaciju računara sa serverom vremena prilikom pokretanja operativni sistem. Može se onemogućiti.
restorecondKoristi se za vraćanje konteksta i praćenje politike SELinuxa koja se odnosi na datoteke. Usluga nije potrebna, ali se preporučuje kada koristite SELinux.
rngdrngd - Provjera i prijenos nasumičnih podataka sa hardverskog uređaja na nasumični uređaj kernela. Doslovno se može prevesti kao demon koji provjerava i prima nasumične podatke od hardverskih uređaja za jezgro nasumičnih uređaja - kako je to pametno :), demon generatora slučajnih brojeva, na ruskom demon generiranja slučajnih brojeva.
rpcbindDaemon za upravljanje RPC-ovima koje koriste druge usluge (kao što su NFS ili NIS). Radi slično portmapu. Može se onemogućiti ako nema drugih usluga koje zavise od toga.
rpcgssd, rpcidmapd, rpcsvcgssdKoristi se NFS v4 (mrežni sistem datoteka). Onemogućite ako vam nije potreban NFS v4. http://ru.wikipedia.org/wiki/Network_File_System
rsyslogrsyslog služi za praktično prikupljanje i obradu sistemskih dnevnika i pozicionira se kao prošireni syslogd modul za Unix sistemi i Linux, koji se fokusira na sigurnost i pouzdanost, a također ima i napredno multi-threading. Rsyslog nudi širok spektar funkcija koje se mogu pronaći klikom na link - RSyslog karakteristike. http://www.rsyslog.com/module-Static_Docs-view-f-features.html.phtml
rsyncrsync ( Daljinska sinhronizacija) je program za operativne sisteme slične UNIX-u koji sinkronizira direktorije i datoteke na nekoliko mjesta dok minimizira promet, koristeći kodiranje podataka ako je potrebno. rsync je kreiran kao zamjena za rcp i scp. Čitaj više...
saslauthdDaemon servera SASL autentikacije. SASL ( Jednostavna autentifikacija i sigurnosni sloj) pruža mogućnost autentifikacije u protokolima zasnovanim na udaljenim vezama.
samba, smbdSamba server daemon.
sendmailPruža podršku za lokalni IMAP ili POP3 servis, ostavite ga uključenim. Usluga može biti korisna za obavještavanje o aktivnostima raznih demona/servisa, koji se mogu pružiti putem cron-a ili slanja pošte iz PHP skripti.
senzordDemon iz lm_sensors prikuplja informacije od različitih senzora.
senzoriSkripta koja, ako je potrebno, učitava potrebne module kernela za rad sa lm_sensors.
obalni zidSkripta za upravljanje Shorewall firewall-om.
vitakMenadžer za prijavu za X.
smartdSMART daemon nadgleda diskove. Koristi se za predviđanje kvarova i nadgledanje diskova ili problema sa čvrstim diskom. Obično korisnicima nije potreban ovaj demon, ali se ipak preporučuje (posebno za servere) da ga ostavite uključenim.
smbDaemon SAMBA je potreban za otvaranje zajedničkog pristup mreži na datoteke na Linuxu za Windows korisnici. Mora biti omogućeno ako imate Windows mašine na mreži kojima treba dati pristup datotekama.
smoltDaemon koji mjesečno šalje informacije radi prikupljanja statistike kako bi pomogao programerima. Statistike su dostupne svima. Korisnici koji žele pomoći programerima moraju omogućiti ovu uslugu.
snmpd, snmptrapdOmogućite SNMP podršku ( Jednostavan protokol za upravljanje mrežom), koji se može koristiti za upravljanje i konfigurisanje uređaja kao što su mrežna čvorišta, serveri, štampači itd. i tako dalje. Može se onemogućiti, ali može biti potrebno za pokretanje HP Print Services ( hplip).
lignjeSquid proxy daemon.
sshdSluša zahtjeve sigurne ljuske od klijenata. SSH omogućava drugim korisnicima da se prijave preko mreže sa drugog računara i pokreću aplikacije na vašem računaru, koje se obično koriste za udaljenu administraciju. Ovo može biti potencijalni sigurnosni rizik. Na radnim stanicama koje ne zahtijevaju daljinski pristup, preporučljivo je da ga isključite.
sssdSSSD ( System Security Services Daemon) omogućava pristup mehanizmima udaljene autentifikacije. Ovo briše granicu između mrežne i lokalne autentifikacije i omogućava korištenje različitih mehanizama. Informacije o korisnicima prenosi baza podataka koja se zove domena i može biti izvor podataka za udaljenu autentifikaciju. Dozvoljeno je više mehanizama, omogućavajući više servera da implementiraju različite prostore imena. Primljene informacije se dostavljaju eksternim aplikacijama pomoću standardnih NSS i PAM interfejsa.

SSSD radi kao skup usluga koje su nezavisne od aplikacije koja ih poziva, tako da aplikacije ne moraju da iniciraju sopstvene veze sa udaljenim domenima, niti moraju da znaju koji demon/usluga se koristi. Lokalno keširanje grupnih informacija i podataka o identitetu omogućava bez obzira na izvor podataka ( LDAP, NIS, IPA, DB, Samba itd.) nastaviti raditi van mreže, što općenito poboljšava produktivnost. SSSD može dozvoliti više provajdera istog tipa ( na primjer LDAP).

svnservesvn server daemon.
sysstatSysstat paket sadrži pomoćne programe za praćenje performansi sistema i korištenih resursa.
swapperKopira lokalni proces u swap prostor da popravi stranicu fizičke memorije za kernel. Takođe se zove sched.
syslogdSistemski proces za snimanje raznih sistemskih poruka.
syncdPovremeno se sinhronizuje sa sistemska memorija uspostavljena sistemske datoteke.
syslog-ngDaemon čuva sistemske dnevnike.
udev-postSistemski upravitelj uređaja koji koristi udev. Podrazumevano, udev podržava veliki broj pravila, ponašanja i dozvola za uređaje. Koristeći ovu uslugu možete bezbedno upravljati pravilima. Preporučuje se da ga ostavite uključenim.
vhandOslobađa memorijske stranice za upotrebu od strane drugih procesa. Poznat i kao "demon za krađu stranica".
vsftpdvsftpd ( Vrlo siguran FTP Daemon - Vrlo siguran FTP Daemon) - FTP server koji podržava IPv6 i SSL.

vsftpd se standardno koristi na mnogim operativnim sistemima sličnim UNIX-u, također služi službenim spremištima ftp.openbsd.org, ftp.freebsd.org, ftp.debian.org, ftp.redhat.com i koristi se na službenom FTP kernelu Linuxa server.

webminUsluga upravljanja sistemom putem pretraživača ( web interfejs).
winbindUsluga koja vam pomaže da razlikujete na mreži imena računara ispod Windows kontrola. Može se koristiti za kontrolu račune Windows sa Linux nalozima. Obično većina korisnika ne treba ovaj demon i može ga ostaviti onemogućenog.
wpa_supplicantServis je potreban za rad bežične kartice, koji se koriste za povezivanje na pristupne tačke ( VPN ili Radius serveri) zahtijevaju WPA enkripciju. Većina korisnika ga može ostaviti onemogućenim.
xfsdSluži X11 fontove za udaljene klijente.
yamservis za ažuriranje RPM paketa instaliranih na sistemu. Koristi se prvenstveno u Fedora Core.
ypbindServis se koristi za NIS autentifikaciju preko mreže. Ako se NIS autentifikacija ne koristi, možete je onemogućiti.
zvbidUsluga koja omogućava pristup sa V4L ili V4L2 uređaja na nekoliko aplikacija. Na primjer, kartica za snimanje Hauppage-a može koristiti ovu uslugu, u drugim slučajevima se može isključiti.

Ako je gornja lista UNIX/Linux demona/usluga ne radi na vašem sistemu, da biste dobili pomoć u vezi sa takvom uslugom koristite man name_daemon, a ako tamo nema informacija o pokrenutom servisu, onda pisite u komentarima i zajedno ćemo prikupiti informacije o takvoj usluzi i dodati na listu UNIX/Linux demona/usluga datu ovdje.

Ako u pomoći man name_daemon nema opisa usluge, onda demon/usluga može biti virus, u ovom slučaju potražite izvršnu datoteku u kojoj je name_daemon i pošaljite je na analizu u virusnu laboratoriju - to se može učiniti bez instaliranja antivirusnog programa putem web sučelja, na primjer http://vms.drweb.com/online/, http://www.esetnod32.ru/.support/scanner/ ili https://www.virustotal.com/.

Automatsko učitavanje UNIX/LINUX demona/usluga

U nastavku su dati detaljna uputstva za upravljanje pokretanjem demona/servisa u najčešćim modifikacijama/verzijama OS-a nalik UNIX-u kao što su CentOS Linux, Debian Linux i OS tipa BSD. U drugim modifikacijama/verzijama OS-ova sličnih UNIX-u, upravljanje automatskim učitavanjem demona/usluga ima sličnu proceduru, iako može imati neke manje ili čak radikalne razlike!

Automatsko učitavanje demona/usluga na CentOS Linuxu

CentOS ima definisane nivoe opterećenja po principu System V i farbani u datoteci /etc/inittab, čitaj manje /etc/inittab .

Direktoriji za svaki nivo učitavanja su imenovani i smješteni u /etc/rc.d direktoriju.

U svakom od direktorija koji odgovara određenom nivou učitavanja postoje skripte, odnosno linkovi na njih, sa uputstvima za pokretanje demona/programa/servisa, a same skripte sa uputstvima za pokretanje demona/programa/servisa nalaze se u /etc direktorij /rc.d/init.d

Primjer skripti koje kontroliraju pokretanje demona/programa/servisa može se vidjeti pokretanjem manje /etc/rc.d/init.d/mysqld ili manje /etc/rc.d/init.d/sshd . Obično se skripte koje kontrolišu pokretanje demona/programa/servisa pojavljuju u /etc/rc.d/init.d/ i povezane su sa direktorijumima na nivou pokretanja nakon instalacije softvera, i njihov status je isključen/uključen za svaki nivo trčanja kontrolira uslužni program chkconfig.

Možete vidjeti koji će demoni biti pokrenuti na različitim nivoima pokretanja pomoću naredbe chkconfig --list. Možete omogućiti da se demon automatski pokreće na bilo kojem od nivoa pokretanja koristeći naredbu chkconfig --level 345 mysqld on i isključite chkconfig --level 345 mysqld respektivno, chkconfig –del service_name za brisanje usluge, chkconfig service_name uključeno |isključeno da omogućite ili onemogućite uslugu na svim nivoima.

Što se tiče dodavanja skripti za pokretanje, onda Za automatsko preuzimanje skripte opslužuje /etc/rc.local, u /etc/rc.local dovoljno je dodati punu putanju skripti, na primjer: /root/scripts/script.sh ili /bin/sh /root/scripts/script.sh . Ako nakon instaliranja softvera nema skripte za kontrolu pokretanja u /etc/rc.d/init.d/ željeni program, tada je lakše dodati njegovu liniju za inicijalizaciju/pokretanje u /etc/rc.local.

Postoji uslužni program koji se zove ntsysv za upravljanje nivoima pokretanja, man ntsysv.

Automatsko učitavanje demona/usluga na Debian Linuxu

Imenovani su i direktoriji za svaku razinu pokretanja u Debian Linuxu rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d ali, nalazi ne više u /etc/rc.d direktoriju, ali u korijenu direktorija /etc

Postojale su skripte sa uputstvima za pokretanje demona/programa/servisa, odnosno simboličke veze ka njima nalaze se u direktorijumima /etc/rc?.d gde je znak? odgovara nivou opterećenja, i Same skripte sa uputstvima za pokretanje demona/programa/servisa nalaze se u direktorijumu /etc/init.d. Primjer takvog preskakanja, na osnovu kojeg možete napisati svoj vlastiti, možete pronaći u datoteci less /etc/init.d/skeleton.

U nastavku ćemo dati objašnjenje servisnih informacija koje se koriste u predlošku skripte /etc/init.d/skeleton:

  • Pruža: Opisuje objekte koje pruža ova skripta (arg1, agr2, ...) na takav način da kada se skripta pokrene s argumentom start, smatra se da ovi objekti postoje, a samim tim i druge skripte u init-u koje zahtijevaju postojanje ovih objekti će moći početi u kasnijoj fazi. Obično možete koristiti ime skripte kao objekt, ali možete koristiti i ime usluge koju zamjenjuje. Virtualni objekti ovdje nisu naznačeni. Definirani su izvan init.d skripti
  • Obavezno-Početak: Određuje objekte koji moraju postojati za pokretanje skripte. Ako je potrebno, možete koristiti virtuelne objekte kako je opisano u nastavku. Ako objekti nisu specificirani, tada se skripta može pokrenuti odmah nakon pokretanja, bez potrebe za povezivanjem lokalnih sistema datoteka, pokretanjem sistemskog dnevnika itd.
  • Obavezno zaustavljanje: Određuje objekte koje koristi usluga, koje pruža skripta. Objekt koji pruža ova skripta mora se završiti prije nego što se objekti navedeni ovdje dovrše kako bi se izbjegli sukobi. Obično su ovdje naznačeni isti objekti kao u Required-Start
  • Trebalo bi početi: Određuje objekte koji, ako postoje, trebaju biti pokrenuti prije usluge koju pruža ova skripta. Ovo omogućava slabe ovisnosti koje ne uzrokuju neuspjeh usluge ako objekti nisu dostupni. Virtuelne objekte možete koristiti po potrebi, kao što je opisano u nastavku.
  • Treba prestati: Određuje objekte nakon kojih, ako postoje, treba zaustaviti ove usluge. Obično su ovdje navedeni isti objekti kao i u Should-Start
  • Zadani početak: Postavlja nivoe pokretanja na kojima bi skripta trebala biti pokrenuta (zaustavljena) prema zadanim postavkama. Na primjer, ako uslugu treba pokrenuti samo na nivoima 3, 4 i 5, navedite "Default-Start: 3 4 5" i "Default-Stop: 0 1 2 6".
  • Kratki opis: Određuje kratak opis radnje skripte. Ograničeno na jednu liniju.
  • Opis: Određuje detaljniji opis radnje skripte. Može biti u više redova, u kom slučaju svaki red opisa mora početi znakom # nakon kojeg slijedi tabulator ili najmanje 2 znaka za razmak. Opis završava prije reda koji ne odgovara ovom uvjetu.
  • X-Početak-prije, X-zaustavljanje-poslije: Određuje inverzne zavisnosti koje imaju isto značenje kao da su navedene u treba-start i treba-stop u paketima navedenim ovdje.

Ključne riječi pruža, potrebno i treba- važne su za praćenje ovisnosti. Ostalo se ne koristi. Program podrazumevano koristi nivoe pokretanja za organizovanje skripti ( na primjer, insserv) kako biste pratili koji direktorij rc?.d ažurirati kada se usluga prvi put doda i treba da odražava svrhu usluge. Evo nekih "virtuelnih" objekata:

  • $local_fs- Svi lokalni sistemi datoteka su povezani. Sve skripte koje pišu u /var/ trebaju ovisiti o ovome osim ako već zavise od $remote_fs
  • $network- mreža niskog nivoa, tj. mrežne kartice, može značiti da radi PCMCIA
  • $named- Pretpostavlja se da su pokrenuti demoni koji mogu pružiti razlučivanje imena domena. Na primjer, DNS, NIS+ ili LDAP
  • $portmap- Daemoni koji pružaju SunRPC/ONCRPC uslugu mapiranja portova kako je navedeno u 1833 (ako postoji)
  • $remote_fs- Svi fajl sistemi su povezani. Skripte koje se moraju pokrenuti tokom gašenja sistema prije nego što se signal za ukidanje pošalje svim procesima moraju ovisiti o $remote_fs.
  • $syslog- sistemski dnevnik funkcionira
  • $time- postavljeno je ispravno sistemsko vrijeme, na primjer, ntp ili rdate, ili RTC
  • $all- Pokreće skriptu što je moguće posljednje

Automatsko učitavanje demona u Debian Linuxu kontrolira se pomoću uslužnog programa update-rc.d, detaljno opisanog u man update-rc.d . Uslužni program update-rc.d ne kreira niti briše ništa osim simboličkih veza u /etc/rc?.d na takozvane init skripte koje kontrolišu početak i zaustavljanje daemon/program/service, koje se nalaze u /etc/init.d direktorijumu.

Ako je skripta za automatsko pokretanje demona/servisa kreirana ručno pomoću šablona /etc/init.d/skeleton, onda ga prvo morate smjestiti u direktorij /etc/init.d, a zatim kreirati simboličku vezu za ovu skriptu u direktoriju /etc/rc?.d, gdje? - broj nivoa pokretanja ( nivo opterećenja sistema). Simbolička veza bi trebala izgledati ovako: S№№script_name, gdje je br. broj naloga za pokretanje, ako želite da ostavite simboličku vezu, ali ne i da privremeno pokrenete skriptu, tada simboličku vezu treba modificirati u ovo stanje KNbr ime_skripte.

Prije nego što se može obraditi bilo koji nivo izvršenja, prvo se izvršavaju sve skripte koje počinju slovom ". K" (ove skripte zaustavljaju usluge), a zatim se izvršavaju sve skripte koje počinju slovom " S" (ove skripte pokreću usluge). Dvocifreni broj iza slova "S" ili "K" označava redosled kojim će se skripte izvršavati. Prvo se izvršavaju skripte s manjim brojem, na primjer: S01script_name će započeti prvi, a S09script_name će biti pokrenut deveti.

Za kreiranje simboličke veze koristite program ln -s file1 file2 , Gdje ključ -s govori o stvaranju simboličke veze, file1 ukazuje na postojeću datoteku, i file2 naziv nove veze, ali umjesto ručnog kreiranja simboličkih veza, možete koristiti uslužni program update-rc.d, koji je dizajniran posebno za kreiranje simboličkih veza u /etc/rc?.d do skripti iz /etc/init. d.

Sintaksa update-rc.d je ovakva: dodavanje sa zadanim parametrima update-rc.d defaults , uklanjanje i zaustavljanje daemon/service update-rc.d -f ukloniti && update-rc.d zaustaviti 20 2 3 4 5 . Početak i zaustavljanje demona/usluga se može kontrolisati preko skripte start|stop|restart imena usluge.

Iskreno, update-rc.d je relativno neproziran uslužni program, Uslužni program chkconfig je praktičniji, koji prema zadanim postavkama nije dostupan na Debian Linuxu. Da bismo ga instalirali, moramo dodati dodatna spremišta, preporučljivo je koristiti samo službena spremišta Debian Linux paketa, na kraj liste vi /etc/apt/sources.list, primjer sources.list u Debian GNU/Linux 6.0.5 _Squeeze_ - Službeni i386:

# # deb cdrom:/ squeeze main deb cdrom:/ squeeze main deb http://security.debian.org/ squeeze/updates glavni deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates , ranije poznat kao "nestabilan" # Mrežno ogledalo nije odabrano tokom instalacije. Sljedeći unosi # su dati kao primjeri, ali biste ih trebali izmijeniti na odgovarajući način # za vaš ogledalo po izboru. # # deb http://ftp.debian.org/debian/ squeeze-updates main # deb-src http://ftp.debian.org/debian/ squeeze-updates glavni deb http://backports.debian.org/ debian-backports squeeze-backports glavni deb http://ftp.debian.org/debian/ squeeze main #deb http://repo.yandex.ru/debian squeeze glavni doprinos #deb http://mirror.yandex.ru/ debian squeeze main contrib #deb http://mirror.yandex.ru/debian-multimedia/ squeeze main contrib

Zatim ažurirajte listu paketa sa apt-get update i instalirajte chkconfig apt-get install chkconfig , a kao alternativu možete dodatno instalirati sysv-rc-conf apt-get install sysv-rc-conf . Kako koristiti uslužni program chkconfig je već spomenuto, dodatno pogledajte man sysv-rc-conf i man chkconfig.

Kada dodajete Debian Linux spremišta, imajte na umu pravila softvera koja se primjenjuju na svako od područja kao što su glavno, doprinosno i neslobodno:

  • main: - Paketi u ovom području dio su kompletne Debian Linux distribucije i nijedan od paketa u glavnom području ne zahtijeva softver izvan ovog područja da bi u potpunosti funkcionirao. Svako može slobodno koristiti, dijeliti, modificirati i distribuirati pakete iz glavnog područja.
  • doprinos: - Paketi iz ove oblasti mogu se slobodno distribuirati, ali neke od njihovih zavisnosti možda nisu besplatne.
  • neslobodan: - sadrži pakete koji se ne mogu besplatno distribuirati prema DSFG-u, a paketi iz tog područja mogu sadržavati greške koje se ne uzimaju u obzir prilikom razvoja i ažuriranja Debian Linuxa.

Za automatsko pokretanje drugih skripti i programa u Debian Linuxu, možete koristiti stari dobri /etc/rc.local.

Administratori sistema i redovni korisnici Linuxa često moraju da pogledaju datoteke evidencije da bi rešili probleme. U stvari, ovo je prva stvar koju svaki administrator sistema treba da uradi kada dođe do greške u sistemu.

Sam operativni sistem Linux i pokrenute aplikacije generišu različite tipove poruka koje se evidentiraju u različitim datotekama evidencije. Linux koristi poseban softver, datoteke i direktorije za pohranjivanje log datoteka. Znajući koje datoteke sadrže evidenciju kojih programa pomoći će vam da uštedite vrijeme i brže riješite problem.

U ovom članku ćemo pogledati glavne dijelove Linux sistema za evidentiranje, datoteke dnevnika, kao i uslužne programe pomoću kojih možete pregledati Linux dnevnike.

Većina fajlova Linux logovi se nalaze u folderu /var/log/. Možete ispisati log fajlove za vaš sistem koristeći komandu ls:

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

U nastavku ćemo pogledati 20 različitih Linux log datoteka koje se nalaze u /var/log/ direktoriju. Neki od ovih dnevnika nalaze se samo u određenim distribucijama, na primjer dpkg.log se nalazi samo na Debian sistemima.

/var/log/messages- sadrži globalne sistemske logove Linuxa, uključujući i one koji se snimaju pri pokretanju sistema. Nekoliko tipova poruka je evidentirano u ovom dnevniku: mail, cron, razne usluge, kernel, autentikacija i druge.

/var/log/dmesg- sadrži poruke primljene od kernela. Zapisuje mnoge poruke tokom faze pokretanja, one prikazuju informacije o hardverskim uređajima koji su inicijalizirani tokom procesa pokretanja. Možete reći da je ovo još jedan dnevnik Linux sistema. Broj poruka u dnevniku je ograničen, a kada je datoteka puna, sa svakom novom porukom stare će biti prepisane. Poruke iz ovog dnevnika možete pregledati i pomoću naredbe dmseg.

/var/log/auth.log- sadrži informacije o autorizaciji korisnika u sistemu, uključujući korisničke prijave i mehanizme provjere autentičnosti koji su korišteni.

/var/log/boot.log- Sadrži informacije koje se evidentiraju kada se sistem pokrene.

/var/log/daemon.log- Uključuje poruke od raznih pozadinskih demona

/var/log/kern.log- Sadrži i poruke iz kernela, korisne u rješavanju grešaka u prilagođenim modulima ugrađenim u kernel.

/var/log/lastlog- Prikazuje informacije o posljednjoj sesiji svih korisnika. Ovo nije tekstualna datoteka i morate koristiti naredbu lastlog da biste je vidjeli.

/var/log/maillog /var/log/mail.log- evidencije e-mail servera koji radi na sistemu.

/var/log/user.log- Informacije iz svih dnevnika na nivou korisnika.

/var/log/Xorg.x.log- Dnevnik poruka X servera.

/var/log/alternatives.log- Informacije o radu programa update-alternative. Ovo su simboličke veze na zadane komande ili biblioteke.

/var/log/btmp- dnevnik Linux fajl sadrži informacije o neuspjelim pokušajima prijave. Za pregled datoteke zgodno je koristiti naredbu last -f /var/log/btmp

/var/log/cups- Sve poruke vezane za štampanje i štampače.

/var/log/anaconda.log- sve poruke snimljene tokom instalacije se čuvaju u ovoj datoteci

/var/log/yum.log- Zapisuje sve informacije o instalacijama paketa koristeći Yum.

/var/log/cron- Kad god Cron daemon započne izvršavanje programa, on zapisuje izvještaj i poruke iz samog programa u ovu datoteku.

/var/log/secure- sadrži informacije vezane za autentifikaciju i autorizaciju. Na primjer, SSHd ovdje bilježi sve, uključujući neuspjele pokušaje prijave.

/var/log/wtmp ili /var/log/utmp - Linux sistemski dnevnici , sadrže dnevnik korisničkih prijava. Koristeći komandu wtmp možete saznati ko je i kada prijavljen.

/var/log/faillog- dnevnik linux sistemi, sadrži neuspjele pokušaje prijave. Koristite naredbu faillog za prikaz sadržaja ove datoteke.

/var/log/mysqld.log- Linux log fajlovi sa MySQL servera baze podataka.

/var/log/httpd/ ili /var/log/apache2- log datoteke linux11 Apache web servera. Dnevnici pristupa su u datoteci access_log, a dnevnici grešaka su u error_log

/var/log/lighthttpd/ - linux logs lighttpd web server

/var/log/conman/- ConMan klijentske log fajlove,

/var/log/mail/- ovaj direktorij sadrži dodatne evidencije mail servera

/var/log/prelink/- Prelink program povezuje biblioteke i izvršne datoteke da ubrzate proces preuzimanja. /var/log/prelink/prelink.log sadrži informacije o .so datotekama koje je program izmijenio.

/var/log/audit/- Sadrži informacije koje generiše auditd demon.

/var/log/setroubleshoot/ - SE Linux koristi demon setroubleshootd (SE Trouble Shoot Daemon) za prijavu sigurnosnih problema. Ovaj dnevnik sadrži poruke iz ovog programa.

/var/log/samba/- sadrži informacije i zapise sa Samba servera datoteka na koji se koristi dijeljeni folderi Windows.

/var/log/sa/- Sadrži .cap datoteke koje prikuplja Sysstat paket.

/var/log/sssd/- Koristi ga bezbednosni demon sistema koji upravlja daljinski pristup na direktorije i mehanizme provjere autentičnosti.

Pregledavanje dnevnika u Linuxu

Za pregled dnevnika na Linuxu zgodno je koristiti nekoliko uslužnih programa komandne linije Linux strings. To može biti bilo ko uređivač teksta, ili poseban uslužni program. Najvjerovatnije će vam trebati prava superkorisnika za pregled dnevnika u Linuxu. Evo komandi koje se najčešće koriste u ove svrhe:

  • zgrep
  • zmore

Neću ulaziti u detalje o svakoj od ovih naredbi, jer je većina njih već detaljno razmotrena na našoj web stranici. Ali dat ću nekoliko primjera. Pregledavanje Linux logova je vrlo jednostavno:

Gledamo dnevnik /var/log/messages, sa mogućnošću skrolovanja:

manje /var/log/messages

Pogledajte Linux logove u realnom vremenu:

rep -f /var/log/messages

Otvorite dmesg log fajl:

mačka /var/log/dmesg

Prvi redovi dmesg-a:

glava /var/log/dmesg

Greške šaljemo samo iz /var/log/messages:

grep -i greška /var/log/messages

Osim toga, možete pregledati dnevnike na Linuxu pomoću grafičkih uslužnih programa. Sistemski program Log Viewer se može koristiti za zgodno gledanje i praćenje sistemskih logova na laptopu ili PC sa Linuxom.

Program možete instalirati na bilo koji sistem sa instaliranim X serverom. Također, bilo koji grafički uređivač testova može se koristiti za pregled dnevnika.

zaključci

U direktoriju /var/log možete pronaći sve potrebne informacije o radu Linuxa. Iz današnjeg članka ste naučili dovoljno da znate gdje tražiti i šta tražiti. Sada vam pregled logova u Linuxu neće stvarati probleme. Ako imate pitanja, pitajte u komentarima!

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

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

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

"Na Božić, kada je Shimomura otišao na skijanje u Nevadu za praznike, neko (već znamo ko) je provalio u njegov super-sigurni kućni računar u Solana Biču u Kaliforniji i počeo da kopira svoje fajlove - stotine poverljivih fajlova. Jedan diplomirani student u Supercomputing Centru u San Diegu, gdje je Shimomura radio, primijetio je promjene u sistemskim "log" fajlovima i brzo shvatio šta se dešava. Sve je to bilo moguće zahvaljujući činjenici da je Shimomura instalirao program na svom računaru koji automatski kopira unose iz „dnevnika“ na rezervni računar u San Dijegu. Student je nazvao Shimomuru, koji je požurio kući da pregleda ukradene stvari."

Ovdje neću iznositi cijelu priču, važno nam je samo napomenuti da je analiza protokola rada sistema poslužila kao osnova za uspjeh istrage o nedoličnom ponašanju. Detaljniji opis kako se takve istrage provode možete pronaći u članku. Ali da biste mogli iskoristiti rezultate evidentiranja, morate razumjeti kako se kreiraju protokoli, gdje se pohranjuju i šta se iz njih može izdvojiti. Ovaj članak je posvećen razmatranju svih ovih pitanja.

Kako se generišu poruke za protokol

Moramo početi s činjenicom da prilikom kreiranja programa u jeziku C, programeri imaju priliku, ako je potrebno, ubaciti pozive na posebne funkcije openlog, setlogmask, syslog I closelog, uključen u standardnu ​​biblioteku jezika C. Ove funkcije se koriste za slanje poruka o određenim događajima tokom izvršavanja programa posebnom sistemskom demonu syslogd, vođenje sistemskog protokola. Funkcija openlog uspostavlja vezu sa demonom syslogd, funkcija syslog generira određenu poruku koja se snima u protokolu i funkciju closelog zatvara otvorenu vezu.

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

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

Tabela 1.

Numerička vrijednostSimbolDekodiranje
0 kern Kernel poruke
1 korisnik Dizajniran za razne poruke iz korisničkih programa.(poruke iz korisničkih programa)
2 mail Poruke od poštanski sistem.
3 daemon Poruke onih sistemskih demona koji, za razliku od FTP-a ili LPR-a, nemaju kategorije posvećene posebno njima.
4 auth Sve što se odnosi na autorizaciju korisnika, kao što je prijava i su (sigurnost/pravo pristupa)
5 syslog Sistem za evidentiranje može sam zabilježiti poruke.
6 lpr Poruke iz sistema za štampanje.
7 vijesti Poruke sa servera vesti. (Netnews, USENET)
8 uucp UNIX-to-UNIX Copy Protocol poruke. To je dio istorije UNIX-a i vjerovatno vam nikada neće trebati (iako se dio pošte još uvijek isporučuje putem UUCP-a).
9 cron Poruke iz sistemskog planera.
10 authpriv Isto kao i auth, ali poruke u ovoj kategoriji se upisuju u datoteku koju samo neki korisnici mogu čitati (možda je ova kategorija odabrana zato što poruke koje joj pripadaju mogu sadržavati jasne korisničke lozinke koje ne bi trebali vidjeti stranci, te stoga datoteke dnevnika moraju imati odgovarajuća prava pristupa).
11 ftp Koristeći ovu kategoriju, možete konfigurirati svoj FTP server tako da bilježi svoje aktivnosti.
od 12 do 15 časova - Rezervisano za sistemsku upotrebu.
od 16 do 23local0 - lokalni7 Rezervirane kategorije za korištenje od strane administratora sistema. Kategorija local7 se obično koristi za poruke generirane tokom faze pokretanja sistema.

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

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

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

Tabela 2.

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

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

Praćenje terena PRI Poruka uključuje sljedeća polja:

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

Vrijeme (lokalno!) je upisano u formatu: 13. februar 21:12:06. Ako je broj dana jednocifreni, onda se ispred njega stavlja dodatni razmak (ne 0!). Imajte na umu da u datumu nema godine i zone, što se mora uzeti u obzir prilikom organiziranja dugoročnog skladištenja log datoteka. Da bi vrijeme u poruci bilo ispravno, ono mora biti sinkronizirano (na primjer, korištenjem NTP protokola).

Ime hosta je uključeno u poruku kako bi se izbjegla zabuna između poruka sa različitih hostova, budući da, kao što će se vidjeti u nastavku, može doći do evidentiranja na jednom od namjenskih računara na mreži. Ime hosta je jednostavno ime mreže računara, bez navođenja domena. Ako računar ima nekoliko interfejsa sa različitim IP adresama, onda se bilo koji od njih može koristiti kao ime ili adresa hosta.

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

Obrada poruka od strane syslogd demona

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

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

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

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

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

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

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

Vrijednosti polja "nivo" mogu biti:

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

Navođenje određene vrijednosti u polju "nivo" tumači se kao "sve vrijednosti ovom nivou i više". Ako trebate snimiti poruke samo jednog nivoa, tada morate staviti znak jednakosti ("=") ispred navedene vrijednosti. Ako želite snimiti poruke svih nivoa osim navedenog, tada staviti ispred naziva nivoa Uzvičnik("!"). Postavljanje ova dva znaka u isto vrijeme tumači se kao „ne snimajte poruke navedenog ili višeg nivoa“.

Nema razlike između velikih i malih slova u polju "selektor". Možete koristiti i brojeve (pogledajte /usr/include/syslog.h). Pored kategorija navedenih u Tabeli 1, možete naznačiti mark(redovne vremenske oznake) i sigurnost(zastarjeli sinonim za auth). Pored vrijednosti prioriteta navedenih u tabeli 2, možete koristiti upozoriti(sinonim za upozorenje), greška(sinonim za err), panika(sinonim za emerge).

Kada se pronađe podudaranje između kategorije i nivoa primljene poruke i jednog od obrazaca u polju "selektor" nekog niza, syslogd obrađuje zapis u skladu sa radnjom navedenom u polju „akcija“ ovog reda.

Polje "akcija" može sadržavati

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

Najčešće, polje “action” i dalje sadrži naziv datoteke evidencije. Štaviše, možete staviti znak minus ("-") ispred imena datoteke, što će značiti da sistem može pohraniti datoteku u keš bafer, umjesto da je isprazni nakon upisivanja svake poruke na disk. To, naravno, ubrzava rad, posebno ako se u protokol upisuje mnogo velikih poruka, ali može dovesti do gubitka nekih poruka u slučaju neočekivanog pada sistema, odnosno upravo kada su takve poruke posebno potrebne. . Takođe možete navesti štampač - /dev/lp0 - kao uređaj u polju "akcija". Ovu opciju „akcije“ preporučljivo je koristiti u slučajevima kada su u pitanju posebno važni sistemi. Hakeri ne mogu izbrisati ili promijeniti protokole koji su ispisani, tako da je ovo dobra upotreba za stari matrični pisač.

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

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

Osim toga, ako polje "selektor" navodi (odvojeno tačkom i zarezom) nekoliko parova "kategorija.nivo", onda sljedeći parovi mogu nadjačati prethodne. Možete vidjeti primjer takvog otkazivanja u listi datoteka ispod /etc/syslog.conf: Sve poruke čiji je nivo jednak ili viši od info upisuju se u /var/log/messages fajl, ali poruke iz mail, authpriv i cron kategorija se preskaču (ne pišu).

Listing 1. File /etc/syslog.conf sa sistema izgrađenog na Red Hat Linux 7.1 distribuciji (samo sam preveo komentare sadržane u ovoj datoteci na ruski i podebljao pravila).
# Odštampajte sve poruke iz kernela na konzolu. #kern.* /dev/console# Zabilježite sve poruke na info razini ili više, # osim poruka mail sistema koje sadrže osjetljive # informacije iz poruka za autentifikaciju i poruka cron demona. *.info;mail.none;authpriv.none;cron.none /var/log/messages# Napišite poruke koje sadrže osjetljive # informacije o autentifikaciji u zasebnu datoteku, bez obzira na njihov nivo. authpriv.* /var/log/secure# Sve poruke iz mail sistema takođe treba posebno snimati. mail.* /var/log/maillog# Zabilježite akcije cron demona. cron.* /var/log/cron# Hitne poruke treba odmah # primiti svi korisnici sistema *.emerg*# Pišite poruke od servisa za vijesti na nivou kritičnosti i više u poseban fajl. uucp,news.crit /var/log/spooler# Poruke izdate tokom faze pokretanja se kopiraju u datoteku boot.log local7.* /var/log/boot.log
Kao što vidite, većina poruka se jednostavno upisuje u različite datoteke dnevnika koje se nalaze u direktoriju /var/log ili njegove poddirektorije, pri čemu je datoteka glavnog sistemskog dnevnika u Red Hat Linux-u /var/log/messages. Ne uključuje samo poruke iz kategorija mail, authpriv i cron (za koje su odvojene datoteke). Hajde da pogledamo ovaj fajl i upotrebimo njegov primer da vidimo šta je zabeleženo u fajlovima evidencije.

Dnevnik /var/log/messages

Naravno, ovdje nije moguće govoriti o sadržaju svakog reda ovog fajla. Kako bi čitatelj mogao dobiti predstavu o tome koje informacije se mogu naći u protokolu, predstavljamo pojedinačne redove poruke sa vrlo kratkim komentarima.

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

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

Prvo, vrijedi napomenuti da ako vaš računar ne radi 24 sata dnevno, već je isključen noću, onda u ovoj datoteci možete pronaći zapise o nekoliko "ciklusa rada" počevši od pokretanja računara i završavajući ga isključivanjem. Takav ciklus počinje porukom o pokretanju demona logiranja (ovo je razumljivo, poruke nisu snimljene prije nego što su pokrenute):

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

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

    Unosi u drugim datotekama protokola koji se spominju u datoteci imaju približno istu strukturu /etc/syslog.conf.

    logger i tailf komande

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

    • -i- uključite broj procesa u poruku
    • -s- duplikat poruke za stderr
    • -d- koristite način rada datagrama prilikom slanja poruka (umjesto uobičajenog streaminga)
    • -f ime datoteke- sačuvaj poruku na specificirani fajl(podrazumevano je /var/log/messages)
    • -p objekt.nivo- postavite kategoriju i prioritet poruke (podrazumevano: user.notice)
    • -t TAG - postavite polje TAG
    • -u utičnica- pošaljite poruku na specificiranu utičnicu umjesto da pozivate syslogd
    • MSG- Tekst poruke

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

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

    Mrežno evidentiranje

    Kao što je navedeno, sistemske poruke za evidentiranje mogu biti poslane od strane demona syslogd udaljenom hostu. Ali tamo ga neko mora prihvatiti. Ispostavilo se da isti demon to radi syslogd, radi na ovom udaljenom hostu. Preciznije, syslogd na bilo kom računaru može slušati ne samo /dev/log socket (prihvatajući tako poruke iz lokalnih izvora), već i port 514/UDP, koji osigurava da se poruke primaju sa drugih računara na lokalnoj mreži (i njihovo naknadno snimanje u lokalni fajl). Ovo omogućava kreiranje „logging servera“, što može biti veoma zgodno za administratora sistema (svi događaji na mreži se prate na jednom mestu), a takođe povećava bezbednost mreže, jer se poruke o hakerskom prodoru na jedan od Ovaj haker ne može odmah prijaviti da su mrežni domaćini uklonjeni iz protokola.

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

    Prvo, pošto se port 514/UDP koristi za slanje i primanje poruka preko mreže, mora biti dostupan na oba računara (klijent i server). Da biste to učinili u datoteci /etc/services linija mora biti prisutna na oba računara
    syslog 514/udp
    Ako je takva linija u /etc/services odsutan, syslogd ne može niti primati poruke niti ih slati na mrežu jer ne može otvoriti UDP port. Ukoliko dođe do takve situacije, syslogd odmah prestaje pisati bilo kakve poruke, čak i u lokalni dnevnik. U isto vrijeme, kako ekipa pokazuje ps, ostaje u memoriji i čak pohranjuje poruke u neke međuspremnike, jer ako linija " syslog 514/udp" vrati u datoteku /etc/services na klijenta, a zatim kod najmanje Neke od "nedostajućih" poruka i dalje se pojavljuju u dnevniku (nakon ponovnog pokretanja syslogd).

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

    Pa, i treće, postavke u datotekama moraju biti ispravljene u skladu s tim /etc/syslog.conf na oba računara. Na primjer, ako želite da preusmjerite sve poruke na server za evidentiranje, trebate upisati datoteku na klijentskom računaru /etc/syslog.conf red ovako:
    *.* @ime hosta
    Ako tokom početka demona syslogd server će biti nedostupan (na primjer, trenutno je isključen s mreže) ili ga neće biti moguće pronaći po imenu (DNS usluga nije radila ispravno) syslogd napravi još 10 pokušaja da pronađe server i samo ako nakon toga server ne može biti pronađen, prestaje pokušavati i šalje odgovarajuću poruku.

    Ako imate više domena na vašoj mreži koje opslužuje jedan server za evidentiranje, nemojte se iznenaditi što će evidencija na serveru uključivati ​​puna imena klijenata (uključujući domenu). Istina, pri pokretanju syslogd mogu se koristiti opcije -s lista_domena ili -l host_list, koji obezbeđuju zamenu punih imena hosta u protokolu njihovim kratkim imenima (bez navođenja domena).

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

    opcije pokretanja demona syslogd

    Pošto smo se dotakli pitanja postavljanja parametara pokretanja demona u prethodnom pododjeljku syslogd, pogledajmo ovo pitanje detaljnije. Kao što je već pomenuto, oba demona za evidentiranje se pokreću u fazi inicijalizacije sistema, tačnije, kroz skriptu /etc/rc.d/init.d/syslog(za koje se, kao i za startup skripte za druge servise, kreiraju simboličke veze u direktorijumima /etc/rc.d/rc?.d/). Međutim, da biste podesili parametre pokretanja, nema potrebe da prilagođavate ovu skriptu, jer počevši od verzije 7.2 u Red Hat distribuciji, opcije pokretanja za oba demona se čitaju iz zasebne konfiguracijske datoteke /etc/sysconfig/syslog. Evo kratke liste mogućih parametara za demon syslogd.

    Parametri pokretanja syslogd:

    • -utičnicu- Određuje dodatnu utičnicu na kojoj će demon slušati syslogd. Možete navesti do 19 soketa (moguće je i više, ali za to morate ponovo kompajlirati paket). Ova opcija se koristi u slučajevima kada neki drugi demon (na primjer, ftp ili http) radi u ograničenom okruženju (chrooting).
    • -d- Režim za otklanjanje grešaka. U ovom slučaju, demon ne ulazi pozadinski način rada i šalje sve poruke na trenutni terminal.
    • -f naziv-konfiguracijske-datoteke Određuje ime alternativne konfiguracijske datoteke koja će se koristiti umjesto zadane /etc/syslog.conf.
    • -h Zadano u sysklogd Zabranjeno je prenošenje poruka primljenih preko mreže na drugi računar. Ovo se radi kako bi se spriječilo beskonačno prenošenje poruka oko prstena. Opcija -h vam omogućava da promijenite uobičajeno ponašanje i osigurate da se poruke primljene od udaljenih hostova dalje prenose preko mreže (i sami se pobrinite za moguće petlje).
    • -l host-list- Određuje listu hostova čija imena ne treba pisati punim imenom domene (FQDN - Full Qualified Domain Name); imena na listi su odvojena dvotočkom.
    • -m minuta Pokrenuto bez ove opcije sysklogd redovno (svakih 20 minuta) bilježi poruke kategorije u protokol mark, odnosno jednostavno vremenske oznake. Koristeći opciju -m možete ili promijeniti interval između oznaka ili potpuno otkazati izdavanje takvih poruka, za koje trebate postaviti interval na nulu: -m 0.
    • -n Nemojte nestati u pozadini; ova opcija je potrebna u slučajevima kada je syslogd pokrenut i kontrolira proces u tome.
    • -p utičnica Određuje alternativnu UNIX utičnicu (umjesto zadane koja sluša /dev/log). Napomena: opcija -a specificira dodatne utičnice, i -p- alternativa!
    • -r Dozvolite primanje poruka od udaljenih domaćina. O tome smo govorili u prethodnom dijelu, pa ću izostaviti detalje.
    • -s lista domena Određuje listu domena čija imena ne moraju biti evidentirana zajedno sa imenom hosta (tj. za ove domene će se evidentirati samo ime hosta umjesto potpuno kvalificiranog imena domene (FQDN). Imena na listi su odvojeno dvotočkom Ime domena u kojem se nalazi syslogd server ne mora biti uključeno u ovu listu (njegovo ime je po defaultu uklonjeno).
    • -v Pokažite verziju i završite posao.
    • -x Zabrana određivanja imena hosta po njegovoj adresi, sprečava zastoj kada se radi na istom hostu sa DNS serverom.

    Nakon pokretanja demona syslogd kreira se statusna datoteka /var/lock/subsys/syslog nultu dužinu i fajl sa identifikacionim brojem procesa /var/run/syslogd.pid.

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

    • SIGHUP - ponovo pokrenite demon (reinicijalizacija); sve otvorene datoteke su zatvorene, demon počinje ponovo, ponovo čitajući svoju konfiguracionu datoteku.
    • SIGTERM - isključenje.
    • SIGINT, SIGQUIT - ako je omogućen način otklanjanja grešaka (opcija -d), signali se zanemaruju; u suprotnom, isključivanje.
    • SIGUSR1 - omogući/onemogući način otklanjanja grešaka (radi samo ako je demon pokrenut sa prekidačem -d).

    Daemon klogd nema manje opcija za pokretanje od syslogd, međutim, nećemo ih ovdje predstavljati, upućujući čitaoca na odgovarajuću man stranicu (korisnik se ne bi trebao truditi s postavljanjem klogd, bolje je ostaviti ga u stanju u kojem su ga proizveli programeri distribucije).

    dmesg datoteku i naredbu dmesg

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

    Prvo moramo napomenuti da Linux ima komandu sa istim imenom. Ako uporedite izlaz ove naredbe (kada se izvodi bez parametara) sa sadržajem datoteke /var/log/dmesg, otkrit ćete da su vrlo slični, iako nisu identični (usmjerite izlaz naredbe u datoteku dmesg2 i uporedi fajlove dmesg I dmesg2). Tačnije, fajl /var/log/dmesg jedan prema jedan poklapa se s početkom izlaza koji dobijamo iz naredbe dmesg. Kao što slijedi iz , kernel ima prstenasti bafer u koji se upisuju poruke iz kernela logging daemona. Te poruke koje su upisane u ovaj bafer tokom procesa preuzimanja čine sadržaj datoteke /var/log/dmesg. Očigledno, ovaj fajl se generiše nakon pokretanja sistema.

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

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

    lastlog, wtmp i utmp datoteke

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

    File lastlog pohranjuje informacije o posljednjoj prijavi korisnika. Ne znam da li ste primijetili da kada unesete svoje korisničko ime i lozinku, na ekranu se pojavljuje nešto poput sljedeće poruke:

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

    Za razliku od fajla /var/log/lastlog, koji sadrži vremenske zapise zadnji login za svakog korisnika, u datoteci /var/log/wtmp se pamte Sve prijave i odjave korisnika od kreiranja ove datoteke. Isto kao u fajlu lastlog, unosi u /var/log/wtmp su napravljene u posebnom formatu, tako da se mogu pregledati samo pomoću posebnih naredbi. Ali prije nego što pričamo o ovim naredbama, recimo da postoji još jedna datoteka koja sadrži zapise o korisničkom dnevniku - ovo je datoteka /var/run/utmp. Ova datoteka sadrži informacije o tome koji korisnici trenutno rade u sistemu.

    Sada možete razgovarati o tome kako pregledati informacije o korisnicima koji rade ili su ranije radili u sistemu. Glavna komanda za ovo je komanda zadnji. Prikazuje sve zapise iz datoteke /var/log/wtmp, pri čemu je naznačeno korisničko ime, indikacija terminala sa kojeg je korisnik radio, vrijeme kada se korisnik prijavio u sistem i vrijeme kada se odjavio sa sistema, kao i trajanje sesije korisnika u sistemu. Ako je rad korisnika bio prekinut samo zato što je sam sistem isključen, umjesto vremena izlaska korisnika stoji riječ "down" (iz ovih redova je lako odrediti vrijeme kada je sistem stao). Vrijeme ponovnog pokretanja je prikazano u posebnim redovima koji počinju riječju "ponovno pokretanje".

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

    Tim lastlog formatira i prikazuje sadržaj datoteke /var/log/lastlog. Biće prikazano korisničko ime, naziv terminala sa kojeg se korisnik prijavio i vreme poslednje prijave. Po defaultu (kada se naredba unese bez parametara) elementi datoteke /var/log/lastlogće biti prikazan u redoslijedu korisničkog ID broja. Ako navedete opciju -u ime-prijave, prikazat će se samo vrijeme posljednje prijave navedenog korisnika. Određivanjem parametra -t days, primat ćete zapise samo za posljednje dane dana. Ako se korisnik uopće nije prijavio na sistem, tada će umjesto naziva terminala i vremena posljednje prijave biti prikazan niz „**Nikad nije prijavljen**“.

    Prilikom izvršavanja naredbe lastlog Na sporom računaru, u nekim slučajevima može izgledati da je komanda zaglavljena. Ovo se dešava zbog činjenice da čak i ako su samo dva korisnika registrovana u sistemu (root i korisnik), u datoteci /var/log/lastlog još uvijek ima prostora za rad što većeg broja korisnika na sistemu. Stoga u fajlu /var/log/lastlog Može postojati veliki jaz između ID brojeva korisnika koji rade u sistemu. Jer kada gledate takve intervale, program ne prikazuje informacije na ekranu, a javlja se utisak „zamrzavanja“.

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

    Komanda daje znatno više informacija w. U njegovom izlazu ćete vidjeti trenutno vrijeme, koliko dugo je sistem radio, koliko korisnika trenutno radi u sistemu i prosječno opterećenje sistema za zadnji minut, 5 i 15 minuta. Zatim za svakog korisnika ispisuje:

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

    Kao što je već pomenuto, tim w prikazuje informacije pohranjene u datoteci utmp. Usput, priručnik covece To navodi obični korisnici mora biti odbijen pristup za pisanje u datoteku utmp, budući da mnogi sistemski programi (iz nekih neobjašnjivih razloga) zavise od njegovog integriteta. Rizikujete da zbunite datoteke sa sistemskom statistikom i napravite promene u sistemskim datotekama ako dozvolite bilo kom korisniku da piše u utmp datoteku.

    Log fajlovi drugih programa

    Pored datoteka o kojima smo već govorili, postoje i druge datoteke protokola koje kreiraju zasebni programi. Najtipičniji primjeri su protokoli demona samba, ftpd ili httpd, koji se provode u odvojeni fajlovi. Neki od ovih programa kreiraju svoje protokole u poddirektorijumima direktorija /var/log/, drugi pohranjuju protokole na drugim mjestima. I struktura ovih datoteka može se značajno razlikovati od strukture datoteka koje kreira sistem syslog. Kao primjer dat ću nekoliko redova iz protokola servera Apache radi na mom računaru: 192.168.36.21 - - "GET /ve/papers/new/log/ HTTP/1.1" 200 1774 "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0 . 0) Gecko/20020530" 192.168.36.21 - - "GET /icons/back.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0 ) Gecko/20020530" 192.168.36.21 - - "GET /icons/folder.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko / 20020530" 192.168.36.21 - - "GET /icons/text.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530 " 192.168.36.21 - - "GET /ve/papers/new/log/protok_lovim.htm HTTP/1.1" 200 46597 "http://linux/ve/papers/new/log/" "Mozilla/5.0 (X11; U ; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /bugtraq.css HTTP/1.1" 404 279 "http://linux/ve/papers/new/log/ protok_lovim .htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/bug1.gif HTTP/1.1" 404 280 " ://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/title.gif HTTP/1.1" 404 281 "http://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" Kao što vidite, struktura ovog fajla protokola se značajno razlikuje od onoga što smo videli u sistemskim protokolima.

    Samba server, pored glavnog protokola rada servera, kreira u poddirektorijumu /var/log/sambačitav niz log fajlova za različite slučajeve, posebno odvojene datoteke za svakog od korisnika kojima je dozvoljeno da koriste resurse koje obezbeđuje ovaj server. Sljedeća dva unosa su preuzeta iz jedne takve datoteke:

    Smbd/service.c:make_connection(550) linux (192.168.36.10) povežite se na javni servis kao korisnik kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.16) 36.10) zatvorena veza sa javnom uslugom. Gore navedeni primjeri pokazuju da ako možete malo čitati engleski i razumjeti strukturu zapisa, možete izvući mnogo iz log fajlova korisne informacije. Samo što se mora izvući iz čitavih naslaga „otpadnog kamena“ – ogromnih sekvencijalnih protokolarnih fajlova, što je netrivijalan zadatak. Stoga su razvijeni posebni softverski alati za analizu protokola.

    Alati za obradu protokola

    Razvijeno je dosta različitih programa i skripti za analizu protokola. Ograničiću se kratak opis dva takva sredstva: logwatch I swatch.

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

    Glavna ideja iza ovog programa je da se datoteka dnevnika propušta kroz filter, koji iz dnevnika bira sve redove (tj. poruke) koji zadovoljavaju dati kriterijum. Rezultate šalje e-mail određenom korisniku (po defaultu - root). Filteri se mogu napisati na bilo kojem programskom jeziku, ali autor paketa preferira Perl. Filteri bi trebali biti napisani za čitanje podataka iz stdin i izlaz rezultata u stdout.

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

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

    Opći format pokretanja skripte:

    /etc/log.d/scripts/logwatch.pl [--detalj nivo ] [--logfile magazin-grupa ] [--usluga naziv usluge ] [--print] [--mailto adresa ] [--sačuvaj ime dokumenta ] [--arhive] [--opseg datum-interval ]

    Zadani parametri su pohranjeni u /etc/log.d/logwatch.conf datoteci, komentari u kojima vam pomažu da shvatite značenje parametara komandne linije:

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

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

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

    Upravljanje radom swatch izvodi se pomoću jedne konfiguracijske datoteke, prema zadanim postavkama $HOME/.swatchrc. Ova datoteka sadrži primjer teksta (u obrascu regularni izrazi), koji swatchće pretraživati ​​u log fajlovima. Nakon svakog takvog primjera, naznačena je radnja koja swatch mora poduzeti radnju ako naiđe na tekst koji odgovara uzorku.

    Na primjer, želite da budete upozoreni svaki put kada se pokuša napad prelivanja bafera na vaš web server kada se zatraži vrlo dugo ime datoteke. I to znate u takvim slučajevima u log fajlu /var/apache/error.log Pojavljuje se poruka koja sadrži riječi "Ime datoteke predugačko". U ovom slučaju, u vaš fajl .swatchrc Potrebno je uneti sledeće uputstvo:

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

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

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

    Rotiranje log fajlova

    Vi, naravno, razumijete da ako se sistem intenzivno koristi, onda datoteke evidencije brzo rastu. Što rezultira gubitkom prostora na disku. I javlja se problem "pripitomljavanja" protokola. U Red Hat Linuxu ovaj problem je riješen skriptama logrotate, koji se nalazi u imeniku /etc/cron.daily, i stoga ga pokreće demon cron dnevno. Ova skripta vam omogućava da obrađujete ne samo sistemske dnevnike syslog, ali i bilo koje druge programe.

    Skripta logrotate prati rast log fajlova i obezbeđuje takozvanu rotaciju ovih datoteka ako premašuju navedenu veličinu (ili nakon određenog vremenskog intervala). Rotacija nije ništa drugo do sekvencijalno kopiranje prethodnih verzija arhivskih datoteka otprilike na sljedeći način:

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

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

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

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

    Primjer konfiguracijske datoteke prvo opisuje globalne parametre, a zatim, u posebnom odjeljku, parametre za obradu datoteka /var/log/wtmp i /var/log/lastlog. Osim toga, među globalnim parametrima je data veza do direktorija /etc/logrotate.d, u kojem svaki paket upisuje lokalne parametre za svoje dnevnike.

    U odjeljku globalnih parametara prvo postavljate jedan od sljedećih parametara koji određuju kriterij rotacije datoteke:

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

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

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

    Ako je parametar specificiran komprimirati, tada se starije verzije komprimiraju pomoću gzip-a i ako je navedeno nocompress- ne smanjuju se. Parametar compresscmd omogućava vam da odredite koji će se program kompresije koristiti (gzip po defaultu), i uncompresscmd specificira program dekompresije (podrazumevano - ungzip). compressoptions postavlja parametre programa kompresije; zadana vrijednost je "-9", tj. maksimalna kompresija za gzip. Korištenje parametra compressext možete promijeniti sufiks za komprimirane datoteke i proširenje sufiks specificira sufiks koji se dodaje imenima datoteka tokom rotacije (prije sufiksa kompresije).

    Među ključne riječi, koji se nalazi u konfiguracijskim datotekama, posebno treba napomenuti riječi postrotate I prerotate, koji služe kao otvorne zagrade za uključivanje u konfiguracijske datoteke shell skripte. Sve linije konfiguracionog fajla iz reda postrotate to line endscript se izvršavaju kao naredbe ljuske nakon procesa promjene verzije datoteke dnevnika. Prema tome, sve linije iz linije prerotate to line endscript se izvršavaju prije rotiranja datoteka dnevnika. Koristeći ove skripte, možete organizirati različite procedure za obradu log datoteka tokom rotacije.

    Koristeći druge parametre konfiguracijske datoteke, možete redefinirati prava pristupa datotekama dnevnika (ako ovaj parametar nije specificiran, tada se koriste atributi stare datoteke dnevnika); naznačiti kome treba slati poruke o greškama u funkcionisanju sistema evidentiranja; poslati arhiviranu kopiju dnevnika navedenom korisniku; postavite direktorij u koji će se logovi premještati tijekom promjene verzije (direktorij mora biti na istom fizičkom uređaju kao /var/log) ili postavite listu sufiksa isključenja za direktorij uključiti. Detaljan opis Ove karakteristike i parametre (kao i one koji nisu spomenuti) ćete pronaći pomoću naredbe man logrotate.

    Kao što je već spomenuto, dodatne konfiguracijske datoteke logrotate može se navesti u komandnoj liniji za pokretanje skripte. Možete odrediti proizvoljan broj konfiguracijskih datoteka ili imena direktorija. Imena datoteka i direktorija na ovoj listi su razdvojena jednostavno razmacima. Redoslijed po kojem su imena navedena bitan je jer su opcije navedene u nastavku konfiguracijski fajl, preklapaju vrijednosti parametara navedenih u prethodni fajl. Redoslijed datoteka u konfiguracijskom direktoriju nije definiran.

    Osim toga, možete navesti sljedeće parametre u komandnoj liniji za pokretanje:

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

    Radnje demona syslogd kontrolira /etc/syslog.conf konfiguracijski fajl. Ovo je jednostavna tekstualna datoteka u kojoj se zanemaruju prazni redovi i redovi sa # na prvoj poziciji. Format datoteke je sljedeći:

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

    Na primjer,

    mail.err /var/log/mail.errors

    Ova linija će osigurati da se sve greške u isporuci pošte zabilježe u datoteci /var/log/mail.errors.

    Važno: Koristite samo tipku kao razdjelnik između selektora i radnje . Upotreba razmaka bila bi greška koju nije lako otkriti.

    Kao što ste već primijetili, selektor je napisan u kompozitnom obliku. IN opšti pogled izgleda kao sredstvo.nivo

    Štaviše, na terenu<селектор>može sadržavati jedan ili više selektora, odvojenih tačkom i zarezom. Selektor može sadržavati grupu objekata odvojenih zarezima. Selektor može sadržavati znakove * i nijedan, što znači "sve", odnosno "ništa".

    Primjeri selektora:

    sredstva, nivo akcije

    znači 1, znači 2. nivo akcije

    znači 1. nivo 1, znači 2. nivo 2 akcija

    *.akcioni nivo

    *.nivo;znači.ništa akcija

    Sljedeće tablice navode imena glavnih funkcija syslog i razine ozbiljnosti.

    Alat Programi koji ga koriste

    kern Sistemsko jezgro

    korisnički procesi korisnika

    mail Sistem e-pošte

    daemon Sistemski demoni

    auth Sigurnosni i autoritetni sistemi

    lpr sistem štampanja

    vijesti Telekonferencijski sistem

    cron Demon cron

    local0-7 Osam nivoa lokalne poruke

    syslog Interne syslog sistemske poruke

    ftp ftpd demon

    *Sva gore navedena sredstva

    Nivo Vrijednost Nivoa

    hitne vanredne situacije

    upozorenje Hitne situacije

    kritična stanja

    err Uslovi greške

    upozorenje Upozorenja

    obaveštenje Neuobičajeni uslovi

    Info Informativne poruke

    debug Informacije o otklanjanju grešaka

    Nivoi su navedeni u opadajućem redoslijedu. To znači da nivoi ukazuju na minimalnu važnost koju poruka mora imati da bi se prijavila u sistem syslog.

    Polje<действие>označava šta treba učiniti sa primljenom porukom.

    Opis akcije

    filename Napišite poruku u datoteku na lokalnom računalu

    @machinename Proslijedi poruku syslogd demonu na navedenoj mašini

    @IP_address Isto, samo je navedena IP adresa mašine

    user1, Prikažite poruku na ekranima navedenih korisnika...

    korisnikN

    * Prikažite poruku na ekranima svih korisnika

    *.emerg /dev/console

    *.err;auth.notice /dev/console

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

    mail.err /var/log/mail.log

    mail.info @192.168.0.1

    Govoreći o syslog sistemu, moramo spomenuti komandu logger, koja vam omogućava da upišete unose u sistemski dnevnik iz shell skripti.

    Ova naredba je korisna za provjeru promjena napravljenih u /etc/syslog.conf datoteci.

    local5.warning /var/log/local.log

    i želite provjeriti da li radi, a zatim unesite naredbu

    # logger -p local5.warning "Lokalni test"

    Pogledajte datoteku /var/log/local.log. Ako linija "Local test" nije tu, onda ste najvjerovatnije zaboravili poslati HUP signal demonu syslogd.

    SERGEJ SUPRUNOV

    FreeBSD savjeti: korištenje syslog

    - Oprostite, drugovi, imam sve poteze zapisane!

    "Kancelarija piše", reče Ostap.

    I. Ilf, E. Petrov “12 stolica”.

    Evidentiranje rada svakog sistema, a posebno servera, jedna je od najvažnijih komponenti administracije. To su datoteke evidencije koje prvo gledamo kada se pojave problemi u sistemu. Odatle stičemo povjerenje da ovaj ili onaj program funkcionira kako se očekuje. Prilikom razvoja web aplikacija, datoteka dnevnika postaje najvažniji izvor informacija za otklanjanje grešaka. Biće reči o karakteristikama syslog daemona, koji je odgovoran za evidentiranje sistemskih informacija.

    Šta je syslog

    Syslog je centralizirana usluga koja prikuplja i bilježi informacije dnevnika iz različitih komponenti operativnog sistema i korisničkih procesa. Programi trećih strana, po pravilu, mogu samostalno raditi sa svojim log datotekama, iako se mnogi od njih mogu konfigurirati za rad sa syslogd demonom. Prednosti korištenja syslog-a uključuju mogućnost upravljanja prikupljanjem potrebnih informacija koristeći jednu konfiguracijsku datoteku, koja osigurava konzistentnost rezultirajućih log datoteka i na kraju pojednostavljuje upravljanje njima.

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

    Svaku poruku karakterizira nivo i izvor (objekat). Nivo određuje stepen važnosti poruke sa stanovišta rada sistema. Datoteka syslog.h definira sljedeće nivoe (prioritete):

    Tabela 1. Nivoi poruka

    Nivo

    Opis

    emerg, panika

    Stanje "panike"

    uzbuna

    Stanje koje zahtijeva hitnu intervenciju

    krit

    Kritično stanje

    greska, greska

    Ostale greške u radu

    upozorenje, upozorenje

    Upozorenja

    biljeska

    Poruke koje nisu greške ali na koje treba obratiti pažnju

    info

    Informativne poruke (normalan rad)

    debug

    Informacije o otklanjanju grešaka

    Tabela 1 navodi nivoe poruka u opadajućem redoslijedu. Ovaj redosled će biti potreban kasnije kada se raspravlja o sintaksi konfiguracione datoteke.

    Oznake nivoa poruke napisane u istoj liniji (na primjer, pojavljivanje i panika) su sinonimi i može se koristiti bilo koji od njih. Međutim, panika, greška i upozorenje (navedeni na drugom mjestu u tabeli) su zastarjeli i treba ih izbjegavati prilikom uređivanja konfiguracijske datoteke. Umjesto toga, koristite emerg, err i warning.

    Mogući izvori poruka su navedeni u tabeli 2:

    Tabela 2. Izvori poruka

    Izvor

    Opis

    kern

    Kernel poruke

    auth, authpriv

    sigurnost

    Sigurnosne poruke (na primjer, sa firewall-a)

    konzola

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

    syslog

    Izvorne syslog poruke

    cron

    Cron poruke

    Poruke servisa vremena

    Poruke FTP serveri

    Ispis poruka podsistema

    mail

    Poruke poštanske službe

    vijesti

    Poruke servisa vijesti

    uucp

    Poruke UUCP

    daemon

    Poruke od drugih demona koji rade u sistemu

    korisnik

    Poruke korisničkih procesa

    lokalni0 – lokalni7

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

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

    Opcije pokretanja demona

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

    Syslog je sposoban za snimanje dolaznih poruka u datoteke dnevnika (koje se obično nalaze u /var/log direktoriju), slanje ih na korisničku konzolu ili povezani terminal, slanje udaljenom hostu ili slanje vanjskom uslužnom programu na obradu preko cjevovoda.

    Za rad preko mreže, syslog koristi portove 514 (UDP i TCP). Kada se pokrene bez dodatnih parametara, syslogd će slušati na ovim portovima, čekajući dolazne poruke. Prekidač -s sprečava prihvatanje dolaznih poruka, ali su utičnice na portu 514 i dalje kreirane za odlazne veze tako da syslogd može slati poruke udaljenim hostovima. Udvostručenje prekidača (-ss) takođe onemogućava odlazne veze.

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

    syslogd_flags= ””

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

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

    #ps-wax | grep syslog

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

    Sintaksa konfiguracijske datoteke

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

    Filterska linija specificira program ili host iz kojeg će se sljedeća pravila primijeniti na poruke iz njega. Filter oblika “!prog” (ili “#!prog”) označava da se sljedeći redovi odnose na dnevnike koje generira specificirani programski program. Sinonim za ovaj unos je “!+prog”. S druge strane, linija "!-prog" označava da će se naredna pravila primjenjivati ​​na sve poruke osim onih koje potiču iz prog programa. Dozvoljeno je navesti nekoliko programa odvojenih zarezima, dok se znak “+” ili “-” odnosi na cijelu listu.

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

    Znak "*" naveden kao program ili host će nadjačati filter koji je prethodno postavljen. To jest, pravila navedena nakon takve linije primjenjivat će se na sve poruke. Filteri sa imenom hosta ili programa su nezavisni jedan od drugog i mogu raditi istovremeno. Na primjer:

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

    My.host

    # Pravila se primjenjuju na sve poruke sa my.host

    Logger

    # Pravila se primjenjuju na poruke iz logera sa my.host (filter hosta ostaje na snazi)

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

    # Pravila se primjenjuju na poruke od su sa bilo kojeg hosta (filter hosta je otkazan, programski filter nastavlja da radi)

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

    Linije pravila izgledaju ovako:

    odredište.CMPlevel

    Ovdje je objekt izvor poruke (“*” označava sve izvore), nivo je nivo poruka koje će biti obrađene u skladu sa ovim pravilom. Servisna riječ “none”, navedena umjesto nivoa, daje instrukcije za potpuno isključivanje poruka iz ovog izvora.

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

    Odredište određuje gdje se ova poruka treba sačuvati. To može biti datoteka evidencije (naznačena je puna putanja, koja počinje sa “/”), adresa udaljenog servera (počevši sa simbolom “@”), korisničko ime (poruke će biti poslate terminalu na koji je korisnik povezan). Poruka se takođe može preneti na eksterni program za obradu, za šta se koristi simbol transportera „|”.

    Neki primjeri pravila

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

    kern.* /var/log/kern.log

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

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

    Poruke za otklanjanje grešaka za korisničke procese će biti izlazne na terminal na koji je korisnik vasya trenutno povezan.

    user.debug Vasya

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

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

    Sve servisne poruke za štampanje čiji je nivo niži od upozorenja biće smeštene u navedenu datoteku. Kao što je ranije rečeno, podrazumevano poređenje je "veće ili jednako" i "!" invertuje ga, zamenjujući ga sa „manje“. Ako trebate isključiti određeni nivo, trebali biste koristiti konstrukciju “!=”.

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

    Poruke nivoa za otklanjanje grešaka (i samo ove) sa nivoom objekta 0 i nivoom 3 će biti izlazne na sve povezane terminale.

    level0,level3.=debug *

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

    ntp.>crit,<=notice ntpuser,root

    Sve poruke nivoa upozorenja, isključujući one koje dolaze od mail servisa, biće snimljene u warn.log fajlu.

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

    U ovom slučaju, sve poruke čiji je nivo veći ili jednak crit bit će poslane putem e-pošte root korisniku.

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

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

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

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

    mail.* /var/log/maillog

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

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

    Strategija za kreiranje konfiguracionog fajla

    Završavajući pregled konfiguracijskog fajla, reći ću nekoliko riječi o strategijama za njegovo sastavljanje. Pored vrlo popularnog „sve dok radi“, možemo razlikovati dva glavna, koje ćemo grubo nazvati „po izvoru“ i „po svrsi“.

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

    Uslužni program Logger

    Sistem uključuje uslužni program logger koji vam omogućava da šaljete poruke syslog servisu direktno iz komandne linije. Pogodno je koristiti prilikom testiranja pravila konfiguracije, kao iu razvijenim skriptama za evidentiranje njihovog rada. primjeri:

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

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

    Prvi primjer će poslati poruku sa greškom na nivou korisnika objekta, koja će biti obrađena prema konfiguracijskoj datoteci. Druga komanda će poslati poruku udaljenom hostu, zadani izvor i nivo će biti postavljeni na user.notice.

    Korištenje rotacijskih mehanizama

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

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

    uslužni program newsyslog

    Na FreeBSD sistemu, pomoćni program newsyslog je odgovoran za rotaciju, koji se po defaultu pokreće na početku svakog sata od strane cron demona. Možete promijeniti period rotacije uređujući /etc/crontab.

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

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

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

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

    Ovo pravilo određuje parametre rotacije za maillog datoteku: bez obzira na veličinu (zvezdica u 5. polju), datoteka će se prepisivati ​​svake noći u 00:00 (u man newsyslog.conf format vremena je dovoljno detaljno opisan). Arhiva mora biti spakovana, posljednjih 8 arhiva (brojanih od 0 do 7) će biti sačuvano, novokreirana datoteka će biti u vlasništvu root korisnika (podrazumevana vrijednost, tako da je polje vlasnika preskočeno) i imaće dozvole rw-r -----.

    Da biste pregledali spakovane datoteke dnevnika, možete koristiti uslužne programe zcat i bzcat (za gzip i bzip2, respektivno). Midnight Commander automatski poziva odgovarajuće uslužne programe.

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

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

    Sažimanje

    Sistem syslog je veoma moćan i efikasan alat za evidentiranje raznih događaja koji se dešavaju u sistemu. Podrazumevane postavke su prilično izbalansirane i dobro rade za većinu sistema. Međutim, razumijevanje načina na koji syslog funkcionira omogućit će vam da značajno poboljšate kvalitet evidentiranja prilagođavanjem snimanja podataka dnevnika striktno u skladu sa vašim potrebama.