Syslogd Linux i Unix Command

Sysklogd proporciona dues utilitats del sistema que proporcionen suport per al registre del sistema i la captura de missatges del nucli. El suport tant de sockets de domini d'Internet com de Unix permet que aquest paquet d'utilitat admeti tant el registre local com el remot.

El registre del sistema és proporcionat per una versió de syslogd (8) derivada de les fonts BSD d'estoc. El suport per al registre del nucli és proporcionat per la utilitat klogd (8) que permet que el registre del nucli es realitzi de forma independent o com a client de syslogd.

Syslogd proporciona una mena de registre que utilitzen molts programes moderns. Cada missatge registrat conté almenys un temps i un camp de nom de host, normalment un camp de nom del programa, però això depèn de com és confiable el programa de registre.

Tot i que les fonts syslogd s'han modificat fortament, hi ha un parell de notes que estan en ordre. En primer lloc, s'ha intentat sistemàticament garantir que syslogd segueixi el comportament BSD estàndard predeterminat. El segon concepte important a tenir en compte és que aquesta versió de syslogd interactua de forma transparent amb la versió de syslog que es troba a les biblioteques estàndard. Si un binari vinculat a les biblioteques compartides estàndard no funciona correctament, ens agradaria un exemple del comportament anòmil.

El fitxer de configuració principal /etc/syslog.conf o un fitxer alternatiu, que es dóna amb l'opció -f , es llegeix a l'inici. Totes les línies que comencen amb la marca hash (`` # '') i línies buides s'ignoren. Si es produeix un error durant l'anàlisi, s'ignora tota la línia.

Sinopsi

syslogd [ -a socket ] [ -d ] [ -f fitxer de configuració ] [ -h ] [ -l llista host ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

Opcions

-un sòcol

Si utilitzeu aquest argument, podeu especificar els sòcols addicionals des del que el syslogd ha d'escoltar. Això és necessari si deixeu que hi hagi algun dimoni dins d'un entorn chroot (). Podeu fer servir fins a 19 endolls addicionals. Si el vostre entorn necessita encara més, heu d'augmentar el símbol MAXFUNIX dins del fitxer font syslogd.c. Un exemple per un dimoni chroot () és descrit per les persones d'OpenBSD a http://www.psionic.com/papers/dns.html.

-d

Activa el mode de depuració. Usant això, el dimoni no procedirà a una bifurcació (2) per configurar-se en segon pla, però contràriament a allò que queda al primer pla i escriviu molta informació de depuració de la tty actual. Consulteu la secció DEBUGGING per obtenir més informació.

-f fitxer de configuració

Especifiqueu un fitxer de configuració alternatiu en lloc de /etc/syslog.conf , que és el valor predeterminat.

-h

Per defecte, syslogd no reenviarà missatges que rep d'ordinadors remots. Si especifiqueu aquest interruptor a la línia d'ordres, el dimoni del registre reenviarà els missatges remots que rebi per reenviar hosts que s'hagin definit.

-la llista host

Especifiqueu un nom d'amfitrió que només s'hauria de registrar amb el seu nom d'amfitrió senzill i no el fqdn. Es poden especificar diversos hosts utilitzant el separador de dos punts (``: '').

-m interval

El syslogd registra regularment una marca de marca amb marca. L' interval per defecte entre dues marques - línies és de 20 minuts. Això es pot canviar amb aquesta opció. Establir l' interval a zero la desactiva completament.

-n

Eviteu fer fons automàtics. Això es necessita especialment si el syslogd és iniciat i controlat per init (8).

-socket de p

Podeu especificar un socket de domini unix alternatiu en comptes de / dev / log .

-r

Aquesta opció permetrà que la instal·lació rebi un missatge de la xarxa mitjançant un sòcol de domini d'Internet amb el servei de syslog (vegeu (5)). El valor predeterminat és no rebre cap missatge de la xarxa.

Aquesta opció s'introdueix a la versió 1.3 del paquet sysklogd. Tingueu en compte que el comportament predeterminat és el contrari de com es comporten les versions anteriors, de manera que és possible que hàgiu d'activar-les.

-s llista de dominis

Especifiqueu un nom de domini que s'hagi de retirar abans d'iniciar sessió. Es poden especificar diversos dominis utilitzant el separador de dos punts (``: ''). Tingueu en compte que no es poden especificar subdominis, sinó només dominis sencers. Per exemple, si s'especifica -s north.de i el registre d'amfitrió es resol a satu.infodrom.north.de, no s'haurien de tallar cap domini, haureu d'especificar dos dominis com: -s north.de:infodrom.north.de .

-v

Versió d'impressió i sortida.

-x

Desactiveu les cerques de noms quan rebeu missatges remots. Això evita bloquejos quan el servidor de noms s'executa a la mateixa màquina que executa el dimoni syslog.

Senyals

Syslogd reacciona davant un conjunt de senyals. Podeu enviar fàcilment un senyal a syslogd utilitzant el següent:

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

Sighup

Això permet que syslogd realitzi una re-inicialització. Tots els fitxers oberts es tanquen, el fitxer de configuració (per defecte és /etc/syslog.conf ) es tornarà a llegir i es reiniciarà la instal·lació syslog (3).

SIGTERM

El syslogd morirà.

SIGINT , SIGQUIT

Si la depuració està activada, aquestes s'ignoren, en cas contrari syslogd morirà.

SIGUSR1

Canvia la depuració activada / desactivada. Aquesta opció només es pot utilitzar si syslogd s'inicia amb l'opció de depuració -d .

SIGCHLD

Espereu els fills si alguns hagin nascut, a causa dels missatges de la paret.

Diferències de sintaxi de fitxers de configuració

Syslogd utilitza una sintaxi lleugerament diferent per al seu fitxer de configuració que les fonts BSD originals. Originalment tots els missatges d'una prioritat específica i anteriors es van reenviar a l'arxiu de registre.

Per exemple, la següent línia va provocar que tots els daemons sortissin de la utilització de les instal·lacions del dimoni (la depuració és la prioritat més baixa, de manera que cada major també coincideix) per accedir a / usr / adm / daemons :

# Syslog.conf sample daemon.debug / usr / adm / daemons

Sota el nou esquema, aquest comportament continua sent el mateix. La diferència és l'addició de quatre especificadors nous, el comodí d'asterisc ( * ), el signe d'equació ( = ), el signe d'exclamació ( ! ) I el signe menys ( - ).

El * especifica que tots els missatges de la instal·lació especificada es dirigiran a la destinació. Tingueu en compte que aquest comportament és degenerat amb l'especificació d'un nivell de prioritat de depuració. Els usuaris han indicat que la notació d'asterisc és més intuïtiu.

El comodí = s'utilitza per restringir el registre a la classe de prioritat especificada. Això permet, per exemple, enrutament només enviar missatges de depuració a una font de registre determinada.

Per exemple, la següent línia de syslog.conf dirigiria els missatges de depuració de totes les fonts al fitxer / usr / adm / debug .

# Syslog.conf sample *. = Debug / usr / adm / debug

El ! s'utilitza per excloure el registre de les prioritats especificades. Això afecta totes les possibilitats (!) D'especificar prioritats.

Per exemple, les següents línies registrarien tots els missatges del correu de la instal·lació, excepte aquells amb la informació de prioritat al fitxer / usr / adm / mail . I tots els missatges de news.info (inclosos) a news.crit (excloent) es registraran al fitxer / usr / adm / news .

# Syslog.conf sample mail. *; Mail!! = Info / usr / adm / mail news.info; news!! Crit / usr / adm / news

Podeu utilitzar-lo intuïtivament com a especificador d'excepció. La interpretació abans esmentada només és invertida. Fent això, podeu utilitzar-lo

mail.none

o

mail.! *

o

mail debug

per omissió de tots els missatges que inclouen un servei de correu. Hi ha molt espai per jugar-hi. :-)

El - només es pot utilitzar per prefixar un nom de fitxer si voleu ometre la sincronització del fitxer després de cada escriptura.

Això pot portar una mica d'aclimatació als individus utilitzats per al comportament pur del BSD, però els verificadors han indicat que aquesta sintaxi és una mica més flexible que el comportament de BSD. Tingueu en compte que aquests canvis no han d'afectar els fitxers syslog.conf estàndard (5). Heu de modificar específicament els fitxers de configuració per obtenir el comportament millorat.

Suport per al registre remot

Aquestes modificacions proporcionen suport de xarxa a la instal·lació syslogd. El suport de xarxa significa que els missatges es poden reenviar des d'un node que executa syslogd a un altre node que executa syslogd on es registraran realment en un fitxer de disc.

Per activar-ho heu d'especificar l'opció -r a la línia d'ordres. El comportament predeterminat és que syslogd no escoltarà la xarxa.

L'estratègia és escoltar a syslogd en un socket de domini unix per a missatges de registre generats localment. Aquest comportament permetrà que syslogd interaccioni amb el syslog trobat a la biblioteca C estàndard. Al mateix temps, syslogd escolta el port syslog estàndard per a missatges enviats des d'altres hosts. Perquè això funcioni correctament, els fitxers de serveis (5) que normalment es troben a / etc ) han de tenir la següent entrada:

syslog 514 / udp

Si falta aquesta entrada, syslogd no pot rebre missatges remots ni enviar-los, ja que el port UDP no es pot obrir. En canvi, syslogd morirà immediatament, donant un missatge d'error.

Perquè els missatges es reenviïn a un altre host, reemplaceu la línia de fitxers normal al fitxer syslog.conf amb el nom de l'amfitrió al qual s'enviaran els missatges amb una @.

Per exemple, per reenviar TODOS els missatges a un host remot usant l'entrada syslog.conf següent:

# Exemple de fitxer de configuració syslogd a # missatges a un host remot tot endavant. *. * @ nomhost

Per reenviar tots els missatges del nucli a un servidor remot, el fitxer de configuració seria el següent:

# Fitxer de configuració de mostra per reenviar tots els missatges del nucli # a un servidor remot. kern. * @ nomhost

Si el nom del servidor remot no es pot resoldre a l'inici, perquè pot ser que el servidor-nom no sigui accessible (pot ser que s'iniciï després del syslogd), no s'ha de preocupar. Syslogd torna a intentar resoldre el nom deu vegades i després es queixa. Una altra possibilitat d'evitar això és col·locar el nom d'amfitrió en / etc / hosts .

Amb syslogd normal, obtindreu sistemes de circuits si envieu els missatges rebuts des d'un host remot al mateix host (o més complicat per a un tercer host que l'envia al primer, etc.). Al meu domini (Infodrom Oldenburg) accidentalment vam tenir un i els nostres discs emplenats amb el mateix missatge. :-(

Per evitar això en temps posteriors, els missatges rebuts d'un host remot no es tornen a enviar a un altre host remot (o el mateix). Si hi ha escenaris en què això no té sentit, deixeu-me'm (Joey) una línia.

Si l'amfitrió remota es troba en el mateix domini que l'amfitrió, syslogd s'executa, només es registrarà el nom de l'amfitrió simple en comptes de tot el fqdn.

En una xarxa local, podeu proporcionar un servidor de registre central perquè mantingui tota la informació important en una màquina. Si la xarxa està formada per diferents dominis, no cal queixar-vos de registrar noms totalment qualificats en comptes de noms de nom simples. És possible que vulgueu utilitzar les característiques del domini de la tira -s d'aquest servidor. Podeu indicar-li al syslogd que elimini diversos dominis diferents de la que el servidor estigui ubicat i que només registri noms de nom simples.

Utilitzant l'opció -l també hi ha la possibilitat de definir hosts individuals com a màquines locals. Això, també, fa que només es facin servir el registre dels noms senzills i no els fqdns.

El socket UDP utilitzat per reenviar missatges a servidors remots o rebre missatges d'ells només s'obre quan és necessari. En els llançaments anteriors a l'1.3-23 es va obrir cada cop però no es va obrir per llegir o reenviar, respectivament.

Sortida de tubs amb nom (FIFO)

Aquesta versió de syslogd té suport per a la sortida de registre a les canonades amb nom (fifos). Una canonada anomenada fifo o named es pot utilitzar com a destinació per a missatges de registre prependiendo un símbol pipy (`` | '') al nom del fitxer. Això és pràctic per a la depuració. Tingueu en compte que el fifo s'ha de crear amb l'ordre mkfifo abans que s'iniciï syslogd.

Les següents rutes d'arxiu de configuració depuren els missatges del nucli a un fifo:

# Configuració de mostra per a encaminar la depuració del nucli # missatges NOMÉS a / usr / adm / debug que és un pipeline anomenat #. kern. = debug | / usr / adm / debug

Problemes d'instal·lació

Probablement hi ha una consideració important quan instal·leu aquesta versió de syslogd. Aquesta versió de syslogd depèn del format correcte dels missatges mitjançant la funció syslog. El funcionament de la funció syslog a les biblioteques compartides ha canviat a la regió de libc.so.4 [2-4] .n. El canvi específic va ser anul·lar el missatge abans d'enviar-lo a / dev / socket de registre . El funcionament correcte d'aquesta versió de syslogd depèn de la cancel·lació nul·la del missatge.

Normalment, aquest problema es mostrarà si s'utilitzen binaris enllaçats estàticament en el sistema. Els binaris que utilitzen versions antigues de la funció syslog faran que les línies buides siguin registrades seguit del missatge amb el primer caràcter del missatge eliminat. L'enderrocat d'aquests binaris a les versions més noves de les biblioteques compartides solucionarà aquest problema.

Tant el syslogd (8) com el klogd (8) es poden executar des de init (8) o s'han iniciat com a part de la seqüència rc * *. Si s'inicia des de l'inici, l'opció -n s'ha d'establir, en cas contrari, obtindreu tones de dimonis syslog iniciats. Això és degut a que init (8) depèn de la identificació del procés.

Amenaces de seguretat

Hi ha el potencial perquè el dimoni syslogd s'utilitzi com a conducte per a un atac de denegació de servei. Gràcies, vés a John Morrison (jmorriso@rflab.ee.ubc.ca) per alertar-me d'aquest potencial. Un programa maliciós (mer) podria inundar fàcilment el dimoni syslogd amb els missatges syslog, donant lloc als fitxers de registre que consumeixen tot l'espai restant del sistema de fitxers . Activar el registre sobre les preses de dominis inet permetrà, per descomptat, exposar un sistema a riscos fora dels programes o individus de l'equip local.

Hi ha diversos mètodes per protegir una màquina:

  1. Implementeu el tallafoc de kernel per limitar els hosts o xarxes que tinguin accés al socket 514 / UDP.
  2. El registre pot dirigir-se a un sistema de fitxers aïllat o no arrel que, si s'omple, no deteriorarà la màquina.
  3. Es pot utilitzar el sistema de fitxers ext2 que es pot configurar per limitar un cert percentatge d'un sistema de fitxers a l'ús només per root. NOTA que això requereix que el syslogd s'executi com un procés no-arrel. TAMBÉ NOTA que això evitarà l'ús del registre remot ja que syslogd no podrà enllaçar-se al sòcol 514 / UDP.
  4. Deshabilitar les preses de domini inet limitarà el risc a l'equip local.
  5. Utilitzeu el pas 4 i si el problema persisteix i no és secundari a un programa / dimoni maliciós, obteniu una longitud de 3,5 pies (aproximadament 1 metre) de la barra de succió * i feu un xat amb l'usuari en qüestió. Sucker vara def. --- 3/4, 7/8 o 1 en. vareta d'acer endurit, mascle roscat a cada extrem. Ús primari en la indústria del petroli a l'oest de Dakota del Nord i altres llocs per a bombes d'oli de petroli. Els usos secundaris són per a la construcció de pinsos d'alimentació ramadera i per tractar amb l'individu ocasional recalcitrant o bel·ligerant.

Depuració

Quan la depuració està activada usant l'opció -d , el syslogd serà molt detallat escrivint molt del que fa a l'estoc. Quan el fitxer de configuració es torni a llegir i torneu a analitzar, veureu una taula, corresponent a l'estructura de dades interna. Aquest tabular consta de quatre camps:

número

Aquest camp conté un número de sèrie començant per zero. Aquest número representa la posició en l'estructura de dades interna (és a dir, la matriu). Si es deixa un nombre, pot ser que hi hagi un error a la línia corresponent /etc/syslog.conf .

patró

Aquest camp és complicat i representa exactament l'estructura interna. Totes les columnes representen una instal·lació (consulteu syslog (3)). Com podeu veure, encara hi ha algunes instal·lacions deixades gratuïtes per a l'ús anterior, només s'utilitzen la majoria de l'esquerra. Cada camp d'una columna representa les prioritats (consulteu syslog (3)).

acció

Aquest camp descriu l'acció particular que es realitza cada vegada que es rep un missatge que coincideix amb el patró. Consulteu la pàgina de sistema syslog.conf (5) per a totes les accions possibles.

arguments

Aquest camp mostra arguments addicionals a les accions de l'últim camp. Per al registre de fitxers, aquest és el nom del fitxer del fitxer de registre; Per al registre d'usuaris, aquesta és una llista d'usuaris; per al registre remot aquest és el nom de màquina de la màquina per iniciar sessió a; Per a la consola de registre aquesta és la consola utilitzada; per tty-logging, aquest és el tty especificat; la paret no té arguments addicionals.

Vegeu també

registrador (1), syslog (2), (5)

Col·laboradors

Syslogd prové de fonts BSD, Greg Wettstein (greg@wind.enjellic.com) va realitzar el port a Linux , Martin Schulze (joey@linux.de) va arreglar alguns errors i va afegir diverses funcions noves. Klogd va ser originalment escrit per Steve Lord (lord@cray.com), Greg Wettstein va fer millores importants.

Dr. Greg Wettstein
Desenvolupament de sistemes enjèl·lics

Servei d'Informàtica de la Divisió d'Investigació Oncològica
Centre de càncer Roger Maris
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Departament d'Informàtica
Universitat d'Edimburg, Escòcia
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Important: utilitzeu l'ordre man ( % home ) per veure com s'utilitza una comanda a l'ordinador en particular.

Articles relacionats