Syslogd Linux ja Unix Command

Sysklogd tarjoaa kaksi järjestelmätyökalua, jotka tukevat järjestelmän kirjaamista ja ytimen viestin pyyntivälineitä. Sekä internetin että Unix- verkkotunnusten tuki tukee tätä apuohjelmapakettia sekä paikallisen että etäkojeen tukemiseen.

Järjestelmän hakkuutisto tarjoaa sYSlogd (8) -version, joka on peräisin varaston BSD-lähteistä. Tuki ytimen hakua varten tarjoaa klogd (8) -apuohjelma, joka mahdollistaa ytimen kirjaamisen joko itsenäisesti tai syslogd-asiakkaana.

Syslogd tarjoaa eräänlaisen puunkorjuun, jota monet nykyaikaiset ohjelmat käyttävät. Jokainen kirjautunut viesti sisältää vähintään ajan ja isäntänimen kentän, tavallisesti myös ohjelman nimen, mutta riippuu siitä, kuinka luotettava ohjelma on.

Vaikka syslogd- lähteitä on voimakkaasti muokattu, pari muistiinpanoja on kunnossa. Ensinnäkin on ollut systemaattinen yritys varmistaa, että syslogd noudattaa oletusarvoaan, standardi BSD-käyttäytymistä. Toinen tärkeä käsitys on se, että tämä syslogd-versio toimii vuorovaikutuksessa läpinäkyvästi vakiokirjastoissa löydetyn syslog-version kanssa. Jos vakiokirjastoihin yhdistetty binääri ei toimisi oikein, haluamme esimerkin poikkeavasta käyttäytymisestä.

Tärkein kokoonpanotiedosto /etc/syslog.conf tai vaihtoehtoinen tiedosto, jossa annetaan -f- vaihtoehto, luetaan käynnistyksen yhteydessä. Kaikki rivit, jotka alkavat hajautusmerkillä (`` # '') ja tyhjät rivit, jätetään huomiotta. Jos virheen aikana ilmenee virhe, koko rivi jätetään huomiotta.

tiivistelmä

[ -n ] [ -s- soitin ] [ -d ] [ -f- asetustiedosto ] [ -h ] [ -l- vastaanottolista ] [ -m väli ] [ -n ] [ -p socket ] v ] [ -x ]

vaihtoehdot

-a pistorasiaan

Tämän argumentin avulla voit määrittää muita liitäntöjä, jotka syslogdista on kuunneltava. Tämä on tarpeen, jos annat jonkin demonin käydä chroot () -ympäristössä. Voit käyttää jopa 19 lisäpistoketta. Jos ympäristösi tarvitsee vielä enemmän, sinun on lisättävä MAXFUNIX- symboli syslogd.c-lähdetiedostossa. Esimerkki chroot () -demonista kuvaa ihmisiä OpenBSD: stä osoitteesta http://www.psionic.com/papers/dns.html.

-D

Käynnistää debug-tilan. Tämän avulla daemon ei edetä haarukalla (2) asettamalla itsensä taustalle vaan vastakkaiseksi pysyessä etualalla ja kirjoittaa paljon virheenkorjaustietoja nykyisestä tty: stä. Katso lisätietoja kohdasta VIRRANSITUS.

-f config -tiedosto

Määritä vaihtoehtoinen määritystiedosto /etc/syslog.conf sijaan, joka on oletusarvo.

-h

Oletusarvoisesti syslogd ei välitä etäpalvelimilta vastaanottamiaan viestejä. Tämän kytkimen määrittäminen komentoriviltä saa log-daemon välittää sille lähetetyt etäviestit määritetyille isäntätiedostoille.

-l- isäntäluettelo

Määritä isäntänimi, jonka pitäisi olla kirjautunut vain sen yksinkertaisen isäntänimen ja ei fqdn: n kanssa. Useat isännät voidaan määrittää paksusuolen (``: '') erottimella.

-m välein

Syslogd kirjaa säännöllisesti merkin aikaleiman. Oletusvälit kahden MARK - rivin välillä on 20 minuuttia. Tätä voidaan muuttaa tämän vaihtoehdon avulla. Intervallin nollan asettaminen katkaisee sen kokonaan.

-n

Vältä automaattista taustakuvausta. Tämä on tarpeen erityisesti, jos syslogd käynnistetään ja ohjaa init (8).

-p- pistorasiaan

Voit määrittää vaihtoehtoisen unix-verkkotunnuksen / dev / login sijasta.

-r

Tämän vaihtoehdon avulla laite voi vastaanottaa viestin verkosta käyttämällä Internet-verkkotunnusta soittimeen syslog-palvelulla (katso (5)). Oletuksena ei ole saada mitään viestejä verkosta.

Tämä vaihtoehto otetaan käyttöön sysklogd-paketin versiossa 1.3. Huomaa, että oletuskäyttäytyminen on päinvastainen kuin vanhempien versioiden käyttäytyminen, joten sinun on ehkä otettava tämä käyttöön.

-s- domain-luettelosta

Määritä verkkotunnuksen nimi, joka on poistettava käytöstä ennen kirjautumista. Useat verkkotunnukset voidaan määrittää käyttämällä kaksoispiste (``: '') -erottimella. Huomaa, ettei osa-alueita voi olla määritelty, mutta vain kokonaan verkkotunnuksia. Esimerkiksi jos -s north.de on määritetty ja isäntänäkymän käsittely ratkaisee satu.infodrom.north.de mitään verkkotunnusta ei leikata, sinun on määritettävä kaksi verkkotunnusta, kuten: -s north.de:infodrom.north.de .

-v

Tulostusversio ja poistuminen.

-x

Poista nimenkutsut käytöstä, kun vastaanotat etäviestejä. Tämä estää umpikujat, kun nimipalvelin on käynnissä samassa koneessa, joka suorittaa syslog-demoonin.

signaalit

Syslogd reagoi sarjaan signaaleja. Voit helposti lähettää signaalin syslogdille seuraavalla tavalla:

tappaa -SIGNAL `cat / var / run / syslogd.pid`

SIGHUP

Tämän avulla syslogd suorittaa uudelleensalisoinnin. Kaikki avoimet tiedostot suljetaan, konfigurointitiedosto (oletus on /etc/syslog.conf ) toistuu uudelleen ja syslog (3) -toiminto käynnistetään uudelleen.

SIGTERM

Syslogd kuolee.

SIGINT , SIGQUIT

Jos virheenkorjaus on otettu käyttöön, niitä ei oteta huomioon, muuten syslogd kuolee.

SIGUSR1

Vaihda virheenkorjaus päälle / pois päältä. Tätä vaihtoehtoa voidaan käyttää vain, jos syslogd käynnistetään -d debug -vaihtoehdolla.

SIGCHLD

Odota lapsia, jos jotkut ovat syntyneet, koska wall'ing viestit.

Kokoonpanotiedoston syntaksin erot

Syslogd käyttää konfiguraatiotiedostossaan hieman erilaista syntaksia kuin alkuperäiset BSD-lähteet. Alun perin kaikki tiettyyn prioriteettiin ja yllä oleviin viesteihin lähetettiin lokitiedosto.

Esimerkiksi seuraava rivi aiheutti kaikki tuotot daemoneista, jotka käyttävät daemon-laitteita (debug on alin prioriteetti, joten kaikki korkeammat vastaavat myös) / usr / adm / daemoneihin :

# Esimerkki syslog.conf daemon.debug / usr / adm / daemonista

Uuden järjestelmän mukaan tämä käyttäytyminen pysyy samana. Ero on neljän uuden määritelmän lisääminen, tähti ( * ) wildcard, yhtälömerkki ( = ), huutomerkki ( ! ) Ja miinusmerkki ( - ).

* -asetus määrittää, että kaikki määritetyn objektin viestit ohjataan kohteeseen. Huomaa, että tämä toiminta on rappeutunut määrittelemällä virheenkorjauksen prioriteettitaso. Käyttäjät ovat ilmoittaneet, että tähti-merkintä on intuitiivisempi.

= Jokakorttia käytetään rajoittamaan kirjautumista määritettyyn prioriteettiluokkaan. Tämä mahdollistaa esimerkiksi reitittämisen vain vianmääritysviestejä tietylle lokin lähteelle.

Esimerkiksi seuraava syslog.conf- rivi ohjattaisi kaikkien lähteiden virheenkorjausviestit / usr / adm / debug- tiedostoon.

# Esimerkki syslog.conf *. = Debug / usr / adm / debug

! käytetään poissulkemalla määritettyjen prioriteettien kirjaaminen. Tämä vaikuttaa kaikkiin (!) Mahdollisuuksiin määrittää prioriteetit.

Esimerkiksi seuraavat rivit rekisteröisivät kaikki sähköpostiviestien viestit, paitsi ne, joilla prioriteettitiedot ovat / usr / adm / mail -tiedostoon. Ja kaikki viestit news.info (mukaan lukien) ja news.crit (pois lukien) olisi kirjautunut / usr / adm / news- tiedostoon.

# Esimerkki syslog.conf -postista. *; Mail.! = Info / usr / adm / mail news.info; uutiset!! Crit / usr / adm / uutiset

Voit käyttää sitä intuitiivisesti poikkeusmäärittelijänä. Edellä mainittu tulkinta yksinkertaisesti käännetään. Tee, että voit käyttää

mail.none

tai

postia.! *

tai

postia.! debug

ohittaa jokaisen viestin mukana tulevan viestin. On paljon tilaa leikkiä sen kanssa. :-)

Tiedostonimi voidaan korvata vain, jos haluat jättää tiedoston synkronoinnin jokaisen kirjoituksen jälkeen.

Tämä voi olla jonkin verran sopeutumista niihin henkilöihin, jotka käyttävät puhdasta BSD-käyttäytymistä, mutta testaajat ovat ilmoittaneet, että tämä syntaksi on hieman joustavampi kuin BSD-käyttäytyminen. Huomaa, että nämä muutokset eivät saisi vaikuttaa standardiin syslog.conf (5) tiedostoihin. Sinun on muokattava erityisesti määritystiedostoja saadakseen parannetun käyttäytymisen.

Tuki etärekisteröintiin

Nämä muutokset tarjoavat verkkotuen syslogd-laitteelle. Verkkotuki tarkoittaa, että viestit voidaan siirtää yhdestä solmusta, joka ajaa syslogd: n toiseen syslogd-solmuun, jossa ne todella kirjautuvat levytiedostoon.

Tämän mahdollistamiseksi sinun on määritettävä komentorivillä -r- vaihtoehto. Oletuksena on, että syslogd ei kuuntele verkkoa.

Strategia on, että syslogd kuuntelee unix-verkkotunnisteen paikallisesti luotuja lokiviestejä varten. Tämän käyttäytymisen ansiosta syslogd voi toimia yhdessä standardin C kirjaston syslogin kanssa. Samanaikaisesti syslogd kuuntelee standardi syslog-porttia muista isännöistä lähetetyistä viesteistä. Jotta tämä toimisi oikein, palvelut (5) -tiedostot (jotka on tyypillisesti löytynyt / etc ) on oltava seuraavat:

syslog 514 / udp

Jos tämä merkintä puuttuu, syslogd ei voi vastaanottaa etäviestejä eikä lähettää niitä, koska UDP-portin kallistus voidaan avata. Sen sijaan syslogd kuolee välittömästi ja puhaltaa virhesanoman.

Jotta viestit voidaan siirtää toiselle isännälle, korvataan syslog.conf- tiedoston normaali tiedostonimi, jonka vastaanottajan nimi, jolle viestit lähetetään, lisätään @ -merkillä.

Esimerkiksi kaikkien viestien lähettäminen etäisännälle käyttäen seuraavaa syslog.conf- merkintää:

# Esimerkki syslogd-määritystiedostosta # viestiin etäisännälle eteenpäin. *. * @hostname

Jotta kaikki ytimen viestit lähetettäisiin etäisäntään, konfigurointitiedosto olisi seuraava:

# Esimäärittelytiedosto, joka välittää kaikki ytimen # viestit etäisännälle. kern. * @hostname

Jos etäpalvelimen nimeä ei voida ratkaista käynnistyksen yhteydessä, koska nimi-palvelin ei välttämättä ole käytettävissä (se voidaan käynnistää syslogd-ohjelman jälkeen), sinun ei tarvitse huolehtia. Syslogd yrittää ratkaista nimensä kymmenen kertaa ja sitten valittaa. Toinen mahdollisuus välttää tämä on sijoittaa isäntänimi / etc / hosts .

Normaalilla syslogdilla saat syslog-silmukoita, jos lähetät viestit, jotka vastaanotettiin etäisännältä samalle isännälle (tai monimutkaisemmalle kolmannelle isännälle, joka lähettää sen takaisin ensimmäiseen, jne.). Verkkotunnuksellani (Infodrom Oldenburg) saimme vahingossa yhden ja meidän levyt täyttyvät samassa yksittäisessä viestissä. :-(

Jotta näin vältettäisiin myöhempinä aikoina, etäkoneelta vastaanotetut viestit lähetetään toiselle (tai samalle) etäisännälle enää. Jos on olemassa skenaarioita, joissa ei ole järkevää, laske minulle (Joey) rivi.

Jos isäntäkone sijaitsee samassa verkkotunnuksessa kuin isäntä, syslogd on käynnissä, vain yksinkertainen isäntänimi tallennetaan koko fqdn: n sijaan.

Paikallisverkossa voit tarjota keskeisen log-palvelimen, jolla kaikki tärkeät tiedot säilytetään yhdessä koneessa. Jos verkko koostuu eri verkkotunnuksista, sinun ei tarvitse valittaa täysin pätevien nimien kirjaamisesta yksinkertaisten nimeä olevien nimien sijaan. Saatat haluta käyttää tämän palvelimen nauhatunnisteominaisuutta -s . Voit kertoa, että syslogd poistaa useat verkkotunnukset kuin se, johon palvelin sijaitsee, ja kirjaudu vain yksinkertaisiin palvelinnimiin.

-l- vaihtoehdolla on myös mahdollisuus määrittää yksittäiset isännät paikallisiksi koneiksi. Tämä myös johtaa siihen, että kirjaudutaan vain niiden yksinkertaisiin isäntänimiin eikä fqdnisiin.

UDP-liitäntä, jota käytetään viestien lähettämiseen etäisännille tai vastaanottamaan viestejä niistä, avataan vain silloin, kun sitä tarvitaan. Julkaisuissa, jotka olivat ennen 1.3-23, se avasi joka kerta mutta ei avattu käsittelyyn tai välittämiseen.

Tuotanto nimettyihin putkiin (FIFO)

Tässä syslogd-versiossa on tuki kirjautumistoiminnolle nimettyihin putkiin (fifos). Viisitoista tai nimettyä putkea voidaan käyttää lokiviestien määränpäänä esittelemällä pipy-symboli (`| | '') tiedoston nimeen. Tämä on kätevä virheenkorjaukseen. Huomaa, että fifo on luotava mkfifo-komennolla ennen kuin syslogd käynnistetään.

Seuraava kokoonpanotiedosto välittää virheenkorjausviestit ytimestä fifo:

# Esimerkkikokoonpano reitittää ytimen virheenkorjaus # viestit AINOASTAAN / usr / adm / debugille, joka on # nimetty putki. kern. = debug | / usr / adm / debug

Asennusongelmat

On todennäköisesti yksi tärkeä näkökohta, kun asennetaan tämä syslogd-versio. Tämä syslogd-versio riippuu syslog-toiminnon viestien oikeasta muotoilusta. Syslog-toiminnon toiminta jaetuissa kirjastoissa muuttui jonnekin alueella libc.so.4. [2-4] .n. Erityinen muutos oli nollata viesti ennen lähettämistä / dev / log- liitäntään. Tämän syslogd-version asianmukainen toiminta riippuu viestin lopettamisesta.

Tämä ongelma ilmenee tyypillisesti, jos järjestelmässä käytetään vanhoja staattisesti linkitettyjä binäärejä. Syslog-toiminnon vanhat versiot käyttävät binäärisiä rivejä, jotka tekevät tyhjäkäynnistä kirjautumisen, jonka jälkeen sanoma poistetaan viestin ensimmäisellä merkillä. Näiden binäärien liittäminen uudelleen jaettujen kirjastojen uudempiin versioihin korjaa ongelman.

Sekä syslogd (8) että klogd (8) voidaan joko suorittaa init (8) tai aloittaa osana rc. * -sekvenssiä. Jos se käynnistetään init: sta, option -n täytyy olla asetettu, muuten saat tonnia syslog-demoja käynnistetyksi. Tämä johtuu siitä, että init (8) riippuu prosessin tunnuksesta.

Turvallisuusriskit

On mahdollista, että syslogd-daemonia käytetään kanavana palvelunestohyökkäykselle. Kiitos John Morrisonille (jmorriso@rflab.ee.ubc.ca), joka ilmoitti minulle tästä mahdollisuudesta. Rikottava ohjelma (mer) saattaa helposti tulvata syslogd-demonin syslog-viesteillä, jolloin lokitiedostot kuluttavat kaiken jäljellä olevan tiedoston . Inet-verkkotunnusten ponnahdusliittymien aktivointi luonnollisesti paljastaa järjestelmän riskeille, jotka eivät ole paikallisten koneiden ohjelmien tai henkilöiden ulkopuolella.

Laitteiden suojaamista on useita:

  1. Toteuta ytimen palomuuri rajoittamaan, millä isännillä tai verkkoilla on pääsy 514 / UDP-liitäntään.
  2. Kirjaaminen voidaan ohjata eristettyyn tai ei-juurikkaan tiedostojärjestelmään, joka täyttyy ei heikennä laitetta.
  3. Voidaan käyttää ext2-tiedostojärjestelmää, joka voidaan konfiguroida rajoittamaan tietyn prosenttiosuuden tiedostojärjestelmästä vain pääkäyttäjiksi. HUOMAA, että tämä edellyttää syslogdia suorittavan ei-juuriprosessina. MYÖS HUOMAUTUS, että tämä estää etähallin käytön, koska syslogd ei pysty sitomaan 514 / UDP-liitäntään.
  4. Inet-verkkotunnusten poistaminen käytöstä rajoittaa riskin paikalliselle koneelle.
  5. Käytä vaiheessa 4 ja jos ongelma jatkuu ja ei ole toissijainen rogue-ohjelman / demon kanssa, hanki 3,5 metrin (noin 1 metrin) pituus sukkulangasta * ja keskustele kyseisen käyttäjän kanssa. Suckersauha def. --- 3/4, 7/8 tai 1in. karkaistu teräsvartta, kummassakin päässä kierteitetty uros. Ensisijainen käyttö Länsi-Pohjois-Dakota-öljyteollisuudessa ja muissa paikoissa pumppaamaan öljyä öljykaivoista. Toissijaisia ​​käyttötarkoituksia ovat karjan rehuseosten rakentaminen ja satunnaisen rikollisen tai taistelevan yksilön käsitteleminen.

virheenkorjaus

Kun virheenkorjaus on käytössä -d- vaihtoehdolla, syslogd on hyvin verbaalinen kirjoittamalla paljon siitä, mitä se tekee stdoutilla. Aina kun konfiguraatiotiedosto on uudelleen ja uudelleen jäsennetty, näet taulukon, joka vastaa sisäistä tietorakennetta. Tämä taulukko koostuu neljästä kentästä:

määrä

Tämä kenttä sisältää sarjanumeron, joka alkaa nollasta. Tämä luku edustaa asemaa sisäisessä tietorakenteessa (eli taulukossa). Jos jokin numero jätetään pois, saattaa olla virhe kyseisellä rivillä /etc/syslog.conf .

kuvio

Tämä kenttä on hankala ja edustaa sisäistä rakennetta tarkalleen. Jokainen sarake tarkoittaa laitetta (katso syslog (3)). Kuten näette, vielä joitain tilat jäävät vapaiksi entiseen käyttöön, vain vasemmalla eniten käytetään. Jokainen sarakkeen kenttä edustaa prioriteetteja (katso syslog (3)).

toiminta

Tämä kenttä kertoo erityisen toiminnon, joka tapahtuu aina, kun vastaanotetaan viesti, joka vastaa mallia. Katso kaikki mahdolliset toiminnot syslog.conf (5) manpageista.

argumentit

Tämä kenttä näyttää viimeisimmän kentän toimet. Tiedostojen kirjaamisessa tämä on tiedostonimen lokitiedosto; käyttäjäkirjoitus Tämä on luettelo käyttäjistä; kauko-kirjautumista varten tämä on koneen isäntänimi, jolla kirjaudutaan; konsolin kirjaamiseen tämä on käytetty konsoli; tty-loggingille tämä on määritetty tty; seinällä ei ole muita perusteita.

Katso myös

logger (1), syslog (2), (5)

yhteistyökumppanit

Syslogd on otettu BSD-lähteistä, Greg Wettstein (greg@wind.enjellic.com) harjoittanut portin Linuxille , Martin Schulze (joey@linux.de) korjasi virheitä ja lisäsi useita uusia ominaisuuksia. Klogd kirjoitti alunperin Steve Lord (lord@cray.com), Greg Wettstein teki merkittäviä parannuksia.

Tohtori Greg Wettstein
Enjelic Systems Development

Onkologian tutkimusryhmän laskentamalli
Roger Marisin syöpäkeskus
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Tietojenkäsittelytieteen laitos
Edinburghin yliopisto, Skotlanti
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Tärkeää: Käytä man- komentoa ( % man ) nähdäksesi kuinka komentoa käytetään tietyssä tietokoneessa.

Aiheeseen liittyvät artikkelit