Syslog

De Viquipèdia
Dreceres ràpides: navegació, cerca

Syslog és un estàndard de facto per a l'enviament de missatges de registre en una xarxa informàtica IP. Per syslog es coneix tant al protocol de xarxa com a l'aplicació o biblioteca que envia els missatges de registre.

Un missatge de registre sol tenir informació sobre la seguretat del sistema, encara que pot contenir qualsevol informació. Juntament amb cada missatge s'inclou la data i hora de l'enviament.

Usos[modifica | modifica el codi]

És útil registrar, per exemple:

  • Un intent d'accés amb contrasenya equivocada
  • Un accés correcte al sistema
  • Anomalies: variacions en el funcionament normal del sistema
  • Alertes quan ocorre alguna condició especial
  • Informació sobre les activitats del sistema operatiu
  • Errors del maquinari o el programari

També és possible registrar el funcionament normal dels programes; per exemple, guardar cada accés que es fa a un servidor web, encara que açò sol estar separat de la resta d'alertes.

Protocol[modifica | modifica el codi]

El protocol syslog és molt senzill: existeix un ordinador servidor executant el servidor de syslog, conegut com a syslogd (dimoni de syslog). El client envia un menut missatge de text (de menys de 1024 bytes).

Els missatges de syslog se solen enviar per mitjà de UDP, per el port 514, en format de text pla. Algunes implementacions del servidor, com syslog-ng, permeten usar TCP en comptes d'UDP, i també ofereixen Stunnel perquè les dades viatgen cifrados mitjançant SSL/TLS.

Encara que syslog té alguns problemes de seguretat, la seua senzillesa ha fet que molts dispositius ho implementen, tant per a enviar com per a rebre. Això fa possible integrar missatges de diversos tipus de sistemes en un sol repositori central.

Estructura del missatge[modifica | modifica el codi]

El missatge enviat es compon de tres camps:

  • Prioritat
  • Capçalera
  • Text

Entre tots no han de sumar més de 1024 *bytes, però no hi ha longitud mínima.

Prioritat[modifica | modifica el codi]

La prioritat és un nombre de 8 bits que indica tant el recurs (tipus d'aparell que ha generat el missatge) com la severitat (importància del missatge), nombres de 5 i 3 bits respectivament. Els codis de recurs i severitat els decideix lliurement l'aplicació, però se sol seguir una convenció perquè clients i servidors s'entenguen.

Codis de recurs[modifica | modifica el codi]

Aquests són els codis observats en diversos sistemes. Font: RFC 3164.

0 Missatges del kernel
1 Missatges del nivell de usuari
2 Sistema de correu
3 Dimonis de sistema
4 Seguretat/Autorització
5 Missatges generats internament per syslogd
6 Subsistema de impressió
7 Subsistema de notícies sobre la xarxa
8 Subsistema UUCP
9 Dimoni de rellotge
10 Seguretat/Autorització
11 Dimoni de FTP
12 Subsistema de NTP
13 Inspecció del registre
14 Alerta sobre el registre
15 Dimoni de rellotge
16 Ús local 0
17 Ús local 1
18 Ús local 2
19 Ús local 3
20 Ús local 4
21 Ús local 5
22 Ús local 6
23 Ús local 7

Codis de severitat[modifica | modifica el codi]

Els 3 bits menys significatius del camp prioritat donen 8 possibles graus. Font: RFC 3164.

0 Emergència: el sistema està inutilizable
1 Alerta: s'ha d'actuar immediatament
2 Crític: condicions crítiques
3 Error: condiciones de error
4 Perill: condicions de perill
5 Avís: normal, però condicions notables
6 Informació: missatges informatius
7 Depuració: missatges de baix nivell

Càlcul de la prioritat[modifica | modifica el codi]

Per a conèixer la prioritat final d'un missatge, s'aplica la següent fórmula:

Prioritat = Recurs * 8 + Severitat

Per exemple, un missatge de kernel (Recurs=0) con Severitat=0 (emergència), tindria Prioritat igual a 0*8+0 = 0. Un de FTP (11) de tipus informació (6) tindria 11*8+6=94. Com se pot veure, valors més baixos indiquen major prioritat.

Capçalera[modifica | modifica el codi]

El segon camp d'un missatge syslog, la capçalera, indica tant el temps com el nom de l'ordinador que emet el missatge. Açò s'escriu en codificació ASCII (7 bits), per tant és text llegible.

El primer camp, temps, s'escriu en format Mmm dd hh:mm:ss, on Mmm són les inicials del nom del mes en anglès, dd, és el dia del mes, i la resta és l'hora. No s'indica l'any.

Just després ve el nom d'ordinador (hostname), o l'adreça IP si no es coneix el nom. No pot contenir espais, ja que aquest camp acaba quan es troba el següent espai.

Text[modifica | modifica el codi]

El que queda de paquet syslog a l'omplir la prioritat i la capçalera és el propi text del missatge. Aquest inclourà informació sobre el procés que ha generat l'avís, normalment al principi (en els primers 32 caràcters) i acabat per un caràcter no alfanumèric (com un espai, ":" o "["). Després, ve el contingut real del missatge, sense cap caràcter especial per a marcar el final.

Història[modifica | modifica el codi]

syslog va ser desenvolupat per Eric Allman com a part del projecte Sendmail, inicialment (anys 1980) només per a aquest projecte. No obstant això, es comprovà que era molt útil, i altres aplicacions començaren també a usar syslog. Avui dia (2005), syslog està present per defecte en quasi tots els sistemes Unix i GNU/Linux, i també es troben diverses implementacions de syslog per a uns altres sistemes operatius, com Microsoft Windows.

És ara, després de tants anys, quan syslog està en procés de convertir-se en estàndard, per a -entre altres coses- poder millorar la seguretat de les seues implementacions. IETF va assignar un grup de treball, i en 2001, es va documentar el seu funcionament en el RFC 3164 [1]. L'estandardització del contingut del missatge i de les diferents capes d'abstracció estan planificades per a 2006.

Implementacions[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]